此文章主要是结合哔站shuhuai008大佬的白板推导视频:支持向量机_178min
全部笔记的汇总贴:机器学习-白板推导系列笔记
一、硬间隔SVM
(一)模型定义
假设有以下数据:
{ ( x i , y i ) } i = 1 N , x i ∈ R p , y i ∈ { + 1 , − 1 } \left \{(x_{i},y_{i})\right \}_{i=1}^{N},x_{i}\in \mathbb{R}^{p},y_{i}\in \{+1,-1\} { (xi,yi)}i=1N,xi∈Rp,yi∈{ +1,−1}
SVM的主要思想是在特征空间中寻找一个最大间隔的超平面 w T x + b w^{T}x+b wTx+b实现数据的二分类,SVM属于判别模型。这里的间隔指的是样本点到分离超平面的距离的最小值,用函数 m a r g i n ( w , b ) margin(w,b) margin(w,b)来表达。下图中在 w ⋅ x + b = 1 w\cdot x+b=1 w⋅x+b=1和 w ⋅ x + b = − 1 w\cdot x+b=-1 w⋅x+b=−1线上的样本点就叫支持向量:
超平面实现将数据的正例和负例分隔开,因此有:
y i = + 1 , w T x i + b > 0 y i = − 1 , w T x i + b < 0 } y i ( w T x i + b ) > 0 , f o r ∀ i = 1 , 2 , ⋯ , N \left.\begin{matrix} y_{i}=+1,w^{T}x_{i}+b>0\\ y_{i}=-1,w^{T}x_{i}+b<0 \end{matrix}\right\}y_{i}(w^{T}x_{i}+b)>0,for\; \forall i=1,2,\cdots ,N yi=+1,wTxi+b>0yi=−1,wTxi+b<0}yi(wTxi+b)>0,for∀i=1,2,⋯,N
另外最大间隔通过以下方式来表达:
① ①\; ①首先要明确样本点到超平面的距离公式:
d i s t a n c e ( w , b , x i ) = ∣ w T x + b ∣ ∥ w ∥ distance(w,b,x_{i})=\frac{\left | w^{T}x+b\right |}{\left \| w\right \|} distance(w,b,xi)=∥w∥∣∣wTx+b∣∣
(可以参考初中知识点:点到直线距离 d = ∣ A x + B y + C ∣ A 2 + B 2 ) d=\frac{\left | Ax+By+C\right |}{\sqrt{A^{2}+B^{2}}}) d=A2+B2∣Ax+By+C∣)
② ②\; ② 因此间隔可以表达为:
m a r g i n ( w , b ) = m i n x i d i s t a n c e ( w , b , x i ) = m i n x i ∣ w T x i + b ∣ ∥ w ∥ , i = 1 , 2 , ⋯ , N margin(w,b)=\underset{x_{i}}{min}\; distance(w,b,x_{i})=\underset{x_{i}}{min}\frac{\left | w^{T}x_{i}+b\right |}{\left \| w\right \|},i=1,2,\cdots ,N margin(w,b)=ximindistance(w,b,xi)=ximin∥w∥∣∣wTxi+b∣∣,i=1,2,⋯,N
③ ③\; ③ 最大间隔可以表达为:
m a x w , b m a r g i n ( w , b ) = m a x w , b m i n x i ∣ w T x i + b ∣ ∥ w ∥ = m a x w , b m i n x i y i ( w T x i + b ) ∥ w ∥ , i = 1 , 2 , ⋯ , N \underset{w,b}{max}\; margin(w,b)=\underset{w,b}{max}\; \underset{x_{i}}{min}\frac{\left | w^{T}x_{i}+b\right |}{\left \| w\right \|}=\underset{w,b}{max}\; \underset{x_{i}}{min}\frac{y_{i}(w^{T}x_{i}+b)}{\left \| w\right \|},i=1,2,\cdots ,N w,bmaxmargin(w,b)=w,bmaxximin∥w∥∣∣wTxi+b∣∣=w,bmaxximin∥w∥yi(wTxi+b),i=1,2,⋯,N
然后求解支持向量机就可以转化为以下带约束的优化问题:
{ m a x w , b m a r g i n ( w , b ) = m a x w , b m i n x i y i ( w T x i + b ) ∥ w ∥ , i = 1 , 2 , ⋯ , N s . t . y i ( w T x i + b ) > 0 , i = 1 , 2 , ⋯ , N \left\{\begin{matrix} \underset{w,b}{max}\; margin(w,b)=\underset{w,b}{max}\; \underset{x_{i}}{min}\frac{y_{i}(w^{T}x_{i}+b)}{\left \| w\right \|},i=1,2,\cdots ,N\\ s.t.\; y_{i}(w^{T}x_{i}+b)>0,i=1,2,\cdots ,N \end{matrix}\right. { w,bmaxmargin(w,b)=w,bmaxximin∥w∥yi(wTxi+b),i=1,2,⋯,Ns.t.yi(wTxi+b)>0,i=1,2,⋯,N
上述优化问题还可以进一步转化:
由约束: y i ( w T x i + b ) > 0 , i = 1 , 2 , ⋯ , N y_{i}(w^{T}x_{i}+b)>0,i=1,2,\cdots ,N yi(wTxi+b)>0,i=1,2,⋯,N,可以得出 ∃ γ > 0 \exists \gamma >0 ∃γ>0,使得 m i n x i y i ( w T x i + b ) = γ \underset{x_{i}}{min}\; y_{i}(w^{T}x_{i}+b)=\gamma ximinyi(wTxi+b)=γ
由于确定同一个超平面的 w , b w,b w,b可以任意放缩,所以这里的 γ \gamma γ 可以约束等于 1 1 1。
则 m a x w , b m a r g i n ( w , b ) = m a x w , b m i n x i y i ( w T x i + b ) ∥ w ∥ = m a x w , b 1 ∥ w ∥ m i n x i y i ( w T x i + b ) ⏟ = γ = 1 = m a x w , b 1 ∥ w ∥ = m i n w , b 1 2 w T w i = 1 , 2 , ⋯ , N \underset{w,b}{max}\; margin(w,b)\\ =\underset{w,b}{max}\; \underset{x_{i}}{min}\frac{y_{i}(w^{T}x_{i}+b)}{\left \| w\right \|}\\ =\underset{w,b}{max}\frac{1}{\left \| w\right \|}\underset{=\gamma =1}{\underbrace{\underset{x_{i}}{min}\; y_{i}(w^{T}x_{i}+b)}}\\ =\underset{w,b}{max}\frac{1}{\left \| w\right \|}\\ =\underset{w,b}{min}\frac{1}{2}w^{T}w\\ i=1,2,\cdots ,N w,bmaxmargin(w,b)=w,bmaxximin∥w∥yi(wTxi+b)=w,bmax∥w∥1=γ=1 ximinyi(wTxi+b)=w,bmax∥w∥1=w,bmin21wTwi=1,2,⋯,N
由此上述优化问题转化为:
{ m i n w , b 1 2 w T w s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯ , N \left\{\begin{matrix} \underset{w,b}{min}\frac{1}{2}w^{T}w \\ s.t.\; y_{i}(w^{T}x_{i}+b)\geq 1,i=1,2,\cdots ,N \end{matrix}\right. { w,bmin21wTws.t.yi(wTxi+b)≥1,i=1,2,⋯,N
这是一个带 N N N个约束的凸优化问题。
(二)优化问题的转化
上述优化问题可以使用拉格朗日乘子法来求解,构建拉格朗日函数:
L ( w , b , λ ) = 1 2 w T w + ∑ i = 1 N λ i ( 1 − y i ( w T x i + b ) ) λ = ( λ 1 λ 2 ⋯ λ N ) T L(w,b,\lambda )=\frac{1}{2}w^{T}w+\sum_{i=1}^{N}\lambda _{i}(1-y_{i}(w^{T}x_{i}+b))\\ \lambda =\begin{pmatrix} \lambda _{1} & \lambda _{2} & \cdots & \lambda _{N} \end{pmatrix}^{T} L(w,b,λ)=21wTw+i=1∑Nλi(1−yi(wTxi+b))λ=(λ1λ2⋯λN)T
然后上述优化问题就可以转换为以下优化问题:
{ m i n w , b m a x λ L ( w , b , λ ) = 1 2 w T w + ∑ i = 1 N λ i ( 1 − y i ( w T x i + b ) ) s . t . λ i ≥ 0 , i = 1 , 2 , ⋯ , N \left\{\begin{matrix} \underset{w,b}{min}\; \underset{\lambda }{max}L(w,b,\lambda )=\frac{1}{2}w^{T}w+\sum_{i=1}^{N}\lambda _{i}(1-y_{i}(w^{T}x_{i}+b))\\ s.t.\; \lambda _{i}\geq 0,i=1,2,\cdots ,N \end{matrix}\right. { w,bminλmaxL(w,b,λ)=21wTw+∑i=1Nλi(1−yi(wTxi+b))s.t.λi≥0,i=1,2,⋯,N
我们可以简单地看一下为什么可以这么转化:
当 1 − y i ( w T x i + b ) > 0 时 , 由 于 λ i ≥ 0 , 所 以 m a x λ L ( w , b , λ ) = ∞ 当 1 − y i ( w T x i + b ) ≤ 0 时 , 由 于 λ i ≥ 0 , 所 以 m a x λ L ( w , b , λ ) = 1 2 w T w 因 此 m i n w , b m a x λ L ( w , b , λ ) = m i n w , b { 1 2 w T w , ∞ } = 1 2 w T w 当1-y_{i}(w^{T}x_{i}+b)>0时,由于\lambda _{i}\geq 0,所以\underset{\lambda }{max}L(w,b,\lambda )=\infty \\ 当1-y_{i}(w^{T}x_{i}+b)\leq 0时,由于\lambda _{i}\geq 0,所以\underset{\lambda }{max}L(w,b,\lambda )=\frac{1}{2}w^{T}w \\ 因此\underset{w,b}{min}\; \underset{\lambda }{max}L(w,b,\lambda )=\underset{w,b}{min}\left \{\frac{1}{2}w^{T}w,\infty \right \}=\frac{1}{2}w^{T}w 当1−yi(wT