Learning: Connectionist
A NN consists of interconnected nodes. Each node in the network is similar to a neuron in that it takes some input signals, takes a weighted sum of them as the total input to the unit, and generates an output according to a simple (but usually nonlinear) function. For example, it can be a threshold function of the input.
Each time the NN is used, an input activation vector is applied to the input nodes, then the activation vector value of the other nodes is calculated according to the activation sent out of the input nodes by their activation function. The same process is repeated until the network reach a stable state, then the activity values of certain nodes are taken to be the output. Overall, a neural network often corresponds to a function that map input vectors to output vectors.
For more complicated functions, one popular learning algorithm is "back propagation" in multilayer perceptrons. This algorithm is used to train fully connected, layered, feedforward networks. Typically, such a NN has an input layer, a hidden layer, and an output layer. The nodes in one layer are connected to the nodes on the next layer by links, and there is a weight value attached to each link. The input values are first summarized into a weighted sun, which is feeded into a S-shaped function to generate an output value in [0, 1].
Hidden1
Input1 o --- o --- o Output1
\ / \ /
\ / \ /
X X
/ \ / \
/ \ / \
Input2 o --- o --- o Output2
Hidden2
After the number of nodes in each layer is determined, the weights of the links are
initialized to random numbers. Then, the network is trained by repeating the following
procedure for each training case:
In principle, a three-layer back-propagation can learn any function by the above supervised reinforcement learning algorithm. It uses repeated error-backpropagation to solve the credit assignment problem.
After repeated training, an "associative memory" will be formed, such that when part of an input pattern is activated, the other part will become active, too. A demo applet is here.
Hebbian coincidence learning can also be used for supervised learning by remember the input/output pair according to Hebbian rule. It is also a kind of incremental reinforcement learning.
Typical applications: categorization, pattern recognition, data mining, and so on.
Limitations: