First difference

In Perceptron model:

new_weight(i) = old_weight(i) + (learning_rate x target_output x input(i))

In Adaline model:

new_weight(i) = old_weight(i) + (learning_rate x (target_output - calculated_output) x input(i))

Second difference

In Perceptron model:

Activation function

y(w1 x X1 + w2 x X2... + b) =
1 if w1 x X1 + w2 x X2... + b > 0
0 if w1 x X1 + w2 x X2... + b = 0
-1 if w1 x X1 + w2 x X2... + b < 0

In Adaline model:

Activation function

y(w1 x X1 + w2 x X2... + b) =
1 if w1 x X1 + w2 x X2... + b >= Threshold
0 if w1 x X1 + w2 x X2... + b < Threshold

The differences between the Perceptron and Adaline:

  1. The Perceptron uses the class labels to learn model coefficients.
  2. Adaline uses continuous predicted values (from the net input) to learn the model coefficients, which is more “powerful” since it tells us by “how much” the model is right or wrong.

The Adaline (Adaptive Linear Element) and the Perceptron are both linear classifiers when considered as individual units. They both take an input, and based on a threshold, output e.g. either a 0 or a 1.

The main difference between the two, is that a Perceptron takes that binary response (like a classification result) and computes an error used to update the weights, whereas an Adaline uses a continous response value to update the weights (so before the binarized output is produced).

The fact that the Adaline does this, allows its updates to be more repesentative of the actual error, before it is thresholded, which in turn allows a model to converge more quickly.


Have a look at this really interesting history of neural networks, which contains a small section on Adalines, along with memistors - resistors with memory, as the neurons where figuratively perceived back in the 1960's.

There are also some other answers to a similar question here.

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.