深度学习从0到1
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.3 单层感知器的学习规则

3.3.1 单层感知器的学习规则介绍

感知器的学习规则就是指感知器中的权值参数训练的方法,本小节我们暂时先不解释这个学习规则是怎么推导出来的,等第4章我们讲到Delta学习规则的时候再来解释感知器的学习规则是如何推导的。这里我们可以先接受下面的公式即可。

在3.2.3小节中我们已知单层感知器的表达式可以写成

式(3.1)中:y表示感知器的输出;f是sign激活函数;n是输入信号的个数。

式(3.2)中,Δwi表示第i个权值的变化;η表示学习率(Learning Rate),用来调节权值变化的大小;t是正确的标签(Target)。

因为单层感知器的激活函数为sign函数,所以ty的取值都为±1。

t=y时,Δwi为0;t=1,y=-1时,Δwi为2xiηt=-1,y=1时,Δwi为-2xiη。由式(3.2)可以推出:

权值的调整公式为

3.3.2 单层感知器的学习规则计算举例

假设有一个单层感知器如图3.2所示,输入x0=1、x1=0和x2=-1,权值w0=-5、w1=0和w2=0,学习率η=1,正确的标签t=1(注意,在这个例子中,偏置值bw0×x0来表示,x0的值固定为1)。

Step1:计算感知器的输出。

由于y=-1与正确的标签t=1不相同,所以需要对感知器中的权值进行调节。

Δw0=η(t-y)x0=1×(1+1)×1=2

Δw1=η(t-y)x1=1×(1+1)×0=0

Δw2=η(t-y)x2=1×(1+1)×(-1)=-2

w0:=w0w0=-5+2=-3

w1:=w1w1=0+0=0

w2:=w2w2=0-2=-2

Step2:重新计算感知器的输出。

由于y=-1与正确的标签t=1不相同,所以需要对感知器中的权值进行调节。

Δw0=η(t-y)x0=1×(1+1)×1=2

Δw1=η(t-y)x1=1×(1+1)×0=0

Δw2=η(t-y)x2=1×(1+1)×(-1)=-2

w0:=w0w0=-3+2=-1

w1:=w1w1=0+0=0

w2:=w2w2=-2-2=-4

Step3:重新计算感知器的输出。

由于y=1与正确的标签t=1相同,说明感知器经过训练后得到了我们想要的结果,这样我们就可以结束训练了。

如果将上面的例子写成Python程序,则可以得到代码3-1。

代码3-1:单层感知器学习规则计算举例

运行结果如下:

下面我们还可以用矩阵运算的方式来完成同样的计算,代码3-2为以矩阵运算的方式来进行单层感知器学习规则的计算。

代码3-2:单层感知器学习规则计算举例(矩阵计算)

运行结果如下: