Hopfield Net
- So far, neural networks for computation are all feedforward structures
Loopy network
- Each neuron is a perceptron with +1/-1 output
- Every neuron receives input from every other neuron
- Every neuron outputs signals to every other neuron
- At each time each neuron receives a “field” ∑ j ≠ i w j i y j + b i \sum_{j \neq i} w_{j i} y_{j}+b_{i} ∑j=iwjiyj+bi
- If the sign of the field matches its own sign, it does not respond
- If the sign of the field opposes its own sign, it “flips” to match the sign of the field
- If the sign of the field at any neuron opposes its own sign, it “flips” to match the field
- Which will change the field at other nodes
- Which may then flip… and so on…
Filp behavior
-
Let y i − y^{-}_{i} yi− be the output of the i i i-th neuron just before it responds to the current field
-
Let y i + y_{i}^{+} yi+ be the output of the i i i-th neuron just after it responds to the current field
-
if y i − = sign ( ∑ j ≠ i w j i y j + b i ) y_{i}^{-}=\operatorname{sign}\left(\sum_{j \neq i} w_{j i} y_{j}+b_{i}\right) yi−=sign(∑j=iwjiyj+bi), then y i + = − y i − y_{i}^{+} = -y_{i}^{-} yi+=−yi−
-
If the sign of the field matches its own sign, it does not flip
-
y i + ( ∑ j ≠ i w j i y j + b i ) − y i − ( ∑ j ≠ i w j i y j + b i ) = 0 y_{i}^{+}\left(\sum_{j \neq i} w_{j i} y_{j}+b_{i}\right)-y_{i}^{-}\left(\sum_{j \neq i} w_{j i} y_{j}+b_{i}\right)=0 yi+⎝⎛j=i∑wjiyj+bi⎠⎞−yi−⎝⎛j=i∑wjiyj+bi⎠⎞=0
-
-
if y i − ≠ sign ( ∑ j ≠ i w j i y j + b i ) y_{i}^{-}\neq\operatorname{sign}\left(\sum_{j \neq i} w_{j i} y_{j}+b_{i}\right) yi−=sign(∑j=iwjiyj+bi), then y i + = − y i − y_{i}^{+} = -y_{i}^{-} yi+