# 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 it. It was developed by professor Bernard Widrow and his doctoral student Marcian Hoff at Stanford University in 1960. It is based on the perceptron and consists of weights, a bias, and a summation function. The weights and biases were implemented by rheostats (as seen in the "knobby ADALINE"), and later, memistors.
The difference between Adaline and the standard (Rosenblatt) 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 known as 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:
* $x$, the input vector
* $w$, the weight vector
* $n$, the number of inputs
* $\theta$, some constant
* $y$, the output of the model,
the output is:
    $y=\sum _{j=1}^{n}x_{j}w_{j}+\theta$
If we further assume that $x_{0}=1$ and $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.
Given the following:
* $\eta$, the learning rate
* $y$, the model output
* $o$, the target (desired) output
* $E=(o-y)^{2}$, the square of the error,
the LMS algorithm updates the weights as follows:
    $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, feedforward 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. As the sign function is non-differentiable, backpropagation cannot be used to train MADALINE networks. Hence, three different training algorithms 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 model. This was until Widrow saw the backpropagation algorithm in a 1985 conference in Snowbird, Utah.
MADALINE Rule 1 (MRI) - The first of these dates back to 1962. It consists of two layers: the first 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 that takes in all $o_{i}$, and if there are more positives than negatives, outputs +1, and vice versa. Another is a "job assigner": suppose the desired output is -1, and different from the majority-voted output, then the job assigner calculates the minimal number of ADALINE units that must change their outputs from positive to negative, and picks those ADALINE units that are closest to being negative, and makes 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. It was built in 1963 and used MRI for learning.
Some MADALINE machines were demonstrated to perform tasks including inverted pendulum balancing, weather forecasting, and speech recognition.
MADALINE Rule 2 (MRII) - The second training algorithm, described in 1988, improved on Rule I. The Rule II training algorithm is based on a principle called "minimal disturbance". It proceeds by looping over training examples, and 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 sign; 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.