ADALINE

ADALINE (Adaptive Linear Neuron or later Adaptive Linear Element) is an early single-layer artificial neural network and the name of the physical device that implemented this network. The network uses memistors. It was developed by professor Bernard Widrow and his doctoral student Ted Hoff at Stanford University in 1960. It is based on the perceptron. It consists of a weight, a bias and a summation function.

The difference between Adaline and the standard (McCulloch–Pitts) perceptron is in how they learn. Adaline unit weights are adjusted to match a teacher signal, before applying the Heaviside function (see figure), but the standard perceptron unit weights are adjusted to match the correct output, after applying the Heaviside function.

A multilayer network of ADALINE units is a MADALINE.

Definition
Adaline is a single layer neural network with multiple nodes where each node accepts multiple inputs and generates one output. Given the following variables as:
 * $$x$$ is the input vector
 * $$w$$ is the weight vector
 * $$n$$ is the number of inputs
 * $$\theta$$ is some constant
 * $$y$$ is the output of the model

then we find that the output is $$y=\sum_{j=1}^{n} x_j w_j + \theta$$. If we further assume that
 * $$ x_0 = 1$$
 * $$w_0 = \theta$$

then the output further reduces to: $$y=\sum_{j=0}^{n} x_j w_j$$

Learning rule
The learning rule used by ADALINE is the LMS ("least mean squares") algorithm, a special case of gradient descent.

Define the following notations:
 * $$\eta$$ is the learning rate (some positive constant)
 * $$y$$ is the output of the model
 * $$o$$ is the target (desired) output
 * $$E=(o - y)^2$$ is the square of the error.

The LMS algorithm updates the weights by $$w \leftarrow w + \eta(o - y)x.$$

This update rule minimizes $$E$$, the square of the error, and is in fact the stochastic gradient descent update for linear regression.

MADALINE
MADALINE (Many ADALINE ) is a three-layer (input, hidden, output), fully connected, feed-forward artificial neural network architecture for classification that uses ADALINE units in its hidden and output layers, i.e. its activation function is the sign function. The three-layer network uses memistors. Three different training algorithms for MADALINE networks, which cannot be learned using backpropagation because the sign function is not differentiable, have been suggested, called Rule I, Rule II and Rule III.

Despite many attempts, they never succeeded in training more than a single layer of weights in a MADALINE. This was until Widrow saw the backpropagation algorithm in a 1982 conference.

MADALINE Rule 1 (MRI) - The first of these dates back to 1962. It consists of two layers. The first layer is made of ADALINE units. Let the output of the i-th ADALINE unit be $$o_i$$. The second layer has two units. One is a majority-voting unit: it takes in all $$o_i$$, and if there are more positives than negatives, then the unit outputs +1, and vice versa. Another is a "job assigner". Suppose the desired output is different from the majority-voted output, say the desired output is -1, then the job assigner calculates the minimal number of ADALINE units that must change their outputs from positive to negative, then picks those ADALINE units that are closest to being negative, and make them update their weights, according to the ADALINE learning rule. It was thought of as a form of "minimal disturbance principle".

The largest MADALINE machine built had 1000 weights, each implemented by a memistor.

MADALINE Rule 2 (MRII) - The second training algorithm improved on Rule I and was described in 1988. The Rule II training algorithm is based on a principle called "minimal disturbance". It proceeds by looping over training examples, then for each example, it:
 * finds the hidden layer unit (ADALINE classifier) with the lowest confidence in its prediction,
 * tentatively flips the sign of the unit,
 * accepts or rejects the change based on whether the network's error is reduced,
 * stops when the error is zero.

MADALINE Rule 3 - The third "Rule" applied to a modified network with sigmoid activations instead of signum; it was later found to be equivalent to backpropagation.

Additionally, when flipping single units' signs does not drive the error to zero for a particular example, the training algorithm starts flipping pairs of units' signs, then triples of units, etc.