赞
踩
Hebb学习规则代表一种纯向前的非监督学习。这里用一个简单的例子来说明具有简单网络的二进制和连续激活函数的Hebb学习情况。先上图:
假定具有以下初始权向量的网络如上图所示。
初始权向量
W1 = [1, -1, 0, 0.5]T
输入
X= [x1, x2, x3, x4]T
训练集用以下三个输入向量
X1 = [1, -2, 1.5, 0]T X2 = [1, -0.5, -2, -1.5]T X3 = [0, 1, -1, 1.5]T
学习常数在这里则设为 η = 1。因为初始权重具有非零值,这意味着这个网络事先已经明显受过训练。这里我们采用双机二进制神经元, 那么 f(net) = sgn(net)。
学习过程有以下步骤:
第一步 加到网络的输入X1产生如下的net1
net1 = (W1)TX1 = [1, -1, 0, 0.5]*[1, -2, 1.5, 0]T = 3
更新的权是
W2 = W1 + sgn(net1)X1 = W1 + X1 = [1, -1, 0, 0.5]T + [1, -2, 1.5, 0]T = [2, -3, 1.5, 0.5]T
sgn(net1)=1,net1>=0
sgn(net1)=-1,net1<0
ΔWi= ηf(WiTX)X f(WiTX)=sgn(net1),W2 = W1 + ΔWi
当这里的f(WiTX)不是符号函数sgn(net1)时,如当f(net) = 2/[1+exp(-λ*net)] - 1,计算也是一样的。(net=WiTX)
其中在表达式右边的下标表示当前调节步数。
第二步 这次学习使用X2作输入,重复第一步的步骤
W3 = [1, -2.5, 3.5, 2]
第三步 这次学习使用X3作输入,重复第一步的步骤
W4 = [1, -3.5, 4.5, 0.5]
由上可见,具有离散f(net)和η = 1的学习分别产生加整个输入模式向量到权向量中或者从权中减去整个输入模式向量。在连续f(net)的情况,权增加/减少向量按比例缩小到输入模式的分数值。
下面看一个具有连续双极激活函数f(net),用输入X1和初始权W1的Hebb学习例子。
同在第一步概况那样,我们得到神经元输出值和对于 λ=1 更新权,和以前的情况比较,不同的是f(net), 现在的激活函数如下式
f(net) = 2/[1+exp(-λ*net)] - 1
通过计算可得
f(net1) = 0.905 f(net2) = -0.077 f(net3) = -0.932
W2 = [1.905, -2.81, 1.357, 0.5]T W3 = [1.828, -2.772, 1.512, 0.616]T W4 = [1.828, -3.70, 2.44, -0.783]T
ΔWi= ηf(net(i)) X W2(i+1)= Wi + ΔWi f(net(i))=W(i)T * X(i)
通过对比离散的和连续的激活函数,可见 对于连续的激活函数,权调节成锥形,但是一般是在同一方向上的。以上,就是关于Hebb学习规律的简单的例子。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。