ML算法推导细节03—支持向量机SVM

探究算法细节,深入了解算法原理

参考摘抄:刘建平博客

1. 线性SVM的硬间隔

  • 能找出泛化能力最强的分类超平面
  • 是二分类算法,支持非线性分类,支持多元分类,支持回归问题
  • 仅仅使用部分支持向量来做超平面的决策,无需依赖全部数据
  • SVM在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用

1.1 支持向量

二分类问题:分类超平面为 w T x + b = 0 w^Tx+b=0 wTx+b=0

线性模型:当 w T x + b &gt; 0 w^Tx+b&gt;0 wTx+b>0 时 y=1,当 w T x + b &lt; 0 w^Tx+b&lt;0 wTx+b<0 时 y=-1。

SVM思想

  • 希望所有的样本点远离分类超平面。
  • 实际上离超平面很远的点已经被正确分类,再让其远离超平面没有意义。
  • 更关心的是离超平面很近的点,这些点容易被误分类。
  • 为了更好的分类效果,让离超平面比较近的点尽可能远离超平面。

支持向量到分类超平面的距离: 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} w1,优化目标是最大化这个距离。

任意样本点到分类超平面的距离为: r = w T x + b ∣ ∣ w ∣ ∣ r=\frac{w^Tx+b}{||w||} r=wwTx+b距离推导

w T x + b ≥ 1 w^Tx+b\geq1 wTx+b1 时 y=1,当 w T x + b ≤ − 1 w^Tx+b\leq-1 wTx+b1 时 y=-1。

函数间隔: γ ′ = y ( w T x + b ) \gamma^{&#x27;}=y(w^Tx+b) γ=y(wTx+b)

1.2 SVM的目标函数及对偶优化

SVM模型是让所有样本点到超平面的距离大于一定的距离,也就是所有的样本点要在各自类别的支持向量两边。

(1)优化目标函数为:
max ⁡ ⎵ w , b 1 ∣ ∣ w ∣ ∣  s.t.  y i ( w T x i + b ) ≥ 1 ( i = 1 , 2 , … m ) \underbrace{\max }_{w,b} \frac{1}{||w||} \quad \text { s.t. }\quad y_{i}\left(w^{T} x_{i}+b\right) \geq 1(i=1,2, \dots m) w,b maxw1 s.t. yi(wTxi+b)1(i=1,2,m)

等价于:
min ⁡ ⎵ w , b 1 2 ∣ ∣ w ∣ ∣ 2  s.t.  y i ( w T x i + b ) ≥ 1 ( i = 1 , 2 , … m ) \underbrace{\min }_{w,b} \frac{1}{2}||w||^2 \quad \text { s.t. }\quad y_{i}\left(w^{T} x_{i}+b\right) \geq 1(i=1,2, \dots m) w,b min21w2 s.t. yi(wTxi+b)1(i=1,2,m)

(2)对于所有的样本点满足 1 − y i ( w T x i + b ) ≤ 0 1-y_{i}\left(w^{T} x_{i}+b\right) \leq0 1yi(wTxi+b)0,说明存在最大值

目标函数 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21w2 是凸函数,根据凸优化理论,通过拉格朗日乘子法将不等式约束条件转化为无约束的目标函数

L ( w , b , α ) = 1 2 ∥ w ∥ 2 + ∑ i = 1 m α i [ 1 − y i ( w T x i + b ) ] 满 足 α i ≥ 0 L(w, b, \alpha)=\frac{1}{2}\|w\|^{2}+\sum_{i=1}^{m} \alpha_{i}\left[1-y_{i}\left(w^{T} x_{i}+b\right)\right] 满足 \alpha_{i} \geq 0 L(w,b,α)=21w2+i=1mαi[1yi(wTxi+b)]αi0

KKT条件: 对于一般的任意问题而言,KKT条件是使一组解成为最优解的必要条件,当原问题是凸问题的时候,KKT条件也是充分条件。

优化目标变成:

min ⁡ ⎵ w , b [ max ⁡ ⎵ α i ≥ 0 L ( w , b , α ) ] \underbrace{\min }_{w, b} \left[ \underbrace{\max }_{\alpha_{i}\geq0} L(w, b, \alpha) \right] w,b min[αi0 maxL(w,b,α)]

(3)通过拉格朗日对偶,将优化问题转换为等价的对偶问题来求解:

max ⁡ ⎵ α i ≥ 0 [ min ⁡ ⎵ w , b L ( w , b , α ) ] \underbrace{\max }_{\alpha_{i}\geq0}\left[\underbrace{\min }_{w, b} L(w, b, \alpha) \right] αi0 maxw,b minL(w,b,α)

即无约束的优化目标为:
max ⁡ ⎵ α i ≥ 0 [ min ⁡ ⎵ w , b 1 2 ∥ w ∥ 2 + ∑ i = 1 m α i [ 1 − y i ( w T x i + b ) ] ] \underbrace{\max }_{\alpha_{i}\geq 0}\left[\underbrace{\min }_{w, b} \frac{1}{2}\|w\|^{2}+\sum_{i=1}^{m} \alpha_{i}\left[1-y_{i}\left(w^{T} x_{i}+b\right)\right] \right] αi0 maxw,b min21w2+i=1mαi[1yi(wTxi+b)]

(4)先求目标函数对于w和b的极小值,再求拉格朗日乘子α的极大值。

对 w、b 求偏导,求 L(w,b,α) 的极小值

∂ L ∂ w = 0 ⇒ w = ∑ i = 1 m α i y i x i \frac{\partial L}{\partial w}=0 \Rightarrow w=\sum_{i=1}^{m} \alpha_{i} y_{i} x_{i} wL=0w=i=1mαiyixi

∂ L ∂ b = 0 ⇒ ∑ i = 1 m α i y i = 0 \frac{\partial L}{\partial b}=0 \Rightarrow \sum_{i=1}^{m} \alpha_{i} y_{i}=0 bL=0i=1mαiyi=0

  • 得到了 w 和 α 的关系,只要求出 α,就能求出 w
  • α 通过极大化目标函数来求取
  • 上两个式子将 b 消去了,b 通过支持向量来求取

(5)将上两个式子带入目标函数,定义
ψ ( α ) = min ⁡ ⎵ w , b L ( w , b , α ) \psi(\alpha)=\underbrace{\min }_{w, b} L(w, b, \alpha) ψ(α)=w,b minL(w,b,α)

ψ ( α ) = ∑ i = 1 m α i − 1 2 ∣ ∣ ∑ i = 1 m α i y i x i ∣ ∣ 2 = ∑ i = 1 m α i − 1 2 ∑ i = 1 , j = 1 m α i α j y i y j x i T x j \begin{aligned} \psi(\alpha) &amp;= \sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} ||\sum_{i=1}^{m}\alpha_iy_ix_i||^2 \\&amp;=\sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j} \end{aligned} ψ(α)=i=1mαi21i=1mαiyixi2=i=1mαi21i=1,j=1mαiαjyiyjxiTxj

(6)优化目标函数变为:

max ⁡ ⎵ α i ≥ 0 ( ψ ( α ) ) = max ⁡ ⎵ α ( ∑ i = 1 m α i − 1 2 ∑ i = 1 , j = 1 m α i α j y i y j x i T x j ) s . t . ∑ i = 1 m α i y i = 0 , α i ≥ 0 \underbrace{\max }_{\alpha_{i}\geq0}\left(\psi(\alpha)\right)=\underbrace{\max }_{\alpha}\left(\sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j}\right) \quad s.t. \quad \sum_{i=1}^{m}\alpha_iy_i=0,\quad \alpha_i \geq 0 αi0 max(ψ(α))=α max(i=1mαi21i=1,j=1mαiαjyiyjxiTxj)s.t.i=1mαiyi=0,αi0

等价于极小化问题:
min ⁡ ⎵ α ( 1 2 ∑ i = 1 , j = 1 m α i α j y i y j x i T x j − ∑ i = 1 m α i ) s . t . ∑ i = 1 m α i y i = 0 , α i ≥ 0 \underbrace{\min }_{\alpha}\left(\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j}-\sum_{i=1}^{m} \alpha_{i}\right) \quad s.t. \quad \sum_{i=1}^{m}\alpha_iy_i=0,\quad \alpha_i \geq 0 α min(21i=1,j=1mαiαjyiyjxiTxji=1mαi)s.t.i=1mαiyi=0,αi0

(7)使用SMO算法求解 α,后面会讲,暂时假设已经求得了 α ∗ \alpha^* α

1.3 求取SVM的w、b

w ∗ = ∑ i = 1 m α i ∗ y i x i w^{*}=\sum_{i=1}^{m} \alpha_{i}^{*} y_{i} x_{i} w=i=1mαiyixi

求b则稍微麻烦一点。对于任意支持向量 ( x s , y s ) (x_s,y_s) (xs,ys),都有
y s ( w T x s + b ) = y s ( ∑ i = 1 m α i y i x i T x s + b ) = 1 y_{s}\left(w^{T} x_{s}+b\right)=y_{s}\left(\sum_{i=1}^{m} \alpha_{i} y_{i} x_{i}^{T} x_{s}+b\right)=1 ys(wTxs+b)=ys(i=1mαiyixiTxs+b)=1

  • 假设有S个支持向量,求出S个 b ∗ b^* b,理论上这些b∗都可以作为最终的结果
  • 采用一种更健壮的办法,即求出所有支持向量对应的 b ∗ b^* b,平均值作为最后的结果
  • 对于严格线性可分的SVM,b的值是有唯一解的,即所有 b ∗ b^* b都是一样的
  • 这里仍然这么写是为了和后面加入软间隔后的SVM的算法描述一致

如何得到支持向量?

  • 根据KKT条件中的对偶互补条件 α i ∗ ( y i ( w T x i + b ) − 1 ) = 0 \alpha_{i}^{*}\left(y_{i}\left(w^{T} x_{i}+b\right)-1\right)=0 αi(yi(wTxi+b)1)=0
  • 如果 α i &gt; 0 \alpha_i&gt;0 αi>0,则 y i ( w T x i + b ) = 1 y_{i}(w^{T} x_{i}+b)=1 yi(wTxi+b)=1,样本点是支持向量
  • 否则如果 α i = 0 \alpha_i=0 αi=0,则有 y i ( w T x i + b ) ≥ 1 y_{i}(w^{T} x_{i}+b)\geq1 yi(wTxi+b)1,样本点是支持向量,或被正确分类

找出所有的S个支持向量,就是满足 α s &gt; 0 \alpha_s&gt;0 αs>0 对应的样本 ( x s , y s ) (x_s,y_s) (xs,ys)

最终的分类超平面为: w ∗ ∙ x + b ∗ = 0 w^*\bullet x+b^*=0 wx+b=0
最终的分类决策函数为: f ( x ) = s i g n ( w ∗ ∙ x + b ∗ ) f(x)=sign(w^*\bullet x+b^*) f(x)=sign(wx+b)

2. 线性SVM的软间隔

硬间隔:有异常点时无法线性可分,或者泛化性能下降
软间隔:对训练集中的每个样本 ( x i , y i ) (x_i,y_i) (xi,yi)引入一个松弛变量 ξ i ≥ 0 \xi_i \geq0 ξi0
y i ( w T x i + b ) ≥ 1 − ξ i y_i(w^Tx_i+b)\geq1-\xi_i yi(wTxi+b)1ξi

软间隔,对样本到超平面的距离要求放松了

2.1 线性SVM的软间隔最大化

目标函数:
min ⁡ ( 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ξ i ) \min\left( \frac{1}{2}||w||^2+C\sum_{i=1}^{m}\xi_i\right) min(21w2+Ci=1mξi)

s . t . y i ( w T x i + b ) ≥ 1 − ξ i , ξ i ≥ 0 ( i = 1 , 2... , m ) s.t. \quad y_i(w^Tx_i+b) \geq 1-\xi_i, \quad \xi_i \geq 0\quad(i=1,2...,m) s.t.yi(wTxi+b)1ξi,ξi0(i=1,2...,m)

C>0 为惩罚系数,相当于正则化系数,C越大, ∣ ∣ w ∣ ∣ ||w|| w越小,分类错误的点越少,越容易过拟合

2.2 软间隔最大化目标函数的优化

利用拉格朗日乘子法,将约束问题转换成无约束问题
L ( w , b , ξ , α , μ ) = 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ξ i + ∑ i = 1 m α i [ 1 − ξ i − y i ( w T x i + b ) ] − ∑ i = 1 m μ i ξ i L(w, b, \xi, \alpha, \mu)=\frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{m} \xi_{i}+\sum_{i=1}^{m} \alpha_{i}\left[1-\xi_{i}-y_{i}\left(w^{T} x_{i}+b\right)\right]-\sum_{i=1}^{m} \mu_{i} \xi_{i} L(w,b,ξ,α,μ)=21w2+Ci=1mξi+i=1mαi[1ξiyi(wTxi+b)]i=1mμiξi

其中 μ i ≥ 0 \mu_i\geq0 μi0 α i ≥ 0 \alpha_i\geq0 αi0,均为拉格朗日系数。

要优化的目标函数为:
min ⁡ ⎵ w , b , ξ [ max ⁡ ⎵ α i ≥ 0 , μ i ≥ 0 L ( w , b , α , ξ , μ ) ] \underbrace{\min }_{w, b, \xi}\left[ \underbrace{\max }_{\alpha_{i} \geq 0, \mu_{i} \geq 0} L(w, b, \alpha, \xi, \mu)\right] w,b,ξ minαi0,μi0 maxL(w,b,α,ξ,μ)

这个优化目标满足KKT条件,通过拉格朗日对偶,转换为等价的对偶问题:
max ⁡ ⎵ α i ≥ 0 , μ i ≥ 0 [ min ⁡ ⎵ w , b , ξ L ( w , b , α , ξ , μ ) ] \underbrace{\max }_{\alpha_{i} \geq 0, \mu_{i} \geq 0}\left[\underbrace{\min }_{w, b, \xi} L(w, b, \alpha, \xi, \mu)\right] αi0,μi0 maxw,b,ξ minL(w,b,α,ξ,μ)

先求优化函数对 w , b , ξ w,b,\xi w,b,ξ的极小值,再求拉格朗日乘子 α , μ \alpha,\mu α,μ的极大值

∂ L ∂ w = 0 ⇒ w = ∑ i = 1 m α i y i x i \frac{\partial L}{\partial w}=0 \Rightarrow w=\sum_{i=1}^{m} \alpha_{i} y_{i} x_{i} wL=0w=i=1mαiyixi

∂ L ∂ b = 0 ⇒ ∑ i = 1 m α i y i = 0 \frac{\partial L}{\partial b}=0 \Rightarrow \sum_{i=1}^{m} \alpha_{i} y_{i}=0 bL=0i=1mαiyi=0

∂ L ∂ ξ = 0 ⇒ C − α i − μ i = 0 \frac{\partial L}{\partial \xi}=0 \Rightarrow C-\alpha_{i}-\mu_{i}=0 ξL=0Cαiμi=0

带入后可得,
min ⁡ ⎵ w , b , ξ L ( w , b , α , ξ , μ ) = ∑ i = 1 m α i − 1 2 ∑ i = 1 , j = 1 m α i α j y i y j x i T x j \underbrace{\min }_{w, b, \xi} L(w, b, \alpha, \xi, \mu)=\sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j} w,b,ξ minL(w,b,α,ξ,μ)=i=1mαi21i=1,j=1mαiαjyiyjxiTxj

与硬间隔目标函数一样,约束条件不同,优化目标为:
max ⁡ ⎵ α ( ∑ i = 1 m α i − 1 2 ∑ i = 1 , j = 1 m α i α j y i y j x i T x j ) \underbrace{\max }_{\alpha} \left(\sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j}\right) α max(i=1mαi21i=1,j=1mαiαjyiyjxiTxj)

s . t . ∑ i = 1 m α i y i = 0 , C − α i − μ i = 0 , α i ≥ 0 , μ i ≥ 0 ( i = 1 , 2... , m ) s.t.\quad \sum_{i=1}^{m}\alpha_iy_i=0,\quad C-\alpha_i-\mu_i=0,\quad \alpha_i\geq0,\quad \mu_i\geq0\quad (i=1,2...,m) s.t.i=1mαiyi=0,Cαiμi=0,αi0,μi0(i=1,2...,m)

消去 μ i ≥ 0 \mu_i\geq0 μi0,则 0 ≤ α i ≤ C 0\leq \alpha_i \leq C 0αiC,同时将目标函数变号,求极小值

min ⁡ ⎵ α ( 1 2 ∑ i = 1 , j = 1 m α i α j y i y j x i T x j − ∑ i = 1 m α i ) \underbrace{\min }_{\alpha} \left(\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j}-\sum_{i=1}^{m} \alpha_{i}\right) α min(21i=1,j=1mαiαjyiyjxiTxji=1mαi)

s . t . ∑ i = 1 m α i y i = 0 , 0 ≤ α i ≤ C ( i = 1 , 2... , m ) s.t.\quad \sum_{i=1}^{m}\alpha_iy_i=0,\quad 0\leq \alpha_i \leq C (i=1,2...,m) s.t.i=1mαiyi=0,0αiC(i=1,2...,m)

优化目标与硬间隔相比,仅仅是多了约束条件 0 ≤ α i ≤ C 0\leq \alpha_i \leq C 0αiC

仍然通过SMO算法对上式极小化,求取 α ∗ α^* α,然后求出 w , b w,b w,b

2.3 软间隔最大化的支持向量

第i个点到对应类别支持向量的距离为 ξ i ∣ ∣ w ∣ ∣ \frac{\xi_i}{||w||} wξi

根据软间隔最大化时 KKT条件中的对偶互补条件:
α i ∗ ( y i ( w T x i + b ) − 1 + ξ i ∗ ) = 0 \alpha_{i}^{*}\left(y_{i}\left(w^{T} x_{i}+b\right)-1+\xi_{i}^{*}\right)=0 αi(yi(wTxi+b)1+ξi)=0

(1)如果 α = 0 \alpha=0 α=0,那么 y i ( w T x i + b ) − 1 ≥ 0 y_i(w^Tx_i+b)-1\geq0 yi(wTxi+b)10,样本在间隔边界上,或者被正确分类

(2)如果 0 &lt; α &lt; C 0&lt;\alpha&lt;C 0<α<C,那么 ξ i = 0 , y i ( w T x i + b ) − 1 = 0 \xi_i=0, y_i(w^Tx_i+b)-1=0 ξi=0,yi(wTxi+b)1=0,即点在间隔边界上

(3)如果 α = C \alpha=C α=C

  • 如果 0 ≤ ξ i ≤ 1 0\leq \xi_i \leq 1 0ξi1,点被正确分类,但是在分类超平面和间隔边界之间,如样本2和4
  • 如果 ξ i = 1 \xi_i=1 ξi=1,则点在分类超平面上
  • 如果 ξ i &gt; 1 \xi_i&gt;1 ξi>1,则点在超平面的另一侧,误分类,如样本1和3

所有的S个支持向量对应的样本 ( x s , y s ) (x_s,y_s) (xs,ys),通过 y s ( ∑ i = 1 S α i y i x i T x s + b ) = 1 y_s(\sum_{i=1}^{S}\alpha_iy_ix_i^Tx_s+b)=1 ys(i=1SαiyixiTxs+b)=1 求出 b s ∗ b_s^* bs

软间隔中, w ∗ w^* w是唯一的, b ∗ b^* b不是唯一的

b s ∗ = y s − ∑ i = 1 S α i y i x i T x s b_s^*=y_s-\sum_{i=1}^{S}\alpha_iy_ix_i^Tx_s bs=ysi=1SαiyixiTxs b ∗ = 1 S ∑ i = 1 S b s ∗ b^*=\frac{1}{S}\sum_{i=1}^{S}b_s^* b=S1i=1Sbs

2.4 经验风险和结构风险

经验函数:对训练集的平均损失称为经验风险, 1 m ∑ i = 1 m L ( y i , f ( x i ) ) \frac{1}{m}\sum_{i=1}^{m}L(y_i,f(x_i)) m1i=1mL(yi,f(xi))

监督学习的两种策略:经验风险最小化、结构风险最小化

经验风险最小化:经验风险最小,样本少时容易过拟合

结构风险最小化:在经验风险最小化的基础上,加了正则化

2.5 合页损失函数(Hinge Loss)

对于线性SVM来说,模型分类超平面为 w T x + b = 0 w^Tx+b=0 wTx+b=0,决策函数为 f ( x ) = s i g n ( w T x + b ) f(x)=sign(w^Tx+b) f(x)=sign(wTx+b),学习策略是软间隔最大化,学习算法是凸二次规划。

线性SVM还有另一种解释,最小化以下目标函数:

min ⁡ ⎵ w , b ( [ ∑ i = 1 m 1 − y i ( w T x i + b ) ] + + λ ∥ w ∥ 2 ) \underbrace{\min }_{w, b}\left(\left[\sum_{i=1}^{m}1-y_{i}(w^T x_i+b)\right]_{+}+\lambda\|w\|^{2}\right) w,b min([i=1m1yi(wTxi+b)]++λw2)

目标函数第一项是经验损失或经验风险,

L ( y ( w T x + b ) ) = [ 1 − y ( w T x + b ) ] + L(y(w^Tx+b))=[1-y(w^Tx+b)]_+ L(y(wTx+b))=[1y(wTx+b)]+ 称为合页损失函数, [ z ] + = { z z &gt; 0 0 z ≤ 0 [z]_{+}=\left\{\begin{array}{ll}{z} &amp; {z&gt;0} \\ {0} &amp; {z \leq 0}\end{array}\right. [z]+={z0z>0z0

  • Hinge Loss:如果点被正确分类,且函数间隔大于1,损失是0,否则损失是 1 − y ( w T x + b ) 1−y(w^Tx+b) 1y(wTx+b)
  • 0-1损失:如果正确分类,损失是0,误分类损失1,可见0-1损失函数是不可导的。
  • 感知机损失函数: [ − y ( w T x + b ) ] + [−y(w^Tx+b)]_+ [y(wTx+b)]+,正确分类时,损失是0,误分类时,损失是 − y ( w T x + b ) −y(w^Tx+b) y(wTx+b)
  • 逻辑回归、最大熵模型对应的对数损失,损失函数是 l o g [ 1 + e x p ( − y ( w T x + b ) ) ] log[1+exp(−y(w^Tx+b))] log[1+exp(y(wTx+b))]

3. 非线性SVM与核函数

3.1 核方法

  • 核函数比SVM出现的早,被引入到SVM算法中
  • 在低维线性不可分的数据,映射到高维后,变成线性可分的,再利用线性SVM方法
    h θ ( x 1 , x 2 ) = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 1 2 + θ 4 x 2 2 + θ 5 x 1 x 2 h_{\theta}\left(x_{1}, x_{2}\right)=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\theta_{3} x_{1}^{2}+\theta_{4} x_{2}^{2}+\theta_{5} x_{1} x_{2} hθ(x1,x2)=θ0+θ1x1+θ2x2+θ3x12+θ4x22+θ5x1x2

h θ ( x 1 , x 2 ) = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 + θ 4 x 4 + θ 5 x 5 h_{\theta}\left(x_{1}, x_{2}\right)=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\theta_{3} x_{3}+\theta_{4} x_{4}+\theta_{5} x_{5} hθ(x1,x2)=θ0+θ1x1+θ2x2+θ3x3+θ4x4+θ5x5

将一个只有两个特征的二阶多项式,转换成五元线性回归。

核函数表达式为:
K ( x , x ′ ) = z T z ′ = Φ ( x ) T Φ ( x ′ ) K(x,x^{&#x27;})=z^T z^{&#x27;}= \Phi(x)^T\Phi(x^{&#x27;}) K(x,x)=zTz=Φ(x)TΦ(x)

核方法思想:将特征转换、内积运算这两个步骤合并起来,降低计算复杂度

二阶多项式转换的例子:

原始特征为: x = ( 1 , x 1 , x 2 , . . . , x d ) x=(1,x_1,x_2,...,x_d) x=(1,x1,x2,...,xd)

转换后的特征为: Φ 2 ( x ) = ( 1 , x 1 , x 2 , … , x d , x 1 2 , x 1 x 2 , … , x 1 x d , x 2 x 1 , x 2 2 , … , x 2 x d , … , x d 2 ) \Phi_{2}(\mathbf{x})=\left(1, x_{1}, x_{2}, \ldots, x_{d}, x_{1}^{2}, x_{1} x_{2}, \ldots, x_{1} x_{d}, x_{2} x_{1}, x_{2}^{2}, \ldots, x_{2} x_{d}, \ldots, x_{d}^{2}\right) Φ2(x)=(1,x1,x2,,xd,x12,x1x2,,x1xd,x2x1,x22,,x2xd,,xd2)

核方法:
Φ 2 ( x ) T Φ 2 ( x ′ ) = 1 + ∑ i = 1 d x i x i ′ + ∑ i = 1 d ∑ j = 1 d x i x j x i ′ x j ′ = 1 + ∑ i = 1 d x i x i ′ + ∑ i = 1 d x i x i ′ ∑ j = 1 d x j x j ′ = 1 + x T x ′ + ( x T x ′ ) ( x T x ′ ) \begin{aligned} \Phi_{2}(x)^{T} \Phi_{2}\left(x^{\prime}\right) &amp;=1+\sum_{i=1}^{d} x_{i} x_{i}^{\prime}+\sum_{i=1}^{d} \sum_{j=1}^{d} x_{i} x_{j} x_{i}^{\prime} x_{j}^{\prime} \\ &amp;=1+\sum_{i=1}^{d} x_{i} x_{i}^{\prime}+\sum_{i=1}^{d} x_{i} x_{i}^{\prime} \sum_{j=1}^{d} x_{j} x_{j}^{\prime} \\ &amp;=1+x^{T} x^{\prime}+\left(x^{T} x^{\prime}\right)\left(x^{T} x^{\prime}\right) \end{aligned} Φ2(x)TΦ2(x)=1+i=1dxixi+i=1dj=1dxixjxixj=1+i=1dxixi+i=1dxixij=1dxjxj=1+xTx+(xTx)(xTx)

3.2 几种核函数

(1)线性核函数: K ( x , x ′ ) = x T x ′ K(x,x^{&#x27;})=x^Tx^{&#x27;} K(x,x)=xTx

(2)多项式核函数: K ( x , x ′ ) = ( γ x T x ′ + r ) d K(x,x^{&#x27;})=(\gamma x^Tx^{&#x27;}+r)^d K(x,x)=(γxTx+r)d

(3)高斯核函数(径向基核函数RBF): K ( x , x ′ ) = e − γ ∣ ∣ x − x ′ ∣ ∣ 2 K(x,x^{&#x27;})=e^{-\gamma||x-x^{&#x27;}||^2} K(x,x)=eγxx2

  • 高斯核函数,特征转换后是无限多维的,展开 Φ ( x ) = e − x 2 ⋅ ( 1 , 2 1 ! x , 2 2 2 ! x 2 , ⋯ &ThinSpace; ) \Phi(x)=e^{-x^{2}} \cdot\left(1, \sqrt{\frac{2}{1 !}} x, \sqrt{\frac{2^{2}}{2 !}} x^{2}, \cdots\right) Φ(x)=ex2(1,1!2 x,2!22 x2,)
  • γ &gt; 0 \gamma &gt;0 γ>0 γ \gamma γ 越大,越容易过拟合

3.3 带核函数的软间隔SVM算法总结

(1)优化目标和约束条件:
min ⁡ ⎵ α ( 1 2 ∑ i = 1 , j = 1 m α i α j y i y j K ( x i , x j ) − ∑ i = 1 m α i ) \underbrace{\min }_{\alpha} \left(\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} K\left(x_{i}, x_{j}\right)-\sum_{i=1}^{m} \alpha_{i}\right) α min(21i=1,j=1mαiαjyiyjK(xi,xj)i=1mαi)

s . t . ∑ i = 1 m α i y i = 0 , 0 ≤ α i ≤ C s.t. \quad \sum_{i=1}^{m}\alpha_iy_i=0,\quad 0 \leq \alpha_i \leq C s.t.i=1mαiyi=0,0αiC

(2)利用SMO算法求出 α ∗ \alpha^* α

(3)计算出 w ∗ w^* w w ∗ = ∑ i = 1 m α i ∗ y i Φ ( x i ) w^*=\sum_{i=1}^{m}\alpha_i^*y_i\Phi(x_i) w=i=1mαiyiΦ(xi)

(4)找出所有的S个支持向量,即 0 &lt; α s &lt; C 0 &lt; \alpha_s &lt; C 0<αs<C 对应的样本 ( x s , y s ) (x_s,y_s) (xs,ys),通过 y s ( ∑ i = 1 m α i y i K ( x i , x s ) + b ) = 1 y_{s}\left(\sum_{i=1}^{m} \alpha_{i} y_{i} K\left(x_{i}, x_{s}\right)+b\right)=1 ys(i=1mαiyiK(xi,xs)+b)=1计算出每个支持向量对应的 b s ∗ b^*_s bs,求平均值, b ∗ = 1 S ∑ i − 1 S b s ∗ b^*=\frac{1}{S}\sum_{i-1}^{S}b^*_s b=S1i1Sbs

(5)分类超平面为: w ∗ Φ ( x ) + b ∗ = 0 w^*\Phi(x)+b^*=0 wΦ(x)+b=0,分类决策函数为: f ( x ) = s i g n ( w ∗ Φ ( x ) + b ∗ ) f(x)=sign(w^*\Phi(x)+b^*) f(x)=sign(wΦ(x)+b)

4. SVM的SMO算法原理

参考:http://www.cnblogs.com/pinard/p/6111471.html

4.1 优化目标函数

目标函数和约束条件:
min ⁡ ⎵ α ( 1 2 ∑ i = 1 , j = 1 m α i α j y i y j K ( x i , x j ) − ∑ i = 1 m α i ) \underbrace{\min }_{\alpha} \left(\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} K\left(x_{i}, x_{j}\right)-\sum_{i=1}^{m} \alpha_{i}\right) α min(21i=1,j=1mαiαjyiyjK(xi,xj)i=1mαi)

s . t . ∑ i = 1 m α i y i = 0 , 0 ≤ α i ≤ C s.t. \quad \sum_{i=1}^{m}\alpha_iy_i=0,\quad 0 \leq \alpha_i \leq C s.t.i=1mαiyi=0,0αiC

我们的解要满足的KKT条件的对偶互补条件为:

α i ∗ ( y i ( w T x i + b ) − 1 + ξ i ∗ ) = 0 \alpha_{i}^{*}\left(y_{i}\left(w^{T} x_{i}+b\right)-1+\xi_{i}^{*}\right)=0 αi(yi(wTxi+b)1+ξi)=0

根据这个KKT条件的对偶互补条件,我们有:

α i ∗ = 0 ⇒ y i ( w ∗ ∙ ϕ ( x i ) + b ) ≥ 1 \alpha_{i}^{*}=0 \Rightarrow y_{i}\left(w^{*} \bullet \phi\left(x_{i}\right)+b\right) \geq 1 αi=0yi(wϕ(xi)+b)1

0 &lt; α i ∗ &lt; C ⇒ y i ( w ∗ ∙ ϕ ( x i ) + b ) = 1 0&lt;\alpha_{i}^{*}&lt;C \Rightarrow y_{i}\left(w^{*} \bullet \phi\left(x_{i}\right)+b\right)=1 0<αi<Cyi(wϕ(xi)+b)=1

α i ∗ = C ⇒ y i ( w ∗ ∙ ϕ ( x i ) + b ) ≤ 1 \alpha_{i}^{*}=C \Rightarrow y_{i}\left(w^{*} \bullet \phi\left(x_{i}\right)+b\right) \leq 1 αi=Cyi(wϕ(xi)+b)1

即:
α i ∗ = 0 ⇒ y i g ( x i ) ≥ 1 \alpha_{i}^{*}=0 \Rightarrow y_{i} g\left(x_{i}\right) \geq 1 αi=0yig(xi)1

0 &lt; α i ∗ &lt; C ⇒ y i g ( x i ) = 1 0&lt;\alpha_{i}^{*}&lt;C \Rightarrow y_{i} g\left(x_{i}\right)=1 0<αi<Cyig(xi)=1

α i ∗ = C ⇒ y i g ( x i ) ≤ 1 \alpha_{i}^{*}=C \Rightarrow y_{i} g\left(x_{i}\right) \leq 1 αi=Cyig(xi)1

4.2 SMO算法基本思想

  • 上面这个优化式子比较复杂,由m个变量组成的 α 需要在目标函数极小化的时候求出。
  • SMO算法采用一种启发式的方法,每次只优化两个变量,其他变量视为常数
  • 由于 ∑ i = 1 m α i y i = 0 \sum_{i=1}^{m}\alpha_iy_i=0 i=1mαiyi=0,假如将 α 3 , α 4 , . . . , α m α_3,α_4,...,α_m α3,α4,...,αm 固定,那么 α 1 , α 2 α_1,α_2 α1,α2之间的关系也确定了。
  • 这样SMO算法将一个复杂的优化算法转化为一个比较简单的两变量优化问题。

为了后面表示方便,定义 K i j = ϕ ( x j ) ϕ ( x j ) K_{ij}=\phi(x_j)\phi(x_j) Kij=ϕ(xj)ϕ(xj)

由于 α 3 , . . . , α m \alpha_3,...,\alpha_m α3,...,αm 都成了常量,所有的常量都从目标函数去除,目标优化函数变为:

min ⁡ ⎵ α 1 , α 2 ( 1 2 K 11 α 1 2 + 1 2 K 22 α 2 2 + y 1 y 2 K 12 α 1 α 2 − ( α 1 + α 2 ) + y 1 α 1 ∑ i = 3 m y i α i K i 1 + y 2 α 2 ∑ i = 3 m y i α i K i 2 ) \underbrace{\min }_{\alpha_{1}, \alpha_{2}}\left(\frac{1}{2} K_{11} \alpha_{1}^{2}+\frac{1}{2} K_{22} \alpha_{2}^{2}+y_{1} y_{2} K_{12} \alpha_{1} \alpha_{2}-\left(\alpha_{1}+\alpha_{2}\right)+y_{1} \alpha_{1} \sum_{i=3}^{m} y_{i} \alpha_{i} K_{i 1}+y_{2} \alpha_{2} \sum_{i=3}^{m} y_{i} \alpha_{i} K_{i 2}\right) α1,α2 min(21K11α12+21K22α22+y1y2K12α1α2(α1+α2)+y1α1i=3myiαiKi1+y2α2i=3myiαiKi2)

s . t . α 1 y 1 + α 2 y 2 = − ∑ i = 3 m y i α i = ζ s.t. \quad \quad \alpha_{1} y_{1}+\alpha_{2} y_{2}=-\sum_{i=3}^{m} y_{i} \alpha_{i}=\zeta s.t.α1y1+α2y2=i=3myiαi=ζ

0 ≤ α i ≤ C i = 1 , 2 0 \leq \alpha_{i} \leq C \quad i=1,2 0αiCi=1,2

具体的参考刘建平的博客

5. SVM的回归方法

5.1 SVM回归模型的损失函数度量

  • 目标函数:与分类保持一致为 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21w2
  • 约束条件:不能是各个样本尽量远离自己类别的支持向量
  • 模型的目标:各个点尽量拟合到线性模型 y i = w ∙ ϕ ( x i ) + b y_i=w \bullet \phi(x_i)+b yi=wϕ(xi)+b,不用均方差作为损失函数
  • 损失度量:定义一个常量 ϵ &gt; 0 \epsilon&gt;0 ϵ>0,对于样本点 ( x i , y i ) (x_i,y_i) (xi,yi),如果 ∣ y i − w ∙ ϕ ( x i ) − b ∣ ≤ ϵ \left|y_{i}-w \bullet \phi\left(x_{i}\right)-b\right| \leq \epsilon yiwϕ(xi)bϵ,损失为0,如果 ∣ y i − w ∙ ϕ ( x i ) − b ∣ &gt; ϵ \left|y_{i}-w \bullet \phi\left(x_{i}\right)-b\right| &gt; \epsilon yiwϕ(xi)b>ϵ,则损失为 ∣ y i − w ∙ ϕ ( x i ) − b ∣ − ϵ \left|y_{i}-w \bullet \phi\left(x_{i}\right)-b\right| - \epsilon yiwϕ(xi)bϵ,与均方差不同

如下图,蓝色条带内的点没有损失,外面点的损失为红线长度

SVM回归模型的损失函数度量为:
err ⁡ ( x i , y i ) = { 0 ∣ y i − w ∙ ϕ ( x i ) − b ∣ ≤ ϵ ∣ y i − w ∙ ϕ ( x i ) − b ∣ − ϵ ∣ y i − w ∙ ϕ ( x i ) − b ∣ &gt; ϵ \operatorname{err}\left(x_{i}, y_{i}\right)=\left\{\begin{array}{ll}{0} &amp; {\left|y_{i}-w \bullet \phi\left(x_{i}\right)-b\right| \leq \epsilon} \\ {\left|y_{i}-w \bullet \phi\left(x_{i}\right)-b\right|-\epsilon} &amp; {\left|y_{i}-w \bullet \phi\left(x_{i}\right)-b\right|&gt;\epsilon}\end{array}\right. err(xi,yi)={0yiwϕ(xi)bϵyiwϕ(xi)bϵyiwϕ(xi)b>ϵ

5.2 SVM回归模型的目标函数

目标函数:

min ⁡ ( 1 2 ∥ w ∥ 2 s . t . ∣ y i − w ∙ ϕ ( x i ) − b ∣ ≤ ϵ ( i = 1 , 2 , … m ) ) \min \left(\frac{1}{2}\|w\|^{2} \quad { s.t. }\left|y_{i}-w \bullet \phi\left(x_{i}\right)-b\right| \leq \epsilon(i=1,2, \ldots m)\right) min(21w2s.t.yiwϕ(xi)bϵ(i=1,2,m))

加入松弛变量 ξ i ≥ 0 \xi_i\geq0 ξi0,由于这里是绝对值,实际上是两个不等式,也就是说两边都需要松弛变量,定义为 ξ i ∨ , ξ i ∧ \xi_{i}^{\vee},\xi_{i}^{\wedge} ξi,ξi

优化目标变为:
min ⁡ ( 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ( ξ i ∨ + ξ i ∧ ) ) \min \left(\frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{m}\left(\xi_{i}^{\mathrm{\vee}}+\xi_{i}^{\wedge}\right)\right) min(21w2+Ci=1m(ξi+ξi))

s . t . − ϵ − ξ i ∨ ≤ y i − w ∙ ϕ ( x i ) − b ≤ ϵ + ξ i ∧ s.t. \quad-\epsilon-\xi_{i}^{\mathrm{\vee}} \leq y_{i}-w \bullet \phi\left(x_{i}\right)-b \leq \epsilon+\xi_{i}^{\wedge} s.t.ϵξiyiwϕ(xi)bϵ+ξi

ξ i ∨ ≥ 0 , ξ i ∧ ≥ 0 ( i = 1 , 2 , … , m ) \xi_{i}^{\mathrm{\vee}} \geq 0, \xi_{i}^{\wedge} \geq 0(i=1,2, \ldots, m) ξi0,ξi0(i=1,2,,m)

利用拉格朗日乘子法,转换成无约束的优化目标

L ( w , b , α ∨ , α ∧ , ξ i ∨ , ξ i ∧ , μ ∨ , μ ∧ ) = 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ( ξ i ∨ + ξ i ∧ ) + ∑ i = 1 m α ∨ ( − ϵ − ξ i ∨ − y i + w ∙ ϕ ( x i ) + b ) + ∑ i = 1 m α ∧ ( y i − w ∙ ϕ ( x i ) − b − ϵ − ξ i ∧ ) − ∑ i = 1 m μ ∨ ξ i ∨ − ∑ i = 1 m μ ∧ ξ i ∧ L\left(w, b, \alpha^{\vee}, \alpha^{\wedge}, \xi_{i}^{\vee}, \xi_{i}^{\wedge}, \mu^{\vee}, \mu^{\wedge}\right)=\frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{m}\left(\xi_{i}^{\mathrm{\vee}}+\xi_{i}^{\wedge}\right)+\sum_{i=1}^{m} \alpha^{\vee}\left(-\epsilon-\xi_{i}^{\vee}-y_{i}+w \bullet \phi\left(x_{i}\right)+b\right)+\sum_{i=1}^{m} \alpha^{\wedge}\left(y_{i}-w \bullet \phi\left(x_{i}\right)-b-\epsilon-\xi_{i}^{\wedge}\right)-\sum_{i=1}^{m} \mu^{\vee} \xi_{i}^{\vee}-\sum_{i=1}^{m} \mu^{\wedge} \xi_{i}^{\wedge} L(w,b,α,α,ξi,ξi,μ,μ)=21w2+Ci=1m(ξi+ξi)+i=1mα(ϵξiyi+wϕ(xi)+b)+i=1mα(yiwϕ(xi)bϵξi)i=1mμξii=1mμξi

其中 μ ∨ ≥ 0 , μ ∧ ≥ 0 , α i ∨ ≥ 0 , α i ∧ ≥ 0 \mu^{\mathrm{\vee}} \geq 0, \mu^{\wedge} \geq 0, \alpha_{i}^{\mathrm{\vee}} \geq 0, \alpha_{i}^{\wedge} \geq 0 μ0,μ0,αi0,αi0,均为拉格朗日系数。

5.3 SVM回归模型的目标函数对偶优化

优化目标为:
min ⁡ ⎵ w , b , ξ i ∨ , ξ i ∧ ( m a x ⎵ μ ∨ ≥ 0 , μ ∧ ≥ 0 , α ∨ ≥ 0 , α ∧ ≥ 0 L ( w , b , α ∨ , α ∧ , ξ i ∨ , ξ i ∧ , μ ∨ , μ ∧ ) ) \underbrace{\min}_{w,b,\xi_i^{\vee},\xi_i^{\wedge}}\left(\underbrace{max}_{\mu^\vee\geq0,\mu^\wedge\geq0,\alpha^\vee\geq0,\alpha^\wedge\geq0}L\left(w, b, \alpha^{\vee}, \alpha^{\wedge}, \xi_{i}^{\vee}, \xi_{i}^{\wedge}, \mu^{\vee}, \mu^{\wedge}\right)\right) w,b,ξi,ξi minμ0,μ0,α0,α0 maxL(w,b,α,α,ξi,ξi,μ,μ)

优化目标满足KKT条件,通过拉格朗日对偶将优化问题,转化为等价的对偶问题:
m a x ⎵ μ ∨ ≥ 0 , μ ∧ ≥ 0 , α ∨ ≥ 0 , α ∧ ≥ 0 ( min ⁡ ⎵ w , b , ξ i ∨ , ξ i ∧ L ( w , b , α ∨ , α ∧ , ξ i ∨ , ξ i ∧ , μ ∨ , μ ∧ ) ) \underbrace{max}_{\mu^\vee\geq0,\mu^\wedge\geq0,\alpha^\vee\geq0,\alpha^\wedge\geq0}\left(\underbrace{\min}_{w,b,\xi_i^{\vee},\xi_i^{\wedge}}L\left(w, b, \alpha^{\vee}, \alpha^{\wedge}, \xi_{i}^{\vee}, \xi_{i}^{\wedge}, \mu^{\vee}, \mu^{\wedge}\right)\right) μ0,μ0,α0,α0 maxw,b,ξi,ξi minL(w,b,α,α,ξi,ξi,μ,μ)

我们可以先求优化函数对于 w , b , ξ i ∨ , ξ i ∧ w, b, \xi_{i}^{\vee}, \xi_{i}^{\wedge} w,b,ξi,ξi 的极小值, 接着再求拉格朗日乘子 α ∨ , α ∧ , μ ∨ , μ ∧ \alpha^{\vee}, \alpha^{\wedge},\mu^{\vee}, \mu^{\wedge} α,α,μ,μ 的极大值

首先求优化函数对于 w , b , ξ i ∨ , ξ i ∧ w, b, \xi_{i}^{\vee}, \xi_{i}^{\wedge} w,b,ξi,ξi 的极小值,通过求偏导求得:
∂ L ∂ w = 0 ⇒ w = ∑ i = 1 m ( α i ∧ − α i ∨ ) ϕ ( x i ) \frac{\partial L}{\partial w}=0 \Rightarrow w=\sum_{i=1}^{m}\left(\alpha_{i}^{\wedge}-\alpha_{i}^{\vee}\right) \phi\left(x_{i}\right) wL=0w=i=1m(αiαi)ϕ(xi)

∂ L ∂ b = 0 ⇒ ∑ i = 1 m ( α i ∧ − α i ∨ ) = 0 \frac{\partial L}{\partial b}=0 \Rightarrow \sum_{i=1}^{m}\left(\alpha_{i}^{\wedge}-\alpha_{i}^{\vee}\right)=0 bL=0i=1m(αiαi)=0

∂ L ∂ ξ i ∨ = 0 ⇒ C − α ∨ − μ ∨ = 0 \frac{\partial L}{\partial \xi_{i}^{\mathrm{\vee}}}=0 \Rightarrow C-\alpha^{\vee}-\mu^{\vee}=0 ξiL=0Cαμ=0

∂ L ∂ ξ i ∧ = 0 ⇒ C − α ∧ − μ ∧ = 0 \frac{\partial L}{\partial \xi_{i}^{\wedge}}=0 \Rightarrow C-\alpha^{\wedge}-\mu^{\wedge}=0 ξiL=0Cαμ=0

带入,优化目标变成:

m a x ⎵ α ∨ , α ∧ ( − ∑ i = 1 m ( ϵ − y i ) α i ∧ + ( ϵ + y i ) α i ∨ ) − 1 2 ∑ i = 1 , j = 1 m ( α i ∧ − α i ∨ ) ( α j ∧ − α j ∨ ) K i j ) \underbrace{max}_{\alpha^\vee,\alpha^\wedge}\left(-\sum_{i=1}^{m}\left(\epsilon-y_{i}\right) \alpha_{i}^{\wedge}+\left(\epsilon+y_{i}\right) \alpha_{i}^{\vee} )-\frac{1}{2} \sum_{i=1, j=1}^{m}\left(\alpha_{i}^{\wedge}-\alpha_{i}^{\vee}\right)\left(\alpha_{j}^{\wedge}-\alpha_{j}^{\vee}\right) K_{i j}\right) α,α max(i=1m(ϵyi)αi+(ϵ+yi)αi)21i=1,j=1m(αiαi)(αjαj)Kij)

s . t . ∑ i = 1 m ( α i ∧ − α i ∨ ) = 0 s.t. \quad\sum_{i=1}^{m}\left(\alpha_{i}^{\wedge}-\alpha_{i}^{\vee}\right)=0 s.t.i=1m(αiαi)=0

0 &lt; α i ∨ &lt; C , 0 &lt; α i ∧ &lt; C ( i = 1 , 2... , m ) 0&lt;\alpha_i^\vee&lt;C,\quad 0&lt;\alpha_i^\wedge&lt;C\quad(i=1,2...,m) 0<αi<C,0<αi<C(i=1,2...,m)

对目标函数取负号,转换成极小值问题

m i n ⎵ α ∨ , α ∧ ( ∑ i = 1 m ( ϵ − y i ) α i ∧ + ( ϵ + y i ) α i ∨ ) + 1 2 ∑ i = 1 , j = 1 m ( α i ∧ − α i ∨ ) ( α j ∧ − α j ∨ ) K i j ) \underbrace{min}_{\alpha^\vee,\alpha^\wedge}\left(\sum_{i=1}^{m}\left(\epsilon-y_{i}\right) \alpha_{i}^{\wedge}+\left(\epsilon+y_{i}\right) \alpha_{i}^{\vee} )+\frac{1}{2} \sum_{i=1, j=1}^{m}\left(\alpha_{i}^{\wedge}-\alpha_{i}^{\vee}\right)\left(\alpha_{j}^{\wedge}-\alpha_{j}^{\vee}\right) K_{i j}\right) α,α min(i=1m(ϵyi)αi+(ϵ+yi)αi)+21i=1,j=1m(αiαi)(αjαj)Kij)

s . t . ∑ i = 1 m ( α i ∧ − α i ∨ ) = 0 s.t. \quad\sum_{i=1}^{m}\left(\alpha_{i}^{\wedge}-\alpha_{i}^{\vee}\right)=0 s.t.i=1m(αiαi)=0

0 &lt; α i ∨ &lt; C , 0 &lt; α i ∧ &lt; C ( i = 1 , 2... , m ) 0&lt;\alpha_i^\vee&lt;C,\quad 0&lt;\alpha_i^\wedge&lt;C\quad(i=1,2...,m) 0<αi<C,0<αi<C(i=1,2...,m)

通过SMO算法,求出 α ∨ , α ∧ \alpha^\vee,\alpha^\wedge α,α,从而求出回归模型系数 w , b w,b w,b

5.4 SVM回归模型系数的稀疏性

分类问题,KKT条件的对偶互补条件为:
α i ∗ ( y i ( w ∙ ϕ ( x i ) + b ) − 1 + ξ i ∗ ) = 0 \alpha_{i}^{*}\left(y_{i}\left(w \bullet \phi\left(x_{i}\right)+b\right)-1+\xi_{i}^{*}\right)=0 αi(yi(wϕ(xi)+b)1+ξi)=0

回归问题,KKT条件的对偶互补条件为:
α i ∨ ( ϵ + ξ i ∨ + y i − w ∙ ϕ ( x i ) − b ) = 0 \alpha_{i}^{\vee}\left(\epsilon+\xi_{i}^{\vee}+y_{i}-w \bullet \phi\left(x_{i}\right)-b\right)=0 αi(ϵ+ξi+yiwϕ(xi)b)=0

α i ∧ ( ϵ + ξ i ∨ − y i + w ∙ ϕ ( x i ) − b ) = 0 \alpha_{i}^{\wedge}\left(\epsilon+\xi_{i}^{\vee}-y_{i}+w \bullet \phi\left(x_{i}\right)-b\right)=0 αi(ϵ+ξiyi+wϕ(xi)b)=0

  • 根据松弛变量定义的条件,如果 ∣ y i − w ∙ ϕ ( x i ) − b ∣ &lt; ϵ \left|y_{i}-w \bullet \phi\left(x_{i}\right)-b\right| &lt; \epsilon yiwϕ(xi)b<ϵ,则有 ξ i ∨ = 0 , ξ i ∧ = 0 \xi_{i}^{\vee}=0, \xi_{i}^{\wedge}=0 ξi=0,ξi=0

  • 此时, ϵ + ξ i ∨ + y i − w ∙ ϕ ( x i ) − b ≠ 0 \epsilon+\xi_{i}^{\mathrm{\vee}}+y_{i}-w \bullet \phi\left(x_{i}\right)-b \neq 0 ϵ+ξi+yiwϕ(xi)b̸=0 ϵ + ξ i ∧ − y i + w ∙ ϕ ( x i ) + b ≠ 0 \epsilon+\xi_{i}^{\wedge}-y_{i}+w \bullet \phi\left(x_{i}\right)+b \neq 0 ϵ+ξiyi+wϕ(xi)+b̸=0,这样要满足对偶互补条件,只有 α i ∨ = 0 , α i ∧ = 0 \alpha_{i}^{\vee}=0, \alpha_{i}^{\wedge}=0 αi=0,αi=0(不等号显示异常)

  • 定义样本系数为: β i = α i ∧ − α i ∨ \beta_{i}=\alpha_{i}^{\wedge}-\alpha_{i}^{\vee} βi=αiαi

根据 w = ∑ i = 1 m ( α i ∧ − α i ∨ ) ϕ ( x i ) w=\sum_{i=1}^{m}\left(\alpha_{i}^{\wedge}-\alpha_{i}^{\vee}\right) \phi\left(x_{i}\right) w=i=1m(αiαi)ϕ(xi),发现此时 β i = 0 \beta_i=0 βi=0,也就是说 w w w 不受这些在误差范围内的点的影响

对于在边界上或边界外的点, α i ∨ , α i ^ ∧ \alpha_{i}^{\mathrm{\vee}} , \alpha_{\hat{i}}^{\wedge} αi,αi^ 都不等于0,此时 β i \beta_i βi也不等于0

6. sklearn.svm.SVC & sklearn.svm.SVR

6.1 sklearn.svm.SVC

class sklearn.svm.SVC(C=1.0, kernel=’rbf’, degree=3, gamma=’auto_deprecated’, coef0=0.0, shrinking=True, 
probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, 
decision_function_shape=’ovr’, random_state=None)
  • C:惩罚系数,通过交叉验证选择
  • kernel:核函数,一般选径向基rbf
  • degree:多项式核函数的参数 d,一般交叉验证选择合适的 γ , r , d \gamma, r,d γ,r,d
  • gamma:多项式、径向基、sigmoid核函数都有这个参数,交叉验证
  • coef0:多项式核函数参数 r
  • cache_size:缓存大小会影响训练速度,默认200,即200M
  • class_weight:类别权重,可以指定各个样本的权重
  • decision_function_shape:ovr 无论多少类别,都看成二分类,ovo每次选出两个类别进行二分类,要进行(k-1)k/2次,k为类别数

6.2 sklearn.svm.SVR

class sklearn.svm.SVR(kernel=’rbf’, degree=3, gamma=’auto_deprecated’, coef0=0.0, tol=0.001, 
C=1.0, epsilon=0.1, shrinking=True, cache_size=200, verbose=False, max_iter=-1)
  • epsilon:距离误差,控制损失值

参考博客
1. 支持向量机原理(一) 线性支持向量机
2. 支持向量机原理(二) 线性支持向量机的软间隔最大化模型
3. 损失函数及经验风险和结构风险
4. 机器学习总结(lecture 10)算法:支持向量机SVM
5. 支持向量机原理(四) SMO算法原理
6. 支持向量机原理(五)线性支持回归

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值