机器学习——支持向量机SVM学习总结

机器学习——支持向量机SVM学习总结
对于上图中的红叉和蓝圈,如果我们进行二分类,找到他的分类边界,那么有许多中可能(绿色,粉色,黑色)。但是,绿色和粉色的分类超平面,对于未知样本的预测效果会比黑色的差。支持向量机,就是去找到这样一个分类超平面,使得样本点到这个平面的距离最大。

数学模型

判别模型f(x)=wTx+bf(x)=w^Tx+b,把b当成w的一部分则f(x)=wTxf(x)=w^Tx,对于最大间隔,要满足以下式子:
max margin(w,b)s.t.yi(wTxi+b)>0max \space margin(w, b)\\s.t. y_i(w^Tx_i+b)>0
margin(w,b)=minw,b,xi distance(w,b,xi)minw,b,xiwTxi+bw     (1)margin(w,b)=\min_{w,b,x_i}~distance(w,b,x_i) \\ \min_{w,b,x_i}\frac{|w^Tx_i+b|}{||w||}~~~~~(1)
(1)式为点到直线的距离
对于分类问题:

wTx+b>0   y=1wTx+b<=0   y=1w^Tx+b>0~~~y=1 \\ w^Tx+b<=0~~~y=-1

因此wTxi+b|w^Tx_i+b|可以转换成yi(wTxi+b)y_i(w^Tx_i+b)
maxw,bminxiwTxi+bw=maxw,b1wminxiy(wTxi+b)s.t.y(wTxi+b)>0\max_{w,b}\min_{x_i} \frac{|w^Tx_i+b|}{||w||} = \max_{w,b}\frac{1}{||w||}\min_{x_i} y(w^Tx_i+b) \\ s.t.y(w^Tx_i+b)>0
对于minxiy(wTxi+b)\min_{x_i} y(w^Tx_i+b),一定存在一个R 使得minxy(wTx+b)=R\min_{x} y(w^Tx+b)=R
对于R可以进行缩放,比如x=1和2x=2其实表达是一样的,因此这里就直接假设R=1,minxy(wTx+b)=R\min_{x} y(w^Tx+b)=R等价于y(wTx+b)>=Ry(w^Tx+b)>=R
则上式为:
maxw,b1ws.t.yi(wTxi+b)>=1 \max_{w,b}\frac{1}{||w||} \\ s.t.y_i(w^Tx_i+b)>=1
minw,b12w2s.t.yi(wTxi+b)>=1   2 \min_{w,b}\frac{1}{2}||w||^2 \\ s.t.y_i(w^Tx_i+b)>=1~~~(2)
对maxmin的解释:
min是求样本中离直线最近的点,这些点可以理解为支持向量
max使得这些最近的点到分类超平面的距离最大
对偶问题
对于上面的式子,是一个
凸二次规划问题,可以直接用相应的方法求解,但是遇到维度较高的情况时,就不能直接用二次规划的方法做,因此这里引入他的对偶问题。
拉格朗日乘子法
对于上式改写为:
L(w,b,λ)=12wTw+i=1Nλi(1yi(wTxi+b))s.t.λi>=0L(w,b,\lambda)=\frac{1}{2}w^Tw+\sum_{i=1}^N{\lambda_i(1-y_i(w^Tx_i+b))} \\ s.t.\lambda_i>=0
minw,bmaxλLs.t.λi>=0\min_{w,b}\max_{\lambda}L \\ s.t.\lambda_i>=0
拉格朗日乘子法中:L(w,b,λ)=h(x)+i=1Nλig(x)L(w,b,\lambda)=h(x)+\sum_{i=1}^N{\lambda_i g(x)} λ\lambda大于等于0,g(x)小于等于0
对偶关系:minmax <= maxmin即最大值中的最小值肯定大于等于最小值中的最大值。而对于凸二次规划问题,满足强对偶关系,即minmax=maxmin
所以原式可以转换为
maxλminw,bLs.t.λ>=0\max_{\lambda}\min_{w,b}L \\ s.t.\lambda>=0
对于min是不受lambda约束的,所以可以直接求解。求出L关于w,b的偏导数,然后带入L得到maxλPλ>=0\max_{\lambda}P \\ \lambda >= 0
P的表达式:
w=i=1Nλiyixiw^*=\sum_{i=1}^N{\lambda_iy_ix_i},b=i=1Nλiyib^*=\sum_{i=1}^N{\lambda_iy_i}
P=minλi=1Nj=1NλiλjyiyjxiTxjiNλis.t.λ>=0i=1Nλiyi=0P=\min_{\lambda}\sum_{i=1}^N{\sum_{j=1}^N{\lambda_i\lambda_jy_iy_jx_i^Tx_j}}-\sum_{i}^N{\lambda_i} \\ s.t.\lambda>=0 \\ \sum_{i=1}^N{\lambda_iy_i}=0
对于凸二次规划问题,前面提到他一定是满足强对偶关系的,而他的充要条件就是满足KKT条件。
KKT条件:
f(x)={λ>=01y(wTx+b)<=0λ(1y(wTx+b))=0w,b,λ=0 f(x)=\left\{ \begin{aligned} \lambda&>=&0 \\ 1-y(w^Tx+b)&<=&0\\ \lambda(1-y(w^Tx+b))&=&0 \\ w^*,b^*,\lambda^*&=&0 \end{aligned} \right.
w,b,λw^*,b^*,\lambda^*是导数,直观上理解,对于L,想要得到最大值就得后半部分为0,最大值为12wTw\frac{1}{2}w^Tw。而后半部分为0,那就是λ\lambda为0或者1y(wTx+b)1-y(w^Tx+b)为0。
机器学习——支持向量机SVM学习总结
对于在黄色和橙色线上的点1y(wTx+b)1-y(w^Tx+b)为0,而在两条线以外的点则1y(wTx+b)<01-y(w^Tx+b)<0因此此时λ=0\lambda=0
w=i=1Nλiyixiw^*=\sum_{i=1}^N{\lambda_iy_ix_i}
一定存在一个(xk,yk)(x_k,y_k)使得wTxk+b=ykw^Tx_k+b=y_k,即在两条彩色线上。
b=ykwTxk=yki=1NyixiTxkb^*=y_k-w^Tx_k=y_k-\sum_{i=1}^N{y_ix_i^Tx_k}
分类超平面为wTx+bw^{*T}x+b^*
以上是hard margin的情况,也就是假设样本在理想情况下是完全可以被分开的,没有噪声的,下面总结一下soft margin的知识
soft margin
字面上理解就是相对hard,soft的条件没有这么苛刻,允许一点点错误。

所谓的一点点错误,用loss来表示,我们可以用01损失来表达,即loss表示违反条件(超过红色线)的个数i=1NI{yi(wTxi+b)<1}\sum_{i=1}^N{I\{y_i(w^Tx_i+b)<1\}},I表示个数
但是01loss是不连续的,求导不好弄,因此对其进行改进。
机器学习——支持向量机SVM学习总结
改进后
机器学习——支持向量机SVM学习总结
采用hinge loss 在满足条件的时候(yi(wTxi+b)>=1y_i(w^Tx_i+b)>=1)就为0,不满足的时候就等于
1yi(wTxi+b)1- y_i(w^Tx_i+b)
loss=max{0,1yi(wTxi+b)}loss=\max\{0, 1-y_i(w^Tx_i+b)\}
机器学习——支持向量机SVM学习总结
ξ\xi来表示loss,可得ξ>=0\xi>=0
如上图所示,蓝色的线就是使用soft margin后的情况,允许在黄色这段区间内存在一些噪声。
式(2可以写成)
minw,b12wTw+Ci=1Nξis.t.yi(wTxi+b)>=1ξi \min_{w,b}\frac{1}{2}w^Tw+C\sum_{i=1}^N{\xi_i}\\ s.t.y_i(w^Tx_i+b)>=1-\xi_i
C是系数
参考:https://www.bilibili.com/video/BV1Hs411w7ci?p=3