第二章感知机.2.2 对偶形式

本课程来自深度之眼,部分截图来自课程视频以及李航老师的《统计学习方法》第二版。
公式输入请参考:在线Latex公式

原始形式回顾

输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)},其中 x i ∈ X = R n , y i ∈ Y = { − 1 , 1 } , i = 1 , 2 , ⋯   , N x_i\in X=R^n,y_i\in Y=\{-1,1\},i=1,2,\cdots,N xiX=Rn,yiY={1,1},i=1,2,,N;学习率 η ( 0 < η ≤ 1 ) \eta(0<\eta\leq1) η(0<η1)
输出: w , b w,b w,b;感知机模型
f ( x ) = s i g n ( w ⋅ x + b ) (1) f(x)=sign(w\cdot x+b)\tag 1 f(x)=sign(wx+b)(1)
步骤:
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\cdot x_i+b)\leq 0 yi(wxi+b)0(原误分类条件是: − y i ( w ⋅ x i + b ) > 0 -y_i(w\cdot x_i+b)>0 yi(wxi+b)>0),更新 w , b w,b w,b

w ← w + η y i x i b ← b + η y i (2) w\leftarrow w+\eta y_ix_i\\ b\leftarrow b+\eta y_i\tag2 ww+ηyixibb+ηyi(2)
4.跳转到2,直到训练集中没有误分类点。


思考:
假如数据集中有一个样本点 ( x i , y i ) (x_i,y_i) (xi,yi),在第1轮的时候被模型误分类了,然后就用公式2更新一次,就是 w w w增加了 η y i x i \eta y_ix_i ηyixi,然后模型继续迭代下一轮,然后 ( x i , y i ) (x_i,y_i) (xi,yi)又被模型误分类了, w w w又增加 η y i x i \eta y_ix_i ηyixi,如果这个样本被误分类 n i n_i ni次,那么最后 w w w增加了 n i η y i x i n_i\eta y_ix_i niηyixi,如果记 α i = n i η \alpha_i = n_i\eta αi=niη,那么样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的两个参数增量就可以写为:
α i y i x i α i x i \alpha_i y_ix_i\\ \alpha_i x_i αiyixiαixi
对于数据集中有 N N N个点,则总的参数更新就是N个点进行累加,最后学习到的参数写为:
w = ∑ i = 1 N α i y i x i b = ∑ i = 1 N α i y i (3) w=\sum_{i=1}^N \alpha_i y_ix_i\\ b=\sum_{i=1}^N \alpha_i y_i\tag3 w=i=1Nαiyixib=i=1Nαiyi(3)
这里注意初始值 w 0 , b 0 w_0,b_0 w0,b0均为0,不然上面的式子还要加初始值。
α i ≥ 0 \alpha_i\ge0 αi0,当步长 η \eta η为1时, α i \alpha_i αi表示第 i i i个样本被模型误分类的次数,也是该样本更新的次数。
样本更新次数越多,它距离分离超平面越近,也就越难正确分类。这样的样本对学习结果影响最大。
现在把公式3代入感知机原始公式1中就可以得到感知机的对偶形式(这里只代入 w w w,因为代入 b b b没啥改进)。

感知机的对偶形式

输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)},其中 x i ∈ X = R n , y i ∈ Y = { − 1 , 1 } , i = 1 , 2 , ⋯   , N x_i\in X=R^n,y_i\in Y=\{-1,1\},i=1,2,\cdots,N xiX=Rn,yiY={1,1},i=1,2,,N;学习率 η ( 0 < η ≤ 1 ) \eta(0<\eta\leq1) η(0<η1)
输出: α , b \alpha,b α,b;感知机模型为:
f ( x ) = s i g n ( ∑ j = 1 N α j y j x j ⋅ x + b ) (4) f(x)=sign(\sum_{j=1}^N \alpha_j y_jx_j\cdot x+b)\tag4 f(x)=sign(j=1Nαjyjxjx+b)(4)
其中 α = ( α 1 , α 2 , ⋯   , α N ) \alpha = (\alpha_1,\alpha_2,\cdots,\alpha_N) α=(α1,α2,,αN),这里虽然也有b,但是这里的b和公式1中的b不一样了,这里的 b = ∑ j = 1 N α j y j b=\sum_{j=1}^N \alpha_j y_j b=j=1Nαjyj,这里为了和本身的x下标区别,这里用了新的下标j
1.开始的时候,还没有开始对样本进行判别,因此样本更新次数为0,也就是 α = 0 , b = 0 \alpha=0,b=0 α=0,b=0
2.在训练集中选取数据 ( x i , y i ) (x_i,y_i) (xi,yi)
3.如果 y i ( ∑ j = 1 N α j y j x j ⋅ x i + b ) ≤ 0 y_i(\sum_{j=1}^N \alpha_j y_jx_j\cdot x_i+b)\leq0 yi(j=1Nαjyjxjxi+b)0(就是出现误分类),更新参数 α , b \alpha,b α,b
α i = α i + η b = b + η y i \alpha_i=\alpha_i+\eta\\ b=b+\eta y_i αi=αi+ηb=b+ηyi
4.跳转到2,直到训练集中没有误分类点。
可以看到模型的对偶形式中,参数的更新只和样本的内积 x j ⋅ x i x_j\cdot x_i xjxi相关( α j y j \alpha_j y_j αjyj都是常数),因此,我们可以提前把样本的两两内积计算出来,存储到矩阵里面,这个矩阵叫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}=\begin{bmatrix} x_1\cdot x_1 & x_1\cdot x_2 & \cdots & x_1\cdot x_N\\ x_2\cdot x_1 & x_2\cdot x_2 & \cdots&x_2\cdot x_N \\ \vdots & \vdots & \ddots &\vdots \\ x_N\cdot x_1 & x_N\cdot x_2 & \cdots & x_N\cdot x_N \end{bmatrix} G=[xixj]N×N=x1x1x2x1xNx1x1x2x2x2xNx2x1xNx2xNxNxN
可以看到对偶形式的参数更新只有加法,比之前一般形式要简单。而且内积可以提前计算,判断点是否误分类的时间复杂度变成 O ( 1 ) O(1) O(1)

总结

1.掌握感知机原始形式
2.原始形式到对偶形式的转换:转换为求解系数
3.对偶形式的意义:减少了运算量(空间复杂度、时间复杂度、无法求解变可以求解)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oldmao_2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值