机器学习基础支持向量机

1 什么是支持向量机?

支持向量机,support vector machine,支持向量机模型是指由支持向量支撑的模型,在这个模型中,仅支持向量起到作用,而非支持向量对模型没有作用。
假设此时是一个而二维平面,我们需要将+和-点分开,显然这条线很多种可能,那么我们要找到最优的那条边界,那么这条边界的定义就是离这个边界最近的点,使得这个点离边界最远。
通俗的将就是找离这条先最近的点,得到距离L,那么我们希望这个L越大越好。
这条线就叫做决策边界。通过决策变量,此时就可以将将两组样本分割开来。
那么上下两条边界插过的点就叫做支持向量,图中3个支持向量。
在这里插入图片描述

2 支持向量的作用

真正发挥作用的点只有那么几个,这就是支持向量,显然,支持向量机的一大特点就是可以应用到小样本集合上。
另外,通过二维推广到三维,通过升维,可以将一些在低维空间中不可分的数据集合分离开来,因为更高的维度更容易找到一个超平面,将样本分开,那么低维不可分问题就可以通过提升维度,映射到高维度上去了。

3 如何实现支持向量机

本质上还是机器学习的套路做法,找到目标函数,通过数学推导,迭代,找到极值点。

3.1 目标函数

通俗的讲:找到一条线(w,b),使得离该线最近的点能够足够远。回归到问题的本身,我们是要找到一条直线(w和b),使得离该线最近的点能够最远。
求解到的点到直线的距离,其中包含了一个绝对值:
d i s t a n c e ( X , b , W ) = 1 ∣ ∣ W ∣ ∣ ∣ W T X + b ∣ distance(X,b,W) = \frac{1}{||W||}|W^TX+b| distance(X,b,W)=W1WTX+b

为了去除绝对值,我们引入了 y i y_i yi,得到:
d i s t a n c e ( X , b , W , y ) = y i ∗ 1 ∣ ∣ W ∣ ∣ ( W T ϕ ( x ) + b ) distance(X,b,W,y) = y_i*\frac{1}{||W||}(W^T\phi(x)+b) distance(X,b,W,y)=yiW1(WTϕ(x)+b)
由于 ( y i ∗ y ( x i ) > 0 ) (y_i* y(x_i)>0) (yiy(xi)>0)

  • 放缩变换:对于决策工程(w,b)可以通过放缩使得其结果值|Y|>=1,在3.1中我们已经得到了|Y|>0,那么通过放缩*N,我们可以使得|Y|>=1,
    = > y i ∗ ( w T ∗ ϕ ( x i ) + b ) ≥ 1 =>y_i*(w^T*\phi(x_i)+b)\geq 1 =>yi(wTϕ(xi)+b)1(之前我们认为恒大于0,现在严格了些)

  • 优化目标:
    a r g m a x w , b { 1 ∣ ∣ w ∣ ∣ m i n i [ y i ⋅ ( w T ⋅ ϕ ( x i ) + b ) ] } \underset{w,b}{arg max} \begin{Bmatrix}\frac{1}{||w||}\underset{i}{min}[y_i\cdot(w^T\cdot\phi(x_i)+b)]\end{Bmatrix} w,bargmax{w1imin[yi(wTϕ(xi)+b)]}

上面的公式中,有两个求解,一个是min,一个是max。
min:找到离决策边界最近的那个样本。min里面就是距离公式,这里就是找最近的样本点。离决策边界最近的那个样本点。
max:得到这个点之后,我们再去求什么样的w和b,使得雷离我们的决策边界越大越好。

总结两点:
1)求距离决策边界最近的点
2)求w,b,使得1)求得的点离决策边界最远

上面我们提到了可以通过缩放,让 y i ∗ ( w T ∗ ϕ ( x i ) + b ) ≥ 1 y_i*(w^T*\phi(x_i)+b)\geq 1 yi(wTϕ(xi)+b)1
那么此时我们可以认为 m i n [ y i ∗ ( w T ∗ ϕ ( x i ) + b ) ] = 1 min[y_i*(w^T*\phi(x_i)+b)]=1 min[yi(wTϕ(xi)+b)]=1,那么目标函数就变为:
a r g m a x w , b 1 ∣ ∣ w ∣ ∣ \underset{w,b}{arg max}\frac{1}{||w||} w,bargmaxw1
也就是说,现在目标是找到w使得这个目标函数 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} w1最大。

3.2 目标函数求解

这里目标函数是求解max也就是最大值,但是机器学习中都是求解最小值的,所以说,我们还是要转化为求解极小值的问题。
1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} w1的最大值,就是求 ∣ ∣ w ∣ ∣ ||w|| w的最小值。之前的假设是这个目标函数的前提: y i ⋅ ( w T ⋅ ϕ ( x i ) + b ) ≥ 1 y_i\cdot(w^T\cdot\phi(x_i)+b)\geq1 yi(wTϕ(xi)+b)1
求解 ∣ ∣ w ∣ ∣ ||w|| w的极小值可以认为是求解 1 2 w 2 \frac{1}{2}w^2 21w2的极小值,前面的1/2是为了后面方便求导用到。

如何求解这个极小值问题?应用拉格朗日乘子法。
就是为了求解极值的方法。这里直接使用。

拉格朗日乘子法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
subject to是约束条件。
其中 f i ( x ) ≤ 0 , i = 1 , . . . m f_i(x)\leq0,i=1,...m fi(x)0,i=1,...m表示有m组约束条件,从 f 1 ( x ) ≤ 0 f_1(x)\leq0 f1(x)0 f m ( x ) ≤ 0 f_m(x)\leq0 fm(x)0

注意:
∑ i = 1 m λ i f i ( x ) = λ 1 f 1 ( x ) + λ 2 f 2 ( x ) + . . . + λ m f m ( x ) \displaystyle\sum_{i=1}^m\lambda_if_i(x) = \lambda_1f_1(x) + \lambda_2f_2(x)+...+\lambda_mf_m(x) i=1mλifi(x)=λ1f1(x)+λ2f2(x)+...+λmfm(x)
后面的 ∑ i = 1 q v i h i ( x ) \displaystyle\sum_{i=1}^qv_ih_i(x) i=1qvihi(x)其实和上面的限制是类似的,这是改了变量而已。
注意,上面的约束条件有两类,所以我们在应用拉格朗日乘子法的时候,我们需要将我们的约束条件转换成这种。
1) f i ( x ) ≤ 0 f_i(x)\leq0 fi(x)0
2) h i ( x ) = 0 h_i(x)=0 hi(x)=0

这个时候,将目标函数和约束条件合并后,得到了一个新的目标函数 L ( x , λ , v ) L(x,\lambda,v) L(x,λ,v),这个时候我们求解这个函数的极值点。由于我们要求最小值,所以求最小值。

由于 m i n w , b 1 2 w 2 min_{w,b}\frac{1}{2}w^2 minw,b21w2不太好求解,那么我们可以换一种思路,也就是求解一个和w有关的变量,使得得到最小值,最后得到w。(就是绕了一下)
现在变为求解一个中间变量以及中间变量和w的关系。

应用了拉格朗日乘子法,首先变换我们的约束条件:
y i ( w T ⋅ ϕ ( x ) + b ) ≥ 1 = > y i ( w T ⋅ ϕ ( x ) + b ) − 1 ≤ 0 y_i(w^T\cdot\phi(x)+b)\geq1 => y_i(w^T\cdot\phi(x)+b)-1\leq0 yi(wTϕ(x)+b)1=>yi(wTϕ(x)+b)10
此时应用拉格朗日乘子法,得到我们的公式:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 n α i ( y i ( w T ⋅ ϕ ( x i ) + b ) − 1 ) L(w,b,\alpha)=\frac{1}{2}||w||^2-\displaystyle\sum_{i=1}^n\alpha_i(y_i(w^T\cdot\phi(x_i)+b)-1) L(w,b,α)=21w2i=1nαi(yi(wTϕ(xi)+b)1)
其中 α i \alpha_i αi是一个系数。
(约束条件不要忘了: y i ⋅ ( w T ⋅ ϕ ( x i ) + b ) ≥ 1 y_i\cdot(w^T\cdot\phi(x_i)+b)\geq1 yi(wTϕ(xi)+b)1,这个约束条件无论什么时候都不能忘记)
此时原来的目标函数就转换到了一个拉格朗日乘子法的求解了。

利用KTT,本质上就是一个对偶性质:
m i n w , b m a x α L ( w , b , α ) − > m a x α m i n w , b L ( w , b , α ) \underset{w,b}{min}\underset{\alpha}{max}L(w,b,\alpha) -> \underset{\alpha}{max}\underset{w,b}{min}L(w,b,\alpha) w,bminαmaxL(w,b,α)>αmaxw,bminL(w,b,α)

这个时候,从对w求偏导对公式可以得到w取值,那么我们之前提到过,求w不容易,我们可以先求一个中间值,这个值和w有关系。就是这里的 w = ∑ i = 1 n α i y i ϕ ( x i ) w=\displaystyle\sum_{i=1}^{n}\alpha_iy_i\phi(x_i) w=i=1nαiyiϕ(xi),其中, α i \alpha_i αi是每个样本数据的系数,这就是我们的中介,我们就转化成了求解 α i \alpha_i αi
对b求偏导,这个时候,由于b是一次项,那么b求导后=1,那么得到的偏导数就没有b了,这个相当于一个条件了。也就是 ∑ i = 1 n α i y i = 0 \displaystyle\sum_{i=1}^n\alpha_iy_i=0 i=1nαiyi=0,也就是 α i \alpha_i αi y i y_i yi之间的关系。

得到偏导数后,代入原来的公式中。
在这里插入图片描述
将w代入上面的公式:上述在第二步的时候代入。代入后得到以下化简后的公式,后面半部分为了区分 ∑ i = 1 n \displaystyle\sum_{i=1}^{n} i=1n,将后面的那个求和公式改为j=1

再来提醒一下,这里求到了的拉格朗日乘子法的公式 m w , b L ( w , b , α ) \underset{w,b}{m}L(w,b,\alpha) w,bmL(w,b,α)

现在就剩下 α , y i , x i \alpha,y_i,x_i α,yi,xi了,我们还是要继续求解下去,什么样的 w , b , α w,b,\alpha w,b,α能使的L最小,并且将这样的 w , b w,b w,b代入到公式中。

max求解
不要忘记,里面的min求解完了,外面还有一个max求解,也就是求解什么样的 w , b w,b w,b使得目标函数最大。而 w , b w,b w,b相应的就转换到中介变量 α \alpha α了。第一个公式中没有 w , b w,b w,b了,对这样的公式我们要求极大值:问题转换为什么样的 α \alpha α使得值最大
m a x α ∑ i = 1 n α i − 1 2 ∑ i = 1 n α i α j y i y j ( ϕ ( x i ) ⋅ ϕ ( x j ) ) \underset{\alpha}{max}\displaystyle\sum_{i=1}^{n}\alpha_i-\frac{1}{2}\displaystyle\sum_{i=1}^{n}\alpha_i\alpha_jy_iy_j(\phi(x_i)\cdot\phi(x_j)) αmaxi=1nαi21i=1nαiαjyiyj(ϕ(xi)ϕ(xj))
注意,还有限制条件:第一个条件是对b求偏导得到的;而第二个条件是拉格朗日乘子法使用的前提,所有的 α i \alpha_i αi必须都大于等于0。
∑ i = 1 n α i y i = 0 \displaystyle\sum_{i=1}^{n}\alpha_iy_i=0 i=1nαiyi=0, α i ≥ 0 \alpha_i\geq0 αi0

那么,这一步求解之后,我们的 α i \alpha_i αi可以求得了,而 x i , y i x_i,y_i xi,yi是已知的,所以 w w w我们也可以得到。
我们继续求解 α i \alpha_i αi,求解 α \alpha α是一个比较难的问题。这里还可以继续使用拉格朗日乘子法进行求解。

那么求解大致就到这里了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值