感知机是一种经典的神经网络算法,用于数据分类。其图形化展示如下图,相互连接的神经元j和神经元k做了放大处理,我们可以更清楚地了解感知机中每个神经元的计算逻辑。


感知机 — Perceptron

其中,输入层x1x2对应于一条有两个特征的数据,输出层y表示这条数据的标签(类别)。对于神经元k,接收它左侧三个神经元的输出,作为其输入。每一个输入配有一个权重wjk,因此,神经元k接收的输入总和为zk=jwjkaj+bkgk(z)是神经元k的**函数,其结果ak作为神经元k的输出。即:

ak=gk(jwjkaj+bk)

常见的**函数有:


感知机 — Perceptron

学习策略

此处,我们以双输入单神经元感知机,sgn_func作为**函数为例开始讲解感知机的学习策略。如下图:


感知机 — Perceptron

如上神经网络的输出定义为a=sgn(WTX+b)=sgn(w1x1+w2x2+b),决策边界定义为z=WTX+b=w1x1+w2x2+b=0。其图形化展示如下:


感知机 — Perceptron

其中,W为决策边界WTX+b=0的法向量,始终垂直于决策边界。

对于输入数据{x1=[12],y1=1}{x2=[0.52],y2=0}{x3=[0.51],y3=0},下图中空心圆表示yi=0,实心圆表示yi=1。感知机的学习策略步骤如下:


感知机 — Perceptron

  1. x0i=1w0=b,我们随机初始化W构建感知机模型l0:W0X=0
  2. 在决策边界l0的分类下,发现x1被错误分类,即y=1,a=0。因此,参数更新公式有W1=W0+x1(新的参数向量W1使得新的决策边界l1x1的方向旋转);
  3. 在决策边界l1的分类下,发现x2被错误分类,即y=0,a=1。因此,参数更新公式有W2=W1x2(新的参数向量W2使得新的决策边界l2向远离x2的方向旋转);
  4. 在决策边界l2的分类下,发现x1,x2,x3均被正确分类,即y=0,a=0y=1,a=1。因此,参数不再更新。

总结如上两种错误分类情况,即得统一的参数更新公式:

Wnew=Wold+(ya)X

此参数更新公式对于单隐层多神经元感知机同样适用,不过是W由向量变成了矩阵。

感知机的收敛性

由于ya{1,1},可令W(k+1)=W(k)+X(k)。其中:

X(k){x1,x2,,xm,x1,x2,,xm}

然后,我们假设感知机存在一个最终解W,使得:
WTxi>δ>0|y=1WTxi<δ<0|y=0

其中,δ表示某可能很小的正数。结合X(k)的定义,得WTX(k)>δ

roof:

初始化感知机参数W(0)0,经过k次迭代后:

W(K)=X(0)+X(1)+X(2)++X(k1)WTW(K)=WTX(0)+WTX(1)+WTX(2)++WTX(k1)

由于WTX(k)>δ,得WTW(K)>kδ
(WTW(K))2=(WW(K)cosθ)2W2W(K)2W(K)2(WTW(K))2W2>(kδ)2W2

接下来计算W(K)的上界:
W(K)2=WT(K)W(K)=[W(K1)+X(K1)]T[W(K1)+X(K1)]=WT(K1)W(K1)+2WT(K1)X(K1)+XT(K1)X(K1)

对于W(K1),决策边界仍处于更新状态中。因此,必有数据被错误分类。如果y=1,a=0WT(K1)X(K1)=WT(K1)X(K1)0;如果y=0,a=1WT(K1)X(K1)=WT(K1)X(K1)0(读者可以自行构建二维坐标系验证)。因此:
W(K)2W(K1)2+X(K1)2

重复迭代可得:
W(K)2X(0)2+X(1)2++X(K1)2

Π=max(X(i)2),得:
W(K)2kΠ

结合W(K)2>(kδ)2W2,得:
(kδ)2W2<W(K)2kΠk<ΠW2δ2

得证感知机的学习能在有限次数内完成。

感知机的局限性

上面对单层神经元感知机学习策略的讲解和收敛性的证明都基于一个假设:数据是线性可分的。即存在一个超平面能将不同类的数据分隔开。然而,现实中的数据大多是非线性可分的,如下图:


感知机 — Perceptron

而非线性数据可通过引入多层神经元处理。

相关文章: