支持向量机(一)线性可分支持向量机
支持向量机(二)线性支持向量机
支持向量机(三)非线性支持向量机与核函数
支持向量机(四)SMO算法
本文介绍SVM用于二元分类。
SVM学习策略:间隔最大化,可形式化为一个求解凸二次规划问题。(间隔最大化使它有别于感知机。)
支持向量机模型包括:线性可分支持向量机、线性支持向量机、非线性支持向量机。
当训练集线性可分,通过硬间隔最大化学习的线性分类器为线性可分支持向量机,又称硬间隔支持向量机;
当训练集近似线性可分,通过软间隔最大化学习的线性分类器为线性支持向量机,又称软间隔支持向量机;
当训练集线性不可分,通过核技巧及软间隔最大化学习的非线性分类器称为非线性支持向量机。
一、线性可分支持向量机
图 7.1 中“○”表示正例,“x”表示负例。图中直线将两类数据正确划分,并间隔最大化。
![]()
在线性可分的训练集中,通过间隔最大化或等价求解相应的凸二次规划问题得到的分离超平面为:
\[w^*x+b^*\ =\ 0
\]
分类决策函数:
\[f(x)\ =\ sign(w^*\cdot\ x\ +\ b^*)
\]
称为线性可分支持向量机。
二、函数间隔、几何间隔
图 7.1 中,A,B,C三点,点 A 距超平面较远,若该点预测为正类,比较确信预测是正确的;点 C 距离超平面较近,预测为正类不那么确信,点 B 确信度在点 A、C 之间。所以一个点距离超平面的远近可以表示预测的确信程度。
\(|wx+b|\) 能相对的表示点 x 距离超平面的远近,\(wx+b\) 的符号与 y 是否一致表示分类是否正确。所以 \(y(wx+b)\) 表示分类的正确性和确信度,这就是函数间隔(不要将函数间隔、集合间隔与点到直线的距离混淆)。
1.函数间隔
训练集 \(T\) 和超平面 \((w, b)\),则样本点 \((x_i, y_i)\) 到超平面 \((w, b)\) 的函数间隔(与点到直线的距离有区别)为:
\[\hat{\gamma_i\ }\ =\ y_i(w \cdot\ x\ +\ b)
\]
函数间隔的最小值:
\[\hat{\gamma}=\min _{i=1, \cdots, N} \hat{\gamma}_{i}
\tag{1}
\]
成比例的改变 \(w\) 和 \(b\),比如 \(2w\) 和 \(2b\),超平面没改变,函数间隔变为原来 2 倍。
对超平面的法向量 \(w\) 加以约束,函数间隔成几何间隔。
2.集合间隔
训练集 \(T\) 和超平面 \((w, b)\),则样本点 \((x_i, y_i)\) 到超平面 \((w, b)\) 的几何间隔为:
\[\gamma_{i}=y_{i}\left(\frac{w}{\|w\|} \cdot x_{i}+\frac{b}{\|w\|}\right)
\tag{2}
\]
几何间隔最小值:
\[\gamma=\min _{i=1, \cdots, N} \gamma_{i}
\tag{3}
\]
函数间隔与几何间隔的关系:
\[\gamma_{i}=\frac{\hat{\gamma}_{i}}{\|w\|}
\tag{4}
\]
\[\gamma=\frac{\hat{\gamma}}{\|w\|}
\tag{5}
\]
三、间隔最大化
1.最大间隔分离超平面
使训练集线性可分,分离超平面有无数多个(等价于感知机);使间隔最大的分离超平面唯一。
最大间隔分离超平面可以表示为下面的最优化问题:
\[\underset{\omega,\ b}{max}\ \ \ \ \gamma
\tag{6}
\]
\[\text { s.t. }\ \ \ y_{i}\left(\frac{w}{\|w\|} \cdot x_{i}+\frac{b}{\|w\|}\right) \geqslant \gamma, \quad i=1,2, \cdots, N
\tag{7}
\]
即最大化超平面的几何间隔 \(\gamma\),
约束条件:训练集的每个点的几何间隔至少是 \(\gamma\)。
根据函数间隔与几何间隔的关系:
\[\underset{\omega,\ b}{max}\ \ \ \ \frac{\hat\gamma}{\|\omega\|}
\tag{8}
\]
\[\text { s.t. }\ \ \ y_i(\omega\cdot\ x_i+b)\geqslant \hat\gamma, \quad i=1,2, \cdots, N
\tag{9}
\]
函数间隔 \(\hat{\gamma}\) 的取值不影响最优化问题的解。(\(w\)、\(b\) 按比例变为 \(\lambda{w}\)、\(\lambda{b}\),此时函数间隔 \(\lambda{\hat{\gamma}}\)。这个改变对不等式没影响,对目标函数的优化也没影响。)
取 \(\hat{\gamma} = 1\) 代入,并且最大化 \(\frac{1}{||w||}\) 等价最小化 \(\frac{1}{2}{||w||}^2\)。所以线性可分支持向量机的最优化问题(原始问题):
\[\underset{\omega,\ b}{min}\ \ \ \frac{1}{2}\|\omega\|^2
\tag{10}
\]
\[\text { s.t. }\ \ \ y_i(\omega\ \cdot\ x_i+b) \geqslant 1, \quad i=1,2, \cdots, N
\tag{11}
\]
这是凸二次规划问题。
2.支持向量、间隔边界
\(H_1\)、\(H_2\)上的点是支持向量。\(H_1\)、\(H_2\) 称为间隔边界。
![]()
在决定分离超平面时只有支持向量起作用。其他点不起作用。所以将此分类模型称为支持向量机。
实例:正例点 \(x_1 = {(3,3)}^T\),\(x_2 = {(4,3)}^T\),负例点 \(x_3 = {(1,1)}^T\),求最大间隔分离超平面。
![]()
解:根据训练集构造约束最优化问题:
\(\underset{\omega,\ b}{min}\ \ \ \frac{1}{2}(\omega^2_1+\omega^2_2)\)
\(\text {s.t.}\ \ \ \ \ 3\omega_1+3\omega_2+b\geqslant1\)
\(\ \ \ \ \ \ \ \ \ \ 4\omega_1+3\omega_2+b\geqslant1\)
\(\ \ \ \ \ \ \ \ \ -\omega_1-\omega_2-b\geqslant1\)
求得:\(w_1 = w_2 = \frac{1}{2}\),\(b = -2\)。则最大间隔分离超平面为
\[\frac{1}{2}x^{(1)}+\frac{1}{2}x^{(2)}-2=0
\]
其中,\(x_1={(3,3)}^T\) 与 \(x_3={(1,1)}^T\) 为支持向量。
四、对偶算法
将线性可分支持向量机的最优化问题 \((10)\thicksim (11)\) 作为原始问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,这就是线性可分支持向量机的对偶算法。
优点:一是对偶问题更容易求解;二是引入核函数,进而推广到非线性分类问题。
对每一个不等式约束\((11)\) 引用拉格朗日乘子 \(\alpha_i≥0,\ i=1, 2,...,N\),构建拉格朗日函数:(因为约束条件 \(y_i(\omega\ \cdot\ x_i+b)-1 \ge0\),所以在构造时用减法)
\[L(w,b,\alpha)=\frac{1}{2}||w||^2-\sum_{i=1}^{N}{\alpha_iy_i}(\omega\bullet\ x_i+b)+\sum_{i=1}^{N}{\alpha_i}
\tag{12}
\]
其中,\({(\alpha_1,\alpha_2,...\alpha_N)}^T\) 为拉格朗日乘子向量。
则原始问题:
\[ \underset{\omega,\ b}{min} \ \underset{\alpha}{max} \ L(\omega,b,\alpha)
\]
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
\[\underset{\alpha}{max}\ \underset{\omega,\ b}{min}\ L(\omega,b,\alpha)
\]
即先求 \(L(\omega,b,\alpha)\) 对 \(\omega\)、\(b\) 的极小值,再求对 \(\alpha\) 的极大值。
(1)求 \(\underset{\alpha,\ b}{min}\ L(\omega,b,\alpha)\)
将拉格朗日函数 \(L(\omega,b,\alpha)\) 分别对\(\omega\),\(b\) 求偏导并令其等于0。
\[\begin{aligned}
&\nabla_{w} L(w, b, \alpha)=w-\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}=0 \\
&\nabla_{b} L(w, b, \alpha)=-\sum_{i=1}^{N} \alpha_{i} y_{i}=0
\end{aligned}
\]
得
\[w=\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}
\tag{13}
\]
\[\sum_{i=1}^{N} \alpha_{i} y_{i}=0
\tag{14}
\]
将式 \((13)\) 代入拉格朗日函数 \((12)\), 并利用式 \((14)\), 即得
\[\begin{aligned}
L(w, b, \alpha) &=\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i} y_{i}\left(\left(\sum_{j=1}^{N} \alpha_{j} y_{j} x_{j}\right) \cdot x_{i}+b\right)+\sum_{i=1}^{N} \alpha_{i} \\
&=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i}
\end{aligned}
\]
即
\[\min _{w, b} L(w, b, \alpha)=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i}
\]
(2)求 \(\min _{w, b} L(w, b, \alpha)\) 对 \(\alpha\) 的极大, 即是对偶问题
\[\begin{aligned}
\underset{\alpha}{max} \ \ \ \
& -\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i}\\
\text { s.t. } \ \ \ \
& \sum_{i=1}^{N} \alpha_{i} y_{i}=0 \\
& \alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N
\end{aligned}
\tag{15}
\]
将式 \((15)\) 的目标函数由求极大转换成求极小, 就得到下面与之等价的对偶最优化问题:
\[\begin{align}
\tag{16}
\underset{\alpha}{min}\ \ \ \
& \frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j(x_i \cdot x_j)-\sum_{i=1}^{N}\alpha_i \\
\tag{17}
s.t.\ \ \ \
& \sum_{i=1}^{N}\alpha_iy_i=0 \\
\tag{18}
& \alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N
\end{align}
\]
考虑原始最优化问题 \((10)\)~\((11)\) 和对偶最优化问题 \((16)\)~\((18)\),原始问题满足定理2的条件,所以存在 \(\omega^*\),\(\alpha^*\),\(\beta^*\),使 \(\omega^*\) 是原始问题的解,\(\alpha^*\),\(\beta^*\) 是对偶问题的解。这意味原始问题可以转换为对偶问题。
对线性可分训练集,假设对偶最优化问题 \((16)\)~\((18)\) 对 \(\alpha\) 的解为 \(\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T\),可以由 \(\alpha^*\) 求得原始最优化问题 \((10)\)~\((11)\) 对 \((\omega,b)\) 的解 \(\omega^*,b^*\)。
定理 : 设 \(\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T\) 是对偶问题的解,则存在下标 \(j\),使得 \(\alpha_j^*>0\),按下式求原始问题的解 \(\omega^*,b^*\):
\[\begin{align}
\tag{19}
& \omega^*=\sum_{i=1}^{N}\alpha_i^*y_ix_i \\
\tag{20}
& b^*=y_j-\sum_{i=1}^{N}y_i\alpha_i^*(x_i\cdot x_j)
\end{align}
\]
1.线性可分支持向量机对偶算法
输入:训练集 \(T={(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}\),其中 \(y_i\in(-1,1)\)
输出:分离超平面、分类决策树
① 构造约束最优化问题
\[\begin{aligned}
\underset{\alpha}{min}\ \ \ \
& \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^{N}\alpha_i \\
s.t.\ \ \ \
& \sum_{i=1}^{N}\alpha_iy_i=0 \\
& \alpha_i\ge0,\ \ \ \ i=1,2,...,N
\end{aligned}
\]
求得最优解 \(\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T\)。
② 计算
\[\omega^*=\sum_{i=1}^{N}\alpha_i^*y_ix_i
\]
并选择 \(\alpha^*\) 的一个正分量 \(\alpha_j^*>0\), 计算
\[b^*=y_j-\sum_{i=1}^{N}\alpha_i^*y_i(x_i\cdot x_j)
\]
③ 求得分离超平面
\[\omega^*\cdot x+b^*=0
\]
分类决策函数:
\[f(x)=sign(\omega^*\cdot\ x+b^*)
\]
在线性可分支持向量机中,由式 \((19)、\)\((20)\) 可知,\(\omega^*\)、\(b^*\) 只依赖训练集中 \(\alpha_i^*>0\) 的样本点 \((x_i,y_i)\),其他样本点对 \(\omega^*\)、\(b^*\) 没影响。将训练集中 \(\alpha_i^*>0\) 的样本点 \((x_i,y_i)\) 称为支持向量。
实例 \(2\):数据与实例 \(1\) 相同,正例点 \(x_1 = {(3,3)}^T\),\(x_2 = {(4,3)}^T\),负例点 \(x_3 = {(1,1)}^T\),用对偶算法求线性可分支持向量机。
解:根据数据,\(y_1=1,y_2=1,y_3=-1\)。
对偶问题是:
\[\begin{aligned}
\underset{\alpha}{min}\ \ \ \
& \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i} \\ \\
& =\frac{1}{2}\sum_{i=1}^{N}\alpha_iy_ix_i \times \sum_{j=1}^{N}\alpha_jy_jx_j-\sum_{i=1}^{N}\alpha_{i} \\ \\
& =\frac{1}{2}
\begin{pmatrix}
\begin{pmatrix}3,3\end{pmatrix} \begin{pmatrix}3 \\ 3\end{pmatrix}\alpha_1^2 +
\begin{pmatrix}3,3\end{pmatrix} \begin{pmatrix}4 \\ 3\end{pmatrix}\alpha_1\alpha_2-
\begin{pmatrix}3,3\end{pmatrix} \begin{pmatrix}1 \\ 1\end{pmatrix}\alpha_1\alpha_3 \\+
\begin{pmatrix}4,3\end{pmatrix} \begin{pmatrix}3 \\ 3\end{pmatrix}\alpha_1\alpha_2+
\begin{pmatrix}4,3\end{pmatrix} \begin{pmatrix}4 \\ 3\end{pmatrix}\alpha_2^2-
\begin{pmatrix}4,3\end{pmatrix} \begin{pmatrix}1 \\ 1\end{pmatrix}\alpha_2\alpha_3 \\-
\begin{pmatrix}1,1\end{pmatrix} \begin{pmatrix}3 \\ 3\end{pmatrix}\alpha_1\alpha_3-
\begin{pmatrix}1,1\end{pmatrix} \begin{pmatrix}4 \\ 3\end{pmatrix}\alpha_2\alpha_3+
\begin{pmatrix}1,1\end{pmatrix} \begin{pmatrix}1 \\ 1\end{pmatrix}\alpha_3^2
\end{pmatrix}
-\sum_{i=1}^{N}\alpha_{i}
\\ \\
& =\frac{1}{2}(18\alpha_1^2+25\alpha_2^2+2\alpha_3^2+42\alpha_1\alpha_2-12\alpha_1\alpha_3-14\alpha_2\alpha_3)-\alpha_1-\alpha_2-\alpha_3 \\ \\
s.t.\ \ \ \
& \alpha_1+\alpha_2-\alpha_3=0 \\
& \alpha_i \ge0,\ \ \ \ i=1,2,3
\end{aligned}
\]
将 \(\alpha_3=\alpha_1+\alpha_2\) 带入目标函数
\[s(\alpha_1,\alpha_2)=4\alpha_1^2+\frac{13}{2}\alpha_2^2+10\alpha_1\alpha_2-2\alpha_1-2\alpha_2
\]
对 \(\alpha_1,\alpha_2\) 求偏导并令其为 0,易知 \(s(\alpha_1,\alpha_2)\) 在点 \((\frac{3}{2},-1)^T\) 取极值,但该点不满足约束条件 \(\alpha_2\ge0\),所以最小值应该在边界上。
当 \(\alpha_1=0\) 时,最小值 \(s(0,\frac{2}{13})=-\frac{2}{13}\);
当 \(\alpha_2=0\) 时,最小值 \(s(\frac{1}{4},0)=-\frac{1}{4}\)。
于是 \(s(\alpha_1,\alpha_2)\) 在 \(\alpha_1=\frac{1}{4}\),\(\alpha_2=0\) 达到最小,此时 \(\alpha_3=\alpha_1+\alpha_2=\frac{1}{4}\)。
这样,\(\alpha_1^*=\alpha_3^*=\frac{1}{4}\) 对应的实例点 \(x_1,x_3\) 是支持向量。根据式 \((19)、\)\((20)\) 得
\[\omega^*=\sum_{i=1}^{N} \alpha_i^* y_i x_i = \frac{1}{4}(3,3)^T - \frac{1}{4}(1,1)^T = (\frac{1}{2},\frac{1}{2})^T
\]
选择 \(\alpha^*\) 的一个正分量 \(\alpha_j^*=\alpha_1^*=\frac{1}{4}\),计算 \(b^*\)
\[\begin{aligned}
b^*
& =y_j-\sum_{i=1}^{N}\alpha_i^*y_i(x_i\cdot x_j) \\
& =1-[\frac{1}{4}(3,3)\dbinom{3}{3}-\frac{1}{4}(1,1)\dbinom{3}{3}] \\
& =-2
\end{aligned}
\]
分离超平面
\[\frac{1}{2}x^{(1)}+\frac{1}{2}x^{(2)}-2=0
\]
分类决策函数
\[f(x)=sign(\frac{1}{2}x^{(1)}+\frac{1}{2}x^{(2)}-2)
\]