使用与门实现的赫布学习规则
Hebbian 学习规则,也称为 Hebb 学习规则,是由 Donald O Hebb 提出的。它是神经网络中第一个也是最简单的学习规则之一。它用于模式分类。它是一个单层神经网络,即它有一个输入层和一个输出层。输入层可以有很多单位,比如 n。输出层只有一个单元。 Hebbian 规则的工作原理是为每个训练样本更新神经网络中神经元之间的权重。
Hebbian 学习规则算法:
- 将所有权重设置为零,将 i=1 设置为 n 时 w i = 0,并将偏差设置为零。
- 对于每个输入向量,S(输入向量):t(目标输出对),重复步骤 3-5。
- 使用输入向量 X i = S i为 i = 1 到 n 设置输入单元的激活。
- 给输出神经元设置相应的输出值,即y = t。
- 通过对所有 i = 1 到 n 应用 Hebb 规则来更新权重和偏差:
实现与门:
有4个训练样本,所以会有4次迭代。此外,这里使用的激活函数是双极 Sigmoidal函数,因此范围是 [-1,1]。
第1步 :
将权重和偏差设置为零,w = [ 0 0 0 ] T和 b = 0。
第2步 :
对于 i = 1 到 4,设置输入向量 X i = S i 。
X 1 = [ -1 -1 1 ] T
X 2 = [ -1 1 1 ] T
X 3 = [ 1 -1 1 ] T
X 4 = [ 1 1 1 ] T
第 3 步:
输出值设置为 y = t。
第四步 :
使用 Hebbian 规则修改权重:
第一次迭代——
w(new) = w(old) + x 1 y 1 = [ 0 0 0 ] T + [ -1 -1 1 ] T 。 [ -1 ] = [ 1 1 -1 ] T
对于第二次迭代,将使用第一个的最终权重,依此类推。
第二次迭代——
w(new) = [ 1 1 -1 ] T + [ -1 1 1 ] T 。 [ -1 ] = [ 2 0 -2 ] T
第三次迭代——
w(new) = [ 2 0 -2] T + [ 1 -1 1 ] T 。 [ -1 ] = [ 1 1 -3 ] T
第四次迭代——
w(new) = [ 1 1 -3] T + [ 1 1 1 ] T 。 [ 1 ] = [ 2 2 -2 ] T
所以,最终的权重矩阵是 [ 2 2 -2 ] T
测试网络:
对于 x 1 = -1, x 2 = -1, b = 1, Y = (-1)(2) + (-1)(2) + (1)(-2) = -6
对于 x 1 = -1, x 2 = 1, b = 1, Y = (-1)(2) + (1)(2) + (1)(-2) = -2
对于 x 1 = 1, x 2 = -1, b = 1, Y = (1)(2) + (-1)(2) + (1)(-2) = -2
对于 x 1 = 1, x 2 = 1, b = 1, Y = (1)(2) + (1)(2) + (1)(-2) = 2
结果都与原表兼容。
决策边界:
2x 1 + 2x 2 – 2b = y
用 0, 2x 1 + 2x 2 – 2b = 0 替换 y
由于偏差,b = 1,所以 2x 1 + 2x 2 – 2(1) = 0
2( x 1 + x 2 ) = 2
最后的等式,x 2 = -x 1 + 1