Chapter titled, Self Organized Partitioning of Chaotic Attractors for Control in Lecture Notes in Computer Science in book: Artificial Neural Networks — ICANN 2001, pp.851-856

uses multiple self organizing map to quantize time series. The Authors then use the codebook to assign symbols. A codebook of k prototypes, best representing the data, is first designed. I am having difficulties in implementing the self organizing map as I do not understand how the quantization is being performed -- specifically what is the input to the SOM and how the output is used to assign symbols.

For my case, the data consists of N sensor variables (electrodes) : X = {x_i(t)} for i =1:N and t = 1:T number of time series. Then a new time series is compared / matched using the symbols representation. COuld somebody please explain illustrating with only a single SOM map and then I can apply it to multiple SOM maps.

An explanation with a code would be really helpful. My understanding is that the input to SOM would be X and after training using LBG the codebook is assigned. The codebook for SOM is the weight. Any toy example would be very useful to understand the concept. Thank you.


Looking through that paper, it does not seem clear what features they are using as input. However, a related paper gives some indication of a technique they used with multi SOM. They implemented 19 different frequency domain, time domain, or phase space transformations, then used some method to narrow it down to a subset of those features that were used. They described their approach to feature engineering more specifically than the paper listed in the question, but I think it leaves plenty of questions.

Scherbart, A. and Goerke, N. Unsupervised System for Discovering Patterns in Time-Series http://citeseerx.ist.psu.edu/viewdoc/summary?doi=

If you have moved past the feature engineering issue already, then the question must be a general one about SOM. I'd say the usual approach is to use time windows, so you may use the features from each time window as the input vectors. The codebook that you're creating is in the same feature space as the input. The codebook is made of codebook entries, one for each cell. If you compare any input to the codebook, the codebook entry that most closely matches the input is the winner. To label the map, you can show a set of inputs with known labels, then see which labels are mapped to which cell, i.e. the labels that correspond to the winning data for each cell.

| cite | improve this answer | |
  • $\begingroup$ Thank you for your reply. In the paper that I have mentioned in my question, the Authors have used the time series value as the feature. THey are trying to come up with the partitioning of the time series, so the feature is the value of the time series after iterating the dynamical system (e.g. Rossler). The Rossler or the Lorenz is a 3 dimensional nonlinear dynamical system. The Authors take only one of its variable and apply the SOM to determine if it can be quantized to 5 levels or 4 levels. $\endgroup$ – Srishti M Nov 26 '16 at 7:13
  • $\begingroup$ This part is still unclear to me how I can implement the SOM for quantization - coming up with the number of partitions and assigning the partitions to the input vectors. The time windowing approach which you described is also hard to follow. Could it be possible to please explain your answer with a code snippet ? Thank you and your help and time is much appreciated. $\endgroup$ – Srishti M Nov 26 '16 at 7:15
  • $\begingroup$ Sorry, I don't know your problem well enough to code. For your X: X = {x_i(t)} for i =1:N and t = 1:T number of time series, I mean that a time window is the vector x_i(t) for a time t. It seems from your code above, the map is trained, so the basic way to get the quantized value for any vector x_i is to use the value of the BMU, which is nearest. The quantization error will be "the Euclidean norm of the difference of the input vector and the best-matching model". $\endgroup$ – Tom Anderson Dec 4 '16 at 13:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.