[模式识别-从入门到入土] 支持向量积SVM
知乎:https://www.zhihu.com/people/byzh_rc
CSDN:https://blog.csdn.net/qq_54636039
注:本文仅对所述内容做了框架性引导,具体细节可查询其余相关资料or源码
参考文章:各方资料
文章目录
- [[模式识别-从入门到入土] 支持向量积SVM](#[模式识别-从入门到入土] 支持向量积SVM)
- SVM引入
- 间隔
-
-
-
- [函数间隔 γ i ^ \hat{\gamma_i} γi^](#函数间隔 γ i ^ \hat{\gamma_i} γi^)
- [几何间隔 γ i \gamma_i γi](#几何间隔 γ i \gamma_i γi)
- 最大间隔分离超平面(唯一的)
-
-
- 线性可分SVM
- 线性SVM
- 非线性SVM
- SMO算法
SVM引入
本质:特征空间中最大化间隔的线性分类器,属于二分类模型
给定数据集,存在法向量 ω = ( ω 1 ; ω 2 ; . . . ; ω m ) \omega=(\omega_1;\omega_2;...;\omega_m) ω=(ω1;ω2;...;ωm)和位移项 b b b,对应超平面 ω T x + b = 0 \omega^Tx+b=0 ωTx+b=0
若超平面满足下式,则数据集线性可分:
{ ω T x i + b > 0 , y i = + 1 ω T x i + b < 0 , y i = − 1 \begin{cases} \omega^T x_i+b>0,\quad y_i=+1 \\ \omega^T x_i+b<0,\quad y_i=-1 \end{cases} {ωTxi+b>0,yi=+1ωTxi+b<0,yi=−1
| 三类 | 数据 | 模型 | 核心机制 |
|---|---|---|---|
| 线性可分SVM | 线性 | 线性分类器 | 硬间隔 |
| 线性SVM | 非线性(含噪) | 线性分类器 | 软间隔 |
| 非线性SVM | 非线性 | 非线性分类器 | 核技巧 |
间隔
点到超平面的距离:
r = ∣ ω T x i + b ∣ ∣ ∣ ω ∣ ∣ r=\frac{|\omega^T x_i+b|}{||\omega||} r=∣∣ω∣∣∣ωTxi+b∣
在二维情况下, 超平面是直线:
样本点 x = ( x 1 , x 2 ) x=(x_1,x_2) x=(x1,x2)
超平面 ω T x + b = ω 1 x 1 + ω 2 x 2 + b = 0 \omega^Tx+b=\omega_1x_1+\omega_2x_2+b=0 ωTx+b=ω1x1+ω2x2+b=0
距离 r = ∣ ω 1 x 1 + ω 2 x 2 + b ∣ ω 1 2 + ω 2 2 r=\frac{|\omega_1x_1+\omega_2x_2+b|}{\sqrt{\omega_1^2+\omega_2^2}} r=ω12+ω22 ∣ω1x1+ω2x2+b∣
函数间隔 γ i ^ \hat{\gamma_i} γi^
衡量对样本分类(正/负例)的确信度,未归一化
-
单个样本 x i x_i xi的函数间隔 γ i ^ \hat{\gamma_i} γi^
γ i ^ = y i ( ω T x i + b ) = ∣ ω T x i + b ∣ \hat{\gamma_i} = y_i(\omega^T x_i+b) = |\omega^T x_i+b| γi^=yi(ωTxi+b)=∣ωTxi+b∣ -
数据集的函数间隔 γ ^ \hat{\gamma} γ^ -> 所有样本函数间隔的最小值
γ ^ = min i = 1 , 2 , . . . , m γ i ^ \hat{\gamma} = \min_{i=1,2,...,m}\hat{\gamma_i} γ^=i=1,2,...,mminγi^
缺陷:当 ω \omega ω和 b b b成比例缩放 n n n倍时,超平面位置不变,但函数间隔会变为原来的 n n n倍
几何间隔 γ i \gamma_i γi
归一化后的间隔,即样本到超平面的真实欧氏距离
-
单个样本 x i x_i xi的几何间隔 γ i \gamma_i γi:
γ i = y i ( ω T ∥ ω ∥ x i + b ∥ ω ∥ ) \gamma_i= y_{i}\left(\frac{\omega^{T}}{\|\omega\|} x_{i}+\frac{b}{\|\omega\|}\right) γi=yi(∥ω∥ωTxi+∥ω∥b) -
数据集的几何间隔 γ \gamma γ -> 所有样本几何间隔的最小值
γ = min i = 1 , 2 , . . . , m γ i \gamma = \min_{i=1,2,...,m}\gamma_i γ=i=1,2,...,mminγi
二者关系:
γ i = γ i ^ ∣ ∣ ω ∣ ∣ \gamma_i=\frac{\hat{\gamma_i}}{||\omega||} γi=∣∣ω∣∣γi^
当 ∣ ∣ ω ∣ ∣ = 1 ||\omega||=1 ∣∣ω∣∣=1时, 几何间隔就是函数间隔
最大间隔分离超平面(唯一的)
同时满足两个条件的超平面:
- 正确划分数据集
- 使数据集的几何间隔最大(让数据点尽可能远离超平面)
表述一:
max ω , b γ s.t. y i ( ω T ∥ ω ∥ x i + b ∥ ω ∥ ) ≥ γ , i = 1 , ⋯ , m \begin{align} \max_{\omega, b} &\quad \gamma \\ \text{s.t.} &\quad y_{i}\left(\frac{\omega^{T}}{\|\omega\|} x_{i}+\frac{b}{\|\omega\|}\right) \geq \gamma, \quad i=1, \cdots, m \end{align} ω,bmaxs.t.γyi(∥ω∥ωTxi+∥ω∥b)≥γ,i=1,⋯,m
表述二:
max γ , ω , b γ ^ ∥ ω ∥ s.t. y i ( ω T x i + b ) ≥ γ ^ , i = 1 , 2 , ⋯ m \begin{align} \max_{\gamma, \omega, b} &\quad \frac{\hat{\gamma}}{\|\omega\|} \\ \text {s.t. } & y_{i}\left(\omega^{T} x_{i}+b\right) \geq \hat{\gamma}, i=1,2, \cdots m \end{align} γ,ω,bmaxs.t. ∥ω∥γ^yi(ωTxi+b)≥γ^,i=1,2,⋯m
线性可分SVM
由于 ( ω , b ) (\omega,b) (ω,b)可按比例缩放,不失一般性,固定最小函数间隔 γ ^ \hat{\gamma} γ^为 1 , 则:
γ i = 1 ∣ ∣ ω ∣ ∣ \gamma_i=\frac{1}{||\omega||} γi=∣∣ω∣∣1
原问题
最大化几何间隔 γ i \gamma_i γi,等价于最小化 ∣ ∣ ω ∣ ∣ 2 ||\omega||^2 ∣∣ω∣∣2
min γ , ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 s.t. y i ( ω T x i + b ) ≥ 1 , i = 1 , 2 , ⋯ m \begin{align} \min_{\gamma, \omega, b} &\quad \frac{1}{2} ||\omega||^2 \\ \text {s.t. } & y_{i}\left(\omega^{T} x_{i}+b\right) \geq 1, i=1,2, \cdots m \end{align} γ,ω,bmins.t. 21∣∣ω∣∣2yi(ωTxi+b)≥1,i=1,2,⋯m
支持向量
刚好落在间隔边界上的样本:
y i ( ω T x i + b ) = 1 y_{i}\left(\omega^{T} x_{i}+b\right) = 1 yi(ωTxi+b)=1
-> 直接决定超平面的位置
对偶问题求解
原问题是凸优化问题,可通过拉格朗日对偶性转换为对偶问题求解
引入拉格朗日乘子 α i ≥ 0 \alpha_i \ge 0 αi≥0,构造拉格朗日函数:
L ( ω , b , α ) = 1 2 ∣ ∣ ω ∣ ∣ 2 − ∑ i = 1 m α i [ y i ( ω T x i + b ) − 1 ] \quad L(\omega,b,\alpha)=\frac{1}{2} ||\omega||^2-\sum_{i=1}^m\alpha_i[y_{i}(\omega^{T} x_{i}+b)-1] L(ω,b,α)=21∣∣ω∣∣2−i=1∑mαi[yi(ωTxi+b)−1]
先极小化拉格朗日函数关于 ω , b \omega,b ω,b 的值,再极大化关于 α \alpha α 的值:
d = max α : α i min ω , b L ( ω , α , b ) \quad d=\max_{\alpha:\alpha_i} \min_{\omega, b} L(\omega, \alpha, b) d=α:αimaxω,bminL(ω,α,b)
对 ω \omega ω 求偏导: ∇ ω L = ω − ∑ i = 1 m α i y i x i = 0 \nabla_{\omega} L = \omega-\sum^m_{i=1}\alpha_iy_ix_i=0 ∇ωL=ω−∑i=1mαiyixi=0
-> ω = ∑ i = 1 m α i y i x i \omega = \sum^m_{i=1}\alpha_iy_ix_i ω=∑i=1mαiyixi
对 b 求偏导: ∇ b L = ∑ i = 1 m α i y i = 0 \nabla_{b} L = \sum^m_{i=1}\alpha_iy_i=0 ∇bL=∑i=1mαiyi=0
将 ω = ∑ i = 1 m α i y i x i \omega = \sum^m_{i=1}\alpha_iy_ix_i ω=∑i=1mαiyixi 和 ∑ i = 1 m α i y i = 0 \sum^m_{i=1}\alpha_iy_i=0 ∑i=1mαiyi=0 代入 L ( ω , b , α ) L(\omega,b,\alpha) L(ω,b,α),化简得:
min ω , b L ( ω , b , α ) = − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ) T x j + ∑ i = 1 m α i \min_{\omega, b} L(\omega, b,\alpha) =-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_{i}\alpha_{j} y_{i}y_{j}(x_{i})^{T} x_{j}+\sum_{i=1}^{m}\alpha_{i} ω,bminL(ω,b,α)=−21i=1∑mj=1∑mαiαjyiyj(xi)Txj+i=1∑mαi
原极大化目标等价于极小化其相反数,最终对偶优化问题为:
min α 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ⟨ x i , x j ⟩ − ∑ i = 1 m α i s.t. α i ≥ 0 , i = 1 , ⋯ , m ∑ i = 1 m α i y i = 0 \min_{\alpha} \frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \langle x_{i}, x_{j} \rangle - \sum_{i=1}^{m} \alpha_{i} \\ \begin{align} \text{s.t.} \quad & \alpha_{i} \geq 0, \quad i=1, \cdots, m \\ &\sum_{i=1}^{m} \alpha_{i} y_{i} = 0 \end{align} αmin21i=1∑mj=1∑mαiαjyiyj⟨xi,xj⟩−i=1∑mαis.t.αi≥0,i=1,⋯,mi=1∑mαiyi=0
⟨ x i , x j ⟩ \langle x_{i}, x_{j} \rangle ⟨xi,xj⟩: 向量 x i x_i xi 和 x j x_j xj 的内积/点积
若 α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α m ∗ ) T \alpha^*=(\alpha^*_1,\alpha^*_2,...,\alpha^*_m)^T α∗=(α1∗,α2∗,...,αm∗)T 是对偶问题的最优解,则原问题的最优解为:
- 最优参数 ω ∗ \omega^* ω∗: ω ∗ = ∑ i = 1 m α i ∗ y i x i \omega^{*} = \sum_{i=1}^{m} \alpha_{i}^* y_{i} x_{i} ω∗=∑i=1mαi∗yixi
- 最优参数 b ∗ b^* b∗(取任意支持向量 x j x_j xj 计算): b ∗ = y j − ∑ i = 1 m α i ∗ y i ⟨ x i , x j ⟩ b^{*} = y_{j} - \sum_{i=1}^{m} \alpha_{i}^* y_{i} \langle x_{i}, x_{j} \rangle b∗=yj−∑i=1mαi∗yi⟨xi,xj⟩
- 最大间隔超平面方程: ∑ i = 1 m α i ∗ y i ⟨ x i , x ⟩ + b ∗ = 0 \sum_{i=1}^m\alpha_i^* y_i\langle x_{i}, x \rangle+b^*=0 ∑i=1mαi∗yi⟨xi,x⟩+b∗=0
KKT条件
| 条件 | 数学表达式 | 含义 |
|---|---|---|
| 1 | α i ≥ 0 \alpha_i \ge 0 αi≥0 | 拉格朗日乘子必须是非负的 |
| 2 | y i f ( x i ) − 1 ≥ 0 y_i f(x_i) - 1 \ge 0 yif(xi)−1≥0 | 要么在间隔边界上 ,要么在间隔外 |
| 3 | α i ( y i f ( x i ) − 1 ) = 0 \alpha_i (y_i f(x_i) - 1) = 0 αi(yif(xi)−1)=0 | 互补松弛性:决定哪些点成为支持向量 |
只有在"刚好卡在间隔边界上的样本"才具有 α i > 0 \alpha_i > 0 αi>0,因此才是真正影响超平面的位置 的样本 → 支持向量
线性SVM
数据存在一些特异点, 但大部分是线性可分的
-> 数据非线性
目标: 在最大化分类间隔的同时,最小化误分类点的数量(允许少量样本不满足严格线性可分)
松弛变量 : ξ i ≥ 0 \xi_i \geq 0 ξi≥0
用于衡量样本偏离"理想间隔边界"的程度
ξ i \xi_i ξi越大,样本偏离越严重(甚至误分)
惩罚参数 : C > 0 C > 0 C>0
平衡"最大化间隔"与"最小化误分类代价"的权重
- C C C 越大:对误分类点的惩罚越重,更倾向于减少误分,可能导致间隔变小,易过拟合
- C C C 越小:对误分类点的惩罚越轻,更倾向于增大间隔,可能导致更多误分,易欠拟合
原问题
在允许松弛变量的前提下,通过最小化 1 2 ∣ ∣ ω ∣ ∣ 2 \frac{1}{2} ||\omega||^2 21∣∣ω∣∣2和误分类代价 C ∑ i = 1 m ξ i C\sum_{i=1}^m \xi_i C∑i=1mξi,构建约束优化问题:
min γ , ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i s.t. y i ( ω T x i + b ) ≥ 1 − ξ i , i = 1 , 2 , ⋯ , m ξ i ≥ 0 , i = 1 , 2 , ⋯ , m \min_{\gamma, \omega, b} \quad \frac{1}{2} ||\omega||^2 + C\sum_{i=1}^m \xi_i \\ \begin{align} \text {s.t. } & y_{i}\left(\omega^{T} x_{i}+b\right) \geq 1-\xi_i, \quad i=1,2, \cdots, m \\ & \xi_i \geq 0, \quad i=1,2, \cdots, m \end{align} γ,ω,bmin21∣∣ω∣∣2+Ci=1∑mξis.t. yi(ωTxi+b)≥1−ξi,i=1,2,⋯,mξi≥0,i=1,2,⋯,m
线性可分SVM是线性SVM的特殊情况:
当无特异点时, ξ i = 0 \xi_i=0 ξi=0,
线性SVM退化为线性可分SVM
最优解:
- 最优参数 ω ∗ \omega^* ω∗:唯一确定
- 最优参数 b ∗ b^* b∗:不唯一,解存在于一个区间内
- 最优超平面: ω ∗ x + b ∗ = 0 \omega^*x + b^* = 0 ω∗x+b∗=0
对偶问题求解
引入拉格朗日乘子 α i ≥ 0 \alpha_i \geq 0 αi≥0(对应间隔约束)和 μ i ≥ 0 \mu_i \geq 0 μi≥0(对应松弛变量非负约束)
构造拉格朗日函数:
L ( ω , b , ξ , α , μ ) = 1 2 ∥ ω ∥ 2 + C ∑ i = 1 m ξ i − ∑ i = 1 m α i ( y i ( ω x ( i ) + b ) − 1 + ξ i ) − ∑ i = 1 m μ i ξ i L(\omega, b,\xi,\alpha,\mu)=\frac{1}{2}\|\omega\|^{2}+C\sum_{i=1}^{m}\xi_{i}-\sum_{i=1}^{m}\alpha_{i}\left(y_{i}\left(\omega x^{(i)}+b\right)-1+\xi_{i}\right)-\sum_{i=1}^{m}\mu_{i}\xi_{i} L(ω,b,ξ,α,μ)=21∥ω∥2+Ci=1∑mξi−i=1∑mαi(yi(ωx(i)+b)−1+ξi)−i=1∑mμiξi
"先极小化拉格朗日函数关于 ω , b , ξ \omega, b, \xi ω,b,ξ的值,再极大化关于 α \alpha α的值"
-> 最终转化为对偶优化问题(极小化目标):
min ω , b , ξ 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ⟨ x i , x j ⟩ − ∑ i = 1 m α i s.t. 0 ≤ α i ≤ C , i = 1 , ⋯ , m ∑ i = 1 m α i y i = 0 \min_{\omega,b,\xi} \frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \langle x_{i}, x_{j} \rangle - \sum_{i=1}^{m} \alpha_{i} \\ \begin{align} \text{s.t.} \quad & 0 \leq \alpha_{i} \leq C, \quad i=1, \cdots, m \\ &\sum_{i=1}^{m} \alpha_{i} y_{i} = 0 \end{align} ω,b,ξmin21i=1∑mj=1∑mαiαjyiyj⟨xi,xj⟩−i=1∑mαis.t.0≤αi≤C,i=1,⋯,mi=1∑mαiyi=0
与线性可分SVM的差异:
核心区别在于对拉格朗日乘子 α i \alpha_i αi的不等式约束:
- 线性可分SVM: α i ≥ 0 \alpha_i \geq 0 αi≥0
- 线性SVM(软间隔): 0 ≤ α i ≤ C 0 \leq \alpha_i \leq C 0≤αi≤C
若 α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α m ∗ ) T \alpha^*=(\alpha^*_1,\alpha^*_2,...,\alpha^*_m)^T α∗=(α1∗,α2∗,...,αm∗)T是对偶问题的最优解,则原问题的最优解可通过以下公式计算:
- 最优 ω ∗ \omega^* ω∗: ω ∗ = ∑ i = 1 m α i ∗ y i x i \omega^{*} = \sum_{i=1}^{m} \alpha_{i}^* y_{i} x_{i} ω∗=∑i=1mαi∗yixi(由对偶问题的KKT条件推导得出)
- 最优 b ∗ b^* b∗:取任意支持向量 x j x_j xj计算, b ∗ = y j − ∑ i = 1 m α i ∗ y i ⟨ x i , x j ⟩ b^{*} = y_{j} - \sum_{i=1}^{m} \alpha_{i}^* y_{i} \langle x_{i}, x_{j} \rangle b∗=yj−∑i=1mαi∗yi⟨xi,xj⟩
- 最优超平面方程: ∑ i = 1 m α i ∗ y i ⟨ x i , x ⟩ + b ∗ = 0 \sum_{i=1}^m\alpha_i^* y_i\langle x_{i}, x \rangle + b^* = 0 ∑i=1mαi∗yi⟨xi,x⟩+b∗=0
软间隔的支持向量
对偶问题最优解 α ∗ \alpha^* α∗中,满足 α i ∗ > 0 \alpha_i^* > 0 αi∗>0的样本点 x i x_i xi
(仅支持向量才能影响超平面的位置和形状)
根据 α i ∗ \alpha_i^* αi∗和 ξ i \xi_i ξi的取值,支持向量分为4类,对应不同的样本位置:
| α i ∗ \alpha_i^* αi∗ 与 ξ i \xi_i ξi | 几何位置(基于 f ( x ) = w ⊤ x + b f(x)=\mathbf w^\top x+b f(x)=w⊤x+b) | |
|---|---|---|
| ① | 0 < α i ∗ < C 0 < \alpha_i^* < C 0<αi∗<C, ξ i = 0 \xi_i=0 ξi=0 | 恰好位于对应类别的间隔边界线上 ,即 y i f ( x i ) = 1 y_i f(x_i)=1 yif(xi)=1 |
| ② | α i ∗ = C \alpha_i^*=C αi∗=C, 0 < ξ i < 1 0<\xi_i<1 0<ξi<1 | 位于对应类别的间隔边界与超平面之间 ,即 0 < y i f ( x i ) < 1 0<y_i f(x_i)<1 0<yif(xi)<1 |
| ③ | α i ∗ = C \alpha_i^*=C αi∗=C, ξ i = 1 \xi_i=1 ξi=1 | 恰好位于分类超平面上 ,即 y i f ( x i ) = 0 y_i f(x_i)=0 yif(xi)=0 |
| ④ | α i ∗ = C \alpha_i^*=C αi∗=C, ξ i > 1 \xi_i>1 ξi>1 | 位于分类超平面错误一侧 ,即 y i f ( x i ) < 0 y_i f(x_i)<0 yif(xi)<0 |
text
正类一侧 → 沿 w 方向
(纵向表示的不是f(x),而是yf(x))
f(x)=+1 |============①=================| 正间隔边界
| α<C, ξ=0 |
| |
| |
| ② |
| α=C, 0<ξ<1 |
----------|-------------------③----------|---------- f(x)=0 超平面
| ② α=C, ξ=1 |
| α=C, 0<ξ<1 |
| |
| ④ |
| α=C, ξ>1 |
f(x)=-1 |==============================| 负间隔边界
非线性SVM
优化目标:
核函数替换对偶问题的内积
W ( α ) = 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j K ( x i , x j ) − ∑ i = 1 m α i W(\alpha)=\frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} K(x_{i}, x_{j}) - \sum_{i=1}^{m} \alpha_{i} W(α)=21i=1∑mj=1∑mαiαjyiyjK(xi,xj)−i=1∑mαi
因映射函数是非线性的,故含核函数的SVM为非线性SVM
选取合适的核函数 K ( x , z ) K(x,z) K(x,z)和参数 C C C,构造优化问题:
min α 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j K ( x i , x j ) − ∑ i = 1 m α i s.t. 0 ≤ α i ≤ C , i = 1 , ⋯ , m ∑ i = 1 m α i y i = 0 \min_{\alpha} \frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} K(x_{i}, x_{j}) - \sum_{i=1}^{m} \alpha_{i} \\ \begin{align} \text{s.t.} \quad & 0 \leq \alpha_{i} \leq C, \quad i=1, \cdots, m \\ &\sum_{i=1}^{m} \alpha_{i} y_{i} = 0 \end{align} αmin21i=1∑mj=1∑mαiαjyiyjK(xi,xj)−i=1∑mαis.t.0≤αi≤C,i=1,⋯,mi=1∑mαiyi=0
最优解 α ∗ \alpha^* α∗与截距 b ∗ b^* b∗的计算:
- 求解上述优化问题,得到最优解 α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α m ∗ ) T \alpha^*=(\alpha^*_1,\alpha^*_2,...,\alpha^*_m)^T α∗=(α1∗,α2∗,...,αm∗)T
- 选取 α ∗ \alpha^* α∗中满足 0 < α j ∗ < C 0 < \alpha_j^* < C 0<αj∗<C 的样本,计算截距 b ∗ b^* b∗
- b ∗ = y j − ∑ i = 1 m α i ∗ y i K ( x i , x j ) b^*=y_j - \sum_{i=1}^m \alpha_i^* y_i K(x_i, x_j) b∗=yj−∑i=1mαi∗yiK(xi,xj)
SMO算法
传统SVM的求解方法计算量庞大,不适合小样本场景
-> 解决办法: SMO: Sequential Minimal Optimization
SMO(序列最小优化)是一种启发式算法
-> 在一次迭代中只优化两个变量,同时固定其他所有变量
-> 通过逐步迭代逼近最优解,降低计算复杂度
求解
目标是求解最优α向量,优化模型如下:
max α ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) s.t. ∑ i = 1 N α i y i = 0 , α i ≥ 0 , i = 1 , ... , N \max {\alpha}\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}(x_{i}\cdot x_{j}) \\ \text{s.t.}\quad\sum_{i=1}^{N}\alpha_{i}y_{i}=0,\ \alpha_{i}\geq0,\ i=1,\ldots,N αmaxi=1∑Nαi−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)s.t.i=1∑Nαiyi=0, αi≥0, i=1,...,N
通过SMO算法求解上述优化问题,得到最优α向量 α ∗ α^* α∗
根据最优 α ∗ α^* α∗计算分类超平面的权重 w ∗ w^* w∗
w ∗ = ∑ i = 1 N α i ∗ y i x i w^{*}=\sum_{i=1}^{N}\alpha_{i}^{*}y_{i}x_{i} w∗=i=1∑Nαi∗yixi
计算最优偏置 b ∗ b^* b∗
-
第一步:筛选支持向量:找出所有满足 α s > 0 α_s>0 αs>0的样本 ( x s , y s ) (x_s, y_s) (xs,ys),共S个
-
第二步:计算单个支持向量对应的 b s ∗ b_s^* bs∗:
b s ∗ = y s − ∑ i = 1 N α i ∗ y i ( x i ⋅ x s ) b_{s}^{*}=y_{s}-\sum_{i=1}^{N}\alpha_{i}^{*}y_{i}(x_{i}\cdot x_{s}) bs∗=ys−i=1∑Nαi∗yi(xi⋅xs) -
第三步:求所有 b s ∗ b_s^* bs∗的平均值,得到最终 b ∗ b^* b∗:
b ∗ = 1 S ∑ i = 1 S b s ∗ b^{*}=\frac{1}{S}\sum_{i=1}^{S}b_{s}^{*} b∗=S1i=1∑Sbs∗
-> 分类超平面: w ∗ ⋅ x + b ∗ = 0 w^{*} \cdot x+b^{*}=0 w∗⋅x+b∗=0
-> 分类决策函数: f ( x ) = sign ( w ∗ ⋅ x + b ∗ ) f(x)=\operatorname{sign}(w^{*} \cdot x+b^{*}) f(x)=sign(w∗⋅x+b∗)
多分类SVM
SVM本质是二分类模型,扩展到多类分类问题时,主要采用以下两种经典策略:
一类对余类(one-against-all, OVR)
将其中一个类别作为正类,剩余所有类别合并作为负类 ,构建一个二分类器
-> 对于M个类别的问题,共需构建M个二分类优化器。
特点:应用广泛(常用),计算量相对较小
成对分类方法(one-against-one, OVO)
每次选取两个不同的类别构建一个二分类器
-> 对于M个类别的问题,共需构建 C ( M , 2 ) = M ( M − 1 ) / 2 C(M,2)=M(M-1)/2 C(M,2)=M(M−1)/2个二分类器
预测时通过投票机制确定样本类别