通俗来讲,它是一种二分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
SVM
SVM的目标函数基本型
m i n 1 2 w 2 min \frac{1}{2}w^2 min21w2
s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m s.t. y_i(w^Tx_i+b)\ge1, i=1,2,...,m s.t.yi(wTxi+b)≥1,i=1,2,...,m
函数间隔和几何间隔,假设超平面为 w T x + b = 0 w^Tx+b=0 wTx+b=0:
函数间隔:
用 ∣ w T x + b ∣ |w^Tx+b| ∣wTx+b∣衡量点x到超平面的远近,若 w T x + b w^Tx+b wTx+b的符号与类标记符号y一致,则分类正确。
因此可以用 y ( w T x + b ) y(w^Tx+b) y(wTx+b)的正负性判断分类正确性。
定义函数间隔为 r = y ( W T x + b ) r=y(W^Tx+b) r=y(WTx+b)
几何间隔:
点到超平面的距离为 ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ \frac{|w^Tx+b|}{||w||} ∣∣w∣∣∣wTx+b∣
定义几何间隔为 r = y ( w T x + b ) ∣ ∣ w ∣ ∣ r=\frac{y(w^Tx+b)}{||w||} r=∣∣w∣∣y(wTx+b)
因此,几何间隔实际上相当于函数间隔初上 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣
基本型中函数间隔取1,目标函数的最大化几何间隔 2 / ∣ ∣ w ∣ ∣ 2/||w|| 2/∣∣w∣∣, 约束中要满足每个样本的函数间隔大于1.
预测函数模型
f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b
对偶问题
拉格朗日函数,即对每条约束添加拉格朗日乘子 α i ≥ 0 \alpha_i\ge0 αi≥0
L ( w , b , a ) = 1 2 w 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) L(w, b, a)=\frac{1}{2}w^2+\sum_{i=1}^{m}{\alpha_i(1-y_i(w^Tx_i+b))} L(w,b,a)=21w2+i=1∑mαi(1−yi(wTxi+b))
对w和b求偏导为0后的结果代入基本型消除w和b, 就得到对偶问题。
max
根据对偶问题max求解 α \alpha α
求解时要满足KKT条件:
α i ≥ 0 \alpha_i\ge0 αi≥0
y i ( w T x + b ) − 1 ≥ 0 y_i(w^Tx+b)-1\ge0 yi(wTx+b)−1≥0
α i ( y i ( w T x i + b ) − 1 ) = 0 \alpha_i(y_i(w^Tx_i+b)-1)=0 αi(yi(wTxi+b)−1)=0
支持向量
根据对偶问题求出 α i \alpha_i αi,若 α i > 0 \alpha_i>0 αi>0, 则对应的样本为支持向量。训练完成后,大部分的样本不需要保留,模型只和支持向量有关。虚线间隔边界上的点就是支持向量。
非线性情况
解决非线性问题时,需要将原始样本映射到高维空间中,使得样本在高维空间中线性可分。
令映射函数为 φ \varphi φ,则样本x映射后的向量变为 φ ( x ) \varphi(x) φ(x)
同上:
基本型
m i n 1 2 w 2 min \frac{1}{2}w^2 min21w2
s . t . y i ( w T φ ( x i ) + b ) ≥ 1 , i = 1 , 2 , . . . , m s.t. y_i(w^T\varphi(x_i)+b)\ge1, i=1,2,...,m s.t.yi(wTφ(xi)+b)≥1,i=1,2,...,m
然后根据基本型得到对偶问题并求解
预测函数模型
f ( x ) = w T φ ( x ) + b f(x)=w^T\varphi(x)+b f(x)=wTφ(x)+b
核函数
求解对偶问题时需要计算 φ ( x i ) T φ ( x j ) \varphi(x_i)^T\varphi(x_j) φ(xi)Tφ(xj), 即样本 x i , x j x_i, x_j xi,xj映射到高维空间后的内积,计算困难。因此可以设想一个函数,满足:
κ ( x i , x j ) = φ ( x i ) T φ ( x j ) \kappa(x_i, x_j)=\varphi(x_i)^T\varphi(x_j) κ(xi,xj)=φ(xi)Tφ(xj)
这个函数 κ ( ) \kappa() κ()即核函数,使得 x i , x j x_i, x_j xi,xj的内积变换后等价于高维空间的内积,减少了计算量。
要求:只要一个对称函数所对应的核矩阵半正定,就能作为核函数。
软间隔
在基本型中要求所有样本满足约束条件(函数间隔大于1)称为硬间隔;
在软间隔中允许部分样本不满足约束条件;
作用是为了避免在高维空间中仍然无法线性可分的情况和过拟合的情况;
替代损失函数:Hinge loss; 指数损失;对率损失;
若采用hinge损失,目标函数基本型变为(其中C为无穷大时则相当于硬间隔):
m i n 1 2 w 2 + C ∑ i = 1 m m a x ( 0 , ( 1 − y i ( w T x i + b ) ) min\frac{1}{2}w^2+C\sum_{i=1}^{m}max(0, (1-y_i(w^Tx_i+b)) min21w2+C∑i=1mmax(0,(1−yi(wTxi+b))
引入松弛变量 ξ i = m a x ( 0 , ( 1 − y i ( w T x i + b ) ) \xi_i=max(0, (1-y_i(w^Tx_i+b)) ξi=max(0,(1−yi(wTxi+b)), 因此约束中 ξ i ≥ ( 1 − y i ( w T x i + b ) ) \xi_i\ge(1-y_i(w^Tx_i+b)) ξi≥(1−yi(wTxi+b)), 得到:
m i n 1 2 w 2 + C ∑ i = 1 m ξ i min\frac{1}{2}w^2+C\sum_{i=1}^{m}\xi_i min21w2+Ci=1∑mξi
s . t . y i ( w T x i + b ) ≥ 1 − ξ i , i = 1 , 2 , . . . , m s.t. y_i(w^Tx_i+b)\ge1-\xi_i, i=1,2,...,m s.t.yi(wTxi+b)≥1−ξi,i=1,2,...,m
ξ i ≥ 0 \xi_i\ge0 ξi≥0
SVR支持向量回归
目标回归模型
f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b
传统回归模型计算损失:计算模型输出f(x)和真实输出y之间的差别作为损失,当且仅当f(x)和y相同时损失为0;
SVR计算损失:允许存在偏差 ϵ \epsilon ϵ, 仅当f(x)和y之间的差别大于偏差时才开始计算损失,即以f(x)为中心,构建了宽度为2ε的间隔带,当训练样本落入此间隔带,则认为预测正确。
基本型
m i n 1 2 w 2 + C ∑ i = 1 m l ϵ ( f ( x i ) − y i ) min\frac{1}{2}w^2+C\sum_{i=1}^{m}{l_\epsilon(f(x_i)-y_i)} min21w2+Ci=1∑mlϵ(f(xi)−yi)
其中 l ϵ ( z ) l_\epsilon(z) lϵ(z)函数即为了满足间隔带要求,当 ∣ z ∣ < ϵ |z|<\epsilon ∣z∣<ϵ时损失为0, 否则损失为 ∣ z ∣ − ϵ |z|-\epsilon ∣z∣−ϵ
类似于加正则项的线性回归,只不过计算损失函数的方式不同。
为什么要把原问题转换为对偶问题?
因为原问题是凸二次规划问题,转换为对偶问题更加高效。
为什么求解对偶问题更加高效?
因为只用求解alpha系数,而alpha系数只有支持向量才非0,其他全部为0.
alpha系数有多少个?
样本点的个数
参考:
周志华,机器学习:SVM
图形解释,知乎:https://www.zhihu.com/question/21094489
支持向量机通俗解释,CSDN: http://blog.csdn.net/v_july_v/article/details/7624837
支持向量机通俗导论,july: https://blog.csdn.net/v_july_v/article/details/7624837