机器学习 周志华 学习笔记

总目录

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

第六章 支持向量机

6.1 间隔与支持向量

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

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

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

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

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

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

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

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

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

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

6.2 对偶问题

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

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

ω\bm{\omega}bb求偏导为零可得:
ω=i=1mαiyixi \omega=\sum_{i=1}^m\alpha_iy_ix_i
0=i=1mαiyi 0=\sum_{i=1}^m\alpha_iy_i
带入,将ωb\omega 和b消去可得对偶问题:
maxα i=1mαi12i=1mj=1mαiαjyiyjxiTxj \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

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

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

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

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

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

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

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

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

6.3 核函数

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

于是之前的式子可重写为:
maxα   i=1mαi12i=1mj=1mαiαjyiyjκ(xi,xj)s.t.   i=1mαiyi=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.
求解后可得到:
f(x)=ωTϕ(x)+b=i=1mαiαjϕ(xi)Tϕ(x)+b=i=1mαiyiκ(x,xi)+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
因此,在线性不可分问题中,核函数的选择成了支持向量机的最大变数,若选择了不合适的核函数,则意味着将样本映射到了一个不合适的特征空间,则极可能导致性能不佳。同时,核函数需要满足以下这个必要条件:
《机器学习》周志华(西瓜书)学习笔记 第六章 支持向量机

常用核函数

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

6.4 软间隔和正则化

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

  • 软间隔则是允许某些样本不满足约束 yi(ωTxi+b)1. y_i(\bm{\omega^Tx_i}+b)\ge1.
  • 当然,在最大化间隔的同时,不满足约束条件的样本应尽可能地少,优化目标可写为:
    minw,b   12ω2+Ci=1m0/1(yi(ωTxi+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)

C>0C>0是一个常数,0/1\ell_{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}

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

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

  • hinge损失:hinge=max(0,1z)\ell_{hinge} = max(0,1-z))
  • 指数损失(exponential loss):exp=exp(z)\ell_{exp} = exp(-z)
  • 对率损失(logistic loss):log=log(1+exp(z))\ell_{log} = log(1 +exp(-z))

采用hinge损失,则变成:
minw,b   12ω2+Ci=1mmax(0,1yi(ωTxi+b)) \min_{w,b}\ \ \ \frac{1}{2}{||\omega||}^2+C\sum_{i=1}^mmax(0,1-y_i(\bm{\omega^Tx_i}+b))

引入"松弛变量"ξi0\xi_i \ge 0,可重写为
minw,b,ξi   12ω2+Ci=1mξis.t.   yi(ωTxi+b)1ξiξi0,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
这就是常用的软间隔支持向量机

通过拉格朗日乘子法可得到相应的拉格朗日函数:
L(ω,b,α,ξ,μ)=12ω2+Ci=1mξi+i=1mαi(1ξiyi(ωTxi+b))i=1mμ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

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

ω,b,ξi\bm{\omega}, b,\xi_i求偏导为0得:
ω=i=1mαiyixi,0=i=1mαiyiC=α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

带入上式得对偶问题:
maxα   i=1mαi12i=1mj=1mαiαjyiyjxiTxjs.t.   i=1mαiyi=0,0αiC,   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

对软间隔支持向量机,KKT条件得要求:
{αI0,  μi0yif(xi)1+ξi0αi(yif(xi)1+ξi)=0ξi0,   μ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}

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

相关文章: