Pascal, Coordinate Encoder looks great. Chandan’s youtube is also useful for me.
I found this sample repository. https://github.com/numenta/nupic.geospatial It’s use Geospatial Coordinate Encoder not Coordinate Encoder, But I think it’s useful. Your Idea that make models for each frequency is interesting. I’ll try if Coordinate Encoder dose not work enough good. Thank you. 2015-11-03 22:45 GMT+09:00 Richard Crowder <[email protected]>: > Hi, > > I mentioned briefly some things on Numenta Gitter chat [1], and will > elaborate further here. > > You are now at a crucial stage of analyzing continuous time varying signals. > Our brains, and neo-cortex, can make us jump too far ahead when seeing these > graphs of the time-domain signal plotted in the frequency domain. As babies > we work out Newton's laws of motion using complex evolving parts of our old > and new (neo) brain (e.g. Force = mass x acceleration, F=ma [2]). Starting > to crawl, walk, and catch objects. For example, multiple sensory input > (visual, somatosensory, etc) using and adapting Purkinje cells in the > cerebellum, and the constant looping and evolving of sensorimotor > information to affect our muscle movements. This knowledge from childhood > has to an extent hampered progress when machines are programmed to look into > the time and frequency domain, using techniques such as Fourier Transforms. > We look at the FFT (DFT) data and can see how the graphs change over time, > almost automatically seeing the velocity and acceleration as the data > changes (motion derivatives). > > With ECG data the heart makes a lower and upper limit on how the time domain > signal changes. As mentioned in the other email thread [3] we can use that > to limit the sliding sampling window over the signal (1000 samples a second > as possible upper limit?). The repetitive nature of the signal is great for > Fourier based spectral analysis. The heart beats also limits upper frequency > to go to, with 8000 Hz being ok. > > One factor that you are aware of is noise. That can leak into the FFT plots > and make lower frequencies get messy. Power line noise at 50/60 Hz, for > example, can fluctuate and confuse things. And with the low rate of heart > beating can interfere with the signal and get messy in the FFT [4]. BUT as > you can now see in the FFT, the harmonics can now be 'seen' and add to > features that can be tracked over time with Temporal Memories (SP +TM). > Along with possible feature tracking of the original ECG signal in the time > domain (no one has Max Heart Rate, 220-age beats per minute, unless stressed > on a treadmill running very fast). Where those harmonics are is related to > how fast the heart is beating. With greater harmonics for the QRS parts of > the signal. > > The use of window and filter function on the ECG signal before Fourier > Transform can be used to limit and decrease noise. But care must be taken > with the size of windows, how many samples of the signal to consider in the > window, and low/high pass and other filter functions (Hamming, Blackman, > etc.). All help reduce noise, but never get rid of it. Here again, there is > less noise in the higher frequency harmonics. And have helped Apple's Siri > out a lot in analyzing speech, for example. > > Finding features will need information from the signal, e.g. how often the > QRS part occurs, and then looking in the FFT data at roughly where the > harmonics are (no need to go to too high number of them, up to 5 at max.). > Which can tie in with the presentation by Chetan on Coordinate Encoder, but > could be done with other encoders. First is finding all the features to > track. My knowledge of using NuPIC to do that is limited, so hopefully > others like Pascal can help here. The features can include beats per minute > from the signal, and then limited information from the FFT (Pascals idea of > a TM for a group of frequencies around the harmonics). > > Enough for now? Best regards, Richard. > > 1 https://gitter.im/numenta/htm-challenge and > https://gitter.im/numenta/public > 2 https://en.wikipedia.org/wiki/Newton%27s_laws_of_motion > 3 > http://lists.numenta.org/pipermail/nupic_lists.numenta.org/2015-October/012047.html > 4 > http://www.ijarcce.com/upload/2013/march/8-bhumika%20Chandrakar%20-%20a%20survey%20of%20noise-c.pdf > > On Tue, Nov 3, 2015 at 5:49 AM, Pascal Weinberger > <[email protected]> wrote: >> >> Hey :) >> >> Currently there is the coordinate Encoder, which encodes for an >> n-dimensional Vektor in n-Dimensional space. >> Here is Chandan explaining it or better a slightly modified version >> http://youtu.be/KxxHo-FtKRo >> >> The code: >> >> https://github.com/numenta/nupic/blob/master/src/nupic/encoders/coordinate.py >> >> You can Try that as a start, and what I'd also do is maybe have a model >> for each frequency band, which you can probably the easiest get with the >> htmengine :) the second method will also help you interpret the results as >> you'll know what frequency was unexpected at a given time. >> >> Hope that helps :) >> >> >> >> Best, >> >> Pascal Weinberger >> >> ____________________________ >> >> BE THE CHANGE YOU WANT TO SEE IN THE WORLD ... >> >> >> PLEASE NOTE: This email and any file transmitted are strictly >> confidential and/or legally privileged and intended only for the person(s) >> directly addressed. If you are not the intended recipient, any use, copying, >> transmission, distribution, or other forms of dissemination is strictly >> prohibited. If you have received this email in error, please notify the >> sender immediately and permanently delete the email and files, if any. >> >> Please consider the environment before printing this message. >> >> >> >> >> >> On 03 Nov 2015, at 04:12, Kentaro Iizuka <[email protected]> wrote: >> >> Hello, NuPIC, >> >> I'm currently working for ECG anomaly detection with NuPIC as HTM >> Challenge project. >> >> Here is two graph. >> >> [first] >> >> https://cloud.githubusercontent.com/assets/478824/10900146/9b3a85a8-821f-11e5-83d4-4970e77bb623.png >> >> [second] >> >> https://cloud.githubusercontent.com/assets/478824/10900145/9b17a376-821f-11e5-9987-45c2634aa77c.png >> >> This is visualization of FFT converted ECG data. >> First is the normal ECG data, second contain anomalous part. >> Vertical axis is time step and horizontal axis is frequency, >> color shows value of each frequency. >> >> You can see mottled part in second graph. >> Actually, mottled part show anomalous in ECG data. >> >> FFT Converted data is times series of VECTOR(about 120 dimension) >> I want to input time series of vector data into the NuPIC! >> Is there any example or document for deal with time series of vector with >> NuPIC? >> >> I want to know >> * How to input vector data into the NuPIC >> * What kind of Encoder I should use >> * How to write swarming setting file >> >> Here are sample converted data. >> >> https://github.com/iizukak/ecg-htm/blob/master/data/healthy_person1_fft_converted.csv >> >> https://github.com/iizukak/ecg-htm/blob/master/data/disease_person1_fft_converted.csv >> >> Data form. >> TIME1: [11.13, 10.36,..., 1.92] >> TIME2: [11.22, 10.35,..., 2.65] >> ... >> TIME_END: [1.11, 10.20,..., 1.84] >> >> >> In previous thread,very thank you for your helpful replies. >> I’m an amateur of signal processing but I read all of your replies >> carefully. >> "Please help Ken with his HTM Challenge project" >> >> http://lists.numenta.org/pipermail/nupic_lists.numenta.org/2015-October/012047.html >> >> Thanks. >> >> -- >> Kentaro Iizuka<[email protected]> >> >> Github >> https://github.com/iizukak/ >> >> Facebook >> https://www.facebook.com/kentaroiizuka >> > -- Kentaro Iizuka<[email protected]> Github https://github.com/iizukak/ Facebook https://www.facebook.com/kentaroiizuka
