感知机 — Perceptron

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

其中,输入层 x 1 x_1 x1 x 2 x_2 x2对应于一条有两个特征的数据,输出层 y y y表示这条数据的标签(类别)。对于神经元 k k k,接收它左侧三个神经元的输出,作为其输入。每一个输入配有一个权重 w j k w_{jk} wjk,因此,神经元 k k k接收的输入总和为 z k = ∑ j w j k a j + b k z_k = \sum\limits_j w_{jk}a_j + b_k zk=jwjkaj+bk g k ( z ) g_k(z) gk(z)是神经元 k k k的激活函数,其结果 a k a_k ak作为神经元 k k k的输出。即:
a k = g k ( ∑ j w j k a j + b k ) a_k = g_k(\sum\limits_j w_{jk}a_j + b_k) ak=gk(jwjkaj+bk)

常见的激活函数有:
这里写图片描述

学习策略

此处,我们以双输入单神经元感知机, s g n _ f u n c sgn\_func sgn_func作为激活函数为例开始讲解感知机的学习策略。如下图:
这里写图片描述

如上神经网络的输出定义为 a = s g n ( W T X + b ) = s g n ( w 1 x 1 + w 2 x 2 + b ) a = sgn(W^TX + b) = sgn(w_1x_1 + w_2x_2 + b) a=sgn(WTX+b)=sgn(w1x1+w2x2+b),决策边界定义为 z = W T X + b = w 1 x 1 + w 2 x 2 + b = 0 z = W^TX + b = w_1x_1 + w_2x_2 + b = 0 z=WTX+b=w1x1+w2x2+b=0。其图形化展示如下:
这里写图片描述

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

对于输入数据 { x 1 = [ 1 2 ] , y 1 = 1 } { x 2 = [ − 0.5 2 ] , y 2 = 0 } { x 3 = [ − 0.5 − 1 ] , y 3 = 0 } \{ x_1 = \begin{bmatrix} 1\\ 2 \end{bmatrix}, y_1 = 1\} \{ x_2 = \begin{bmatrix} -0.5\\ 2 \end{bmatrix}, y_2 = 0\} \{ x_3 = \begin{bmatrix} -0.5\\ -1 \end{bmatrix}, y_3 = 0\} {x1=[12],y1=1}{x2=[0.52],y2=0}{x3=[0.51],y3=0},下图中空心圆表示 y i = 0 y_i = 0 yi=0,实心圆表示 y i = 1 y_i = 1 yi=1。感知机的学习策略步骤如下:
这里写图片描述

  1. x i 0 = 1 x_i^0 = 1 xi0=1 w 0 = b w_0 = b w0=b,我们随机初始化 W W W构建感知机模型 l 0 : W 0 X = 0 l_0: W_0 X=0 l0:W0X=0
  2. 在决策边界 l 0 l_0 l0的分类下,发现 x 1 x_1 x1被错误分类,即 y = 1 , a = 0 y = 1, a = 0 y=1,a=0。因此,参数更新公式有 W 1 = W 0 + x 1 W_1 = W_0 + x_1 W1=W0+x1(新的参数向量 W 1 W_1 W1使得新的决策边界 l 1 l_1 l1 x 1 x_1 x1的方向旋转);
  3. 在决策边界 l 1 l_1 l1的分类下,发现 x 2 x_2 x2被错误分类,即 y = 0 , a = 1 y = 0, a = 1 y=0,a=1。因此,参数更新公式有 W 2 = W 1 − x 2 W_2 = W_1 - x_2 W2=W1x2(新的参数向量 W 2 W_2 W2使得新的决策边界 l 2 l_2 l2向远离 x 2 x_2 x2的方向旋转);
  4. 在决策边界 l 2 l_2 l2的分类下,发现 x 1 , x 2 , x 3 x_1, x_2, x_3 x1,x2,x3均被正确分类,即 y = 0 , a = 0 y = 0, a = 0 y=0,a=0 y = 1 , a = 1 y = 1, a = 1 y=1,a=1。因此,参数不再更新。

总结如上两种错误分类情况,即得统一的参数更新公式:
W n e w = W o l d + ( y − a ) X W^{new} = W^{old} + (y-a)X Wnew=Wold+(ya)X

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

感知机的收敛性

由于 y − a ∈ { − 1 , 1 } y-a \in \{-1, 1\} ya{1,1},可令 W ( k + 1 ) = W ( k ) + X ′ ( k ) W(k+1) = W(k) +X^{\prime}(k) W(k+1)=W(k)+X(k)。其中:
X ′ ( k ) ∈ { x 1 , x 2 , … , x m , − x 1 , − x 2 , … , − x m } X^{\prime}(k) \in \{ x_1, x_2, \dots, x_m, -x_1, -x_2, \dots, -x_m\} X(k){x1,x2,,xm,x1,x2,,xm}

然后,我们假设感知机存在一个最终解 W ⋆ W^{\star} W,使得:
W ⋆ T x i &gt; δ &gt; 0 ∣ y = 1 W ⋆ T x i &lt; − δ &lt; 0 ∣ y = 0 {W^{\star}}^Tx_i \gt \delta \gt 0 \vert y=1 \\ {W^{\star}}^Tx_i \lt -\delta \lt 0 \vert y=0 WTxi>δ>0y=1WTxi<δ<0y=0

其中, δ \delta δ表示某可能很小的正数。结合 X ′ ( k ) X^{\prime}(k) X(k)的定义,得 W ⋆ T X ′ ( k ) &gt; δ {W^{\star}}^TX^{\prime}(k) \gt \delta WTX(k)>δ

P r o o f : \mathcal Proof: Proof:

初始化感知机参数 W ( 0 ) W(0) W(0) 0 \mathbf 0 0,经过 k k k次迭代后:
W ( K ) = X ′ ( 0 ) + X ′ ( 1 ) + X ′ ( 2 ) + ⋯ + X ′ ( k − 1 ) W ⋆ T W ( K ) = W ⋆ T X ′ ( 0 ) + W ⋆ T X ′ ( 1 ) + W ⋆ T X ′ ( 2 ) + ⋯ + W ⋆ T X ′ ( k − 1 ) W(K) = X^{\prime}(0) + X^{\prime}(1) + X^{\prime}(2) + \dots + X^{\prime}(k-1) \\ {W^{\star}}^TW(K) = {W^{\star}}^TX^{\prime}(0) + {W^{\star}}^TX^{\prime}(1) + {W^{\star}}^TX^{\prime}(2) + \dots + {W^{\star}}^TX^{\prime}(k-1) W(K)=X(0)+X(1)+X(2)++X(k1)WTW(K)=WTX(0)+WTX(1)+WTX(2)++WTX(k1)

由于 W ⋆ T X ′ ( k ) &gt; δ {W^{\star}}^TX^{\prime}(k) \gt \delta WTX(k)>δ,得 W ⋆ T W ( K ) &gt; k δ {W^{\star}}^TW(K) \gt k\delta WTW(K)>kδ
( W ⋆ T W ( K ) ) 2 = ( ∥ W ⋆ ∥ ∥ W ( K ) ∥ cos ⁡ θ ) 2 ≤ ∥ W ⋆ ∥ 2 ∥ W ( K ) ∥ 2 ∥ W ( K ) ∥ 2 ≥ ( W ⋆ T W ( K ) ) 2 ∥ W ⋆ ∥ 2 &gt; ( k δ ) 2 ∥ W ⋆ ∥ 2 ({W^{\star}}^TW(K))^2 = (\Vert W^{\star} \Vert \Vert W(K) \Vert \cos\theta)^2 \le {\Vert W^{\star} \Vert}^2 {\Vert W(K) \Vert}^2 \\ {\Vert W(K) \Vert}^2 \ge \frac {({W^{\star}}^TW(K))^2}{{\Vert W^{\star} \Vert}^2} \gt \frac {(k\delta)^2}{{\Vert W^{\star} \Vert}^2} (WTW(K))2=(WW(K)cosθ)2W2W(K)2W(K)2W2(WTW(K))2>W2(kδ)2

接下来计算 ∥ W ( K ) ∥ \Vert W(K) \Vert W(K)的上界:
∥ W ( K ) ∥ 2 = W T ( K ) W ( K ) = [ W ( K − 1 ) + X ′ ( K − 1 ) ] T [ W ( K − 1 ) + X ′ ( K − 1 ) ] = W T ( K − 1 ) W ( K − 1 ) + 2 W T ( K − 1 ) X ′ ( K − 1 ) + X ′ T ( K − 1 ) X ′ ( K − 1 ) \begin{aligned} &amp; {\Vert W(K) \Vert}^2 = W^T(K)W(K) \\ &amp; = [W(K-1) + X^{\prime}(K-1)]^T[W(K-1) + X^{\prime}(K-1)] \\ &amp; = W^T(K-1)W(K-1) + 2W^T(K-1)X^{\prime}(K-1) + {X^{\prime}}^T(K-1)X^{\prime}(K-1) \end{aligned} 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 ( K − 1 ) W(K-1) W(K1),决策边界仍处于更新状态中。因此,必有数据被错误分类。如果 y = 1 , a = 0 y = 1, a = 0 y=1,a=0 W T ( K − 1 ) X ′ ( K − 1 ) = W T ( K − 1 ) X ( K − 1 ) ≤ 0 W^T(K-1)X^{\prime}(K-1) = W^T(K-1)X(K-1) \le 0 WT(K1)X(K1)=WT(K1)X(K1)0;如果 y = 0 , a = 1 y = 0 , a = 1 y=0,a=1 W T ( K − 1 ) X ′ ( K − 1 ) = − W T ( K − 1 ) X ( K − 1 ) ≤ 0 W^T(K-1)X^{\prime}(K-1) = -W^T(K-1)X(K-1) \le 0 WT(K1)X(K1)=WT(K1)X(K1)0(读者可以自行构建二维坐标系验证)。因此:
∥ W ( K ) ∥ 2 ≤ ∥ W ( K − 1 ) ∥ 2 + ∥ X ′ ( K − 1 ) ∥ 2 {\Vert W(K) \Vert}^2 \le \Vert W(K-1) \Vert^2 + \Vert X^{\prime}(K-1) \Vert^2 W(K)2W(K1)2+X(K1)2

重复迭代可得:
∥ W ( K ) ∥ 2 ≤ ∥ X ′ ( 0 ) ∥ 2 + ∥ X ′ ( 1 ) ∥ 2 + ⋯ + ∥ X ′ ( K − 1 ) ∥ 2 {\Vert W(K) \Vert}^2 \le \Vert X^{\prime}(0) \Vert^2 + \Vert X^{\prime}(1) \Vert^2 + \dots + \Vert X^{\prime}(K-1) \Vert^2 W(K)2X(0)2+X(1)2++X(K1)2
Π = max ⁡ ( ∥ X ′ ( i ) ∥ 2 ) \Pi = \max(\Vert X^{\prime}(i) \Vert^2) Π=max(X(i)2),得:
∥ W ( K ) ∥ 2 ≤ k Π {\Vert W(K) \Vert}^2 \le k \Pi W(K)2kΠ

结合 ∥ W ( K ) ∥ 2 &gt; ( k δ ) 2 ∥ W ⋆ ∥ 2 ​ {\Vert W(K) \Vert}^2 \gt \frac {(k\delta)^2}{{\Vert W^{\star} \Vert}^2}​ W(K)2>W2(kδ)2,得:
( k δ ) 2 ∥ W ⋆ ∥ 2 &lt; ∥ W ( K ) ∥ 2 ≤ k Π k &lt; Π ∥ W ⋆ ∥ 2 δ 2 \frac {(k\delta)^2}{{\Vert W^{\star} \Vert}^2} &lt; {\Vert W(K) \Vert}^2 \le k \Pi \\ k &lt; \frac {\Pi {\Vert W^{\star} \Vert}^2}{\delta^2} W2(kδ)2<W(K)2kΠk<δ2ΠW2
得证感知机的学习能在有限次数内完成。

感知机的局限性

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值