支持向量机

Posted on Tue, Apr 12, 2022 📖Note ML

基本概念——线性可分类问题

支持向量机是基于统计学习理论的一种实用的机器学习方法。

SVM在解决小样本、非线性及高维模式识别问题中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。

机器学习算法的时间线:

线性可分

问题:无数条线,哪个直线是最好的?

好的决策边界:间隔大

将平行线插到的向量称为支持向量

让这条线平行移动,直到能够插到某一个或几个圆圈为止

这个距离作为性能指标,绿色线是这个距离最大的一条线

定义

其中xi=[xi1xi2xim]x_i=\begin{bmatrix} x_{i1} \\ x_{i2} \\ \dots \\ x_{im} \end{bmatrix}为向量,yi=1y_i=11-1为标签。

ww:向量,维度与xx一样 w=[w1w2wm]w=\begin{bmatrix} w_{1} \\ w_{2} \\ \dots \\ w_{m} \end{bmatrix} bb:常数

要找到描述这个超平面的线性方程

通过所有xxyy的取值,来算出wwbb

(w,b)\exists (w,b),使对i=1N\forall i=1∼N,有:

  1. yi=+1y_i=+1,则wTxi+b0w^\text{T}x_i+b\ge0
  2. yi=1y_i=-1,则wTxi+b0w^\text{T}x_i+b\le0

统一表示为:yi[wTxi+b]0y_i[w^\text{T}x_i+b]\ge 0

线性可分数据的超平面

优化问题

支持向量机做了一个优化问题:

最小化(Minimize)w\lVert w\rVert

约束条件(Subject to)yi[wTxi+b]1  (i=1N)y_i[w^\text{T}x_i+b]\ge 1\;(i=1∼N)

wT+b=0w^\text{T}+b=0awT+ab=0aw^\text{T}+ab=0是同一个平面,aR+a\in \R^+

SVM是最大化间隔的分类算法

aa缩放(w,b)(w,b)(aw,ab)(aw,ab),最终使其在支持向量x0x_0上有:wTx0+b=1|w^\text{T}x_0+b|=1

此时支持向量与平面的距离:d=1wd=\cfrac{1}{\lVert w\rVert}

最小化w\lVert w\rVert,其他点大于dd

yiy_i取正负1,可以协调两个类,也可以改成任意整数,差距就是aa

数据集如果线性可分,就能求得wwbb,满足条件:

12w2=12(w12+w22++wm2)\frac{1}{2}\lVert w\rVert^2=\frac{1}{2}(w_1^2+w_2^2+\cdots+w_m^2) 12\frac{1}{2}是为了求导方便

yi[wTxi+b]1  (i=1N)y_i[w^\text{T}x_i+b]\ge 1\;(i=1∼N)

优化问题

小结

非线性问题

软间隔

训练数据中的特异点,去掉后,剩下大部分样本点组成的集合满足线性可分

引入“软间隔”的概念,允许支持向量机在一些样本上不满足约束

现实中,很难确定合适的核函数使得训练样本在特征空间中线性可分;一个线性可分的结果也很难断定是否是由过拟合造成的。

将线性不可分的学习问题转换为凸二次规划问题,即软间隔最大化

线性支持向量机:

最小化:12w2+Ci=1Nξi\frac{1}{2}\|w\|^2+\boxed{C\sum_{i=1}^{N}\xi_i}ξi\xi_i为松弛变量,Ci=1NξiC\sum_{i=1}^{N}\xi_i为正则项)

约束条件:

(1)yi[wTxi+b]1y_i[w^\text{T}x_i+b]\ge1

(2)ξi0  ,i=1N\xi_i\ge0\;,i=1∼N

求解得到分离超平面wx+b=0w^*x+b^*=0,以及决策函数f(x)=sign(wx+b)f(x)=sign(w^*x+b^*)

软间隔参数

尽可能在保持间隔宽阔或限制间隔违例之间找到一个平衡

间隔或限制间隔违例之间的关系由超参数CC控制,CC越大,间隔越窄,但是违例也更少,反之则间隔越宽,但是违例也越多。

非线性可分

仍然找直线,但是到一个高维空间中找直线

定义一个高维映射ϕ(x)\phi(x):低维xx → 高维ϕ(x)\phi(x)

例如,最简单的非线性可分问题:异或问题

线性分类器变为一个超平面,把空间分为两个部分

关键思想:

为了解决非线性分割问题,将xix_i变换到一个高维空间

如何变换?

变换可能出现的问题:难以得到一个好的分类且计算开销大

需要同时解决两个问题:

核函数

高维映射xϕ(x)x\rightarrow\phi(x)

{yi[wTϕ(xi)+b]1ξiξi0\begin{cases} y_i[w^{\text{T}}\phi(x_i)+b]\ge1-\xi_i \\ \xi_i\ge 0 \end{cases}

ϕ(x)\phi(x)是无限维,无法求整体优化

ϕ(x1)\phi(x_1)ϕ(x2)\phi(x_2)两个无限维向量内积核函数(Kenerl Function)

K(x1,x2)=ϕ(x1)Tϕ(x2)K(x_1,x_2)=\phi(x_1)^\text{T}\phi(x_2)

只要知道一个核函数,不知道无限维映射ϕ(xi)\phi(x_i)的显式表达,仍然可以求解最优

为什么可以通过求内积代替显式ϕ\phi——对偶问题

假设知道了KK,如何求解ϕ(xi)\phi(x_i),让优化问题可求解?

核函数也是有限制的,KK要满足某种特定条件,才能拆成内积,K(x1,x2)K(x_1,x_2)能写成ϕ(x1)Tϕ(x2)\phi(x_1)^\text{T}\phi(x_2)的充要条件:

(1)交换性:K(x1,x2)=K(x2,x1)K(x_1,x_2)=K(x_2,x_1)

(2)半正定性:Ci,xi  ,i=1,,N\forall C_i,x_i\;,i=1,\dots,N,有

i=1Nj=1NCiCjK(xi,xj)0\sum_{i=1}^N\sum_{j=1}^NC_iC_jK(x_i,x_j)\ge0

高斯核

无限维的特征变换ϕ(x)\phi(x)

K(x,x)=exp((xx)2)K(x,x')=\exp(-(x-x')^2)

一般形式:K(x,x)=exp(λ(xx)2)  ,λ>0K(x,x')=\exp(-\lambda(x-x')^2)\;,\lambda>0

对偶问题

定义