andy
e3b6a35575
Affected files: .obsidian/appearance.json .obsidian/workspace-mobile.json .obsidian/workspace.json STEM/AI/Neural Networks/MLP.md STEM/AI/Neural Networks/MLP/Back-Propagation.md STEM/AI/Neural Networks/SLP.md STEM/AI/Neural Networks/SLP/Least Mean Square.md STEM/AI/Neural Networks/SLP/Perceptron Convergence.md STEM/img/activation-function.png STEM/img/lms-algorithm.png STEM/img/mlp-arch-diagram.png STEM/img/mlp-arch-graph.png STEM/img/mlp-arch.png STEM/img/sl-lms-summary.png STEM/img/slp-arch.png STEM/img/slp-hyperplane.png STEM/img/slp-lms-independence.png STEM/img/slp-mse.png STEM/img/slp-separable.png STEM/img/slp-steepest-descent.png
2.0 KiB
2.0 KiB
Error-Correcting Perceptron Learning
- Uses a McCulloch-Pitt neuron
- One with a hard limiter
- Unity increment
- Learning rate of 1
If the $n$-th member of the training set, x(n)
, is correctly classified by the weight vector w(n)
computed at the $n$-th iteration of the algorithm, no correction is made to the weight vector of the perceptron in accordance with the rule:
w(n + 1) = w(n) \text{ if $w^Tx(n) > 0$ and $x(n)$ belongs to class $\mathfrak{c}_1$}
w(n + 1) = w(n) \text{ if $w^Tx(n) \leq 0$ and $x(n)$ belongs to class $\mathfrak{c}_2$}
Otherwise, the weight vector of the perceptron is updated in accordance with the rule
w(n + 1) = w(n) - \eta(n)x(n) \text{ if } w^Tx(n) > 0 \text{ and } x(n) \text{ belongs to class }\mathfrak{c}_2
w(n + 1) = w(n) + \eta(n)x(n) \text{ if } w^Tx(n) \leq 0 \text{ and } x(n) \text{ belongs to class }\mathfrak{c}_1
- Initialisation. Set
w(0)=0
. perform the following computations for
time stepn = 1, 2,...
- Activation. At time step
n
, activate the perceptron by applying continuous-valued input vectorx(n)
and desired responsed(n)
. - Computation of Actual Response. Compute the actual response of the perceptron:
y(n) = sgn[w^T(n)x(n)]
where sgn(\cdot)
is the signum function.
4. Adaptation of Weight Vector. Update the weight vector of the perceptron:
w(n+1)=w(n)+\eta[d(n)-y(n)]x(n)
d(n) = \begin{cases}
+1 &\text{if $x(n)$ belongs to class $\mathfrak{c_1}$}\\
-1 &\text{if $x(n)$ belongs to class $\mathfrak{c_2}$}
\end{cases}
- Continuation. Increment time step
n
by one and go back to step 2.
- Guarantees convergence provided
- Patterns are linearly separable
- Non-overlapping classes
- Linear separation boundary
- Learning rate not too high
- Patterns are linearly separable
- Two conflicting requirements
- Averaging of past inputs to provide stable weight estimates
- Small eta
- Fast adaptation with respect to real changes in the underlying distribution of process responsible for
x
- Large eta
- Averaging of past inputs to provide stable weight estimates