For learning GHSOM I figured out I should study SOM as a first step.

Now, I know the basics of SOM, about weighted vectors and euclidean distances: when the human brain cannot easily process more than two dimensions of data, SOM will cluster, or in other words, map the data from high dimensions into lower ones (from this awesome link).

I found out what vertices of weights and similarity will do, but I still couldn't understand exactly how GHSOM works. I read in an essay that it works with layers of SOMs. With some examples I hope to understand it better.

Would you please tell me a proper reference for a beginner to study about it? Or can anyone explain how the algorithm works?

Thanks in advance.


1 Answer 1


A quick Google leads to a nice page at Vienna University that looks quite reasonable.

From what I can tell, the algorithm keeps track of how much error there is for each node, which is the difference between its vector and the vectors of the training data for which it won. A SOM's error is the total of the errors of its nodes.

If a SOM's error exceeds a threshold, you expand the SOM, based on how different its nodes are from each other. So areas where there are great-enough errors and great-enough differences get expanded. (You need more data points where there is something "going on".)

Once you've expanded the SOM to keep the overall error below the threshold, you then look at each node, and if its individual error is large enough, you take the subset of training data on which it won and create a sub-SOM that you train with the errors. That is, the sub-SOM is handling the differences between the parent node and the data on which it won.

That sub-SOM is trained/grown in the same way as the parent.

So the algorithm increases the extent of the SOM to allow the map to span the whole data set. It then "zooms in" on remaining troublesome nodes, increasing resolution by creating a SOM for only the training data associated with that node. You thus don't create an enormous SOM in order to get the resolution you need at a few particular clusters.

At least that's how it reads to me. I like it.

  • $\begingroup$ Thank you so much before asking my question I read this web site but I couldn't understand the whole now it is more clear to me but I have many problems suppose I have a special data x,I want explore datas a,b,c,d to find out which ones is closest ok I computed the deviation and refering to mq0 the value of d=4 then I computed eq0 but I can't understand this statement "This first layer map initially consists of a rather small number of units" what is happening here? $\endgroup$
    – Nickool
    Nov 16, 2011 at 16:43
  • $\begingroup$ @nik: I'm not sure what your x, a, b, c, d, stand for. Are a-d training data and x is a query against a trained SOM, or is x a fifth piece of training data? Or something else? $\endgroup$
    – Wayne
    Nov 16, 2011 at 18:01
  • $\begingroup$ x can be BMU or cluster center.if I didn't explain my problem correctly would you please explain the mq0 which will cause reducing the size here? Thanks $\endgroup$
    – Nickool
    Nov 17, 2011 at 6:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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