西瓜书第6章之SVM_1


代码

SVM基本形式

在这里插入图片描述

d = ∣ x − x 1 ∣ cos ⁡ ( θ ) = ∣ x − x 1 ∣ ∣ ( x − x 1 ) w ∣ ∣ x − x 1 ∣ ∣ w ∣ = ∣ w x − w x 1 ∣ ∣ w ∣ = ∣ w x + b ∣ ∣ w ∣ d = |x-x_1|\cos(\theta)=|x-x_1|\dfrac{|(x-x_1)w|}{|x-x_1||w|}=\dfrac{|wx-wx_1|}{|w|}=\dfrac{|wx+b|}{|w|} d=xx1cos(θ)=xx1xx1w(xx1)w=wwxwx1=wwx+b
L = 1 ∣ w ∣ ∣ w x + b ∣ L = \dfrac{1}{|w|} |wx+b| L=w1wx+b
去绝对值
L = 1 ∣ w ∣ ∑ n = 1 N y n ( w x n + b ) L =\dfrac{1}{|w|} \sum_{n=1}^{N} y_n(wx_n+b) L=w1n=1Nyn(wxn+b)

y n ( w x n + b ) = 1 y_n(wx_n+b)=1 yn(wxn+b)=1,则原式可变为 L = m a x w , b m i n n 1 ∣ w ∣ L =max_{w,b} min_{n} \frac{1}{|w|} L=maxw,bminnw1 s . t . y n ( w x n + b ) = 1 s.t. y_n(wx_n+b)=1 s.t.yn(wxn+b)=1

变化为求最小值: L = m i n w , b m a x n 1 2 w T w L = min_{w,b} max_{n} \frac{1}{2}w^Tw L=minw,bmaxn21wTw s . t . y n ( w x n + b ) = 1 s.t. y_n(wx_n+b)=1 s.t.yn(wxn+b)=1
那么这个就是SVM的基本形式,即取最近的点距离最大。

拉格朗日乘子式

使用拉格朗日乘子式好处:1、对偶问题更容易求解。2、引入核函数(下面式子的x替换为z代表核变化)。
在这里插入图片描述

h表示约束函数,f表示优化函数。
h在A处的梯度与f在A处的梯度并不一致,所以A并非是最优解。因为h在A处的梯度除了与f在A处的梯度一致的分量外,还有一个向B运动的分量,然后沿此方向继续寻找最优解。当到达B处时,发现h与f在B处的梯度方向是一致的,那么B就是最优解。也就存在 λ h ( x ) + f ( x ) = 0 ( λ ! = 0 , 最 优 解 处 求 导 为 0 ) \lambda h(x)+f(x)=0(\lambda !=0,最优解处求导为0) λh(x)+f(x)=0(λ!=00)。因此定义拉格朗日函数为 L = f ( x ) + λ h ( x ) L=f(x)+\lambda h(x) L=f(x)+λh(x)
已知h(x)<=0。
当h(x)<0时,那么最优解在f(x)最中心处,等价于 λ \lambda λ=0可以使用梯度下降等方法求出最优解。
当h(x)=0时,因为h(x)与f(x)的梯度方向相反,就存在 λ \lambda λ>0,使得 λ h ( x ) + f ( x ) = 0 \lambda h(x)+f(x)=0 λh(x)+f(x)=0
对以上两步总结为 λ h ( x ) = 0 \lambda h(x)=0 λh(x)=0
K K T { h ( x ) ≤ 0 λ ≥ 0 λ h ( x ) = 0 KKT\begin{cases} h(x)\leq 0\\ \lambda \geq 0 \\ \lambda h(x) = 0 \end{cases} KKTh(x)0λ0λh(x)=0
以上便是拉格朗日乘子式的过程。

对偶

L = m i n w , b m a x n 1 2 w T w L = min_{w,b} max_{n} \frac{1}{2}w^Tw L=minw,bmaxn21wTw s . t . y n ( w x n + b ) = 1 s.t. y_n(wx_n+b)=1 s.t.yn(wxn+b)=1

因为最大数值中最小的那个值是大于等于最小数值中最大的那个值,即

m i n w , b m a x n L ≥ m a x n m i n w , b L min_{w,b} max_{n}L \geq max_{n} min_{w,b}L minw,bmaxnLmaxnminw,bL

因此SVM的优化函数可表达为 L = m a x λ n m i n w , b 1 2 w T w L = max_{\lambda_n} min_{w,b} \frac{1}{2}w^Tw L=maxλnminw,b21wTw s . t . y n ( w x n + b ) = 1 s.t. y_n(wx_n+b)=1 s.t.yn(wxn+b)=1

根据拉格朗日乘子式可得:
L = m a x λ n m i n w , b 1 2 w T w + ∑ n = 1 N λ n ( 1 − y n ( w T z n + b ) ) ( 式 1 ) L = max_{\lambda_n} min_{w,b} \frac{1}{2}w^Tw + \sum_{n=1}^{N} \lambda_n (1-y_n(w^T z_n + b))(式1) L=maxλnminw,b21wTw+n=1Nλn(1yn(wTzn+b))(1)
s . t . { λ n ≥ 0 1 − y n ( w T z n + b ) ≤ 0 λ n ( 1 − y n ( w T z + b ) ) = 0 s.t. \begin{cases} \lambda_n \geq 0 \\ 1 - y_n(w^T z_n + b) \leq 0 \\ \lambda_n (1- y_n(w^T z + b)) = 0 \end{cases} s.t.λn01yn(wTzn+b)0λn(1yn(wTz+b))=0
∂ L ∂ b = ∑ n = 1 N λ n y n = 0 ( 式 2 ) \dfrac{\partial L}{\partial b} = \sum_{n=1}^{N}\lambda_n y_n = 0(式2) bL=n=1Nλnyn=0(2)
将式2带入式1中得:
L = m a x λ n m i n w , b 1 2 w T w + ∑ n = 1 N λ n ( 1 − y n ( w T z n ) ) ( 式 2 ) L = max_{\lambda_n} min_{w,b} \frac{1}{2}w^Tw + \sum_{n=1}^{N} \lambda_n (1-y_n(w^T z_n))(式2) L=maxλnminw,b21wTw+n=1Nλn(1yn(wTzn))(2)

∂ L ∂ w = w − ∑ n = 1 N λ n y n z n = 0 ( 式 3 ) \dfrac{\partial L}{\partial w} = w - \sum_{n=1}^{N}\lambda_ny_nz_n = 0(式3) wL=wn=1Nλnynzn=0(3)
将式3带入式1中得:
L = m a x λ n m i n w , b − 1 2 ∑ n = 1 N ∑ m = 1 M λ n λ m y n y m z n z m + ∑ n = 1 N λ n L = max_{\lambda_n} min_{w,b} -\frac{1}{2} \sum_{n=1}^{N} \sum_{m=1}^{M}\lambda_n \lambda_m y_n y_m z_n z_m + \sum_{n=1}^{N}\lambda_n L=maxλnminw,b21n=1Nm=1Mλnλmynymznzm+n=1Nλn
即:
L = m a x λ n − 1 2 ∑ n = 1 N ∑ m = 1 M λ n λ m y n y m z n z m + ∑ n = 1 N λ n L = max_{\lambda_n}-\frac{1}{2} \sum_{n=1}^{N} \sum_{m=1}^{M}\lambda_n \lambda_m y_n y_m z_n z_m + \sum_{n=1}^{N}\lambda_n L=maxλn21n=1Nm=1Mλnλmynymznzm+n=1Nλn
转换成最小化得:
L = m i n λ n − 1 2 ∑ n = 1 N ∑ m = 1 M λ n λ m y n y m z n z m + ∑ n = 1 N λ n L = min_{\lambda_n}-\frac{1}{2} \sum_{n=1}^{N} \sum_{m=1}^{M}\lambda_n \lambda_m y_n y_m z_n z_m + \sum_{n=1}^{N}\lambda_n L=minλn21n=1Nm=1Mλnλmynymznzm+n=1Nλn
s . t . { λ n ≥ 0 1 − y n ( w T z n + b ) ≤ 0 λ n ( 1 − y n ( w T z n + b ) ) = 0 ∑ n = 1 N λ n y n = 0 ( 对 b 求 导 得 到 ) w = ∑ n = 1 N λ n y n z n ( 对 w 求 导 得 到 ) s.t. \begin{cases} \lambda_n \geq 0 \\ 1 - y_n(w^T z_n + b) \leq 0 \\ \lambda_n (1- y_n(w^T z_n + b)) = 0 \\ \sum_{n=1}^{N}\lambda_n y_n=0(对b求导得到) \\ w = \sum_{n=1}^{N}\lambda_n y_n z_n(对w求导得到) \end{cases} s.t.λn01yn(wTzn+b)0λn(1yn(wTzn+b))=0n=1Nλnyn=0(b)w=n=1Nλnynzn(w)
λ n = 0 时 \lambda_n = 0时 λn=0,根据 λ n ( 1 − y n ( w T z n + b ) ) = 0 \lambda_n (1- y_n(w^T z_n + b)) = 0 λn(1yn(wTzn+b))=0可得到 1 − y n ( w T z n + b ) ≠ 0 1 - y_n(w^T z_n + b) \neq 0 1yn(wTzn+b)̸=0,而又因为 1 − y n ( w T z n + b ) ≤ 0 1 - y_n(w^T z_n + b) \leq 0 1yn(wTzn+b)0,所以 1 − y n ( w T z n + b ) &lt; 0 1 - y_n(w^T z_n + b) &lt; 0 1yn(wTzn+b)<0,即该点到分类超平面距离小于1。

λ n &gt; 0 \lambda_n&gt;0 λn>0时,根据 λ n ( 1 − y n ( w T z n + b ) ) = 0 \lambda_n (1- y_n(w^T z_n + b)) = 0 λn(1yn(wTzn+b))=0推出 1 = y n ( w T z n + b ) 1= y_n(w^T z_n + b) 1=yn(wTzn+b),那么这个点就是支持向量点。

软间隔(避免过拟合)

增加一个 ζ \zeta ζ代表犯错程度。当 ζ \zeta ζ=0时,没有犯错。
那么优化函数可以表达成:
L = m a x λ n m i n w , b 1 2 w T w + C ∑ n = 1 N ζ n L = max_{\lambda_n} min_{w,b} \frac{1}{2}w^Tw + C\sum_{n=1}^{N} \zeta_n L=maxλnminw,b21wTw+Cn=1Nζn
s . t . { ζ n ≥ 0 y n ( w T z n + b ) ≥ 1 − ζ n s.t. \begin{cases} \zeta_n \geq 0 \\ y_n(w^T z_n + b) \geq 1 - \zeta_n \\ \end{cases} s.t.{ζn0yn(wTzn+b)1ζn
使用拉格朗日乘子式:
L = m a x λ n m i n w , b 1 2 w T w + C ∑ n = 1 N ζ n − ∑ n = 1 N λ n ( 1 − ζ n − y n ( w T z n + b ) ) + ∑ n = 1 N β n ( − ζ n ) ( 式 4 ) L = max_{\lambda_n} min_{w,b} \frac{1}{2}w^Tw + C\sum_{n=1}^{N} \zeta_n - \sum_{n=1}^{N} \lambda_n (1-\zeta_n - y_n(w^T z_n + b)) + \sum_{n=1}^{N} \beta_n (-\zeta_n)(式4) L=maxλnminw,b21wTw+Cn=1Nζnn=1Nλn(1ζnyn(wTzn+b))+n=1Nβn(ζn)(4)

∂ L ∂ ζ n = 0 = C − λ n − β n \dfrac{\partial L}{\partial \zeta_n} = 0 = C - \lambda_n - \beta_n ζnL=0=Cλnβn
推出:
C − λ n = β n ≥ 0 ( 式 5 ) C - \lambda_n = \beta_n \geq 0(式5) Cλn=βn0(5)
因此:
0 ≤ λ n ≤ C 0 \leq \lambda_n \leq C 0λnC
将式5带入式4中得:
L = m a x λ n m i n w , b 1 2 w T w − ∑ n = 1 N λ n ( 1 − y n ( w T z n + b ) ) ( 式 6 ) L = max_{\lambda_n} min_{w,b} \frac{1}{2}w^Tw - \sum_{n=1}^{N} \lambda_n (1-y_n(w^T z_n + b))(式6) L=maxλnminw,b21wTwn=1Nλn(1yn(wTzn+b))(6)
与式1一致。
同样的式6分别对w和b求导,得到
∑ n = 1 N λ n y n = 0 w = ∑ n = 1 N λ n y n z n \sum_{n=1}^{N}\lambda_n y_n=0\\ w = \sum_{n=1}^{N}\lambda_n y_n z_n n=1Nλnyn=0w=n=1Nλnynzn
代入到式6中得到:
L = m i n λ n 1 2 ∑ n = 1 N ∑ m = 1 M λ n λ m y n y m z n z m − ∑ n = 1 N λ n L = min_{\lambda_n}\frac{1}{2} \sum_{n=1}^{N} \sum_{m=1}^{M}\lambda_n \lambda_m y_n y_m z_n z_m - \sum_{n=1}^{N}\lambda_n L=minλn21n=1Nm=1Mλnλmynymznzmn=1Nλn
s . t . { 0 ≤ λ n ≤ C y n ( w T z n + b ) ≥ 1 − ζ n λ n ( 1 − ζ n − y n ( w T z n + b ) ) = 0 ∑ n = 1 N λ n y n = 0 w = ∑ n = 1 N λ n y n z n β n ( − ζ n ) = ( C − λ n ) ζ n = 0 s.t. \begin{cases} 0 \leq \lambda_n \leq C \\ y_n(w^T z_n + b) \geq 1 - \zeta_n \\ \lambda_n (1- \zeta_n - y_n(w^T z_n + b)) = 0 \\ \sum_{n=1}^{N}\lambda_n y_n=0 \\ w = \sum_{n=1}^{N}\lambda_n y_n z_n \\ \beta_n (-\zeta_n) = (C - \lambda_n)\zeta_n = 0 \end{cases} s.t.0λnCyn(wTzn+b)1ζnλn(1ζnyn(wTzn+b))=0n=1Nλnyn=0w=n=1Nλnynznβn(ζn)=(Cλn)ζn=0
求解w和b:
w = ∑ n = 1 N λ n y n z n w = \sum_{n=1}^{N}\lambda_ny_nz_n w=n=1Nλnynzn
0 ≤ λ n ≤ C 0 \leq \lambda_n \leq C 0λnC即支持向量,那么因为 ( C − λ n ) ζ n = 0 (C - \lambda_n)\zeta_n = 0 (Cλn)ζn=0,所以推出 ζ n \zeta_n ζn=0。对 λ n ( 1 − ζ n − y n ( w T z + b ) ) = 0 \lambda_n (1- \zeta_n - y_n(w^T z + b)) = 0 λn(1ζnyn(wTz+b))=0推出 y n ( w T z n + b ) = 1 y_n(w^T z_n + b)=1 yn(wTzn+b)=1。这个点就是支持向量点,并且 y i 2 = 1 y_i^2 = 1 yi2=1。得出

b = y s − w T z s = y s − ( ∑ n = 1 N λ n y n z n ) T z s b = y_s - w^T z_s = y_s - (\sum_{n=1}^{N}\lambda_n y_n z_n)^T z_s b=yswTzs=ys(n=1Nλnynzn)Tzs
其中s表示支持向量点。
λ n = C \lambda_n = C λn=C时,根据 ( C − λ n ) ζ n = 0 (C - \lambda_n)\zeta_n = 0 (Cλn)ζn=0推出 ζ n ≠ 0 \zeta_n \neq 0 ζn̸=0,且又因为 λ n ( 1 − ζ n − y n ( w T z n + b ) ) = 0 \lambda_n (1- \zeta_n - y_n(w^T z_n + b)) = 0 λn(1ζnyn(wTzn+b))=0,得出 1 − ζ n − y n ( w T z n + b ) = 0 1- \zeta_n - y_n(w^T z_n + b) = 0 1ζnyn(wTzn+b)=0,所以得到 y n ( w T z n + b ) = 1 − ζ n ≤ 1 y_n(w^T z_n + b) = 1 - \zeta_n \leq 1 yn(wTzn+b)=1ζn1。表示错误点,与分类超平面距离小于1。

λ n = 0 \lambda_n = 0 λn=0时,根据 ( C − λ n ) ζ n = 0 (C - \lambda_n)\zeta_n = 0 (Cλn)ζn=0,推出 ζ n = 0 \zeta_n = 0 ζn=0,又因为 y n ( w T z n + b ) ≥ 1 − ζ n y_n(w^T z_n + b) \geq 1 - \zeta_n yn(wTzn+b)1ζn。所以可得分类正确,与分类超平面距离大于等于1。

未完待续。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值