Difference between revisions of "Oja's rule"

From Eyewire
Jump to: navigation, search
m (Adds category)
Line 19: Line 19:
[[Category: Neural computational models]]

Revision as of 22:02, 16 April 2012

Oja's rule, developed by Finnish computer scientist Erkki Oja in 1982, is a stable version of Hebb's rule.[1]


Model of a neuron. j is the index of the neuron when there is more than one neuron. For a linear neuron, the activation function is not present (or simply the identity function).

As with Hebb's rule, we use a linear neuron. Given a set of k-dimensional inputs represented as a column vector <math>\vec{x} = [x_1, x_2, \cdots, x_k]^T</math>, and a linear neuron with (initially random) synaptic weights from the inputs <math>\vec{w} = [w_1, w_2, \cdots, w_k]^T</math> the output the neuron is defined as follows:

<math>y = \vec{w}^T \vec{x} = \sum_{i=1}^k w_i x_i</math>

Oja's rule gives the update rule which is applied after an input pattern is presented:

<math>\Delta \vec{w} = \eta y (\vec{x} - y \vec{w})</math>

Oja's rule is simply Hebb's rule with weight normalization, approximated by a Taylor series with terms of <math>\eta^n</math> ignored for n>1 since <math>\eta</math> is small.

It can be shown that Oja's rule extracts the first principal component of the data set. If there are many Oja's rule neurons, then all will converge to the same principal component, which is not useful. Sanger's rule was formulated to get around this issue.


  1. Script error: No such module "Citation/CS1".