【南瓜书ML】(task5)支持向量机的数学推导(更新ing)

学习总结

SVM中的求解过程:

  • 拉格朗日乘子法:把约束条件搞到目标函数里面去。
  • KKT条件:把约束条件为不等式的,转变为约束条件为等式。
  • 拉格朗日对偶:把不容易解决的问题,转变为容易解决的对偶问题。
  • 核函数:把本来线性不可分的点,投射到更高维度上去,使其变得线性可分。

一、间隔与支持向量

支持向量机SVM是20世纪90年代在计算机界发展起来的一种分类算法,在许多问题中都被证明有较好的效果,被认为是适应性最广的算法之一。
在这里插入图片描述
支持向量机的基本原理:如上图,白色和蓝色的点各为一类,如果数据本身是线性可分的,让两类的点分开的超平面有很多,但现在我们的目标是找到一个【最大间隔超平面】,即该分割平面距离最近的观测点最远:

根据距离超平米那最近的点,只要同时缩放w和b可以得到: w T x 1 + b = 1 w^Tx_1 + b = 1 wTx1+b=1 w T x 2 + b = − 1 w^Tx_2+b = -1 wTx2+b=1,因此:

w T x 1 + b = 1 w T x 2 + b = − 1 ( w T x 1 + b ) − ( w T x 2 + b ) = 2 w T ( x 1 − x 2 ) = 2 w T ( x 1 − x 2 ) = ∥ w ∥ 2 ∥ x 1 − x 2 ∥ 2 cos ⁡ θ = 2 ∥ x 1 − x 2 ∥ 2 cos ⁡ θ = 2 ∥ w ∥ 2 d 1 = d 2 = ∥ x 1 − x 2 ∥ 2 cos ⁡ θ 2 = 2 ∥ w ∥ 2 2 = 1 ∥ w ∥ 2 d 1 + d 2 = 2 ∥ w ∥ 2 \begin{array}{l} w^{T} x_{1}+b=1 \\ w^{T} x_{2}+b=-1 \\ \left(w^{T} x_{1}+b\right)-\left(w^{T} x_{2}+b\right)=2 \\ w^{T}\left(x_{1}-x_{2}\right)=2 \\ \qquad \begin{array}{l} w^{T}\left(x_{1}-x_{2}\right)=\|w\|_{2}\left\|x_{1}-x_{2}\right\|_{2} \cos \theta=2 \\ \left\|x_{1}-x_{2}\right\|_{2} \cos \theta=\frac{2}{\|w\|_{2}} \end{array} \\ \qquad \begin{array}{l} d_{1}=d_{2}=\frac{\left\|x_{1}-x_{2}\right\|_{2} \cos \theta}{2}=\frac{\frac{2}{\|w\|_{2}}}{2}=\frac{1}{\|w\|_{2}} \\ d_{1}+d_{2}=\frac{2}{\|w\|_{2}} \end{array} \end{array} wTx1+b=1wTx2+b=1(wTx1+b)(wTx2+b)=2wT(x1x2)=2wT(x1x2)=w2x1x22cosθ=2x1x22cosθ=w22d1=d2=2x1x22cosθ=2w22=w21d1+d2=w22

由此可知道SVM模型的具体形式:
min ⁡ w , b 1 2 ∥ w ∥ 2  s.t.  y ( i ) ( w T x ( i ) + b ) ≥ 1 , i = 1 , … , n \begin{aligned} \min _{w, b} & \frac{1}{2}\|w\|^{2} \\ \text { s.t. } & y^{(i)}\left(w^{T} x^{(i)}+b\right) \geq 1, \quad i=1, \ldots, n \end{aligned} w,bmin s.t. 21w2y(i)(wTx(i)+b)1,i=1,,n

几个概念:
(1)支持向量:距离超平面最近的几个训练样本满足下面条件。
假设超平面 ( w , b ) (w, b) (w,b) 能将训练样本正确分类, 即对于 ( x i , y i ) ∈ D \left(x_{i}, y_{i}\right) \in D (xi,yi)D, 若 y i = + 1 y_{i}=+1 yi=+1, 则有 w T x i + w^{T} x_{i}+ wTxi+ b > 0 b>0 b>0, 若 y i = − 1 y_{i}=-1 yi=1, 则有 w T x i + b < 0 w^{T} x_{i}+b<0 wTxi+b<0, 令:
{ w T x i + b ⩾ + 1 , y i = + 1 w T x i + b ⩽ − 1 , y i = − 1 \begin{cases}w^{T} x_{i}+b \geqslant+1, & y_{i}=+1 \\ w^{T} x_{i}+b \leqslant-1, & y_{i}=-1\end{cases} { wTxi+b+1,wTxi+b1,yi=+1yi=1

(2)间隔:两个异类支持向量超平面的距离之和 γ = 2 ∥ w ∥ \gamma=\dfrac{2}{\|w\|} γ=w2

(3)SVM的目标函数:找到最大间隔的划分超平面, 需要求解参数 w w w b b b 使得 γ \gamma γ 最大, 目标函数如下:
min ⁡ w , b 1 2 ∥ w ∥ 2  s.t.  y i ( w T x i + b ) ⩾ 1 , i = 1 , 2 , … , m \begin{array}{lc} \min _{w, b} & \dfrac{1}{2}\|w\|^{2} \\ \text { s.t. } & y_{i}\left(w^{T} x_{i}+b\right) \geqslant 1, \quad i=1,2, \ldots, m \end{array} minw,b s.t. 21w2yi(wTxi+b)1,i=1,2,,m

二、转为对偶问题后的求解

可以将上面SVM目标形式中的约束条件写为: g i ( w ) = − y ( i ) ( w T x ( i ) + b ) + 1 ≤ 0 g_{i}(w)=-y^{(i)}\left(w^{T} x^{(i)}+b\right)+1 \leq 0 gi(w)=y(i)(wTx(i)+b)+10
可以将优化问题拉格朗日化
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i [ y ( i ) ( w T x ( i ) + b ) − 1 ] \mathcal{L}(w, b, \alpha)=\frac{1}{2}\|w\|^{2}-\sum_{i=1}^{n} \alpha_{i}\left[y^{(i)}\left(w^{T} x^{(i)}+b\right)-1\right] L(w,b,α)=21w2i=1nαi[y(i)(wTx(i)+b)1]
因此:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i [ y ( i ) ( w T x ( i ) + b ) − 1 ] \mathcal{L}(w, b, \alpha)=\frac{1}{2}\|w\|^{2}-\sum_{i=1}^{n} \alpha_{i}\left[y^{(i)}\left(w^{T} x^{(i)}+b\right)-1\right] L(w,b,α)=21w2i=1nαi[y(i)(wTx(i)+b)1]欲构造 d u a l dual dual 问题, 首先求拉格朗日化的问题中 w \mathrm{w} w b \mathrm{b} b 的值, 对 w \mathrm{w} w 求梯度, 令梯度为 0, 可求得 w:
对 b 求梯度, 令梯度为 0, 可得:
∂ ∂ b L ( w , b , α ) = ∑ i = 1 n α i y ( i ) = 0 \frac{\partial}{\partial b} \mathcal{L}(w, b, \alpha)=\sum_{i=1}^{n} \alpha_{i} y^{(i)}=0 bL(w,b,α)=i=1nαiy(i)=0

w \mathrm{w} w 带入拉格朗日化的原问题可得
L ( w , b , α ) = ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n y ( i ) y ( j ) α i α j ( x ( i ) ) T x ( j ) − b ∑ i = 1 n α i y ( i ) L ( w , b , α ) = ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n y ( i ) y ( j ) α i α j ( x ( i ) ) T x ( j ) \begin{array}{l} \mathcal{L}(w, b, \alpha)=\sum_{i=1}^{n} \alpha_{i}-\frac{1}{2} \sum_{i, j=1}^{n} y^{(i)} y^{(j)} \alpha_{i} \alpha_{j}\left(x^{(i)}\right)^{T} x^{(j)}-b \sum_{i=1}^{n} \alpha_{i} y^{(i)} \\ \mathcal{L}(w, b, \alpha)=\sum_{i=1}^{n} \alpha_{i}-\frac{1}{2} \sum_{i, j=1}^{n} y^{(i)} y^{(j)} \alpha_{i} \alpha_{j}\left(x^{(i)}\right)^{T} x^{(j)} \end{array} L(w,b,α)=i=1nαi21i,j=1ny(i)y(j)αiαj(x(i))Tx(j)bi=1nαiy(i)L(w,b,α)=i=1nαi21i,j=1ny(i)y(j)αiαj(x(i))Tx(j)
因此:
 对拉格朗日化的原问题求最小值, 得到了  w  , 现在可以构造 dual 问题  max ⁡ α W ( α ) = ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n y ( i ) y ( j ) α i α j ⟨ x ( i ) , x ( j ) ⟩  s.t.  α i ≥ 0 , i = 1 , … , n ∑ i = 1 n α i y ( i ) = 0  可以推导出 b的值为:  b ∗ = − max ⁡ i : y ( i ) = − 1 w ∗ T x ( i ) + min ⁡ i : y ( i ) = 1 w ∗ T x ( i ) 2  SVM的决策子如下,值的符号为类别.  w T x + b = ( ∑ i = 1 n α i y ( i ) x ( i ) ) T x + b = ∑ i = 1 n α i y ( i ) ⟨ x ( i ) , x ⟩ + b \begin{aligned} &\text { 对拉格朗日化的原问题求最小值, 得到了 } \mathrm{w} \text { , 现在可以构造 dual 问题 }\\ &\begin{aligned} \max _{\alpha} & W(\alpha)=\sum_{i=1}^{n} \alpha_{i}-\frac{1}{2} \sum_{i, j=1}^{n} y^{(i)} y^{(j)} \alpha_{i} \alpha_{j}\left\langle x^{(i)}, x^{(j)}\right\rangle \\ \text { s.t. } & \alpha_{i} \geq 0, \quad i=1, \ldots, n \\ & \sum_{i=1}^{n} \alpha_{i} y^{(i)}=0 \end{aligned}\\ &\text { 可以推导出 b的值为: } b^{*}=-\frac{\max _{i: y^{(i)}=-1} w^{* T} x^{(i)}+\min _{i: y^{(i)}=1} w^{* T} x^{(i)}}{2}\\ &\begin{array}{r} \text { SVM的决策子如下,值的符号为类别. } \\ \qquad w^{T} x+b=\left(\sum_{i=1}^{n} \alpha_{i} y^{(i)} x^{(i)}\right)^{T} x+b=\sum_{i=1}^{n} \alpha_{i} y^{(i)}\left\langle x^{(i)}, x\right\rangle+b \end{array} \end{aligned}  对拉格朗日化的原问题求最小值得到了 w , 现在可以构造 dual 问题 αmax s.t. W(α)=i=1nαi21i,j=1ny(i)y(j)αiαjx(i),x(j)αi0,i=1,,ni=1nαiy(i)=0 可以推导出 b的值为b=2maxi:y(i)=1wTx(i)+mini:y(i)=1wTx(i) SVM的决策子如下,值的符号为类别wTx+b=(i=1nαiy(i)x(i))Tx+b=i=1nαiy(i)x(i),x+b

Reference

[1] 陈希孺编著.概率论与数理统计[M].中国科学技术大学出版社,2009
[2] B 站视频教程:https://www.bilibili.com/video/BV1Mh411e7VU
[3] 线上南瓜书:https://datawhalechina.github.io/pumpkin-book/#/chapter1/chapter1
[4] 开源地址:https://github.com/datawhalechina/pumpkin-book
[5] 【数学基础】KKT条件
[6] 支持向量机SVM的通俗介绍
[7] SVM(三):对偶问题最直白解释
[8] 对偶问题

猜你喜欢

转载自blog.csdn.net/qq_35812205/article/details/126022309