一、定义
support vector machine(SVM)属于 监督学习,是一种 线性分类器。
SVM 与 随机森林 是机器学习中最好用的分类方法。
三部分:间隔、对偶、核技巧
二、优点
对样本依赖程度小,不会过拟合,模型效果好
三、原理
找到决策分界面,有最大的margin,鲁棒性好,泛化能力最好。
判别模型:f(w) = sign(w转置 x + β)
找到合适的β
来描述 决策分界面 和 边界分界面。
决策分界面:wTx + b = ±1
边界分界面:wTx + b = 0
两条 决策分界面 最中间的面就是 决策分界面。
两个 边界分界面 之间的距离为 两个类别之间的距离,即 分类间隔,数值为2 / ||β||
。
数学基础:
uTv = ρ ||u|| = ρ u^(1/2) = vTu
||w||表示向量的长度,也就是欧氏距离。
ρ值:
ρ > 0:
ρ < 0:
四、分类
1、Hard-margin SVM
只能准确处理 线性问题。
尽可能保证分类的 正确性 => 最大化 分类间隔, => 最小化 间距倒数的平方||β||² / 2。也因此,SVM又称为 Hard-Margin SVM最大间隔分类器。Loss(β) = ||β||² / 2。
(1)带约束问题
①最大:
max
②间隔:
margin(w, b) = N个样本点的distance中 最小的那个distance,即:
min_(w, b, xi) distance(w, b, xi)
= min_(w, b, xi) |w转置 xi + β| / ||w||
= min_(w, b, xi) yi(w转置 x + β) / ||w||
③分类器:
w转置 x + β > 0,yi = +1
w转置 x + β < 0,yi = -1
上面两个式子可以写为:
yi(w转置 x + β) > 0,i = +1,-1
存在γ>0,min yi(w转置 x + β) = γ
可以按比例,把γ缩放为1:min yi(w转置 x + β) = 1
即:yi(w转置 x + β) >= 1
综上:
max_(w, b) min_xi yi(w转置 x + β) / ||w||
= max_(w, b) 1 / ||w|| min_xi yi(w转置 x + β)
= max_(w, b) 1 / ||w|| * γ
= max_(w, b) 1 / ||w|| * 1
= max_(w, b) 1 / ||w||
= min_(w, b) ||w||
= min_(w, b) (wTw) / 2
同时,限制条件为:
yi(w转置 x + β) >= 1
<=> 1 - yi(w转置 x + β) <= 0
这样就把最小间隔问题转化为凸二次优化问题(QP问题)。convex optimazation。也成为 原问题(primal problem),这是 带约束的。
(2)将 带约束 问题 转化为 无约束 问题:
min_(w, b) max_λ L(w, b, λ)
限制条件:λi >= 0
L(w, b, λ) = (wTw) / 2 + Σ λi(1 - yi(wT x + β))
如果1 - yi(wT x + β) > 0,则max L(w, b, λ) = ∞
如果1 - yi(wT x + β) <= 0,则max L(w, b, λ) = (wTw) / 2
因此min_(w, b) max_λ L(w, b, λ) = min_(w, b) (∞, (wTw) / 2) = min_(w, b) (wTw) / 2
(3)对偶问题:
max_λ min_(w, b) L(w, b, λ)
限制条件:λi >= 0
min max L >= max min L
可以理解为:凤尾 max凤 >= 鸡头 min鸡
>=
是弱对偶关系
=
是强对偶关系
min_L(w, b, λ)
L对b的偏导是λiyi
,令λiyi = 0
,
L对w的偏导是1/2 *2 * w - λiyixi
=w - λiyixi
,令w - λiyixi = 0
,则w = λiyixi
。记为w*
。
w* = λiyixi
因此
min L(w, b, λ) = min (wTw) / 2 + Σ λi(1 - yi(wT x + β))
= min (1/2) * (Σλiyixi)T(Σλjyjxj) + Σλi - Σλiyi(λiyixi)Txi
= min -(1/2) * (ΣΣ λiλj yiyj xixj) + Σλi
因此
max_λ -(1/2) * (ΣΣ λiλj yiyj xixj) + Σλi
限制条件:λi >= 0
(4)KKT条件
L对W偏导=0,L对β偏导=0,L对λ偏导=0
λi(1 - yi(wT x + β)) = 0
λi >= 0
1 - yi(wT x + β) <= 0再进行推导:存在(x_k, y_k), 1-y_k(wTx_k + β) = 0
y_k(wTx_k + β) = 1
y_k ²(wTx_k + β) = yk
wTx_k + β = y_k
因此:β* = y_k - wTx_k =(代入 w *)= y_k - Σλiyi xiTx_k
原对偶问题具有 强对偶关系 <=> 满足KKT 条件
综上:
决策函数:f(x) = sign(wT x + b)
决策平面:w* T x + b*
w* = λiyixi
β* = y_k - wTx_k =(代入 w *)= y_k - Σλiyi xiTx_k
w * 是data的线性组合
C 和 1/λ 类似,
large C: Lower bias, high variance 倾向于过拟合
Small C: Higher bias, low variance 倾向于欠拟合
2、Soft-Margin SVM
针对 相互交融的非线性问题,可以加大容错率Soft-Margin SVM(即:允许一点点错误),找到能最小化样本误差的线,保证大局上的正确性。
min (1/2)wTw + loss
loss = ΣI{y_i (wTxi + b)<1}
因为y_i (wTxi + b中的w是不连续的,令z = wTxi + b
当z<1时,loss 0/1 = 1
当z<1时,loss 0/1 = 0
3、kernel SVM
完全线性不可分。可以引入Kernel,将问题转化到更高维度上。
相似度函数e^(-||x - l||² / (2δ²)),又称为 高斯核函数,用于衡量 x 到 l 的相似度。
如果x非常接近l,就标记为1;如果x和l距离很远,就标记为0。
例如:
如图是根据相似度函数绘制的三维图。l = [3, 5],也就是图中的最高点。从图中可以形象地看出,当x与最高点距离越近,值越趋近于1;当x与最高点距离越远,值越趋近于0。
δ会影响核函数减小的速度。
δ值越大,核函数减小越慢,Higher bias, lower variance。
δ值越小,核函数减小越快,Lower bias, Higher variance。
四、计算方法
样本与分界面的距离代表着 样本分类的可信程度,找到让所有样本的分类可信程度最高的那条线 => 不必计算所有距离,只需要找到线附近的样本,使其与线的 距离(即 分类间隔) 越远越好。
五、应用
文本分类
垃圾邮件识别
图像分类
六、使用
Use SVM software package to salve parameter θ,such as:
liblinear
libsvm
choice of parameter C