Multi-Layer Perceptron and Back-Propagation Algorithm
Perceptron
In machine learning, perceptron is a binary classifier, which calculates a
linear combination and outputs 1 or -1.
The takes an vector as the input, and calculates , where is a threshold function.
Another vector is the parameters. For any linearly separable problems, we can always find a suitable parameter to make the perceptron works.
Gradient Descent
Gradient descent is the key of how to find suitable parameters for the perceptron to solve a specific problem.
For given multivariable function , the gradient is a vector-valued function and the result includes all partial derivatives of at current point.
Let's say is a small enough number. For any and , we have: .
Perceptron Learning Algorithm
For a given trainning instance and the classification .
Let's say the current parameter is .
Using the current state of the perceptron, you can calculate a result:
If , that means the perceptron already works well for the given instance. Or, we've already knew that whether we should make the calculated bigger or smaller.
Since ,
-
If , then is expected to be greater and we can replace with .
-
If , then is expected to be smaller and we can replace with .
In general, we can always replace with to make the perceptron better.
Multi-Layer Perceptron
The single perceptron can only solve linearly separable problems. To deal with more complicated classification problems, we have multi-layer perceptron.
The basic idea of multi-layer perception is just stacking a sort of perceptrons and make it as a network. For example, in the case showing above:
- and are called input layer.
- and are two hidden layers.
- is called output layer.
- In each directed edge, there is a parameter as familiar as the single perceptron.
Back-Propagation Algorithm
In multi-layer perceptron, we use the same gradient decent strategy to update parameters, which is called backpropagation algorithm. And there are two steps:
-
Familiar with in perceptron learning algorithm, it reversely calculates the for each perceptron.
-
Then, it uses the same strategy to update for each edge.
Example.
Here is an example of digital recognizer based on multi-layer perceptron, of which the accuracy is about 98%.