Kohonen Self-Organizing Maps.*;
This example is similar to Example 1, but now neighborhood weight updating and radius reduction are involved. With the constants involved below, neighboring weights will update through 80% of the training iterations, then focus un updating only the winning weights to the end.
Example Results
I didn't feel like spending time on sorting the output, but it still makes sense enough.
Iterations: 101
Neighborhood radius reduced after 80 iterations.
Clusters for training input:
Vector (1, 1, 1, 0, 0, 0, 0, ) fits into category 4
Vector (0, 0, 0, 0, 1, 1, 1, ) fits into category 2
Vector (0, 0, 1, 1, 1, 0, 0, ) fits into category 0
Vector (0, 0, 0, 0, 0, 0, 1, ) fits into category 2
Vector (1, 0, 0, 0, 0, 0, 0, ) fits into category 4
Vector (0, 0, 0, 1, 0, 0, 0, ) fits into category 0
Vector (1, 0, 1, 0, 1, 0, 1, ) fits into category 3
Weights for Node 0 connections:
.000, .000, .492, 1.000, .492, .000, .000,
Weights for Node 1 connections:
.213, .000, .407, .400, .594, .187, .600,
Weights for Node 2 connections:
.178, .000, .178, .000, .584, .406, 1.000,
Weights for Node 3 connections:
.718, .134, .570, .000, .574, .139, .718,
Weights for Node 4 connections:
1.000, .492, .492, .000, .000, .000, .000,
Categorized test input:
Vector (1, 1, 1, 1, 0, 0, 0, ) fits into category 4
Vector (0, 1, 1, 0, 1, 1, 1, ) fits into category 2
Vector (0, 1, 0, 1, 0, 1, 0, ) fits into category 0
Vector (0, 1, 0, 0, 0, 0, 0, ) fits into category 4
Vector (0, 0, 0, 0, 1, 0, 0, ) fits into category 1
Vector (0, 0, 0, 1, 1, 1, 1, ) fits into category 1