《机器学习》周志华(西瓜书)学习笔记 第六章 支持向量机

机器学习 周志华 学习笔记

总目录

The more fluent you become in math,the more unstoppable you will be in anying you want to do in life

第六章 支持向量机

6.1 间隔与支持向量

给定训练样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x m , y m ) } D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_m,y_m)\} D={(x1,y1),(x2,y2),,(xm,ym)}, y i ϵ { − 1 , + 1 } y_i \epsilon\{-1,+1\} yiϵ{1,+1}

分类学习的最基本思想就是:基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开

在样本空间中,划分超平面可以通过以下线性方程表示:
w T x + b = 0 w^Tx+b=0 wTx+b=0
其中

  • w = ( w 1 , w 2 , ⋯   , w d ) w=(w_1,w_2,\cdots,w_d) w=(w1,w2,,wd) 为法向量,决定了超平面的方向;
  • b为位移项,决定了超平面与原点之间的距离。

显然,划分超平面可被法向量 w w w b b b确定,下面我们将其记为 ( w , b ) (w,b) (w,b)

样本空间任意衣点 x x x到超平面 ( w , x ) \bm{(w,x)} (w,x)的距离可写为:
γ = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ \gamma=\frac{|w^Tx+b|}{||w||} γ=wwTx+b

假设超平面 ( w , b ) \bm{(w,b)} (w,b)能将训练样本正确分类,即对于 ( x i , y i ) ϵ D (x_i,y_i)\epsilon D (xi,yi)ϵD,若 y i = + 1 y_i=+1 yi=+1,则有
ω T x i + b > 0 \bm{\omega^Tx_i} + b \gt 0 ωTxi+b>0,若 y i = − 1 y_i=-1 yi=1,则有 ω T x i + b < 0 \bm{\omega^Tx_i} + b \lt 0 ωTxi+b<0.

ω T x i + b ≥ + 1 , y i = + 1 \omega^Tx_i+b \geq +1,y_i=+1 ωTxi+b+1,yi=+1
ω T x i + b ≤ − 1 , y i = − 1 \omega ^Tx_i+b \leq-1,y_i=-1 ωTxi+b1,yi=1
距离超平面最近的这几个训练样本点使上式等号成立,他们被称为“支持向量”,两个异类支持向量到超平面的距离之和为"间隔"(margin):
γ = 2 ∣ ∣ ω ∣ ∣ \gamma=\frac{2}{||\omega||} γ=ω2
《机器学习》周志华(西瓜书)学习笔记 第六章 支持向量机_第1张图片
欲找到具有“最大间隔”(maximum margin)的划分超平面,即:
max ⁡ w , b 2 ∣ ∣ ω ∣ ∣ \max_{w,b}{\frac{2}{||\omega||}} w,bmaxω2

s . t .   y i ( ω T x i + b ) ≥ 1 , i = 1 , 2 , ⋯   , m s.t. \ y_i(\omega^Tx_i+b)\geq1,i=1,2,\cdots,m s.t. yi(ωTxi+b)1,i=1,2,,m

显然,为了最大化间隔,仅需最大化 ∣ ∣ ω ∣ ∣ − 1 ||\omega||^{-1} ω1,这等价于最小化 ∣ ∣ ω ∣ ∣ 2 ||\omega||^2 ω2,于是,上式可重写为:
min ⁡ w , b 1 2 ∣ ∣ ω ∣ ∣ 2 \min_{w,b}{\frac{1}{2}}{||\omega||^2} w,bmin21ω2
s . t .   y i ( ω T x i + b ) ≥ 1 , i = 1 , 2 , ⋯   , m s.t.\ y_i(\omega^Tx_i+b)\geq1,i=1,2,\cdots,m s.t. yi(ωTxi+b)1,i=1,2,,m
这就是支持向量机(Support Vector Machine)的基本型

6.2 对偶问题

  • 上述问题是一个凸二次规划问题,能直接用现成的优化计算包求解。但是我们可以有更加高效的方法.对上式使用拉格朗日乘子法可得到其“对偶问题”(dual problem)

对上式的每条约束添加拉格朗日乘子 α i ≥ 0 \alpha_i \ge 0 αi0 ,该问题的拉格朗日函数可写为:
L ( w , b , α ) = 1 2 ∣ ∣ ω 2 ∣ ∣ + ∑ i = 1 m α i ( 1 − y i ( ω T x i + b ) ) L(w,b,\alpha)=\frac{1}{2}{||\omega^2||}+{\sum_{i=1}^{m}\alpha_i(1-y_i(\omega^Tx_i+b))} L(w,b,α)=21ω2+i=1mαi(1yi(ωTxi+b))

ω \bm{\omega} ω b b b求偏导为零可得:
ω = ∑ i = 1 m α i y i x i \omega=\sum_{i=1}^m\alpha_iy_ix_i ω=i=1mαiyixi
0 = ∑ i = 1 m α i y i 0=\sum_{i=1}^m\alpha_iy_i 0=i=1mαiyi
带入,将 ω 和 b \omega 和b ωb消去可得对偶问题:
max ⁡ α   ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j \max_{\alpha}\ \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_jx_i^Tx_j αmax i=1mαi21i=1mj=1mαiαjyiyjxiTxj

s . t .    ∑ i = 1 m α i y i = 0 s.t.\ \ \sum_{i=1}^m\alpha_iy_i=0 s.t.  i=1mαiyi=0

α i ≥ 0 ,      i = 1 , 2 , ⋯   , m \alpha_i\ge0,\ \ \ \ i=1,2,\cdots,m αi0,    i=1,2,,m
解出 α \bm{\alpha} α,求出 ω 和 b \bm{\omega}和b ωb即可得到模型:

f ( x ) = ω T x + b f(x)=\omega^Tx+b f(x=ωTx+b
= ∑ i = 1 m α i y i x i T x + b =\sum_{i=1}^m\alpha_iy_ix_i^Tx+b =i=1mαiyixiTx+b
上述过程需要满足KKT(Karush-Kuhn-Tucker)条件,即:

{ α i ≥ 0 y i f ( x i ) − 1 ≥ 0 α i ( y i f ( x i ) − 1 ) = 0 \begin{cases} \alpha_i\ge0\\ y_if(x_i)-1\ge0\\ \alpha_i(y_if(x_i)-1)=0 \end{cases} αi0yif(xi)10αi(yif(xi)1)=0
​对任意样本 ( x i , y i ) (\bm{x_i},y_i) (xi,yi)总有 α i = 0 或 者 y i f ( x i ) = 1 \alpha_i = 0 或者 y_if(\bm{x_i}) = 1 αi=0yif(xi)=1,若 α i = 0 \alpha_i = 0 αi=0,则该样本将不会在求和中出现,也就不会对 f ( x ) f(x) f(x)有任何影响,若 α > ; 0 \alpha \gt;0 α>;0,则必有 y i f ( x i ) = 1 y_if(\bm{x_i}) = 1 yif(xi)=1,所对应的样本点位于最大间隔的边界上,是一个支持向量。这就是一个支持向量机的重要性质:训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。

如何求解问题呢?这是个二次规划问题,可使用二次规划算法来求解,然而问题的规模正比于训练样本数,这会在实际任务中造成很大的开销,因此提出SMO(Sequential Minimal Optimization)算法。

  • SMO(Sequential Minimal Optimization)算法的基本思路,先固定 α i \alpha_i αi
    以外所有参数,然后求 α i \alpha_i αi​上的极值,由于存在约束 ∑ i = 1 m α i y i = 0 \sum_{i=1}^{m}\alpha_iy_i = 0 i=1mαiyi=0,若固定 α i \alpha_i αi之外的其他变量,则 α i \alpha_i αi 可由其他变量导出,于是SMO每次选择两个变量 α i 和 α j \alpha_i和\alpha_j αiαj,并固定其他的变量,这样,在参数初始化后,SMO不断执行这个两个步骤:
  1. 选取一对需要更新的变量 α i 和 α j \alpha_i和\alpha_j αiαj

  2. 固定 α i 和 α j \alpha_i和\alpha_j αiαj以外的参数,求解获得更新后的 α i 和 α j \alpha_i和\alpha_j αiαj

  • 只要选取的αi和αj中有一个不满足KKT条件, 目标函数就会在迭代后减小。KKT条件违背的程度越大,变量更新后可能导致的目标函数值减幅越大
  • 使选取的两变量所对应样本之间的间隔最大(两个变量有很大的差别,对它们进行更新会带给目标函数值更大的变化)

6.3 核函数

当遇到线性不可分的样本时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分,令 ϕ ( x ) \phi(\bm{x}) ϕ(x)表示将x映射后的特征向量,则模型变为:
f ( x ) = ω T ϕ ( x ) + b f(x)=\omega^Tϕ(x)+b f(x)=ωTϕ(x)+b
min ⁡ w , b     1 2 ∣ ∣ ω ∣ ∣ 2 s . t .     y i ( ω T ϕ ( x i ) + b ) ≥ 1 ,       i = 1 , 2 , ⋯   , m \min_{w,b}\ \ \ \frac{1}{2}{||\omega||}^2\\ s.t.\ \ \ y_i(\omega^T\phi(\bm{x_i})+b)\ge1,\ \ \ \ \ i=1,2,\cdots,m w,bmin   21ω2s.t.   yi(ωTϕ(xi)+b)1,     i=1,2,,m
其对偶问题是:
∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ 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 ,     i = 1 , 2 , ⋯   , m . \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\phi(\bm{x_i})^T\phi(\bm{x_j})\\ s.t.\ \ \ \sum_{i=1}^m\alpha_iy_i=0\\ \alpha_i\ge0,\ \ \ i=1,2,\cdots,m. i=1mαi21i=1mj=1mαiαjyiyjϕ(xi)Tϕ(xj)s.t.   i=1mαiyi=0αi0,   i=1,2,,m.
由于求解涉及到计算 ϕ ( x i ) T ϕ ( x j ) \bm{\phi({x_i})^T\phi({x_j})} ϕ(xi)Tϕ(xj),样本映射到特征空间之后的内积,由于特征空间的维数可能很高,甚至是无穷维,因此直接计算时困难的,于是出现了核函数:
κ ( x i , x j ) = < ϕ ( x i ) , ϕ ( x j ) > = ϕ ( x i ) T ϕ ( x j ) \kappa(\bm{x_i},\bm{x_j})=<\phi(\bm{x_i}),\phi({\bm{x_j}})>=\phi(\bm{x_i})^T\phi(\bm{x_j}) κ(xi,xj)=<ϕ(xi),ϕ(xj)>=ϕ(xi)Tϕ(xj)
x i \bm{x_i} xi y i \bm{y_i} yi在特征空间的内积等于他们在原始样本空间中通过函数 κ ( . , . ) \kappa(.,.) κ(.,.)计算的结果.

于是之前的式子可重写为:
max ⁡ α     ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j κ ( x i , x j ) s . t .     ∑ i = 1 m α i y i = 0 α ≥ 0 ,     i = 1 , 2 , ⋯   , m . \max_\alpha\ \ \ \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\kappa(\bm{x_i},\bm{x_j})\\ s.t.\ \ \ \sum_{i=1}^m\alpha_iy_i=0\\ \alpha\ge0,\ \ \ i=1,2,\cdots,m. αmax   i=1mαi21i=1mj=1mαiαjyiyjκ(xi,xj)s.t.   i=1mαiyi=0α0,   i=1,2,,m.
求解后可得到:
f ( x ) = ω T ϕ ( x ) + b = ∑ i = 1 m α i α j ϕ ( x i ) T ϕ ( x ) + b = ∑ i = 1 m α i y i κ ( x , x i ) + b f(\bm{x})=\omega^T\phi(\bm{x})+b\\ =\sum_{i=1}^m\alpha_i\alpha_j\phi(\bm{x_i})^T\phi(\bm{x})+b\\ =\sum_{i=1}^m\alpha_iy_i\kappa(\bm{x},\bm{x_i})+b f(x)=ωTϕ(x)+b=i=1mαiαjϕ(xi)Tϕ(x)+b=i=1mαiyiκ(x,xi)+b
因此,在线性不可分问题中,核函数的选择成了支持向量机的最大变数,若选择了不合适的核函数,则意味着将样本映射到了一个不合适的特征空间,则极可能导致性能不佳。同时,核函数需要满足以下这个必要条件:
《机器学习》周志华(西瓜书)学习笔记 第六章 支持向量机_第2张图片

常用核函数

《机器学习》周志华(西瓜书)学习笔记 第六章 支持向量机_第3张图片

6.4 软间隔和正则化

现实任务中往往很难确定一个合适的核函数使得训练样本在特征空间中线性可分,退一步说,即使找到了某个核函数使训练集在特征空间中线性可分,也很难断定线性可分的结果不是由于过拟合所造成的。缓解该问题的一个办法就是允许支持向量机在一些样本上出错,为此要引入"软间隔"的概念。所有样本都必须划分正确,这成为"硬间隔"。

  • 软间隔则是允许某些样本不满足约束 y i ( ω T x i + b ) ≥ 1. y_i(\bm{\omega^Tx_i}+b)\ge1. yi(ωTxi+b)1.
  • 当然,在最大化间隔的同时,不满足约束条件的样本应尽可能地少,优化目标可写为:
    m i n w , b     1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ℓ 0 / 1 ( y i ( ω T x i + b ) − 1 ) min_{w,b}\ \ \ \frac{1}{2}{||\omega||}^2+C\sum_{i=1}^m ℓ _{0/1}(y_i(\bm{\omega^Tx_i}+b)-1) minw,b   21ω2+Ci=1m0/1(yi(ωTxi+b)1)

C > 0 C>0 C>0是一个常数, ℓ 0 / 1 \ell_{0/1} 0/1是“0/1损失函数”
ℓ 0 / 1 ( z ) = { 1 , if    z < 0 ; 0 , otherwise \ell_{0/1}(\bm{z})= \begin{cases} 1, \text{if \ \ \ z < 0};\\ 0,\text{otherwise} \end{cases} 0/1(z)={1,if    z < 0;0,otherwise

C C C无穷大时,迫使上式所有样本均满足约束,等价于硬间隔,当 C C C取值有限时,允许一些样本不满足约束.

ℓ 0 / 1 \ell_{0/1} 0/1 非凸、非连续,数学性质不太好,经常会用一些函数代替 ℓ 0 / 1 \ell_{0/1} 0/1,称为“替代损失函数”。

  • hinge损失: ℓ h i n g e = m a x ( 0 , 1 − z ) \ell_{hinge} = max(0,1-z) hinge=max(0,1z))
  • 指数损失(exponential loss): ℓ e x p = e x p ( − z ) \ell_{exp} = exp(-z) exp=exp(z)
  • 对率损失(logistic loss): ℓ l o g = l o g ( 1 + e x p ( − z ) ) \ell_{log} = log(1 +exp(-z)) log=log(1+exp(z))

采用hinge损失,则变成:
min ⁡ w , b     1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m m a x ( 0 , 1 − y i ( ω T x i + b ) ) \min_{w,b}\ \ \ \frac{1}{2}{||\omega||}^2+C\sum_{i=1}^mmax(0,1-y_i(\bm{\omega^Tx_i}+b)) w,bmin   21ω2+Ci=1mmax(0,1yi(ωTxi+b))

引入"松弛变量" ξ i ≥ 0 \xi_i \ge 0 ξi0,可重写为
min ⁡ w , b , ξ i     1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i s . t .     y i ( ω T x i + b ) ≥ 1 − ξ i ξ i ≥ 0 , i = 1 , 2 , ⋯   , m \min_{w,b,\xi_i}\ \ \ \frac{1}{2}{||\omega||}^2+C\sum_{i=1}^m\xi_i\\ s.t.\ \ \ y_i(\bm{\omega^Tx_i}+b) \ge 1-\xi_i\\ \xi_i\ge0 ,i=1,2,\cdots,m w,b,ξimin   21ω2+Ci=1mξis.t.   yi(ωTxi+b)1ξiξi0,i=1,2,,m
这就是常用的软间隔支持向量机

通过拉格朗日乘子法可得到相应的拉格朗日函数:
L ( ω , b , α , ξ , μ ) = 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i + ∑ i = 1 m α i ( 1 − ξ i − y i ( ω T x i + b ) ) − ∑ i = 1 m μ i ξ i L(\omega,b,\alpha,\xi,\mu)=\frac{1}{2}{||\omega||}^2+C\sum_{i=1}^m\xi_i\\ +\sum_{i=1}^m\alpha_i(1-\xi_i-y_i(\bm{\omega^Tx_i}+b))-\sum_{i=1}^m\mu_i\xi_i L(ω,b,α,ξ,μ)=21ω2+Ci=1mξi+i=1mαi(1ξiyi(ωTxi+b))i=1mμiξi

其中 μ i ≥ 0 , α i ≥ 0 \mu_i\ge0,\alpha_i\ge 0 μi0,αi0是拉格朗日乘子

ω , b , ξ i \bm{\omega}, b,\xi_i ω,b,ξi求偏导为0得:
ω = ∑ i = 1 m α i y i x i , 0 = ∑ i = 1 m α i y i C = α i + μ i \omega=\sum_{i=1}^m\alpha_iy_i\bm{x_i},\\ 0=\sum_{i=1}^m\alpha_iy_i\\ C=\alpha_i+\mu_i ω=i=1mαiyixi,0=i=1mαiyiC=αi+μi

带入上式得对偶问题:
max ⁡ α     ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j s . t .     ∑ i = 1 m α i y i = 0 , 0 ≤ α i ≥ C ,     i = 1 , 2 , ⋯   , m \max_\alpha\ \ \ \sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\bm{x_i^Tx_j}\\ s.t. \ \ \ \sum_{i=1}^m\alpha_iy_i=0,\\ 0\le\alpha_i{\ge}C,\ \ \ i=1,2,\cdots,m αmax   i=1mαi21i=1mj=1mαiαjyiyjxiTxjs.t.   i=1mαiyi=0,0αiC,   i=1,2,,m

对软间隔支持向量机,KKT条件得要求:
{ α I ≥ 0 ,    μ i ≥ 0 y i f ( x i ) − 1 + ξ i ≥ 0 α i ( y i f ( x i ) − 1 + ξ i ) = 0 ξ i ≥ 0 ,     μ i ξ i = 0 \begin{cases} \alpha_I\ge0,\ \ \mu_i\ge0\\ y_if(\bm{x_i})-1+\xi_i\ge0\\ \alpha_i(y_if(\bm{x_i})-1+\xi_i)=0\\ \xi_i\ge0,\ \ \ \mu_i\xi_i=0 \end{cases} αI0,  μi0yif(xi)1+ξi0αi(yif(xi)1+ξi)=0ξi0,   μiξi=0

对任意样本 x i , y i ) \bm{x_i},y_i) xi,yi)总有 α i = 0 或 者 y i f ( x i ) = 1 − ξ i \alpha_i = 0 或者 y_if(\bm{x_i}) = 1 - \xi_i αi=0yif(xi)=1ξi α i = 0 \alpha_i = 0 αi=0,则该样本将不会在求和中出现,也就不会对 f ( x ) f(x) f(x)有任何影响,若 α > 0 \alpha \gt0 α>0,则必有 y i f ( x i ) = 1 − ξ i y_if(\bm{x_i}) = 1 - \xi_i yif(xi)=1ξi ,即样本是支持向量,若 α i < C \alpha_i \lt C αi<C,则 μ i > 0 \mu_i \gt 0 μi>0,进而有 ξ i = 0 \xi_i = 0 ξi=0,该样本卡在最大间隔边界上;若 α i = C \alpha_i = C αi=C,则 μ i = 0 \mu_i = 0 μi=0,若此时 ξ i ≤ 1 \xi_i \le 1 ξi1则该样本落在最大间隔内部,若 ξ i > 1 \xi_i \gt1 ξi>1,则该样本被错误分类

你可能感兴趣的:(机器学习,西瓜书学习笔记)