【吃瓜教程】第六章 - 支持向量机

参考视频:《机器学习公式详解》 第六章 支持向量机软间隔与支持向量回归

一、预备概念

1. 算法原理

几何角度:对于线性可分的数据集,SVM就是找 距离正负样本都最远的超平面,相比于感知机,其解是唯一的,且不偏不倚,泛化性能更好。

假设来一个新样本误差过大,其被标注为负样本,却落在了超平面的正样本空间里。对于感知机来说,这个样本就是正样本,导致划分错误;但是SVM是找距离正负样本都最远的超平面,有一定的缓冲空间,所以泛化性能较好。

2. 超平面

n维空间的超平面为n-1维

超平面概念
注:(二维)点到超平面距离公式 r r r 的推导过程
在这里插入图片描述

3. 几何间隔

3.1 样本点到超平面的几何间隔

对于给定的数据集 X X X 和超平面 w T x + b = 0 \mathbf{w}^T\mathbf{x}+b=0 wTx+b=0,定义数据集 X X X中任意一个 样本点 ( x i , y i ) , y ∈ { − 1 , 1 } , i = 1 , 2 , . . . , m (\mathbf{x}_i, y_i), y\in\{-1, 1\}, i=1,2,...,m (xi,yi),y{1,1},i=1,2,...,m(假设:正样本 1,负样本 -1)关于超平面的几何间隔为:
γ i = y i ( w T x i + b ) ∣ ∣ w ∣ ∣ \gamma_i=\frac{y_i(\mathbf{w}^T\mathbf{x}_i+b)}{||w||} γi=wyi(wTxi+b)

特性
正确分类错误分类
正样本: y i = 1 , w T x i + b > 0 y_i=1, \mathbf{w}^T\mathbf{x}_i+b>0 yi=1,wTxi+b>0
负样本: y i = − 1 , w T x i + b < 0 y_i=-1, \mathbf{w}^T\mathbf{x}_i+b<0 yi=1,wTxi+b<0
假设正样本正确,负样本跑到正空间
正样本: y i = 1 , w T x i + b > 0 y_i=1, \mathbf{w}^T\mathbf{x}_i+b>0 yi=1,wTxi+b>0
负样本: y i = − 1 , w T x i + b > 0 y_i=-1, \mathbf{w}^T\mathbf{x}_i+b>0 yi=1,wTxi+b>0
正样本都在正空间,负样本都在负空间正负样本不完全在对应的正负空间内
γ i > 0 \gamma_i>0 γi>0
几何间隔此时等价于点到超平面的距离
γ i < 0 \gamma_i<0 γi<0

3.2 数据集到超平面的几何间隔

对于给定的数据集 X X X 和超平面 w T x + b = 0 \mathbf{w}^T\mathbf{x}+b=0 wTx+b=0,定义 数据集 X X X关于超平面的集合间隔为:数据集 X X X中所有样本点的几何间隔最小值
γ = min ⁡ i = 1 , 2 , . . . , m γ i \gamma=\min_{i=1,2,...,m}\gamma_i γ=i=1,2,...,mminγi
即所有样本点到超平面几何间隔中最小的那个距离。

二、支持向量机

SVM
几何间隔最大的超平面一定是正中央的超平面,将其转化为数学问题:

SVM推导

2.1 约束优化问题

1. 凸优化问题

凸优化问题

2. 更一般的约束优化问题

(1)主问题(Lagrange 乘子法):求 min ⁡ f ( x ) \min f(x) minf(x)

Lagrange 乘子法
在这里插入图片描述

(2)Language 对偶问题:在约束条件下求对偶函数最大值的优化问题

在这里插入图片描述
SVM的主问题(凸函数):
min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 \min_{\mathbf{w},b} \frac{1}{2}||\mathbf{w}||^2 w,bmin21w2
s.t. ⁡ 1 − y i ( w T x i + b ) ≤ 0 , i = 1 , 2 , . . . , m \operatorname{s.t.} 1-y_i(\mathbf{w}^T\mathbf{x}_i+b)≤0, i=1,2,...,m s.t.1yi(wTxi+b)0,i=1,2,...,m
其转为对偶问题,找到一个点,使得:
y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m y_i(\mathbf{w}^T\mathbf{x}_i+b)≥1, i=1,2,...,m yi(wTxi+b)1,i=1,2,...,m

  • KKT 条件:
    在这里插入图片描述

3. 对应SVM

方法一:
  • SVM的主问题(凸函数):
    min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 \min_{\mathbf{w},b} \frac{1}{2}||\mathbf{w}||^2 w,bmin21w2
    s.t. ⁡ 1 − y i ( w T x i + b ) ≤ 0 , i = 1 , 2 , . . . , m \operatorname{s.t.} 1-y_i(\mathbf{w}^T\mathbf{x}_i+b)≤0, i=1,2,...,m s.t.1yi(wTxi+b)0,i=1,2,...,m

  • Lagrange 函数:
    L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = i m α i ( 1 − y i ( w T x i + b ) ) L(\mathbf{w},b,\mathbf{\alpha})=\frac{1}{2}||\mathbf{w}||^2+\sum_{i=i}^m\alpha_i(1-y_i(\mathbf{w}^T\mathbf{x}_i+b)) L(w,b,α)=21w2+i=imαi(1yi(wTxi+b))
    = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = i m α i − ∑ i = 1 m α i y i w T x i − b ∑ i = 1 m α i y i =\frac{1}{2}||\mathbf{w}||^2+\sum_{i=i}^m\alpha_i-\sum_{i=1}^m\alpha_iy_i\mathbf{w}^T\mathbf{x}_i-b\sum_{i=1}^m\alpha_iy_i =21w2+i=imαii=1mαiyiwTxibi=1mαiyi

    • 若将 w , b \mathbf{w},b w,b合并为 w ^ = ( w ; b ) \hat \mathbf{w}=(\mathbf{w}; b) w^=(w;b),显然上式是关于 w ^ \hat \mathbf{w} w^的凸函数(二阶导数大于零,凸函数),直接求一阶导数令其为0,然后代回即可求得min,也即 Lagrange对偶函数
      在这里插入图片描述
方法二:

在这里插入图片描述

2.2 SVM 常用 Lagrange 对偶求解的原因

在这里插入图片描述


三、软间隔

3.1 算法原理

现实中,相信不可分的情形更常见,因此需要SVM犯错。

软间隔即允许部分样本(尽可能少)不满足 下列式子中的约束:
min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 \min_{\mathbf{w},b} \frac{1}{2}||\mathbf{w}||^2 w,bmin21w2
s.t. ⁡ y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m \operatorname{s.t.} y_i(\mathbf{w}^T\mathbf{x}_i+b)≥1, i=1,2,...,m s.t.yi(wTxi+b)1,i=1,2,...,m
所以可将“必须严格执行的约束条件”转化为具有一定灵活的“损失”,进而最小化损失。该损失函数要求如下:

  • 满足约束条件,损失为0
  • 不满足约束条件,损失大于0
  • (可选)不满足约束条件,损失与其违反约束条件的程度成正比【正则化】

得软间隔:
min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ℓ 0 / 1 [ y i ( w T x i + b ) − 1 ] \min_{\mathbf{w},b} \frac{1}{2}||\mathbf{w}||^2+C\sum_{i=1}^m\ell_{0/1}[y_i(\mathbf{w}^T\mathbf{x}_i+b)-1] w,bmin21w2+Ci=1m0/1[yi(wTxi+b)1]
其中, ℓ 0 / 1 ( z ) \ell_{0/1}(z) 0/1(z)是“0/1损失函数”:
ℓ 0 / 1 ( z ) = { 1 , z < 0 0 , z ≥ 0 \ell_{0/1}(z)=\left\{\begin{matrix}1, z < 0 \\ 0, z ≥ 0\end{matrix}\right. 0/1(z)={1,z<00,z0
C C C 是一个常数,用来调节损失的权重。当 C → + ∞ C\rightarrow+∞ C+时,会使得所有样本的损失为0,进而退化为严格执行的约束条件,即 硬间隔。因此,本式可看做SVM的一般化形式。

又因为该损失函数非凸、非连续,最优化问题不好解,通常使用替代损失函数的方式来解决:hinge(合页)损失。
ℓ h i n g e ( z ) = max ⁡ ( 0 , 1 − z ) \ell_{hinge}(z)=\max(0,1-z) hinge(z)=max(0,1z)
则替换可得软间隔式子为:
min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m max ⁡ ( 0 , 1 − y i ( w T x i + b ) ) \min_{\mathbf{w},b} \frac{1}{2}||\mathbf{w}||^2+C\sum_{i=1}^m\max(0,1-y_i(\mathbf{w}^T\mathbf{x}_i+b)) w,bmin21w2+Ci=1mmax(0,1yi(wTxi+b))

除了合页损失,还有指数损失 e − z e^{-z} ez 和对率损失 log ⁡ ( 1 + e − z ) \log(1+e^{-z}) log(1+ez) 等。

引入“松弛变量” ξ i = max ⁡ ( 0 , 1 − y i ( w T x i + b ) ) ⩾ 0 \xi_i=\max(0,1-y_i(\mathbf{w}^T\mathbf{x}_i+b))\geqslant0 ξi=max(0,1yi(wTxi+b))0,则上述优化问题与下列优化问题等价:
min ⁡ w , b , ξ i 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ξ i \min_{\mathbf{w},b,\xi_i} \frac{1}{2}||\mathbf{w}||^2+C\sum_{i=1}^m\xi_i w,b,ξimin21w2+Ci=1mξi
s.t. ⁡ y i ( w T x i + b ) ⩾ 1 − ξ i , ξ i ⩾ 0 , i = 1 , 2 , . . . , m \operatorname{s.t.} y_i(\mathbf{w}^T\mathbf{x}_i+b)\geqslant1-\xi_i, \xi_i\geqslant0, i=1,2,...,m s.t.yi(wTxi+b)1ξi,ξi0,i=1,2,...,m

“松弛”就是允许SVM在一定程度上犯错,需要比1小一点点( 1 − ξ i 1-\xi_i 1ξi),小的程度就是 ξ i \xi_i ξi。若样本越界,则越偏离边界, ξ i \xi_i ξi越大,损失就越大。

四、支持向量回归(SVR)

支持向量

线性回归支持向量回归
一条线拟合训练样本以一条线 f ( x ) = w T x + b f(x)=\mathbf{w}^T\mathbf{x}+b f(x)=wTx+b为中心,宽度为 2 ϵ 2\epsilon 2ϵ隔离带来拟合训练样本
线上的点预测误差为0落在带子上的样本不计损失
均方误差不在带子上的样本以偏离带子的距离作为损失
均方误差不在带子上的样本以偏离带子的距离作为损失
最小化损失最小化损失使隔离带从样本最密集的地方(中心地带)穿过

因此SVR的优化问题可以写为
min ⁡ w , b , ξ i 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ℓ ϵ [ f ( x i ) − y i ] \min_{\mathbf{w},b,\xi_i} \frac{1}{2}||\mathbf{w}||^2+C\sum_{i=1}^m\ell_\epsilon[f(\mathbf{x}_i)-y_i] w,b,ξimin21w2+Ci=1mϵ[f(xi)yi]
其中 l ϵ ( z ) l_\epsilon(z) lϵ(z) ϵ \epsilon ϵ不敏感损失函数(类比均方误差损失)

ℓ ϵ ( z ) = { 0 , ∣ z ∣ ≤ ϵ ∣ z ∣ − ϵ , ∣ z ∣ > ϵ \ell_\epsilon(z)=\left\{\begin{matrix}0, |z| ≤ \epsilon \\ |z|-\epsilon, |z| >\epsilon\end{matrix}\right. ϵ(z)={0,zϵzϵ,z>ϵ

用绝对值的形式而不用平方形式,且不用均方误差。这里用 ϵ \epsilon ϵ不敏感损失函数是SVR强行往SVM上靠,就可以用SVM的工具(对偶、核函数)。

1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||\mathbf{w}||^2 21w2 是L2正则项(计算L2范数),该项除了防止过拟合外,也为了和(软间隔)SVM的优化目标在形式上保持一致(不用均方误差也是这个目的),这样就可以导出对偶问题引入核函数,C为调节损失权重的常数。【损失函数分为结构化风险(正则项)和经验风险两部分】

同软间隔支持向量机,因此松弛变量 ξ i \xi_i ξi,令
ℓ ϵ ( f ( x i ) − y i ) = ξ i \ell_\epsilon(f(\mathbf{x}_i)-y_i)=\xi_i ϵ(f(xi)yi)=ξi
显然 ξ i ≥ 0 \xi_i≥0 ξi0,且

  • ∣ f ( x i ) − y i ∣ ≤ ϵ ⇒ ξ i = 0 |f(\mathbf{x}_i)-y_i|≤\epsilon\Rightarrow\xi_i=0 f(xi)yiϵξi=0
  • ∣ f ( x i ) − y i ∣ > ϵ ⇒ ξ i = ∣ f ( x i ) − y i ∣ − ϵ |f(\mathbf{x}_i)-y_i|>\epsilon\Rightarrow\xi_i=|f(\mathbf{x}_i)-y_i|-\epsilon f(xi)yi>ϵξi=f(xi)yiϵ

所以 ∣ f ( x i ) − y i ∣ − ϵ ≤ ξ i ⇒ ∣ f ( x i ) − y i ∣ ≤ ϵ + ξ i |f(\mathbf{x}_i)-y_i|-\epsilon≤\xi_i\Rightarrow|f(\mathbf{x}_i)-y_i|≤\epsilon+\xi_i f(xi)yiϵξif(xi)yiϵ+ξi
⇒ − ϵ − ξ i ≤ ∣ f ( x i ) − y i ∣ ≤ ϵ + ξ i \Rightarrow-\epsilon-\xi_i≤|f(\mathbf{x}_i)-y_i|≤\epsilon+\xi_i ϵξif(xi)yiϵ+ξi

综上,可写为如下形式:
SVR
此即为SVR和软间隔最终推导出的损失函数形式(和SVM几乎完全一样)。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Beta Lemon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值