一、硬间隔SVM
1. 模型定义
假设有以下数据:
{ ( x i , y i ) } i = 1 N , x i ∈ R p , y i ∈ { + 1 , − 1 } \left\{\left(x_i, y_i\right)\right\}_{i=1}^N, x_i \in \mathbb{R}^p, y_i \in\{+1,-1\} { ( x i , y i ) } i = 1 N , x i ∈ R p , y i ∈ { + 1 , − 1 }
SVM的主要思想是在特征空间中寻找一个最大间隔的超平面 w T x + b w^T x+b w T x + b 实现数据的二分类,SVM属于判别模型。这里的间隔指的是样本点到分离超平面的距离的最小值,用函数 margin ( w , b ) \operatorname{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 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 or ∀ i = 1 , 2 , ⋯ , N
另外最大间隔通过以下方式来表达:
① 首先要明确样本点到超平面的距离公式: d i s t a n c e ( w , b , x i ) = ∣ w T x + b ∣ ∥ w ∥ ( 可以参考初中知识点:点到直线距离 d = ∣ A x + B y + C ∣ A 2 + B 2 ) ② 因此间隔可以表达为: 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 ③ 最大间隔可以表达为: 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 ①\; 首先要明确样本点到超平面的距离公式:\\ distance(w,b,x_{i})=\frac{\left | w^{T}x+b\right |}{\left \| w\right \|}\\ (可以参考初中知识点:点到直线距离d=\frac{\left | Ax+By+C\right |}{\sqrt{A^{2}+B^{2}}})\\ ②\; 因此间隔可以表达为:\\ 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\\ ③\; 最大间隔可以表达为:\\ \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 ① 首先要明确样本点到超平面的距离公式: d i s t an ce ( w , b , x i ) = ∥ w ∥ ∣ ∣ w T x + b ∣ ∣ ( 可以参考初中知识点:点到直线距离 d = A 2 + B 2 ∣ A x + B y + C ∣ ) ② 因此间隔可以表达为: ma r g in ( w , b ) = x i min d i s t an ce ( w , b , x i ) = x i min ∥ w ∥ ∣ ∣ w T x i + b ∣ ∣ , i = 1 , 2 , ⋯ , N ③ 最大间隔可以表达为: w , b ma x ma r g in ( w , b ) = w , b ma x x i min ∥ w ∥ ∣ ∣ w T x i + b ∣ ∣ = w , b ma x x i min ∥ w ∥ y i ( w T x i + 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 , b ma x ma r g in ( w , b ) = w , b ma x x i min ∥ w ∥ y i ( w T x i + b ) , i = 1 , 2 , ⋯ , N s . t . y i ( w T x i + b ) > 0 , i = 1 , 2 , ⋯ , N
上述优化问题还可以进一步转化:
由约束 y i ( w T x i + b ) > 0 , i = 1 , 2 , ⋯ , N 可以得出 ∃ γ > 0 使得 m i n x i y i ( w T x i + b ) = γ 由于确定同一个超平面的 w , b 可以任意放缩, 所以这里的 γ 可以约束等于 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 由约束y_{i}(w^{T}x_{i}+b)>0,i=1,2,\cdots ,N可以得出\\ \exists \gamma >0使得\underset{x_{i}}{min}\; y_{i}(w^{T}x_{i}+b)=\gamma \\ 由于确定同一个超平面的w,b可以任意放缩,\\所以这里的\gamma 可以约束等于1。\\ 则\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 由约束 y i ( w T x i + b ) > 0 , i = 1 , 2 , ⋯ , N 可以得出 ∃ γ > 0 使得 x i min y i ( w T x i + b ) = γ 由于确定同一个超平面的 w , b 可以任意放缩, 所以这里的 γ 可以约束等于 1 。 则 w , b ma x ma r g in ( w , b ) = w , b ma x x i min ∥ w ∥ y i ( w T x i + b ) = w , b ma x ∥ w ∥ 1 = γ = 1 x i min y i ( w T x i + b ) = w , b ma x ∥ w ∥ 1 = w , b min 2 1 w T w i = 1 , 2 , ⋯ , N
这是一个带N个约束的凸优化问题。
2. 优化问题的转化
上述优化问题可以使用拉格朗日乘子法来求解,构建拉格朗日函数:
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 , λ ) = 2 1 w T w + i = 1 ∑ N λ i ( 1 − y i ( w T x i + 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 , b min λ ma x L ( w , b , λ ) = 2 1 w T w + ∑ i = 1 N λ i ( 1 − y i ( w T x i + 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 − y i ( w T x i + b ) > 0 时,由于 λ i ≥ 0 ,所以 λ ma x L ( w , b , λ ) = ∞ 当 1 − y i ( w T x i + b ) ≤ 0 时,由于 λ i ≥ 0 ,所以 λ ma x L ( w , b , λ ) = 2 1 w T w 因此 w , b min λ ma x L ( w , b , λ ) = w , b min { 2 1 w T w , ∞ } = 2 1 w T w
然后使用以下结论继续对该优化问题进行转化:
m i n m a x L 的对偶问题为 m a x m i n L , 有以下结论: m i n m a x L ≥ m a x m i n L 可以简单地认为对于 L 先取最大,再从最大里面取最小就一定大于等于先取最小,再从最小里面取最大 类似于“凤尾” ≥ “鸡头” 如果 m i n m a x L 是凸优化问题,所以 m i n m a x L = m a x m i n L ,为强对偶关系 min\; max\; L的对偶问题为max\; min\; L,有以下结论:\\ min\; max\; L\geq max\; min\; L\\ 可以简单地认为对于L先取最大,再从最大里面取最小就一定大于等于先取最小,再从最小里面取最大\\ 类似于“凤尾”\geq “鸡头”\\ 如果min\; max\; L是凸优化问题,所以min\; max\; L=max\; min\; L,为强对偶关系 min ma x L 的对偶问题为 ma x min L , 有以下结论: min ma x L ≥ ma x min L 可以简单地认为对于 L 先取最大,再从最大里面取最小就一定大于等于先取最小,再从最小里面取最大 类似于 “ 凤尾 ” ≥ “ 鸡头 ” 如果 min ma x L 是凸优化问题,所以 min ma x L = ma x min L ,为强对偶关系
因此该优化问题可以继续转化:
{ m a x λ m i n w , b 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{\lambda }{max}\; \underset{w,b}{min}\;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. { λ ma x w , b min L ( w , b , λ ) = 2 1 w T w + ∑ i = 1 N λ i ( 1 − y i ( w T x i + b )) s . t . λ i ≥ 0 , 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 ② 带约束优化问题 { m i n w , b 1 2 w T w s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯ , N ③ 无约束优化问题 { 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 ④ 无约束优化问题 { m a x λ m i n w , b 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}{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.\\ ②\; 带约束优化问题\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.\\ ③\; 无约束优化问题\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.\\ ④\; 无约束优化问题\left\{\begin{matrix} \underset{\lambda }{max}\; \underset{w,b}{min}\;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 , b ma x ma r g in ( w , b ) = w , b ma x x i min ∥ w ∥ y i ( w T x i + b ) , i = 1 , 2 , ⋯ , N s . t . y i ( w T x i + b ) > 0 , i = 1 , 2 , ⋯ , N ② 带约束优化问题 { w , b min 2 1 w T w s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯ , N ③ 无约束优化问题 { w , b min λ ma x L ( w , b , λ ) = 2 1 w T w + ∑ i = 1 N λ i ( 1 − y i ( w T x i + b )) s . t . λ i ≥ 0 , i = 1 , 2 , ⋯ , N ④ 无约束优化问题 { λ ma x w , b min L ( w , b , λ ) = 2 1 w T w + ∑ i = 1 N λ i ( 1 − y i ( w T x i + b )) s . t . λ i ≥ 0 , i = 1 , 2 , ⋯ , N
3. 模型求解
∂ L ∂ b = ∂ ∑ i = 1 N λ i − ∑ i = 1 N λ i y i ( w T x i + b ) ∂ b = ∂ − ∑ i = 1 N λ i y i b ∂ b = − ∑ i = 1 N λ i y i = 0 因此得出 ∑ i = 1 N λ i y i = 0 \frac{\partial L}{\partial b}=\frac{\partial \sum_{i=1}^{N}\lambda _{i}-\sum_{i=1}^{N}\lambda _{i}y_{i}(w^{T}x_{i}+b)}{\partial b}=\frac{\partial -\sum_{i=1}^{N}\lambda _{i}y_{i}b}{\partial b}=-\sum_{i=1}^{N}\lambda _{i}y_{i}=0\\ 因此得出\sum_{i=1}^{N}\lambda _{i}y_{i}=0 ∂ b ∂ L = ∂ b ∂ ∑ i = 1 N λ i − ∑ i = 1 N λ i y i ( w T x i + b ) = ∂ b ∂ − ∑ i = 1 N λ i y i b = − i = 1 ∑ N λ i y i = 0 因此得出 i = 1 ∑ N λ i y i = 0
将上一步的结果代入 L ( w , b , λ ) L ( w , b , λ ) = 1 2 w T w + ∑ i = 1 N λ i − ∑ i = 1 N λ i y i w T x i − ∑ i = 1 N λ i y i b ⏟ = 0 = 1 2 w T w + ∑ i = 1 N λ i − ∑ i = 1 N λ i y i w T x i ∂ L ∂ w = w − ∑ i = 1 N λ i y i x i = 0 得出 w ∗ = ∑ i = 1 N λ i y i x i 将上一步的结果代入L(w,b,\lambda )\\ L(w,b,\lambda )=\frac{1}{2}w^{T}w+\sum_{i=1}^{N}\lambda _{i}-\sum_{i=1}^{N}\lambda _{i}y_{i}w^{T}x_{i}-\underset{=0}{\underbrace{\sum_{i=1}^{N}\lambda _{i}y_{i}b}} \\ =\frac{1}{2}w^{T}w+\sum_{i=1}^{N}\lambda _{i}-\sum_{i=1}^{N}\lambda _{i}y_{i}w^{T}x_{i} \\ \frac{\partial L}{\partial w}=w-\sum_{i=1}^{N}\lambda _{i}y_{i}x_{i}=0 \\ 得出w^{*}=\sum_{i=1}^{N}\lambda _{i}y_{i}x_{i} 将上一步的结果代入 L ( w , b , λ ) L ( w , b , λ ) = 2 1 w T w + i = 1 ∑ N λ i − i = 1 ∑ N λ i y i w T x i − = 0 i = 1 ∑ N λ i y i b = 2 1 w T w + i = 1 ∑ N λ i − i = 1 ∑ N λ i y i w T x i ∂ w ∂ L = w − i = 1 ∑ N λ i y i x i = 0 得出 w ∗ = i = 1 ∑ N λ i y i x i
这里我们可以看出w ∗ w^{*} w ∗ 是数据的线性组合。
得出m i n w , b L ( w , b , λ ) \underset{w,b}{min}\;L(w,b,\lambda ) w , b min L ( w , b , λ )
接着将上一步的结果代入 L ( w , b , λ ) m i n w , b L ( w , b , λ ) = 1 2 ( ∑ i = 1 N λ i y i x i ) T ( ∑ j = 1 N λ j y j x j ) + ∑ i = 1 N λ i − ∑ i = 1 N λ i y i ( ∑ j = 1 N λ j y j x j ) T x i = 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x i T x j − ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x j T x i + ∑ i = 1 N λ i = 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x i T x j − ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x i T x j + ∑ i = 1 N λ i = − 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x i T x j + ∑ i = 1 N λ i 接着将上一步的结果代入L(w,b,\lambda )\\ \underset{w,b}{min}\;L(w,b,\lambda )=\frac{1}{2}(\sum_{i=1}^{N}\lambda _{i}y_{i}x_{i})^{T}(\sum_{j=1}^{N}\lambda _{j}y_{j}x_{j})+\sum_{i=1}^{N}\lambda _{i}-\sum_{i=1}^{N}\lambda _{i}y_{i}(\sum_{j=1}^{N}\lambda _{j}y_{j}x_{j})^{T}x_{i}\\ =\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}x_{i}^{T}x_{j}-\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}{\color{Red}{x_{j}^{T}x_{i}}}+\sum_{i=1}^{N}\lambda _{i} \\ =\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}x_{i}^{T}x_{j}-\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}{\color{Red}{x_{i}^{T}x_{j}}}+\sum_{i=1}^{N}\lambda _{i} \\ =-\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}x_{i}^{T}x_{j}+\sum_{i=1}^{N}\lambda _{i} 接着将上一步的结果代入 L ( w , b , λ ) w , b min L ( w , b , λ ) = 2 1 ( i = 1 ∑ N λ i y i x i ) T ( j = 1 ∑ N λ j y j x j ) + i = 1 ∑ N λ i − i = 1 ∑ N λ i y i ( j = 1 ∑ N λ j y j x j ) T x i = 2 1 i = 1 ∑ N j = 1 ∑ N λ i λ j y i y j x i T x j − i = 1 ∑ N j = 1 ∑ N λ i λ j y i y j x j T x i + i = 1 ∑ N λ i = 2 1 i = 1 ∑ N j = 1 ∑ N λ i λ j y i y j x i T x j − i = 1 ∑ N j = 1 ∑ N λ i λ j y i y j x i T x j + i = 1 ∑ N λ i = − 2 1 i = 1 ∑ N j = 1 ∑ N λ i λ j y i y j x i T x j + i = 1 ∑ N λ i
因此该优化问题就相当于:
{ m a x λ − 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x i T x j + ∑ i = 1 N λ i , i = 1 , 2 , ⋯ , N s . t . λ i ≥ 0 , i = 1 , 2 , ⋯ , N \left\{\begin{matrix} \underset{\lambda }{max}\; -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}x_{i}^{T}x_{j}+\sum_{i=1}^{N}\lambda _{i},i=1,2,\cdots ,N \\ s.t.\; \lambda _{i}\geq 0,i=1,2,\cdots ,N \end{matrix}\right. { λ ma x − 2 1 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x i T x j + ∑ i = 1 N λ i , i = 1 , 2 , ⋯ , N s . t . λ i ≥ 0 , i = 1 , 2 , ⋯ , N
也就相当于:
{ m i n λ 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x i T x j − ∑ i = 1 N λ i , i = 1 , 2 , ⋯ , N s . t . λ i ≥ 0 , i = 1 , 2 , ⋯ , N \left\{\begin{matrix} \underset{\lambda }{min}\; \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}x_{i}^{T}x_{j}-\sum_{i=1}^{N}\lambda _{i},i=1,2,\cdots ,N\\ s.t.\; \lambda _{i}\geq 0,i=1,2,\cdots ,N \end{matrix}\right. { λ min 2 1 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x i T x j − ∑ i = 1 N λ i , i = 1 , 2 , ⋯ , N s . t . λ i ≥ 0 , i = 1 , 2 , ⋯ , N
首先定义该优化问题的KKT条件:
{ ∂ L ∂ w = 0 , ∂ L ∂ b = 0 λ i ( 1 − y i ( w T x i + b ) ) = 0 λ i ≥ 0 1 − y i ( w T x i + b ) ≤ 0 \left\{\begin{array}{c}
\frac{\partial L}{\partial w}=0, \frac{\partial L}{\partial b}=0 \\
\lambda_i\left(1-y_i\left(w^T x_i+b\right)\right)=0 \\
\lambda_i \geq 0 \\
1-y_i\left(w^T x_i+b\right) \leq 0
\end{array}\right. ⎩ ⎨ ⎧ ∂ w ∂ L = 0 , ∂ b ∂ L = 0 λ i ( 1 − y i ( w T x i + b ) ) = 0 λ i ≥ 0 1 − y i ( w T x i + b ) ≤ 0
该优化问题满足上述KKT条件,这是由于以下定理:
原问题、对偶问题具有强对偶关系 ⇔ \Leftrightarrow ⇔ 满足 K K T K K T KK T 条件
KKT条件中 λ i ( 1 − y i ( w T x i + b ) ) = 0 \lambda_i\left(1-y_i\left(w^T x_i+b\right)\right)=0 λ i ( 1 − y i ( w T x i + b ) ) = 0 也叫松弛互补条件,即 λ i \lambda_i λ i 和 1 − y i ( w T x i + b ) 1-y_i\left(w^T x_i+b\right) 1 − y i ( w T x i + b ) 总有一个为 0。 也就是说只有支持向量(1 − y i ( w T x i + b ) = 0 1-y_i\left(w^T x_i+b\right) = 0 1 − y i ( w T x i + b ) = 0 时的λ)对应的 λ i \lambda_i λ i 才可能有值 ( λ i ≠ 0 ) \left(\lambda_i \neq 0\right) ( λ i = 0 ) ,而其他不在 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 上的样本点对应的 λ i − \lambda_i- λ i − 定为 0 ,该性质可以用来求出 b ∗ b^* b ∗ 。
我们已经根据 ∂ L ∂ w = 0 \frac{\partial L}{\partial w}=0 ∂ w ∂ L = 0 求出了 w ∗ w^* w ∗ ,接下来要求出 b ∗ b^* b ∗ ,我们可以通过求解
min λ 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i > y j x i T x j − ∑ i = 1 N λ i , i = 1 , 2 , ⋯ , N \min _\lambda \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \lambda_i \lambda_j y_i > y_j x_i^T x_j-\sum_{i=1}^N \lambda_i, i=1,2, \cdots, N λ min 2 1 i = 1 ∑ N j = 1 ∑ N λ i λ j y i > y j x i T x j − i = 1 ∑ N λ i , i = 1 , 2 , ⋯ , N
来得出各个 λ i \lambda_i λ i , 而这个过程也是支持向量机算法计算量最大的地方,这里我们就不展示过程了。
找出求解得到的不等于 0 的 λ i \lambda_i λ i ,也就是支持向量对应的 λ i \lambda_i λ i ,假设其中一个支持向量为 ( x k , y k ) \left(x_k, y_k\right) ( x k , y k ) ,则有 1 − y k ( w T x k + b ) = 0 1-y_k\left(w^T x_k+b\right)=0 1 − y k ( w T x k + b ) = 0 ,最终可以解得:
b ∗ = y k − w T x k = y k − ∑ i = 1 N λ i y i x i T x k b^*=y_k-w^T x_k=y_k-\sum_{i=1}^N \lambda_i y_i x_i^T x^k b ∗ = y k − w T x k = y k − i = 1 ∑ N λ i y i x i T x k
二、软间隔SVM
我们的训练数据通常不是理想的线性可分,有时甚至是线性不可分的数据。对于存在噪声的一些数据,我们应该允许一点分类错误,因此我们需要对目标函数进行一些调整:
m i n w , b 1 2 w T w + l o s s \underset {w,b}{min}\; \frac{1}{2}w^{T}w+loss w , b min 2 1 w T w + l oss
1. 使用误分类点的个数作为loss
l o s s = ∑ i = 1 N I { y i ( w T x i + b ) < 1 } loss=\sum_{i=1}^{N}I\left \{y_{i}(w^{T}x_{i}+b)<1\right \} l oss = ∑ i = 1 N I { y i ( w T x i + b ) < 1 }
显然使用的指示函数是不连续的,不利于求解,所以不使用这种loss函数。
2. 使用距离作为loss
如果 y i ( w T x i + b ) ≥ 1 , l o s s = 0 如果 y i ( w T x i + b ) < 1 , l o s s = 1 − y i ( w T x i + b ) } l o s s = m a x { 0 , 1 − y i ( w T x i + b ) } \left.\begin{matrix} 如果y_{i}(w^{T}x_{i}+b)\geq 1,loss=0\\ 如果y_{i} (w^{T}x_{i}+b)< 1,loss=1-y_{i}(w^{T}x_{i}+b)
\end{matrix}\right\}loss=max\left \{0,1-y_{i}(w^{T}x_{i}+b)\right \} 如果 y i ( w T x i + b ) ≥ 1 , l oss = 0 如果 y i ( w T x i + b ) < 1 , l oss = 1 − y i ( w T x i + b ) } l oss = ma x { 0 , 1 − y i ( w T x i + b ) }
该函数为合页损失函数(hinge loss),令z = y i ( w T x i + b ) z=y_{i}(w^{T}x_{i}+b) z = y i ( w T x i + b ) ,则l o s s loss l oss 对z z z 的图像如下:
3. 软间隔SVM的优化问题
{ min w , b 1 2 w T w + C ∑ i = 1 N max { 0 , 1 − > y i ( w T x i + b ) } s.t. y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯ , N \left\{\begin{array}{c}
\min _{w, b} \frac{1}{2} w^{T} w+C \sum_{i=1}^{N} \max \left\{0,1->y_{i}\left(w^{T} x_{i}+b\right)\right\} \\
\text { s.t. } y_{i}\left(w^{T} x_{i}+b\right) \geq 1, i=1,2, \cdots, N
\end{array}\right. { min w , b 2 1 w T w + C ∑ i = 1 N max { 0 , 1 − > y i ( w T x i + b ) } s.t. y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯ , N
引入 ξ i = 1 − y i ( w T x i + b ) , ξ i ≥ 0 , i = 1 , 2 , ⋯ , N \xi_i=1-y_i\left(w^T x_i+b\right), \xi_i \geq 0, i=1,2, \cdots, N ξ i = 1 − y i ( w T x i + b ) , ξ i ≥ 0 , i = 1 , 2 , ⋯ , N ,则该优化问题转化为:
{ min w , b 1 2 w T w + C ∑ i = 1 N ξ i s.t. y i ( w T x i + b ) ≥ 1 − ξ i , i = 1 , 2 , ⋯ , N ξ i ≥ 0 \left\{\begin{array}{c}
\min _{w, b} \frac{1}{2} w^{T} w+C \sum_{i=1}^{N} \xi_{i} \\
\text { s.t. } y_{i}\left(w^{T} x_{i}+b\right) \geq 1-\xi_{i}, i=1,2, \cdots, N \\
\xi_{i} \geq 0
\end{array}\right. ⎩ ⎨ ⎧ min w , b 2 1 w T w + C ∑ i = 1 N ξ i s.t. y i ( w T x i + b ) ≥ 1 − ξ i , i = 1 , 2 , ⋯ , N ξ i ≥ 0
上面的式子中,常数 C C C 可以看作允许的错误水平,同时上式为了进一步消除 max \max max 符号,对数据集中的每一个观测,我们可以认为其大部分满足约束,但是其中部分违反约束,因此这部分约束变成 y i ( w T x i + b ) ≥ 1 − ξ i y_i\left(w^T x_i+b\right) \geq 1-\xi_i y i ( w T x i + b ) ≥ 1 − ξ i (该部分将ξ i \xi_i ξ i 带入,也可以看作2 y i ( w T x i + b ) ≥ 2 2y_i\left(w^T x_i+b\right) \geq 2 2 y i ( w T x i + b ) ≥ 2 ,恒成立) ,并且注意此约束其实与引入的ξ i \xi_i ξ i 定义相矛盾,这是因为引入它本来就是为了放松条件,之前的约束作废。
软间隔SVM也是使用拉格朗日乘子法进行求解。
三、小结
分类问题在很长一段时间都依赖 SVM,对于严格可分的数据集,Hard-margin SVM 选定一个超平面,保证所有数据到这个超平面的距离最大,对这个平面施加约束,固定 y i ( w T x i + b ) = 1 y_i(w^Tx_i+b)=1 y i ( w T x i + b ) = 1 ,得到了一个凸优化问题并且所有的约束条件都是仿射函数,于是满足 Slater 条件,将这个问题变换成为对偶的问题,可以得到等价的解,并求出约束参数:
max λ − 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x i T x j + ∑ i = 1 N λ i , s . t . λ i ≥ 0 \max_{\lambda}-\frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum\limits_{i=1}^N\lambda_i,\ s.t.\ \lambda_i\ge0 λ max − 2 1 i = 1 ∑ N j = 1 ∑ N λ i λ j y i y j x i T x j + i = 1 ∑ N λ i , s . t . λ i ≥ 0
对需要的超平面参数的求解采用强对偶问题的 KKT 条件进行。
∂ L ∂ w = 0 , ∂ L ∂ b = 0 λ k ( 1 − y k ( w T x k + b ) ) = 0 ( slackness complementary ) λ i ≥ 0 1 − y i ( w T x i + b ) ≤ 0 \begin{array}{l}
\frac{\partial L}{\partial w}=0, \frac{\partial L}{\partial b}=0 \\
\lambda_{k}\left(1-y_{k}\left(w^{T} x_{k}+b\right)\right)=0(\text { slackness complementary }) \\
\lambda_{i} \geq 0 \\
1-y_{i}\left(w^{T} x_{i}+b\right) \leq 0
\end{array} ∂ w ∂ L = 0 , ∂ b ∂ L = 0 λ k ( 1 − y k ( w T x k + b ) ) = 0 ( slackness complementary ) λ i ≥ 0 1 − y i ( w T x i + b ) ≤ 0
解就是:
w ^ = ∑ i = 1 N λ i y i x i b ^ = y k − w T x k = y k − ∑ i = 1 N λ i y i x i T x k , ∃ k , 1 − y k ( w T x k + b ) = 0 \hat{w}=\sum\limits_{i=1}^N\lambda_iy_ix_i\\
\hat{b}=y_k-w^Tx_k=y_k-\sum\limits_{i=1}^N\lambda_iy_ix_i^Tx_k,\exist k,1-y_k(w^Tx_k+b)=0 w ^ = i = 1 ∑ N λ i y i x i b ^ = y k − w T x k = y k − i = 1 ∑ N λ i y i x i T x k , ∃ k , 1 − y k ( w T x k + b ) = 0
当允许一点错误的时候,可以在 Hard-margin SVM 中加入错误项。用 Hinge Function 表示错误项的大小,得到:
a r g m i n w , b 1 2 w T w + C ∑ i = 1 N ξ i s . t . y i ( w T x i + b ) ≥ 1 − ξ i , ξ i ≥ 0 , i = 1 , 2 , ⋯ , N \mathop{argmin}_{w,b}\frac{1}{2}w^Tw+C\sum\limits_{i=1}^N\xi_i\ s.t.\ y_i(w^Tx_i+b)\ge1-\xi_i,\xi_i\ge0,i=1,2,\cdots,N a r g min w , b 2 1 w T w + C i = 1 ∑ N ξ i s . t . y i ( w T x i + b ) ≥ 1 − ξ i , ξ i ≥ 0 , i = 1 , 2 , ⋯ , N
对于完全不可分的问题,我们采用特征转换的方式,在 SVM 中,我们引入正定核函数来直接对内积进行变换,只要这个变换满足对称性和正定性,那么就可以用做核函数。
“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情 ”