【AI】机器学习——感知器

【AI】机器学习——感知器感知机原理 感知机学习策略 距离定义 随机梯度下降法求解 PLA 参数 算法收敛性定理 PLA 对偶形式 Gram 矩阵引入 感知器

大家好,欢迎来到IT知识分享网。

4.4 感知器

4.4.1 概念

1957 年,美国康奈尔大学航天实验室的心理学家弗兰克·罗森布拉特(Frank Roseblatt)受到赫布理论的启发,提出了著名的“感知器(perceptron)”模型——第一个用算法精确定义的人工神经网络,只有一个神经元

解决二分类问题的监督学习算法,属于 线性分类模型——判别模型

感知机与人工神经网络

由输入层和输出层组成

  • 输入层负责接收外界信号
  • 输出层是MP神经元,即阈值逻辑函数

    每个输入信号都以一定权重 ω \omega ω(突触),偏置 b b b(阈值)被送入MP神经元(激活函数),MP神经元利用符号将特征的线性组合映射为分类输出 + 1 +1 +1 − 1 -1 1

在这里插入图片描述
关于偏置(阈值的理解)

偏置用于衡量感知器触发的难易程度,当 θ = − b \theta=-b θ=b 时,二者是等价的

在这里插入图片描述

在这里插入图片描述

模型思想

目标:求出将训练数据进行线性划分的分离超平面

基本思想:错误驱动的在线学习算法 ——导入误分类的损失函数,利用梯度下降法对损失函数极小化,求得感知机模型

输入: x ∈ X ⊆ R n x\in \mathcal{X}\subseteq R^n xXRn 表示实例的特征向量, y ∈ Y = { + 1 , − 1 } y\in \mathcal{Y}=\{+1, -1\} yY={
+1,1}

输出: ω ^ \hat{\omega} ω^ b ^ \hat{b} b^

在这里插入图片描述

  • 上图中超平面 S : ω 1 x ( 1 ) + ω 2 x ( 2 ) + b = 0 S:\omega_1x^{(1)}+\omega_2x^{(2)}+b=0 S:ω1x(1)+ω2x(2)+b=0 ,这个超平面将特征空间分为 + 1 , − 1 +1,-1 +1,1

4.4.2 策略

损失函数的定义,并将 J ( ω ) J(\omega) J(ω) 最小化

数据集的线性可分性

对于数据集 D D D ,若存在某个超平面 S S S ω T x + b = 0 \omega^Tx+b=0 ωTx+b=0 ,将数据正负两类完全划分到超平面两侧

  • 对于正例: y i = + 1 y_i=+1 yi=+1 ,有 ω T x + b > 0 \omega^Tx+b>0 ωTx+b>0
  • 对于负例: y i = − 1 y_i=-1 yi=1 ,有 ω T x + b < 0 \omega^Tx+b<0 ωTx+b<0
学习策略

目标 :假设数据集 D D D 线性可分,找到将数据集 D D D 正负两例完全正确分开的超平面 S S S,即确定参数 ω ^ , b ^ \hat{\omega},\hat{b} ω^,b^

损失函数的构造

可选择

  • 误分类点的总数,但不关于 ω , b \omega,b ω,b 可导,是离散的
  • 误分类点到超平面 S S S 的距离和

x t x_t xt 到平面 S S S 的总距离
ω T x t + b ∥ ω ∥ 2 \frac{\omega^Tx_t+b}{\Vert \omega\Vert_2} ω2ωTxt+b
对于误分类点有
y t ⋅ ( ω T x t + b ) < 0    ⟺    − y t ⋅ ( ω T x t + b ) > 0 y_t\cdot(\omega^Tx_t+b)<0\iff -y_t\cdot(\omega^Tx_t+b)>0 yt(ωTxt+b)<0yt(ωTxt+b)>0
对于误分类点,到超平面的几何距离为
− 1 ∥ ω ∥ 2 y t ⋅ ( ω T x t + b ) -\frac{1}{\Vert \omega\Vert_2}y_t\cdot(\omega^Tx_t+b) ω21yt(ωTxt+b)
若所有误分类点集合为 M M M ,则误分类点到 S S S 的距离和为
− 1 ∥ ω ∥ 2 ∑ x t ∈ M y t ⋅ ( ω T x t + b ) -\frac{1}{\Vert \omega\Vert_2}\sum\limits_{x_t\in M}y_t\cdot(\omega^Tx_t+b) ω21xtMyt(ωTxt+b)
故将感知机(损失函数)定义为经验风险函数
R e m p ( f ) = L ( ω , b ) = − ∑ x t ∈ M y t ⋅ ( ω T x t + b ) R_{emp}(f)=L(\omega,b)=-\sum\limits_{x_t\in M}y_t\cdot(\omega^Tx_t+b) Remp(f)=L(ω,b)=xtMyt(ωTxt+b)
策略为 在假设空间中选取使损失函数 L ( ω , b ) L(\omega,b) L(ω,b) 最小的模型参数 ω , b \omega,b ω,b









  • 损失函数非负
  • 误分类点数量越少越好
  • 误分类点离超平面越近越好
  • L ( ω , b ) L(\omega,b) L(ω,b) 是连续可导的
关于距离的解释
  • − 1 ∥ ω ∥ 2 y t ⋅ ( ω T x t + b ) -\frac{1}{\Vert \omega\Vert_2}y_t\cdot(\omega^Tx_t+b) ω21yt(ωTxt+b)几何距离
  • − y t ⋅ ( ω T x t + b ) -y_t\cdot(\omega^Tx_t+b) yt(ωTxt+b)函数距离

几何距离的系数 1 ∥ ω ∥ 2 \frac{1}{\Vert \omega\Vert_2} ω21 可以抵消系数同时放大的影响,如 a X + b Y + c = 0 aX+bY+c=0 aX+bY+c=0 2 a X + 2 b Y + 2 c = 0 2aX+2bY+2c=0 2aX+2bY+2c=0

  • 但会增加梯度下降法计算的复杂度

PLA的目标是使误分类点个数最小, 1 ∥ ω ∥ 2 \frac{1}{\Vert \omega\Vert_2} ω21 对分类结果无影响,故在PLA中损失函数不带系数 1 ∥ ω ∥ 2 \frac{1}{\Vert\omega \Vert_2} ω21

4.4.3 算法

用随机梯度下降法,求解损失函数最优化问题

PLA算法原始形式

输入:训练数据集
D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } , x i ∈ X ⊆ R n , y i ∈ Y = { + 1 , − 1 } , i = 1 , 2 , ⋯   , N D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},\\ x_i\in \mathcal{X}\subseteq R^n,y_i\in \mathcal{Y}=\{+1,-1\},i=1,2,\cdots,N D={(x1,y1),(x2,y2),,(xN,yN)}xiXRn,yiY={
+1,1},i=
1,2,,N

输出 ω ^ , b ^ \hat{\omega},\hat{b} ω^,b^

模型
f ( x ) = s i g n ( ω T x + b ) = { + 1 , ω T x + b > 0 − 1 , ω T x + b < 0 f(x)=sign(\omega^Tx+b)=\begin{cases} +1&,\omega^Tx+b>0\\ -1&,\omega^Tx+b<0\\ \end{cases} f(x)=sign(ωTx+b)={
+11,ωTx+b>0,ωTx+b<0

策略
a r g min ⁡ ω , b L ( ω , b ) = a r g min ⁡ ω , b − ∑ x t ∈ M y t ⋅ ( ω T x t + b ) arg\min\limits_{\omega,b}\mathcal{L}(\omega,b)=arg\min\limits_{\omega,b}-\sum\limits_{x_t\in M}y_t\cdot(\omega^Tx_t+b) argω,bminL(ω,b)=argω,bminxtMyt(ωTxt+b)
步骤



  1. 选取随机的 ω 0 , b 0 \omega_0,b_0 ω0,b0 ,其中权重可以初始化为0或比较小的随机数
  2. 在训练集中选数据 ( x i , y i ) (x_i,y_i) (xi,yi) ,将误分类点作为训练数据,即满足 ω T x i + b < 0 \omega^Tx_i+b<0 ωTxi+b<0 的条件的点
    ω [ t + 1 ] ← ω [ t ] − η ∂ L ∂ ω = ω [ t ] + η y t x t b [ t + 1 ] ← b [ t ] − η ∂ L ∂ b = b [ t ] + η y t \omega^{[t+1]}\leftarrow\omega^{[t]}-\eta\frac{\partial \mathcal{L}}{\partial \omega}=\omega^{[t]}+\eta y_tx_t\\ b^{[t+1]}\leftarrow b^{[t]}-\eta\frac{\partial \mathcal{L}}{\partial b}=b^{[t]}+\eta y_t ω[t+1]ω[t]ηωL=ω[t]+ηytxtb[t+1]b[t]ηbL=b[t]+ηyt
  3. 转至 2 2 2 步,直至 D D D 中无误分类点

感知器通过传递函数确定输出,神经元之间通过权重传递信息,权重的变化则根据误差来进行调节

损失函数的梯度下降法

{ ▽ ω L ( ω , b ) = − ∑ x t ∈ M y t x t ▽ b L ( ω , b ) = − ∑ x t ∈ M y t \begin{cases} \bigtriangledown_{\omega}\mathcal{L}(\omega,b)=-\sum\limits_{x_t\in M}y_tx_t\\ \bigtriangledown_{b}\mathcal{L}(\omega,b)=-\sum\limits_{x_t\in M}y_t\\ \end{cases}

ωL(ω,b)=xtMytxtbL(ω,b)=xtMyt

前提是误分类点集合是固定的 ,才可进行梯度下降法最优化
{ ω ← ω − η ▽ ω L b ← b − η ▽ b L \begin{cases} \omega\leftarrow \omega-\eta\bigtriangledown_{\omega}\mathcal{L}\\ b\leftarrow b-\eta\bigtriangledown_{b}\mathcal{L} \end{cases} {
ωωηωLbbηbL

这种做法:

  • 计算量大
  • 且调整参数 ω , b \omega,b ω,b 后,误分类点集可能会发生变化,故用随机梯度下降法

直观理解

当一个样本点被误分类时,调整 ω , b \omega,b ω,b 的值,使超平面 S S S 向该误分类点的一侧移动,减少该误分类点与 S S S 的距离,直至超平面越过此点(分类正确)

PLA例题

x 1 = ( 3 , 3 ) T , y 1 = + 1 x 2 = ( 4 , 3 ) T , y 2 = + 1 x 3 = ( 1 , 1 ) T , y 3 = − 1 x_1=(3,3)^T,y_1=+1\\ x_2=(4,3)^T,y_2=+1\\ x_3=(1,1)^T,y_3=-1\\ x1=(3,3)T,y1=+1x2=(4,3)T,y2=+1x3=(1,1)T,y3=1

  1. 取初值, ω 0 = ( 0 0 ) \omega_0=\left(\begin{aligned}0\\0\end{aligned}\right) ω0=(00) b 0 = 0 b_0=0 b0=0 η = 1 \eta=1 η=1
  2. x 1 = ( 3 , 3 ) T x_1=(3,3)^T x1=(3,3)T ,有 y 1 ( ω 1 [ 0 ] x 1 ( 1 ) + ω 2 [ 0 ] x 1 ( 2 ) + b [ 0 ] ) = 0 y_1(\omega_1^{[0]}x_1^{(1)}+\omega_2^{[0]}x_1^{(2)}+b^{[0]})=0 y1(ω1[0]x1(1)+ω2[0]x1(2)+b[0])=0
  3. x 2 = ( 4 , 3 ) T , ( ω 1 [ 1 ] x 2 + ω 2 [ 1 ] x 2 + b [ 1 ] ) y 2 > 0 x_2=(4,3)^T,(\omega_1^{[1]}x_2+\omega_2^{[1]}x_2+b^{[1]})y_2>0 x2=(4,3)T,(ω1[1]x2+ω2[1]x2+b[1])y2>0 ,正确分类

    x 3 = ( 1 , 1 ) T , ( ω 1 [ 1 ] x 3 + ω 2 [ 1 ] x 3 + b [ 1 ] ) y 3 < 0 x_3=(1,1)^T,(\omega_1^{[1]}x_3+\omega_2^{[1]}x_3+b^{[1]})y_3<0 x3=(1,1)T,(ω1[1]x3+ω2[1]x3+b[1])y3<0 ,误分类。用 ( x 3 , y 3 ) (x_3,y_3) (x3,y3) 更新模型参数
    { ω [ 2 ] ← ω [ 1 ] − η ∂ L ∂ ω = ω [ 1 ] + η y 3 x 3 = ( 3 3 ) + ( − 1 ) ( 1 1 ) = ( 2 2 ) b [ 1 ] ← b [ 0 ] − η ∂ L ∂ b = b [ 0 ] + η y 3 = 1 + 1 ⋅ ( − 1 ) = 0 \begin{cases} \omega^{[2]}\leftarrow\omega^{[1]}-\eta\frac{\partial L}{\partial \omega}=\omega^{[1]}+\eta y_3x_3= \left( \begin{aligned} 3\\3 \end{aligned} \right)+(-1)\left( \begin{aligned} 1\\1 \end{aligned} \right)=\left( \begin{aligned} 2\\2 \end{aligned} \right)\\ b^{[1]}\leftarrow b^{[0]}-\eta\frac{\partial L}{\partial b}=b^{[0]}+\eta y_3=1+1\cdot (-1)=0 \end{cases}

    ω[2]ω[1]ηωL=ω[1]+ηy3x3=(33)+(1)(11)=(22)b[1]b[0]ηbL=b[0]+ηy3=1+1(1)=0

    有线性模型
    ω 1 [ 2 ] x 1 + ω 2 [ 2 ] x 2 = 0    ⟺    2 x 1 + 2 x 2 = 0    ⟺    x 1 + x 2 = 0 \omega^{[2]}_1x_1+\omega^{[2]}_2x_2=0\iff 2x_1+2x_2=0\iff x_1+x_2=0 ω1[2]x1+ω2[2]x2=02x1+2x2=0x1+x2=0


  4. ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) (x_1,y_1),(x_2,y_2),(x_3,y_3) (x1,y1),(x2,y2),(x3,y3) 代入线性模型,反复迭代
PLA算法收敛性

[Novikoff, 1963]证明了当 输入数据线性可分 时,感知器学习算法能够在有限次的迭代后收敛,可以得到一个将训练数据集完全正确划分的超平面 S S S

证明

  1. 上界
    ∥ ω [ T ] ∥ 2 = ∥ ω [ T − 1 ] + y T x T ∥ 2 = ∥ ω [ T − 1 ] ∥ 2 + ∥ y T x T ∥ 2 + 2 y T ω [ T − 1 ] x T ∵ y T ω [ T − 1 ] x T ≤ 0 ≤ ∥ ω [ T − 1 ] ∥ 2 + ∥ y T x T ∥ 2 ≤ ∥ ω [ T − 2 ] ∥ 2 + ∥ y T − 1 x T − 1 ∥ 2 + ∥ y T x T ∥ 2 ⋯ ≤ ∑ t = 1 T ∥ y t x t ∥ 2 \begin{aligned} \Vert \omega^{[T]}\Vert^2&=\Vert \omega^{[T-1]}+y_Tx_T\Vert^2\\ &=\Vert \omega^{[T-1]}\Vert^2+\Vert y_Tx_T\Vert^2+2y_T\omega^{[T-1]}x_T\\ &\because y_T\omega^{[T-1]}x_T\le 0\\ &\le \Vert \omega^{[T-1]}\Vert^2+\Vert y_Tx_T\Vert^2\\ &\le \Vert \omega^{[T-2]}\Vert^2+\Vert y_{T-1}x_{T-1}\Vert^2+\Vert y_Tx_T\Vert^2\\ &\cdots\\ &\le \sum\limits_{t=1}^T\Vert y_tx_t\Vert^2 \end{aligned} ω[T]2=ω[T1]+yTxT2=ω[T1]2+yTxT2+2yTω[T1]xTyTω[T1]xT0ω[T1]2+yTxT2ω[T2]2+yT1xT12+yTxT2t=1Tytxt2
    R 2 = max ⁡ t { ∥ y t x t ∥ 2 } = max ⁡ t { ∥ x t ∥ 2 } R^2=\max\limits_{t} \{\Vert y_tx_t\Vert^2\}=\max\limits_{t} \{\Vert x_t\Vert^2\} R2=tmax{
    ytxt2}=
    tmax{
    xt2}


    ∥ ω [ T ] ∥ 2 ≤ T R 2 \Vert \omega^{[T]}\Vert^2\le TR^2 ω[T]2TR2

  2. 下界

    一定存在 ∥ ω ∗ ∥ = 1 \Vert \omega_*\Vert=1 ω=1 的超平面 ω ∗ x = 0 \omega_*x=0 ωx=0 ,将数据完全正确划分
    ∥ ω [ T ] ∥ 2 = ∥ ω ∗ ∥ 2 ⋅ ∥ ω [ T ] ∥ 2 ≥ ∥ ω ∗ T ω [ T ] ∥ 2 = ∥ ω ∗ T ∑ t = 1 T y t x t ∥ 2 = ∥ ∑ t = 1 T ω ∗ T y t x t ∥ 2 \begin{aligned} \Vert \omega^{[T]}\Vert^2&=\Vert \omega_*\Vert^2\cdot \Vert \omega^{[T]}\Vert^2\\ &\ge \Vert \omega_*^T\omega^{[T]}\Vert^2\\ &=\Vert \omega_*^T\sum\limits_{t=1}^Ty_tx_t\Vert^2\\ &=\Vert \sum\limits_{t=1}^T\omega_*^Ty_tx_t\Vert^2 \end{aligned} ω[T]2=ω2ω[T]2ωTω[T]2=ωTt=1Tytxt2=t=1TωTytxt2
    γ 2 = min ⁡ t { ∥ y t ( ω ∗ T x t ) ∥ 2 } = min ⁡ t { ∥ ω ∗ T x t ∥ 2 } \gamma^2=\min\limits_{t}\{\Vert y_t(\omega_*^Tx_t)\Vert^2\}=\min\limits_{t}\{\Vert \omega_*^Tx_t\Vert^2\} γ2=tmin{
    yt(ωTxt)2}=
    tmin{
    ωTxt2}
    ,即距离划分超平面最近的点

    ∥ ω [ T ] ∥ 2 ≥ T 2 γ 2 \Vert \omega^{[T]}\Vert^2\ge T^2\gamma^2 ω[T]2T2γ2

非参数化性

感知器没有做出任何关于固有分布形式的假设,通过不同分布重叠区域产生的误差来运行

  • 当输入数据是非高斯分布时,算法依然能够正常工作
自适应性

只要给定训练数据集,算法就可以基于误差修正自适应地调整参数而无需人工介入

局限
  • 感知器不能解决以异或为代表的线性不可分问题

    划分这四个点就是一个二分类问题。这个问题不是一个线性分类问题,因为找不到任何一条直线能将将正方形中两组对角线上的顶点分为一类。

    1969 年,新科图灵奖得主马文·明斯基和他的麻省理工学院同侪塞默尔·帕波特合著了《感知器:计算几何简介》(Perceptrons: An Introduction to Computational Geometry)一书,系统论证了感知器模型的两个关键问题。

    第一,单层感知器无法解决以异或为代表的线性不可分问题;

    第二,受硬件水平的限制,当时的计算机无法完成训练感知器所需要的超大的计算量。

  • 感知器对样本顺序敏感,每次迭代的顺序不一致时,找到的分割超平面也不一致

    感知机存在许多解,依赖于初值的选择

    在这里插入图片描述

  • 在数据集线性可分时,感知器虽然可以找到一个超平面把两类数据分开,但并不能保证其泛化能力

4.4.4 感知器改进

PLA解决线性不可分问题——对偶形式
原始PLA分析

在原始 PLA 算法中, ω 0 = 0 \omega_0=0 ω0=0 b 0 = 0 b_0=0 b0=0 L ( ω , b ) = − ∑ x t ∈ M y t ( ω T ⋅ x t + b ) \mathcal{L}(\omega,b)=-\sum\limits_{x_t\in M}y_t(\omega^T\cdot x_t+b) L(ω,b)=xtMyt(ωTxt+b) ,采用随机梯度下降算法,取一个误分类点 ( x t , y t ) (x_t,y_t) (xt,yt) 作为学习数据, η ∈ ( 0 , 1 ] \eta\in(0,1] η(0,1] 为学习率
{ ω [ t + 1 ] ← ω [ t ] − η ∂ L ∂ ω = ω [ t ] + η y t x t b [ t + 1 ] ← b [ t ] − η ∂ L ∂ b = b [ t ] + η y t \begin{cases} \omega^{[t+1]}\leftarrow\omega^{[t]}-\eta\frac{\partial \mathcal{L}}{\partial \omega}=\omega^{[t]}+\eta y_tx_t\\ b^{[t+1]}\leftarrow b^{[t]}-\eta\frac{\partial \mathcal{L}}{\partial b}=b^{[t]}+\eta y_t \end{cases} {
ω[t+1]ω[t]ηωL=ω[t]+ηytxtb[t+1]b[t]ηbL=b[t]+ηyt

可见

  • ω \omega ω 更新至于误分类点有关

    某个点使用次数越多,距超平面越近,越难正确分类

  • 假设 ( x t , y t ) (x_t,y_t) (xt,yt) 被误分类 n t n_t nt 次,则 ω \omega ω ( x t , y t ) (x_t,y_t) (xt,yt) 上的累积量为
    { δ ω t ← n t η y t x t = α t y t x t δ b t ← n t η y t = α t y t \begin{cases} \delta\omega_t\leftarrow n_t\eta y_tx_t=\alpha_ty_tx_t\\ \delta b_t\leftarrow n_t\eta y_t=\alpha_ty_t \end{cases} {
    δωtntηytxt=αtytxtδbtntηyt=αtyt

    且对于正确分类的点 n t = 0 n_t=0 nt=0 ,故原始PLA参数可表示为
    { ω ← ∑ i = 1 N n i η y i ⋅ x i b ← ∑ i = 1 N n i η y i \begin{cases} \omega\leftarrow \sum\limits_{i=1}^Nn_i\eta y_i\cdot x_i\\ b\leftarrow \sum\limits_{i=1}^N n_i\eta y_i \end{cases}

    ωi=1Nniηyixibi=1Nniηyi



PLA对偶形式

输入
D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } , x i ∈ X ⊆ R n , y i ∈ Y = { + 1 , − 1 } , i = 1 , 2 , ⋯   , N D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},x_i\in \mathcal{X}\subseteq R^n,y_i\in \mathcal{Y}=\{+1,-1\},i=1,2,\cdots,N D={(x1,y1),(x2,y2),,(xN,yN)},xiXRn,yiY={
+1,1},i=
1,2,,N

η ∈ ( 0 , 1 ] \eta\in (0,1] η(0,1]

模型
f ( x ) = s i g n [ ( ∑ i = 1 N n i η y i x i ) T ⋅ x + ∑ i = 1 N n i η y i ] = s i g n [ ∑ i = 1 N α i y i ( x i ⋅ x ) T + b ] \begin{aligned} f(x)&=sign[(\sum\limits_{i=1}^Nn_i\eta y_i x_i)^T\cdot x+\sum\limits_{i=1}^N n_i\eta y_i]\\ &=sign[\sum\limits_{i=1}^N\alpha_i y_i(x_i\cdot x)^T+b] \end{aligned} f(x)=sign[(i=1Nniηyixi)Tx+i=1Nniηyi]=sign[i=1Nαiyi(xix)T+b]
输出 α , b \alpha,b α,b α = ( α 1 α 2 ⋮ α N ) \alpha=\left(\begin{aligned}\alpha_1\\\alpha_2\\\vdots\\\alpha_N\end{aligned}\right) α=
α1α2αN
α i = n i η \alpha_i=n_i\eta αi=niη n i n_i ni ( x i , y i ) (x_i,y_i) (xi,yi) 被误分类的次数

步骤

  1. ∀ n i = 0 \forall n_i=0 ni=0 ,即 α = 0 , b = 0 \alpha=0,b=0 α=0,b=0
  2. 选取误分类点 ( x t , y t ) (x_t,y_t) (xt,yt) ,若 y t [ ∑ i = 1 N n i η y i ( x i T ⋅ x t ) + ∑ i = 1 N n i η y i ] ≤ 0 y_t[\sum\limits_{i=1}^Nn_i\eta y_i(x_i^T\cdot x_t)+\sum\limits_{i=1}^N n_i\eta y_i]\le 0 yt[i=1Nniηyi(xiTxt)+i=1Nniηyi]0 ,则令
    n [ t + 1 ] ← n [ t ] + 1 α [ t + 1 ] ← α [ t ] + η ω [ t + 1 ] ← ω [ t ] + η y t x t b [ t + 1 ] ← b [ t ] + η y t n^{[t+1]}\leftarrow n^{[t]}+1\\ \alpha^{[t+1]}\leftarrow \alpha^{[t]}+\eta\\ \omega^{[t+1]}\leftarrow \omega^{[t]}+\eta y_tx_t\\ b^{[t+1]}\leftarrow b^{[t]}+ \eta y_t n[t+1]n[t]+1α[t+1]α[t]+ηω[t+1]ω[t]+ηytxtb[t+1]b[t]+ηyt
  3. 转至 2. 2. 2. 直至没有误分类点

由于样本点只以内积形式出现,可计算 Gram矩阵
G = [ x i ⋅ x j ] N × N = [ ( x 1 , x 1 ) ( x 1 , x 2 ) ⋯ ( x 1 , x N ) ( x 2 , x 1 ) ( x 2 , x 2 ) ⋯ ( x 2 , x N ) ⋮ ⋮ ⋱ ⋮ ( x N , x 1 ) ( x N , x 2 ) ⋯ ( x N , x N ) ] G=[x_i\cdot x_j]_{N\times N}=\left[\begin{matrix} (x_1,x_1)&(x_1,x_2)&\cdots&(x_1,x_N)\\ (x_2,x_1)&(x_2,x_2)&\cdots&(x_2,x_N)\\ \vdots&\vdots&\ddots&\vdots\\ (x_N,x_1)&(x_N,x_2)&\cdots&(x_N,x_N) \end{matrix} \right] G=[xixj]N×N=
(x1,x1)(x2,x1)(xN,x1)(x1,x2)(x2,x2)(xN,x2)(x1,xN)(x2,xN)(xN,xN)

优点

可预先计算存储 Gram 矩阵,提高计算速度

可通过 Gram 矩阵引入核函数,有 K ( x , z ) = ϕ ( x ) ⋅ ϕ ( z ) K(x,z)=\phi(x)\cdot \phi(z) K(x,z)=ϕ(x)ϕ(z) ,可解决非线性分类问题

多层感知器

解决异或问题的思路相当简单,就是将单层感知器变成多层感知器

在这里插入图片描述

假定两个输入节点 A 和 B 的二进制输入分别为 1 和 0,则根据图中的权重系数可以计算出神经元 C 的输入为 0.5,而神经元 D 的输入为 0。在由 C 和 D 构成的隐藏层中,由于 C的输入大于 0,因而符号函数使其输出为 1;由于 D 的输入等于 0,符号函数则使其输出为0。在输出节点的神经元 E 上,各路输入线性组合的结果为 0.5,因而 E 的输出,也是神经网络整体的输出,为 1,与两个输入的异或相等。


多层感知器(multilayer perceptron)包含一个或多个在输入节点和输出节点之间的隐藏层(hidden layer),除了输入节点外,每个节点都是使用非线性激活函数的神经元

在不同层之间,多层感知器具有全连接性,即任意层中的每个神经元都与它前一层中的所有神经元或者节点相连接,连接的强度由网络中的权重系数决定。

多层感知器是一类前馈人工神经网络(feedforward neural network)。网络中每一层神经元的输出都指向输出方向,也就是向前馈送到下一层,直到获得整个网络的输出为止。

训练步骤

确定给定输入和当前权重下的输出,再将输出和真实值相减得到误差函数,最后根据误差函数更新权重

反向传播

在训练过程中,虽然信号的流向是输出方向,但计算出的误差函数和信号传播的方向相反,也就是向输入方向传播的,正因如此,这种学习方式得名反向传播(backpropagation)。

反向传播算法通过求解误差函数关于每个权重系数的偏导数,以此使误差最小化来训练整个网络

参数平均感知器

根据定理,若间隔 γ \gamma γ 越大,则收敛越快,但感知器不能保证找到的判别函数是最优的,可能导致过拟合

感知器学习到的权重向量和训练样本的顺序相关。在迭代次序上排在后面的错误样本比前面的错误样本,对最终的权重向量影响更大

比如有1000个训练样本,在迭代100个样本后,感知器已经学习到一个很好的权重向量.在接下来的899个样本上都预测正确,也没有更新权重向量.但是,在最后第1000个样本时预测错误,并更新了权重.这次更新可能反而使得权重向量变差

为了提高感知器的泛化能力,可以在感知器学习过程中的 T T T 个权重向量保存,并赋予每个权重向量 ω t \omega_t ωt 一个置信系数 c t ( 1 ≤ t ≤ T ) c_t(1\le t\le T) ct(1tT) ,最终的分类结果通过这 T T T 个不同权重的感知器投票决定——投票感知器

τ t \tau_t τt 为第 t t t 次更新权重 ω t \omega_t ωt 时的迭代次数,则权重 ω t \omega_t ωt 的置信系数 c t c_t ct 设置为从 τ t \tau_t τt τ t + 1 \tau_{t+1} τt+1 之间间隔的迭代次数,即 c t = τ t + 1 − τ t c_t=\tau_{t+1}-\tau_t ct=τt+1τt

置信系数 c t c_t ct 越大,说明权重 ω t \omega_t ωt 在之后的训练过程中正确分类的样本数越多,越值得信赖,故投票感知器的形式为
y ^ = s i g n ( ∑ t = 1 T c t s i g n ( ω t T x ) ) \hat{y}=sign\left(\sum\limits_{t=1}^Tc_t sign(\omega_t^T x)\right) y^=sign(t=1Tctsign(ωtTx))
投票感知器虽然提高了感知器的泛化能力,但需要保存 T T T 个权重向量,在实际操作中会带来额外的开销。

  • 每次迭代都需要更新 ω ‾ \overline{\omega} ω

因为 ω ‾ \overline{\omega} ω ω \omega ω 都是稠密向量,所以更新操作比较费时

扩展到多分类

蒲公英书3.4.4

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/111505.html

(0)
上一篇 2026-01-24 13:00
下一篇 2026-01-24 13:16

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信