This app allows the user to interactively experiment with and visualize the training of a single neuron (feature detector) in an unsupervised neural network. The user provides the online "training data" via taking photos.
Instructions: take photos and be patient -- even small neural networks are computationally intensive!
The network converges on the first "principal component" or most often occurring 2 x 2 feature pattern that multiple images share in common.
This network implements only local learning rules:
1. A neuron is competitive: if it frequently does not fire, it decreases its threshold to respond to stimuli with greater variance.
2. A neuron is thrifty: if it frequently fires, it increases its threshold
3. When a neuron fires, it tunes its "weights" to move in a direction which will increase the likelihood of a similar pattern triggering it in the future.
Example: if a post synaptic neuron was responding to a high amplitude signal, but now responds to a lower amplitude signal (due to threshold decrease), its weights will move towards the lower amplitude signal.
Network structure:
1. Input layer: 8 x 8 x 3 (3 color channels)
2. Convolutional layer: 2 x 2 x 3 ( 1 neuron with 12 synapses)
3. Activation Map:
7 x 7 x 1
Note: Color channels are preprocessed to respond similarly regardless of lighting.