您的位置:首页 > 其它

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

2019-05-30 01:37 513 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_45056423/article/details/90682462

文章目录

6.0 学习导图



6.1 基本流程

  给定训练样本集 D={(x1,y1),(x2,y2),…,(xm,ym)},yi∈{−1,+1}D=\left\{\left(\boldsymbol{x}_{1}, y_{1}\right),\left(\boldsymbol{x}_{2}, y_{2}\right), \ldots,\left(\boldsymbol{x}_{m}, y_{m}\right)\right\},y_{i} \in\{-1,+1\}D={(x1​,y1​),(x2​,y2​),…,(xm​,ym​)},yi​∈{−1,+1} ,在样本空间中找到一个超平面,将不同类别的样本分开。

  在样本空间中,划分超平面可通过如下线性方程描述:

(6.1)wTx+b=0 \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b=0\tag{6.1} wTx+b=0(6.1)

其中 w=(w1w2⋮wd)\boldsymbol{w}=\left( \begin{array}{c}{w_{1}} \\ {w_{2}} \\ {\vdots} \\ {w_{d}}\end{array}\right)w=⎝⎜⎜⎜⎛​w1​w2​⋮wd​​⎠⎟⎟⎟⎞​ 为法向量,决定超平面的方向, bbb 为位移项,决定超平面与原点之间的距离。将超平面简写为 (w,b)(\boldsymbol{w}, b)(w,b) 。样本空间中任意点 x\boldsymbol{x}x 到超平面 (w,b)(\boldsymbol{w}, b)(w,b) 的距离为

(6.2)r=∣wTx+b∣∥w∥ r=\frac{\left|\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right|}{\|\boldsymbol{w}\|}\tag{6.2} r=∥w∥∣∣​wTx+b∣∣​​(6.2)

证:从点 x\boldsymbol{x}x 向超平面 (w,b)(\boldsymbol{w}, b)(w,b) 做垂线,垂足为 x0\boldsymbol{x_0}x0​ ,令 r=x−x0\boldsymbol{r}=\boldsymbol{x}-\boldsymbol{x_0}r=x−x0​ ,则 r=∥x−x0∥r=\|\boldsymbol{x}-\boldsymbol{x_0}\|r=∥x−x0​∥ ,显然, w\boldsymbol{w}w 平行于 r\boldsymbol{r}r ,故有

∣wT(x−x0)∣=∣wTr∣=∣w⋅r∣=∥w∥∥r∥=∥w∥r |\boldsymbol{w}^\mathrm{T}(\boldsymbol{x}-\boldsymbol{x_0})|=|\boldsymbol{w}^\mathrm{T}\boldsymbol{r}|=|\boldsymbol{w}\cdot\boldsymbol{r}|=\|\boldsymbol{w}\|\|\boldsymbol{r}\|=\|\boldsymbol{w}\|r ∣wT(x−x0​)∣=∣wTr∣=∣w⋅r∣=∥w∥∥r∥=∥w∥r

又 x0\boldsymbol{x_0}x0​ 在超平面上,故有

wTx0+b=0 \boldsymbol{w}^{\mathrm{T}}\boldsymbol{x_0}+b=0 wTx0​+b=0

所以

∣wT(x−x0)∣=∣wTx−wTx0∣=∣wTx+b∣ |\boldsymbol{w}^\mathrm{T}(\boldsymbol{x}-\boldsymbol{x_0})|=|\boldsymbol{w}^\mathrm{T}\boldsymbol{x}-\boldsymbol{w}^\mathrm{T}\boldsymbol{x_0}|=|\boldsymbol{w}^\mathrm{T}\boldsymbol{x}+b| ∣wT(x−x0​)∣=∣wTx−wTx0​∣=∣wTx+b∣

联立,可得式(6.2)

  假设超平面 (w,b)(\boldsymbol{w},b)(w,b) 能将训练样本正确分类,即有

{wTxi+b&gt;0,yi=+1wTxi+b&lt;0,yi=−1 \left\{\begin{array}{ll}{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b &gt; 0,} &amp; {y_{i}=+1} \\ {\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b &lt; 0,} &amp; {y_{i}=-1}\end{array}\right. {wTxi​+b>0,wTxi​+b<0,​yi​=+1yi​=−1​

则对 w\boldsymbol{w}w 和 bbb 进行等比例缩放,一定能有

(6.3){wTxi+b⩾+1,yi=+1wTxi+b⩽−1,yi=−1 \left\{\begin{array}{ll}{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b \geqslant+1,} &amp; {y_{i}=+1} \\ {\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b \leqslant-1,} &amp; {y_{i}=-1}\end{array}\right.\tag{6.3} {wTxi​+b⩾+1,wTxi​+b⩽−1,​yi​=+1yi​=−1​(6.3)

  如图 6.2 所示,距离超平面最近的几个训练样本使式(6.3)的等号成立,它们被称为“支持向量”,两个异类支持向量到超平面的距离之和为

(6.4)γ=2∥w∥ \gamma=\frac{2}{\|\boldsymbol{w}\|}\tag{6.4} γ=∥w∥2​(6.4)

它被称为“间隔”。

  要找到具有“最大化间隔”的划分超平面,也就是要找到能满足式(6.3)中约束的参数 w\boldsymbol{w}w 和 bbb ,使得 γ\gammaγ 最大,即

(6.5)max⁡w,b2∥w∥ s.t. yi(wTxi+b)⩾1,i=1,2,…,m \begin{array}{l}{\max _{w, b} \frac{2}{\|\boldsymbol{w}\|}} \\\\ {\text { s.t. } y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right) \geqslant 1, \quad i=1,2, \ldots, m}\end{array}\tag{6.5} maxw,b​∥w∥2​ s.t. yi​(wTxi​+b)⩾1,i=1,2,…,m​(6.5)

  显然,上式(6.5)与下式(6.6)等价

(6.6)min⁡w,b12∥w∥2 s.t. yi(wTxi+b)⩾1,i=1,2,…,m \begin{array}{l}{\min _{\boldsymbol{w}, b} \frac{1}{2}\|\boldsymbol{w}\|^{2}} \\\\ {\text { s.t. } y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right) \geqslant 1, \quad i=1,2, \ldots, m}\end{array}\tag{6.6} minw,b​21​∥w∥2 s.t. yi​(wTxi​+b)⩾1,i=1,2,…,m​(6.6)

这就是支持向量机(简称SVM)的基本型。

6.2 对偶问题

  求解式(6.6)可得到最大间隔划分超平面所对应的模型

(6.7)f(x)=wTx+b f(\boldsymbol{x})=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\tag{6.7} f(x)=wTx+b(6.7)

其中 w\boldsymbol{w}w 和 bbb 是模型参数。
  式(6.6)是一个凸二次规划,可以利用拉格朗日乘子法得到其“对偶问题”:

  • 将式(6.6)写成如下形式

(6.6)min⁡w,b12∥w∥2 s.t. 1−yi(wTxi+b)⩽0,i=1,2,…,m \begin{array}{l}{\min _{\boldsymbol{w}, b} \frac{1}{2}\|\boldsymbol{w}\|^{2}} \\\\ {\text { s.t. } 1-y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right) \leqslant 0, \quad i=1,2, \ldots, m}\end{array}\tag{6.6} minw,b​21​∥w∥2 s.t. 1−yi​(wTxi​+b)⩽0,i=1,2,…,m​(6.6)

  • 引入拉格朗日乘子 αi⩾0\alpha_i\geqslant0αi​⩾0 ,得到其拉格朗日函数

(6.8)L(w,b,α)=12∥w∥2+∑i=1mαi(1−yi(wTxi+b)),其中,α=(α1α2⋮αm) L(\boldsymbol{w}, b, \boldsymbol{\alpha})=\frac{1}{2}\|\boldsymbol{w}\|^{2}+\sum_{i=1}^{m} \alpha_{i}\left(1-y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right)\right),其中,\boldsymbol{\alpha}=\left( \begin{array}{c}{\alpha_{1}} \\ {\alpha_{2}} \\ {\vdots} \\ {\alpha_{m}}\end{array}\right)\tag{6.8} L(w,b,α)=21​∥w∥2+i=1∑m​αi​(1−yi​(wTxi​+b)),其中,α=⎝⎜⎜⎜⎛​α1​α2​⋮αm​​⎠⎟⎟⎟⎞​(6.8)

  • 显然

12∥w∥2=max⁡α≽0L(w,b,α) \frac{1}{2}\|\boldsymbol{w}\|^{2}=\max _{\boldsymbol{\alpha}\succcurlyeq0} L(\boldsymbol{w}, b, \boldsymbol{\alpha}) 21​∥w∥2=α≽0max​L(w,b,α)

  • 原问题转化为

min⁡w,bmax⁡α≽0L(w,b,α) \min _{\boldsymbol{w}, b} \max _{\boldsymbol{\alpha}\succcu 1fff7 rlyeq0} L(\boldsymbol{w}, b, \boldsymbol{\alpha}) w,bmin​α≽0max​L(w,b,α)

  • 其对偶问题为

max⁡α≽0min⁡w,bL(w,b,α) \max _{\boldsymbol{\alpha}\succcurlyeq0} \min _{\boldsymbol{w}, b} L(\boldsymbol{w}, b, \boldsymbol{\alpha}) α≽0max​w,bmin​L(w,b,α)

  • 对 w\boldsymbol{w}w 和 bbb 求偏导令其为 000,得到内层取最小值时的解

(6.9)w=∑i=1mαiyixi \boldsymbol{w}=\sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i}\tag{6.9} w=i=1∑m​αi​yi​xi​(6.9)

(6.10)0=∑i=1mαiyi 0=\sum_{i=1}^{m} \alpha_{i} y_{i}\tag{6.10} 0=i=1∑m​αi​yi​(6.10)

  • 代回式(6.8)

L(w,b,α)=12∥w∥2+∑i=1mαi(1−yi(wTxi+b))=12wTw+∑i=1mαi−∑i=1mαiyiwTxi−b∑i=1mαiyi=12∑i=1mαiyixiT∑i=1mαiyixi+∑i=1mαi−∑i=1mαiyi(∑i=1mαiyixiT)xi−0=∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjxiTxj \begin{aligned} L(\boldsymbol{w}, b, \boldsymbol{\alpha})&amp;=\frac{1}{2}\|\boldsymbol{w}\|^{2}+\sum_{i=1}^{m} \alpha_{i}\left(1-y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right)\right) \\ &amp;=\frac{1}{2}\boldsymbol{w}^\mathrm{T}\boldsymbol{w}+\sum_{i=1}^{m} \alpha_{i}-\sum_{i=1}^{m} \alpha_{i}y_{i}\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}-b\sum_{i=1}^{m} \alpha_{i}y_{i} \\ &amp;=\frac{1}{2}\sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i}^\mathrm{T}\sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i}+\sum_{i=1}^{m} \alpha_{i}-\sum_{i=1}^{m} \alpha_{i}y_{i}(\sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i}^\mathrm{T})\boldsymbol{x}_{i}-0 \\ &amp;=\sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}_{j} \end{aligned} L(w,b,α)​=21​∥w∥2+i=1∑m​αi​(1−yi​(wTxi​+b))=21​wTw+i=1∑m​αi​−i=1∑m​αi​yi​wTxi​−bi=1∑m​αi​yi​=21​i=1∑m​αi​yi​xiT​i=1∑m​αi​yi​xi​+i=1∑m​αi​−i=1∑m​αi​yi​(i=1∑m​αi​yi​xiT​)xi​−0=i=1∑m​αi​−21​i=1∑m​j=1∑m​αi​αj​yi​yj​xiT​xj​​

  • 加上约束条件,得到原问题的对偶问题

(6.11)max⁡α(∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjxiTxj) s.t. ∑i=1mαiyi=0       αi⩾0,i=1,2,…,m \begin{aligned}&amp;{\max _{\alpha} (\sum_{i=1}^{m} \alpha_{i}- \frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}_{j}}) \\\\ &amp;\text { s.t. } {\sum_{i=1}^{m} \alpha_{i} y_{i}=0} \\\\ &amp;\ \ \ \ \ \ \ {\alpha_{i} \geqslant 0, \quad i=1,2, \ldots, m}\end{aligned}\tag{6.11} ​αmax​(i=1∑m​αi​−21​i=1∑m​j=1∑m​αi​αj​yi​yj​xiT​xj​) s.t. i=1∑m​αi​yi​=0       αi​⩾0,i=1,2,…,m​(6.11)

令 α∗\boldsymbol\alpha^*α∗ 是式(6.11)的解,则可得到 w\boldsymbol{w}w 和 bbb 进而得到模型

(6.12)f(x)=wTx+b=∑i=1mαiyixiTx+b \begin{aligned} f(\boldsymbol{x}) &amp;=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b \\ &amp;=\sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}+b \end{aligned}\tag{6.12} f(x)​=wTx+b=i=1∑m​αi​yi​xiT​x+b​(6.12)

一般情况下, max⁡α≽0min⁡w,bL(w,b,α)⩽min⁡w,bmax⁡α≽0L(w,b,α)\max _{\boldsymbol{\alpha}\succcurlyeq0} \min _{\boldsymbol{w}, b} L(\boldsymbol{w}, b, \boldsymbol{\alpha})\leqslant\min _{\boldsymbol{w}, b} \max _{\boldsymbol{\alpha}\succcurlyeq0} L(\boldsymbol{w}, b, \boldsymbol{\alpha})maxα≽0​minw,b​L(w,b,α)⩽minw,b​maxα≽0​L(w,b,α) ,即对偶问题的函数值小于等于原问题的函数值,若要两者相等,需要函数满足 KKT 条件

(6.13){αi⩾0yif(xi)−1⩾0αi(yif(xi)−1)=0 \left\{\begin{array}{l}{\alpha_{i} \geqslant 0} \\\\ {y_{i} f\left(\boldsymbol{x}_{i}\right)-1 \geqslant 0} \\\\ {\alpha_{i}\left(y_{i} f\left(\boldsymbol{x}_{i}\right)-1\right)=0}\end{array}\right.\tag{6.13} ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧​αi​⩾0yi​f(xi​)−1⩾0αi​(yi​f(xi​)−1)=0​(6.13)

注:对于拉格朗日乘子法的学习和理解整理在《周志华《机器学习》(西瓜书) ——相关数学知识整理:拉格朗日乘子法与 KKT 条件》中。

解 α∗\boldsymbol\alpha^*α∗ 常用 SMO 方法

6.3 核函数

  将式(6.7)中的 x\boldsymbol{x}x 用 ϕ(x)\phi(\boldsymbol{x})ϕ(x) 代替,常用于将原始输入空间映射到新的高维特征空间,使原本线性不可分的样本在核空间可分。

6.4 软间隔与正则化

  所有样本都必须划分正确“硬间隔”,允许一些错误“软间隔”。引入损失函数和松弛变量。

  软间隔增强泛化能力,可防止过拟合,但容易产生欠拟合。

6.5 支持向量回归

  将分类模型转化成回归模型:SVR 支持向量回归

6.6 核方法

  基于核函数的一系列学习方法:“核方法”

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: