感知机(三)| 算法原始形式和对偶形式+算法收敛性 | 《统计学习方法》学习笔记(十一)

感知机学习算法

感知机学习问题转化为求解损失函数式(2)的最优化问题,最优化的方法是随机梯度下降法。

一、 感知机学习算法的原始形式

给定一个训练数据集
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)}
其中, x i ∈ χ = R n , y ∈ γ = { − 1 , 1 } ,   i = 1 , 2 , . . . , N x_i\in \chi=R^n,y\in \gamma=\{-1,1\}, \space i=1,2,...,N xiχ=Rn,yγ={1,1}, i=1,2,...,N,求参数 w , b w,b w,b,使其为以下损失函数极小问题的解:
m i n w , b L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) (3) min_{w,b}L(w,b)=-\sum_{x_i\in M}y_i(w·x_i+b)\tag{3} minw,bL(w,b)=xiMyiwxi+b(3)
其中M为误分类点的集合。

感知机学习算法是误分类驱动的,采用随机梯度下降法(stochastic gradient descent)。

首先,任意选取一个超平面 w 0 , b 0 w_0,b_0 w0,b0,然后用梯度下降法不断地极小化目标函数(3)。极小化过程中不是一次使M中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。

假设误分类点集合M是固定的,那么损失函数 L ( w , b ) L(w,b) L(w,b)的梯度为:
∇ w L ( w , b ) = − ∑ x i ∈ M y i x i ∇ b L ( w , b ) = − ∑ x i ∈ M y i \nabla_wL(w,b)=-\sum_{x_i\in M}y_ix_i \\ \nabla_bL(w,b)=-\sum_{x_i\in M}y_i wL(w,b)=xiMyixibL(w,b)=xiMyi
随机选取一个误分类点 ( x i , y i ) (x_i,y_i) (xi,yi),对 w , b w,b w,b进行更新:
w + η y i x i → w b + η y i → b w + \eta y_ix_i \to w \\ b + \eta y_i \to b w+ηyixiwb+ηyib
其中, η ( 0 < η ≤ 1 ) \eta(0<\eta\leq 1) η(0<η1)是步长,在统计学习中又称为学习率(learning rate)。这样,通过迭代可以期待损失函数 L ( w , b ) L(w,b) L(w,b)不断减小,知道为0。综上所述,得到如下算法:

算法1(感知机学习算法的原始形式)

输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)},其中, x i ∈ χ = R n , y ∈ γ = { − 1 , 1 } ,   i = 1 , 2 , . . . , N x_i\in \chi=R^n,y\in \gamma=\{-1,1\}, \space i=1,2,...,N xiχ=Rn,yγ={1,1}, i=1,2,...,N;学习率 η ( 0 < η ≤ 1 ) \eta(0<\eta\leq 1) η(0<η1)

输出: w , b w,b w,b;感知机模型 f ( x ) = s i g n ( w ⋅ x + b ) f(x)=sign(w·x+b) f(x)=sign(wx+b)

(1)选取初值 w 0 , b 0 w_0,b_0 w0,b0

(2)在训练集中选取数据 ( x i , y i ) (x_i,y_i) (xi,yi)

(3)如果 y i ( w ⋅ x i + b ) ≤ 0 y_i(w·x_i+b)\leq 0 yi(wxi+b)0
w + η y i x i → w b + η y i → b w + \eta y_ix_i \to w \\ b + \eta y_i \to b w+ηyixiwb+ηyib
(4)转至(2),直至训练集中没有误分类点。

直观解释:当一个实例点被误分类,即位于分离超平面的错误一侧时,则调整 w , b w,b w,b的值,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面间的距离,直至超平面越过该误分类点使其被正确分类。

例如:训练数据集,其正实例点是 x 1 = ( 3 , 3 ) T x_1=(3,3)^T x1=(3,3)T x 2 = ( 4 , 3 ) T x_2=(4,3)^T x2=(4,3)T,负实例点是 x 3 = ( 1 , 1 ) T x_3=(1,1)^T x3=(1,1)T,试用感知机学习算法的原始形式求感知机模型 f ( x ) = s i g n ( w ⋅ x + b ) f(x)=sign(w·x+b) f(x)=sign(wx+b)。这里, w = ( w ( 1 ) , w ( 2 ) ) T , x = ( x ( 1 ) , x ( 2 ) ) T w=(w^{(1)},w^{(2)})^T,x=(x^{(1)},x^{(2)})^T w=(w(1),w(2))T,x=(x(1),x(2))T

解:构建最优化问题:
m i n w , b L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x + b ) min_{w,b}L(w,b)=-\sum_{x_i\in M}y_i(w·x+b) minw,bL(w,b)=xiMyi(wx+b)
按照感知机模型求解 w , b w,b w,b η = 1 \eta=1 η=1

(1)取初值 w 0 = 0 , b 0 = 0 w_0=0,b_0=0 w0=0,b0=0

(2)对 x 1 = ( 3 , 3 ) T , y 1 ( w 0 ⋅ x 1 + b ) = 0 x_1=(3,3)^T,y_1(w_0·x_1+b)=0 x1=(3,3)T,y1(w0x1+b)=0,未能被正确分类,更新 w , b w, b w,b
w 1 = w 0 + η y 1 x 1 = ( 3 , 3 ) T , b 1 = b 0 + η y 1 = 1 w_1=w_0+\eta y_1x_1=(3,3)^T,\quad b_1=b_0+\eta y_1=1 w1=w0+ηy1x1=(3,3)T,b1=b0+ηy1=1
得到线性模型
w 1 ⋅ x + b 1 = 3 x ( 1 ) + 3 x ( 2 ) + 1 w_1·x+b_1=3x^{(1)}+3x^{(2)}+1 w1x+b1=3x(1)+3x(2)+1
(3)对 x 1 , x 2 x_1,x_2 x1,x2,显然, y i ( w 1 ⋅ x i + b i ) > 0 y_i(w_1·x_i+b_i)>0 yi(w1xi+bi)>0,被正确分类,不修改 w , b w,b w,b

x 3 = ( 1 , 1 ) T x_3=(1,1)^T x3=(1,1)T y 3 ( w 1 ⋅ x 3 + b 1 ) < 0 y_3(w_1·x_3+b_1)<0 y3(w1x3+b1)<0,被误分类,更新 w , b w,b w,b
w 2 = w 1 + y 3 x 3 = ( 2 , 2 ) T , b 2 = b 1 + y 3 = 0 w_2 = w_1+y_3x_3=(2,2)^T,\quad b_2=b_1+y_3=0 w2=w1+y3x3=(2,2)T,b2=b1+y3=0
得到线性模型
w 2 ⋅ x + b 2 = 2 x ( 1 ) + 2 x ( 2 ) w_2·x+b_2=2x^{(1)}+2x^{(2)} w2x+b2=2x(1)+2x(2)
如此继续下去,直到
w 7 = ( 1 , 1 ) T , b 7 = − 3 w 7 ⋅ x + b 7 = x ( 1 ) + x ( 2 ) − 3 w_7=(1,1)^T, \quad b_7=-3 \\ w_7·x+ b_7 = x^{(1)}+x^{(2)}-3 w7=(1,1)T,b7=3w7x+b7=x(1)+x(2)3
对所有数据点 y i ( w 7 x i + b 7 ) > 0 y_i(w_7x_i+b_7)>0 yi(w7xi+b7)>0,没有误分类点,损失函数达到极小。

分离超平面的为
x ( 1 ) + x ( 2 ) − 3 = 0 x^{(1)}+x^{(2)}-3=0 x(1)+x(2)3=0
感知机模型为
f ( x ) = s i g n ( x ( 1 ) + x ( 2 ) − 3 ) f(x)=sign(x^{(1)}+x^{(2)}-3) f(x)=sign(x(1)+x(2)3)

在这里插入图片描述
这是在计算中误分类点先后取 x 1 , x 3 , x 3 , x 3 , x 1 , x 3 , x 3 x_1,x_3,x_3,x_3,x_1,x_3,x_3 x1,x3,x3,x3,x1,x3,x3得到的分离超平面和感知机模型。如果在计算中误分类点依次取 x 1 , x 3 , x 3 , x 3 , x 2 , x 3 , x 3 , x 3 , x 1 , x 3 , x 3 x_1,x_3,x_3,x_3,x_2,x_3,x_3,x_3,x_1,x_3,x_3 x1,x3,x3,x3,x2,x3,x3,x3,x1,x3,x3,那么得到的分离超平面是 2 x ( 1 ) + x ( 2 ) − 5 = 0 2x^{(1)}+x^{(2)}-5=0 2x(1)+x(2)5=0

可见,感知机学习算法由于采用不同的初值或选取不同的误分类点,解可以不同。

二、 算法的收敛性

对于线性可分数据集,感知机学习算法原始形式收敛,即经过有限迭代可以得到一个将训练数据集完全正确划分的分离超平面及感知机模型。

为了便于叙述与推导,将偏置b并入权重向量w,记作 w ^ = ( w T , b ) T \hat w=(w^T,b)^T w^=(wT,b)T,同样也将输入向量加以扩充,加进常数1,记作 x ^ = ( x T , 1 ) T \hat x=(x^T,1)^T x^=(xT,1)T。这样, x ^ ∈ R n + 1 , w ^ ∈ R n + 1 \hat x\in R^{n+1},\hat w\in R^{n+1} x^Rn+1,w^Rn+1。显然, w ^ ⋅ x ^ = w ⋅ x + b \hat w · \hat x=w·x+b w^x^=wx+b

**定理 (Novikoff):**设训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)}是线性可分的,其中 x i ∈ χ = R n ,   y i ∈ γ = { − 1 , + 1 } ,   i = 1 , 2 , . . . , N x_i\in \chi=R^n, \space y_i\in \gamma =\{-1,+1\}, \space i=1,2,...,N xiχ=Rn, yiγ={1,+1}, i=1,2,...,N,则

(1)存在满足条件 ∣ ∣ w ^ o p t ∣ ∣ = 1 ||\hat w_{opt}||=1 w^opt=1的超平面 w ^ o p t ⋅ x ^ = w o p t ⋅ x + b o p t = 0 \hat w_{opt}·\hat x=w_{opt}·x+b_{opt}=0 w^optx^=woptx+bopt=0将训练数据集完全正确分开;且存在 γ > 0 \gamma >0 γ>0,对所有 i = 1 , 2 , . . . , N i=1,2,...,N i=1,2,...,N
y i ( w ^ o p t ⋅ x ^ i ) = y i ( w o p t ⋅ x i + b o p t ) ≥ γ y_i(\hat w_{opt}·\hat x_i)=y_i(w_{opt}·x_i+b_{opt})\geq \gamma yi(w^optx^i)=yi(woptxi+bopt)γ
(2)令 R = m a x 1 ≤ l ≤ N ∣ ∣ x ^ i ∣ ∣ R=max_{1\leq l\leq N}||\hat x_i|| R=max1lNx^i,则感知机算法(1)在训练数据集上的误分类次数k满足不等式
k ≤ ( R γ ) 2 ​ k\leq (\frac{R}{\gamma})^2​ k(γR)2
定理表明,误分类的次数是有上界的,经过有限此搜索可以找到将训练数据完全正确分开的分离超平面。也就是说,当训练数据集线性可分时,感知机学习算法原始形式迭代是收敛的。但是,感知机学习算法存在许多解,这些解既依赖与初值的选择,也依赖于迭代过程中误分类点的选择顺序,为了得到唯一的超平面,需要对分离超平面增加约束条件,这就是线性支持向量的想法。当训练集线性不可分时,感知机学习算法不收敛,迭代结果会发生震荡。

三、 感知机学习算法的对偶形式

基本思想:将w和b表示为实例 x i x_i xi和标记 y i y_i yi的线性组合的形式,通过求解其系数而求得 w w w b b b。不失一般性,在算法 f ( x ) = s i g n ( w ⋅ x + b ) f(x)=sign(w·x+b) f(x)=sign(wx+b)中,可假设初始值 w 0 , b 0 w_0,b_0 w0,b0均为0,对误分类点 ( x i , y i ) (x_i,y_i) (xi,yi)通过
w ← w + η y i x i b ← b + η y i w \leftarrow w+ \eta y_ix_i \\ b \leftarrow b+ \eta y_i ww+ηyixibb+ηyi
逐步修改 w , b w,b w,b,设修改n次,则 w , b w,b w,b关于 ( x i , y i ) (x_i,y_i) (xi,yi)的增量分别是 a i y i x i a_iy_ix_i aiyixi a i y i a_iy_i aiyi,这里 a i = n i η a_i=n_i\eta ai=niη。这样,从学习过程不难看出,最后学习到的 w , b w,b w,b可以分别表示为
w = ∑ i = 1 N a i y i x i b = ∑ i = 1 N a i y i w = \sum_{i=1}^Na_iy_ix_i \\ b = \sum_{i=1}^Na_iy_i w=i=1Naiyixib=i=1Naiyi
这里, a i ≥ 0 ,   i = 1 , 2 , . . . , N a_i\geq 0,\space i=1,2,...,N ai0, i=1,2,...,N,当 η = 1 \eta=1 η=1时,表示第i个实例点由于误分类而进行更新的次数。实例点更新次数越多,意味着它距离分离超平面越近,也就越难正确分类。换句话,这样的实例对学习结果影响最大。

下面对照原始形式来叙述感知机学习算法的对偶形式。

算法2:感知机学习算法的对偶形式

输入:线性可分的数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)},其中 x i ∈ R n , y i ∈ { − 1 , + 1 } ,   i = 1 , 2 , . . . , N x_i\in R^n,y_i\in\{-1,+1\},\space i=1,2,...,N xiRn,yi{1,+1}, i=1,2,...,N;学习率 η ( 0 < η ≤ 1 ) \eta (0<\eta \leq1) η(0<η1)

输出: a , b a,b a,b;感知机模型 f ( x ) = s i g n ( ∑ j = 1 N a j y j x j ⋅ x + b ) f(x)=sign(\sum_{j=1}^Na_jy_jx_j·x+b) f(x)=sign(j=1Najyjxjx+b).

其中 α = ( a 1 , a 2 , . . . , a N ) T \alpha = (a_1,a_2,...,a_N)^T α=(a1,a2,...,aN)T

(1) a ← 0 ,   b ← 0 a \leftarrow 0, \space b\leftarrow 0 a0, b0

(2)在训练集中选取数据 ( x i , y i ) (x_i,y_i) (xi,yi)

(3)如果 y i ( ∑ j = 1 N a j y j x j ⋅ x i + b ) ≤ 0 y_i(\sum_{j=1}^Na_jy_jx_j·x_i+b)\leq 0 yi(j=1Najyjxjxi+b)0
a i ← a i + η b ← b + η y i a_i \leftarrow a_i + \eta \\ b \leftarrow b + \eta y_i aiai+ηbb+ηyi
(4)转至(2)直到没有误分类数据。

对偶形式中训练实例仅以内积的形式出现。为了方便,可以预先将训练集中实例间的内积计算出来并以矩阵的形式储存,这个矩阵就是所谓的Gram矩阵(Gram matrix)。
G = [ x i ⋅ x j ] N × N G=[x_i·x_j]_{N\times N} G=[xixj]N×N
**例如:**正样本点是 x 1 = ( 3 , 3 ) T ,   x 2 = ( 4 , 3 ) T x_1=(3,3)^T,\space x_2=(4,3)^T x1=(3,3)T, x2=(4,3)T,负样本点是 x 3 = ( 1 , 1 ) T x_3=(1,1)^T x3=(1,1)T,试用感知机学习算法对偶形式求感知机模型。

解:按照算法2,

(1)取 a i = 0 ,   i = 1 , 2 , 3 ,   b = 0 , η = 1 a_i=0, \space i=1,2,3, \space b=0, \eta=1 ai=0, i=1,2,3, b=0,η=1

(2)计算 G r a m Gram Gram矩阵
KaTeX parse error: Unknown column alignment: 1 at position 27: … \begin{array} 1̲18 & 21 & 6 \\ …
(3)误分条件
y i ( ∑ j = 1 N a j y j x j ⋅ x i + b ) ≤ 0 y_i(\sum_{j=1}^Na_jy_jx_j·x_i + b)\leq 0 yi(j=1Najyjxjxi+b)0
参数更新
a i ← a i + 1 ,   b ← b + y i a_i \leftarrow a_i+1, \space b\leftarrow b+y_i aiai+1, bb+yi
(4)迭代。过程省略,结果见下表

(5)
w = 2 x 1 + 0 x 2 − 5 x 3 = ( 1 , 1 ) T b = − 3 w=2x_1 + 0x_2-5x_3 = (1,1)^T \\ b=-3 w=2x1+0x25x3=(1,1)Tb=3
分离超平面
x ( 1 ) + x ( 2 ) − 3 = 0 x^{(1)}+x^{(2)}-3=0 x(1)+x(2)3=0
感知机模型
f ( x ) = s i g n ( x ( 1 ) + x ( 2 ) − 3 ) f(x)=sign(x^{(1)}+x^{(2)}-3) f(x)=sign(x(1)+x(2)3)
在这里插入图片描述
求 解 的 迭 代 过 程 求解的迭代过程
对照算法1的例子,结果一致,迭代步骤也是互相对应的。

与原始形式一样,感知机学习算法的对偶。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值