SVM:硬/最大间隔SVM(手撕原理)

示意图

摘自其他人的CSDN博客,未知博客名

二分类问题描述

Data={(xi,yi)}i=1N,xiRp,yi{1,+1}Data=\{(x_i, y_i)\}_{i=1}^N,x_i\in\R^p,y_i\in\{-1,+1\}
由于超平面ωTx+b\omega^Tx+b有很多个,要找到最好的一个超平面,以得到最低的泛化误差(或测试误差、期望损失)。

hard-margin SVM判别模型,与概率无关:
f(ω)=sign(ωTx+b)={ωTx+b>0,f(ω)=1ωTx+b<0,f(ω)=1f(\omega)=sign(\omega^Tx+b)=\begin{cases}\omega^Tx+b>0,f(\omega)=1\\\omega^Tx+b<0,f(\omega)=-1\end{cases}
目标函数:
{max margin(ω,b)s.t. {ωTxi+b>0,yi=1ωTxi+b<0,yi=1yi(ωTxi+b)>0,i=1...,N\begin{cases}max\space margin(\omega,b) \\ s.t.\space \begin{cases}\omega^Tx_i+b>0,y_i=1\\\omega^Tx_i+b<0,y_i=-1\end{cases}\Rightarrow y_i(\omega^Tx_i+b)>0,i=1...,N\end{cases}
即,{max margin(ω,b)s.t. yi(ωTxi+b)>0,i=1,...,N\begin{cases}max\space margin(\omega,b) \\ s.t.\space y_i(\omega^Tx_i+b)>0,i=1,...,N\end{cases}

什么是margin?
答:一共有N个点到直线的距离,最小的那个就是margin。点到直线距离公式,
margin(ω,b)=minω,b,xidistance(ω,b,xi)=minω,b,xi1ωωTxi+bmargin(\omega,b)={min \atop \omega,b,x_i}distance(\omega,b,x_i)={min \atop \omega,b,x_i}{\frac 1 {\parallel\omega\parallel}}\mid\omega^Tx_i+b\mid

则上式写为:
{maxω,bminω,b,xi1ωωTxi+b =maxω,bminxi1ωωTxi+b=maxω,b1ωminxiyi(ωTxi+b)yi{1,+1}s.t. yi(ωTxi+b)>0\begin{cases}{max \atop \omega,b}{min \atop \omega,b,x_i}{\frac 1 {\parallel\omega\parallel}}\mid\omega^Tx_i+b\mid\space ={max \atop \omega,b}{min \atop x_i}{\frac 1 {\parallel\omega\parallel}}\mid\omega^Tx_i+b\mid={max \atop \omega,b}{\frac 1 {\parallel\omega\parallel}}{min \atop x_i}y_i(\omega^Tx_i+b)\Larr y_i\in\{-1,+1\} \\ s.t.\space y_i(\omega^Tx_i+b)>0\end{cases}

yi(ωTxi+b)>0y_i(\omega^Tx_i+b)>0可以理解为: γ>0,s.t. minxi,yiyi(ωTxi+b)=γ\exist\space\gamma>0,s.t.\space {min \atop x_i,y_i}y_i(\omega^Tx_i+b)=\gamma
γ\gamma的取值对式子(或超平面)是没有影响的,实际上就是对ω,b\omega,b的缩放。
因此,令 γ=1\gamma=1
则,maxω,b1ωminxiyi(ωTxi+b)=maxω,b1ωγ=maxω,b1ω{max \atop \omega,b}{\frac 1 {\parallel\omega\parallel}}{min \atop x_i}y_i(\omega^Tx_i+b)={max \atop \omega,b}{\frac 1 {\parallel\omega\parallel}}\gamma={max \atop \omega,b}{\frac 1 {\parallel\omega\parallel}}
则,上式可写为:
{maxω,b1ωminω,bω=minω,b12ωTω s.t. minxiyi(ωTxi+b)=1yi(ωTxi+b)1,i=1,...,N N\begin{cases}{max \atop \omega,b}{\frac 1 {\parallel\omega\parallel}}\Rarr{min \atop \omega,b}{\parallel\omega\parallel}={min \atop \omega,b}{\frac 1 2}\omega^T\omega\space硬间隔;二次的、凸优化,可直接求解 \\s.t.\space {min\atop x_i}y_i(\omega^Tx_i+b)=1\Rarr y_i(\omega^Tx_i+b)\geqslant1,i=1,...,N\space 有N个约束 \end{cases}

则,(1){minω,b12ωTω s.t. yi(ωTxi+b)1,i=1,...,N(1)\begin{cases}{min \atop \omega,b}{\frac 1 2}\omega^T\omega\space \\s.t.\space y_i(\omega^Tx_i+b)\geqslant1,i=1,...,N \end{cases}

开始求解

1. Primal problem:带ω,b\omega,b约束的优化

(1){minω,b12ωTωs.t. yi(ωTxi+b)1,for i=1,...,N1yi(ωTxi+b)0(1)\begin{cases} {min \atop \omega,b}{\frac 1 2}\omega^T\omega \\ s.t. \space y_i(\omega^Tx_i+b)\geqslant1,for \space i=1,...,N \xLeftrightarrow{}1-y_i(\omega^Tx_i+b)\leqslant0\end{cases}

2. 拉格朗日乘子法→对ω,b\omega,b无约束的优化

L(ω,b,λ)=12ωTω+i=1Nλi(1yi(ωTxi+b))L(\omega,b,\lambda)={\frac 1 2}{\omega^T}\omega+\displaystyle\sum_{i=1}^N\lambda_i(1-y_i(\omega^Tx_i+b)), λi0\lambda_i\geqslant0
(2){minω,bmaxλL(ω,b,λ)s.t. λi0(2)\begin{cases}{min \atop \omega,b} {max \atop \lambda}L(\omega,b,\lambda) \\ s.t.\space\lambda_i\geqslant0\end{cases}

值得注意的是:1yi(ωTxi+b)01-y_i(\omega^Tx_i+b)\leqslant0。为什么呢?
答:
直观上看,
如果1yi(ωTxi+b)>01-y_i(\omega^Tx_i+b)>0,则maxλL=12ωTω+={max\atop\lambda}L={\frac 1 2}{\omega^T}\omega+\infty=\infty
如果1yi(ωTxi+b)01-y_i(\omega^Tx_i+b)\leqslant0,则maxλL{max\atop\lambda}L一定存在,maxλL=12ωTω+0=12ωTω (λi0){max\atop\lambda}L={\frac 1 2}{\omega^T}\omega+0={\frac 1 2}{\omega^T}\omega\space(\lambda_i\rarr0)
则,minω,bmaxλL(ω,b,λ)=minω,b(,12ωTω)=12ωTω{min \atop \omega,b} {max \atop \lambda}L(\omega,b,\lambda)={min \atop \omega,b} (\infty,{\frac 1 2}{\omega^T}\omega)={\frac 1 2}{\omega^T}\omega
因此,1yi(ωTxi+b)>01-y_i(\omega^Tx_i+b)>0被丢弃了。

3. 转化为强对偶问题

(3){maxλminω,bL(ω,b,λ)s.t. λi0(3)\begin{cases}{max \atop \lambda}{min \atop \omega,b}L(\omega,b,\lambda) \\s.t.\space \lambda_i \geqslant0\end{cases}

什么是强、弱对偶?
答:凸优化二次规划问题,它的约束是线性的,目标函数是二次的,因此满足强对偶关系。(可证)
(1)弱对偶关系为min maxLmax minLmin\space maxL\geqslant max\space minL,对应理解为“尾凤\geqslant头鸡”,即凤尾优于鸡头、瘦死的骆驼比马大。
(2)强对偶关系,就是把\geqslant改为=。

4. 求解对偶问题:解拉格朗日方程minω,bL(ω,b,λ){min \atop \omega,b}L(\omega,b,\lambda)

L(ω,b,λ)=12ωTω+i=1Nλi(1yi(ωTxi+b))L(\omega,b,\lambda)={\frac 1 2}{\omega^T}\omega+\displaystyle\sum_{i=1}^N\lambda_i(1-y_i(\omega^Tx_i+b)), λi0\lambda_i\geqslant0

(1) 求Lb=0{\frac {\partial L} {\partial b}}=0

Lb=b[i=1Nλii=1Nλiyi(ωTxi+b)]=b[i=1Nλiyib)]=i=1Nλiyi=0{\frac {\partial L} {\partial b}}={\frac {\partial }{\partial b}}[\displaystyle\sum_{i=1}^N\lambda_i-\displaystyle\sum_{i=1}^N\lambda_iy_i(\omega^Tx_i+b)]={\frac {\partial }{\partial b}}[-\displaystyle\sum_{i=1}^N\lambda_iy_ib)]\\=-\displaystyle\sum_{i=1}^N\lambda_iy_i=0
则,i=1Nλiyi=0\displaystyle\sum_{i=1}^N\lambda_iy_i=0

(2) 将i=1Nλiyi=0\displaystyle\sum_{i=1}^N\lambda_iy_i=0代入到L(ω,b,λ)L(\omega,b,\lambda)

L(ω,b,λ)=12ωTω+i=1Nλii=1Nλiyi(ωTxi+b)=12ωTω+i=1Nλii=1NλiyiωTxi+i=1Nλiyib=12ωTω+i=1Nλii=1NλiyiωTxiL(\omega,b,\lambda)={\frac 1 2}\omega^T\omega+\displaystyle\sum_{i=1}^N\lambda_i-\displaystyle\sum_{i=1}^N\lambda_iy_i(\omega^Tx_i+b)\\={\frac 1 2}\omega^T\omega+\displaystyle\sum_{i=1}^N\lambda_i-\displaystyle\sum_{i=1}^N\lambda_iy_i\omega^Tx_i+\displaystyle\sum_{i=1}^N\lambda_iy_ib\\={\frac 1 2}\omega^T\omega+\displaystyle\sum_{i=1}^N\lambda_i-\displaystyle\sum_{i=1}^N\lambda_iy_i\omega^Tx_i

(3) 求Lω=0{\frac {\partial L} {\partial \omega}}=0

Lω=122ωi=1Nλiyixi=0{\frac {\partial L} {\partial \omega}}={\frac 1 2}·2·\omega-\displaystyle\sum_{i=1}^N\lambda_iy_ix_i=0
则,ω=i=1Nλiyixi\omega=\displaystyle\sum_{i=1}^N\lambda_iy_ix_i

(4) 将ω=i=1Nλiyixi\omega=\displaystyle\sum_{i=1}^N\lambda_iy_ix_i代入到L(ω,b,λ)L(\omega,b,\lambda)

L(ω,b,λ)=12(i=1Nλiyixi)T(i=1Nλiyixi)+i=1Nλii=1Nλiyi(j=1Nλjyjxj)TxiL(\omega,b,\lambda)={\frac 1 2}(\displaystyle\sum_{i=1}^N\lambda_iy_ix_i)^T(\displaystyle\sum_{i=1}^N\lambda_iy_ix_i)+\displaystyle\sum_{i=1}^N\lambda_i-\displaystyle\sum_{i=1}^N\lambda_iy_i(\displaystyle\sum_{j=1}^N\lambda_jy_jx_j)^Tx_i

注意:
λiR,yi{1,1},xiRp\lambda_i\in\Reals,y_i\in\{-1,1\},x_i\in\Reals^p
∴(i=1Nλiyixi)T=i=1NλiyixiT\displaystyle\sum_{i=1}^N\lambda_iy_ix_i)^T=\displaystyle\sum_{i=1}^N\lambda_iy_ix_i^T
ωTω=(iNλiyixiT)(jNλjyjxj)=iNjNλiλjyiyjxiTxj\omega^T\omega=(\displaystyle\sum_{i}^N\lambda_iy_ix_i^T)·(\displaystyle\sum_{j}^N\lambda_jy_jx_j)=\displaystyle\sum_{i}^N\displaystyle\sum_{j}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j
同理,i=1Nλiyi(j=1Nλjyjxj)Txi=i=1Nλiyij=1NλjyjxjTxi=iNjNλiλjyiyjxjTxi=iNjNλiλjyiyjxiTxjxiTxj=xjTxiR\displaystyle\sum_{i=1}^N\lambda_iy_i(\displaystyle\sum_{j=1}^N\lambda_jy_jx_j)^Tx_i=\displaystyle\sum_{i=1}^N\lambda_iy_i\displaystyle\sum_{j=1}^N\lambda_jy_jx_j^Tx_i\\=\displaystyle\sum_{i}^N\displaystyle\sum_{j}^N\lambda_i\lambda_jy_iy_jx_j^Tx_i\\=\displaystyle\sum_{i}^N\displaystyle\sum_{j}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j\Larr x_i^Tx_j=x_j^Tx_i\in\Reals
发现上面两个结果一样!因此,可以约掉啦~
(i=1Nλiyixi)T(i=1Nλiyixi)=i=1Nλiyi(j=1Nλjyjxj)Txi=iNjNλiλjyiyjxiTxj(\displaystyle\sum_{i=1}^N\lambda_iy_ix_i)^T(\displaystyle\sum_{i=1}^N\lambda_iy_ix_i)=\displaystyle\sum_{i=1}^N\lambda_iy_i(\displaystyle\sum_{j=1}^N\lambda_jy_jx_j)^Tx_i\\=\displaystyle\sum_{i}^N\displaystyle\sum_{j}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j

L(ω,b,λ)=i=1Nλi12iNjNλiλjyiyjxiTxjminω,bL(ω,b,λ)L(\omega,b,\lambda)=\displaystyle\sum_{i=1}^N\lambda_i-{\frac 1 2}\displaystyle\sum_{i}^N\displaystyle\sum_{j}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j\xRightarrow{即} {min \atop \omega,b}L(\omega,b,\lambda)
代入式(3)即,
(4){maxλi=1Nλi12i=1Nj=1NλiλjyiyjxiTxjmaxλminω,bL(ω,b,λ)s.t. λi0,i=1Nλiyi=0(4)\begin{cases}{max \atop \lambda}\displaystyle\sum_{i=1}^N\lambda_i-{\frac 1 2}\displaystyle\sum_{i=1}^N\displaystyle\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j\Larr {max \atop \lambda}{min \atop \omega,b}L(\omega,b,\lambda) \\s.t.\space \lambda_i\geqslant0,\displaystyle\sum_{i=1}^N\lambda_iy_i=0 \end{cases}

(5) 对偶问题的最终优化式

最优化问题常由minmin表示
(5){minλ12i=1Nj=1NλiλjyiyjxiTxji=1Nλis.t. λi0,i=1Nλiyi=0(5)\begin{cases}{min \atop \lambda}{\frac 1 2}\displaystyle\sum_{i=1}^N\displaystyle\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j-\displaystyle\sum_{i=1}^N\lambda_i \\s.t.\space \lambda_i\geqslant0,\displaystyle\sum_{i=1}^N\lambda_iy_i=0 \end{cases}

5. KKT条件求解对偶问题

定理:原问题和对偶问题具有强对偶关系\xLeftrightarrow{充要条件}满足KKT条件

拉格朗日方程(上面第2点):
L(ω,b,λ)=12ωTω+i=1Nλi(1yi(ωTxi+b))L(\omega,b,\lambda)={\frac 1 2}{\omega^T}\omega+\displaystyle\sum_{i=1}^N\lambda_i(1-y_i(\omega^Tx_i+b)), λi0\lambda_i\geqslant0

根据定理可直接得到该问题的KKT(Karush-Kuhn-Tucker)条件:
{Lω=0,Lb=0,Lλ=0λi01yi(ωTxi+b)02λi(1yi(ωTxi+b))=0L(ω,b,λ)=12ωTωb\begin{cases}{\frac {\partial L}{\partial \omega}}=0,{\frac {\partial L}{\partial b}}=0,{\frac {\partial L}{\partial \lambda}}=0 \\\lambda_i\geqslant0\Rarr 拉格朗日乘子法的要求 \\1-y_i(\omega^Tx_i+b)\leqslant0\Rarr 上面第2点解释了 \\\lambda_i(1-y_i(\omega^Tx_i+b))=0\Rarr此时,L(\omega,b,\lambda)={\frac 1 2}\omega^T\omega,为最大值;松弛互补条件,求解b^* \end{cases}
根据KKT条件,可求出最优的ω,b\omega^*,b^*
凸优化中对偶问题详解,尤其解释了什么是KKT条件

(1) 最优解ω=i=1Nλiyixi\omega^*=\displaystyle\sum_{i=1}^N\lambda_iy_ix_i

就是之前(3)中Lω=0{\frac {\partial L} {\partial \omega}}=0的结果。

(2) 最优解b=ykiNλiyixiTxkb^*=y_k-\displaystyle\sum_i^N\lambda_iy_ix_i^Tx_k

假设(xk,yk), s.t. 1yk(ωTxk+b)=0\exist (x_k,y_k),\space s.t.\space 1-y_k(\omega^Tx_k+b)=0,(xk,yk)(x_k,y_k)为支持向量ωTxk+b{1,1}\omega^Tx_k+b\in\{-1,1\}
yk(ωTxk+b)=1yk=±1,yk2=1yk2(ωTxk+b)=ykωTxk+b=ykb=ykωTxk=yk(ω)Txk=yki=1NλiyixiTxk由y_k(\omega^Tx_k+b)=1 \\∵y_k=±1,y_k^2=1 \\∴y_k^2(\omega^Tx_k+b)=y_k \\∴\omega^Tx_k+b=y_k \\∴b^*=y_k-\omega^Tx_k=y_k-(\omega^*)^Tx_k=y_k-\displaystyle\sum_{i=1}^N\lambda_iy_ix_i^Tx_k

(3) 根据w,bw^*,b^*得出超平面wx+bw^*x+b^*

  1. f(x)=sign((w)Tx+b)f(x)=sign((w^*)^Tx+b^*)
  2. w=i=1Nλiyixiw^*=\displaystyle\sum_{i=1}^N\lambda_iy_ix_i可看做是Data={(xi,yi)}i=1N,xiRp,yi{1,+1}Data=\{(x_i, y_i)\}_{i=1}^N,x_i\in\R^p,y_i\in\{-1,+1\}的线性组合
  3. λi\lambda_i只对支持向量才有意义,即1yi(ωTxi+b)=01-y_i(\omega^Tx_i+b)=0上的点,此时,λi0\lambda_i\geqslant0;对于非支持向量不起作用,此时λi=0\lambda_i=0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章