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

3.2 单层感知器

3.2.1 单层感知器介绍

受到生物神经网络的启发,计算机学家弗兰克·罗森布拉特(Frank Rosenblatt)在20世纪60年代提出了一种模拟生物神经网络的的人工神经网络结构,称为感知器(Perceptron)。图3.2为单层感知器的结构。

图3.2 单层感知器的结构

图3.2中,x1x2x3为输入信号,类似于生物神经网络中的树突;w1w2w3分别为x1x2x3的权值,它可以调节输入信号的大小,让输入信号变大(w>0)、不变(w=0)或者减小(w<0)。可以理解为生物神经网络中的信号作用,信号经过树突传递到细胞核的过程中信号会发生变化。

公式表示细胞的输入信号在细胞核的位置进行汇总,然后再加上该细胞本身自带的信号bb一般称为偏置值(Bias),相当于是神经元内部自带的信号。

fx)称为激活函数,可以理解为信号在轴突上进行的线性或非线性变化。在单层感知器中最开始使用的激活函数是sign(x)激活函数。该函数的特点是当x>0时,输出值为1;当x=0时,输出值为0;当x<0时,输出值为-1。sign(x)函数如图3.3所示。

图3.3 sign(x)函数

y就是,为单层感知器的输出结果。

3.2.2 单层感知器计算举例

假如一个单层感知器有3个输入:x1x2x3,同时已知b=-0.6,w1=w2=w3=0.5,那么根据单层感知器的计算公式我们就可以得到如图3.4所示的计算结果。

图3.4 单层感知器的计算

x1=0,x2=0,x3=0:sign(0.5×0+0.5×0+0.5×0-0.6)=-1

x1=0,x2=0,x3=1:sign(0.5×0+0.5×0+0.5×1-0.6)=-1

x1=0,x2=1,x3=0:sign(0.5×0+0.5×1+0.5×0-0.6)=-1

x1=0,x2=1,x3=1:sign(0.5×0+0.5×1+0.5×1-0.6)=1

x1=1,x2=0,x3=0:sign(0.5×1+0.5×0+0.5×0-0.6)=-1

x1=1,x2=0,x3=1:sign(0.5×1+0.5×0+0.5×1-0.6)=1

x1=1,x2=1,x3=0:sign(0.5×1+0.5×1+0.5×0-0.6)=1

x1=1,x2=1,x3=1:sign(0.5×1+0.5×1+0.5×1-0.6)=1

3.2.3 单层感知器的另一种表达形式

单层感知器的另一种表达形式如图3.5所示。

其实这种表达形式跟3.2.1小节中的单层感知器是一样的,只不过是把偏置值b变成了输入w0×x0,其中x0=1。所以w0×x0实际上就是w0,把公式展开得到w1×x1+w2×x2+w3×x3+w0。所以这两个单层感知器的表达不一样,但是计算结果是一样的。图3.5所示的表达形式更加简洁,更适合使用矩阵来进行运算。

图3.5 单层感知器的另一种表达形式