Plotting weighted mean activations
Plotting graded activations
Training individual maps
Training more individual maps
Hebbian training on non-symmetric maps
References for SOMs

Hebbian training on non-symmetric maps

On the left side, 9 regions with 30 points each. Points are distributed randomly within each 1x1 square. The regions are distributed evenly across a 21x21 area. On the right side, 5 separate regions. Three are 1x1 squares located in a diagonal, evenly spaced, 30 points each. The fourth region has 30 data points spread randomly between (0,15) on the x-axis and (0,25) on the y-axis (red stars, region "y"). The fifth region has 30 data points spread randomly between (0,25) on the x-axis and (0,25) on the y-axis (green stars, region "x").
The labels indicate associated groups on the two maps. The idea is to see what happens when there are several regions on one map associated with a single area on the other map. Also, with the 'x' and 'y' regions, what happens when there is much less regularity in the associations?

First we train each map separately on its own data set. We use the batch training algorithm to do so (More on batch training here.) Then, we train the Hebbian connections between the two maps. We use the Hebbian connections to see how the right map is activated when we present data only to the left map, and vice versa.

Present "a" data to each map
Present "b" data to each map
Present "c" data to each map
All of the above maps look the way we expect them to. Presenting data to the left map activates the one associated region on the right. Presenting data to the right map activates all of the associated regions on the left (two "a" regions, two "b" regions, three "c" regions on the left). Presenting data from the remaining "a", "b", and "c" regions on the left have the expected effect.

What happens with region "x"? Here are three data points presented to just the left map:

3 different points from region "x"
Interestingly, all three points presented to the left graph activated the same area on the right graph.

In the next figures, we present the three associated points to the right map, and see where the left map is activated:

3 different points from region "x"
The points on the right are from pretty different areas, yet they all light up the central region of the left map. In the last case, the data point is close to the "c" region of the right map, and so it activates a bit the "c" regions on the left map.

It is interesting to note that when we presented points to the left map in region x, they did not activate outlying "x" areas on the right map, only the one region between "a" and "b". Is this due to a preference for linearly associated areas as Westermann and Miranda discuss? Does that even make sense here?

Now, similarly for region "y", first presenting data points to the left map to see right side activations, and then the opposite following.

Points from region y

Again, the activation of the right map is consistent given different left-hand data points, rather than activation spreading all over the y-area of the right map. Also, the right side area lit up by left side "y" data does not match the right side area lit up by "x" data points.

Points from region y

None of these points activated the "y" area of the left map. Instead, we see areas of the left map activated that correspond to the more robust "a", "b", and even the "x" areas that the presented points happen to be close to. Apparently the Hebbian weights associated with "a","b", and "x" neurons on the right are strong enough to pull away the activation from any right side "y" neurons that formed attachments to the left side. I wonder why the pull of "x" is so strong? It could even be something curious about the data rather than the algorithm... needs a closer look.