SVM支持向量机学习
基础
本文基本上参考《李航-统计学习方法》进行学习、排版。
- 二类分类模型;
- 基本模型是定义在特征空间上、间隔最大的线性分类器;
- 学习策略是间隔最大化,可形式化为求解凸二次规划问题,等价于正则化的损失函数最小化问题;
- 和感知机有何区别:SVM是间隔最大化;
- 模型细分类:
(1)线性可分支持向量机:数据线性可分时,通过硬间隔最大化,学习线性上分类的SVM。
(2)线性支持向量机(软间隔支持向量机):数据近似线性可分时,通过软间隔最大化,学习线性SVM。
(3)非线性支持向量机:数据线性不可分,通过核技巧(kernal) 以及软间隔最大化,学习非线性的SVM。 - 核函数(kernal):
输入空间为欧氏空间(多维),或者离散集合,特征空间为希尔伯特空间(完备性)时,核函数表示了,从输入空间映射到特征空间得到的特征向量之间的内积。(之后再解释) - 最开始应该如何定义数据集和系数的维度?笔者不太理解《李航-统计学习方法》中,在对偶问题中,是否直接将
x
i
x_i
xi视作一个点?
笔者的理解:
单个点计算情况
y i y_i yi | ( w w w | x i x_i xi | + | b b b ) |
---|---|---|---|---|
1*1 | 1*d | d*1 | 1*1 |
Y = [ y 1 y 2 . . . y n ] Y= \left[ \begin{matrix} y_1 \\ y_2 \\ ...\\ y_n\\ \end{matrix} \right] Y=⎣⎢⎢⎡y1y2...yn⎦⎥⎥⎤
ω = [ ω 1 ω 2 . . . ω d ] \omega= \left[ \begin{matrix} \omega_1 \\ \omega_2 \\ ...\\ \omega_d\\ \end{matrix} \right] ω=⎣⎢⎢⎡ω1ω2...ωd⎦⎥⎥⎤
x i = [ x i , 1 x i , 2 . . . x i , d ] x_i= \left[ \begin{matrix} x_{i,1} \\ x_{i,2} \\ ...\\ x_{i,d} \\ \end{matrix} \right] xi=⎣⎢⎢⎡xi,1xi,2...xi,d⎦⎥⎥⎤
X = [ x 1 T x 2 T . . . x n T ] X= \left[ \begin{matrix} x_{1}^{T} \\ x_{2}^{T} \\ ...\\ x_{n}^{T} \\ \end{matrix} \right] X=⎣⎢⎢⎡x1Tx2T...xnT⎦⎥⎥⎤
7.1 线性可分SVM
7.1.1 线性可分SVM定义
假设给定一个特征空间上的训练数据集为:
T
=
{
(
x
1
,
y
1
)
,
.
.
.
,
(
x
i
,
y
i
)
,
.
.
.
,
(
x
N
,
y
N
)
}
T= \{ (x_1,y_1),...,(x_i,y_i),...,(x_N,y_N) \}
T={(x1,y1),...,(xi,yi),...,(xN,yN)}
y i ∈ y = [ − 1 , + 1 ] y_i \in y=[-1,+1] yi∈y=[−1,+1]
其中, x i ∈ x ≡ R n x_i \in x \equiv R^n xi∈x≡Rn 称作第i个特征向量,或者实例(理解为样本点)。
定义7.1(线性可分SVM): 这里是引用《李航-统计学习方法》
给定的线性可分训练数据集,通过间隔最大化或者等价求解 —> 凸二次规划问题,学习到模型即分离超平面,以及判断函数:
(7.1) w ∗ ∗ x + b = 0 f ( x ) = s i g n ( w ∗ ∗ x + b ) w^* * x+b=0 \\ \tag{7.1} f(x) = sign(w^* * x+b) w∗∗x+b=0f(x)=sign(w∗∗x+b)(7.1)
7.1.2 函数间隔和几何间隔
函数间隔概念:分类准确度存在确定程度,在确定 w ∗ ∗ x + b = 0 w^* * x+b=0 w∗∗x+b=0 的超平面之后,能够得到目标点距离超平面的距离,距离越远,说明判断的确信程度更高。利用变量 y ( w ∗ ∗ x + b ) y(w^* * x+b) y(w∗∗x+b)来表示正确性和确信程度。
定义7.2(函数间隔,有hat): 这里是引用《李航-统计学习方法》
给定的数据集T以及超平面 ( w , b ) (w,b) (w,b),定义样本点和超平面的函数间隔为
(7.3) γ i ^ = y i ∗ ( w ∗ x i + b ) \hat{\gamma_{i}} = y_i * (w* x_i + b) \tag{7.3} γi^=yi∗(w∗xi+b)(7.3)
此外,定义超平面 ( w , b ) (w,b) (w,b)关于训练数据集T的函数间隔为超平面关于所有样本点的函数间隔的最小值【也就是,最靠近】
(7.4) γ ^ = m i n γ i ^ \hat{\gamma} = min \hat{\gamma_{i}} \tag{7.4} γ^=minγi^(7.4)
定义7.3(几何间隔,无hat): 这里是引用《李航-统计学习方法》
由于 w w w的值对于距离有影响,所以需要进行规范化,使得它的范数为1。如果 ∣ ∣ w ∣ ∣ = 1 ||w||=1 ∣∣w∣∣=1则两种间隔相同。
(7.5) γ i = y i ∗ ( w ∣ ∣ w ∣ ∣ ∗ x i + b ∣ ∣ w ∣ ∣ ) {\gamma_i} = y_i * (\frac{w}{||w||}*x_i + \frac{b}{||w||} ) \tag{7.5} γi=yi∗(∣∣w∣∣w∗xi+∣∣w∣∣b)(7.5)
类推,超平面关于关于训练数据集T的几何间隔为超平面关于所有样本点的几何间隔的最小值【也就是,最靠近】
(7.6) γ = m i n γ i {\gamma} = min {\gamma_{i}} \tag{7.6} γ=minγi(7.6)
所以得知,几何间隔
γ
\gamma
γ与函数间隔
γ
^
\hat{\gamma}
γ^有如下关系:
(7.8)
γ
=
γ
^
∣
∣
ω
∣
∣
\gamma = \frac{\hat{\gamma}}{||\omega||} \tag{7.8}
γ=∣∣ω∣∣γ^(7.8)
7.1.3 间隔最大化(学习策略)
直观解释:找到“几何间隔”最大化的超平面,以达到最大的确信程度来进行分类。(尚未涉及可能出现分类混杂于彼此的样本小现象)
-
最大间隔分离超平面
max w , b γ s u b j e c t t o γ i = y i ∗ ( w ∣ ∣ w ∣ ∣ ∗ x i + b ∣ ∣ w ∣ ∣ ) γ = min γ i \max_{w,b}\ \gamma \\ subject \ to \ {\gamma_i} = y_i * (\frac{w}{||w||}*x_i + \frac{b}{||w||} ) \\ \gamma = \min \ \gamma_{i} w,bmax γsubject to γi=yi∗(∣∣w∣∣w∗xi+∣∣w∣∣b)γ=min γi
由于几何间隔的“地板”为 γ \gamma γ,然后再最大化这个指标,写作:
(7.10) max w , b γ s . t . y i ∗ ( w ∣ ∣ w ∣ ∣ ∗ x i + b ∣ ∣ w ∣ ∣ ) ≥ γ \max_{w,b}\ \ \gamma \\ s.t. \ y_i * (\frac{w}{||w||}*x_i + \frac{b}{||w||} ) \geq {\gamma} \tag{7.10} w,bmax γs.t. yi∗(∣∣w∣∣w∗xi+∣∣w∣∣b)≥γ(7.10)
写成函数间隔(带hat)的形式,可能存在 λ \lambda λ使得距离进行拉伸,
λ w , λ b − − > λ γ \lambda w ,\lambda b --> \lambda \gamma λw,λb−−>λγ,所以取 γ ^ = 1 \hat{\gamma} = 1 γ^=1
(7.10) max w , b γ ^ ∣ ∣ ω ∣ ∣ s . t . y i ∗ ( ω ∗ x i + b ) ≥ γ ^ \max_{w,b}\ \ \frac{\hat{\gamma}}{||\omega||} \\ s.t. \ y_i * (\omega*x_i +b ) \geq \hat{\gamma} \tag{7.10} w,bmax ∣∣ω∣∣γ^s.t. yi∗(ω∗xi+b)≥γ^(7.10)
重新写最优化问题:
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w ∗ x i + b ) − 1 ≥ 0 , i = 1 , 2 , . . . , N \min_{w,b}\ \frac{1}{2}||w||^2 \\ s.t. \ y_i(w*x_i + b) - 1 \geq 0, \ i=1,2,...,N w,bmin 21∣∣w∣∣2s.t. yi(w∗xi+b)−1≥0, i=1,2,...,N
求解之后,得到:超平面+分类决策函数 -
最大间隔分离超平面的存在性及唯一性
存在性:数据集线性可分,而且目标函数有下界,因此有解。而且,如果 w = 0 w=0 w=0则无法单纯依靠系数 b b b得到分类,因此解满足 w ≠ 0 w \neq 0 w̸=0
唯一性:分别证明 w w w以及 b b b
(1)证明 w w w:
假设有两个 w w w符合要求,即 ( w 1 , b 1 ) (w_1,b_1) (w1,b1)以及 ( w 2 , b 2 ) (w_2,b_2) (w2,b2);
因为取最优的最小值,得到 ∣ ∣ w 1 ∣ ∣ = ∣ ∣ w 2 ∣ ∣ = c o n s t ||w_1||=||w_2||=const ∣∣w1∣∣=∣∣w2∣∣=const;
令 w = w 1 + w 2 2 w = \frac{w_1 + w_2}{2} w=2w1+w2以及 b = b 1 + b 2 2 b = \frac{b_1 + b_2}{2} b=2b1+b2,则没法达到最小值,有 c ≤ ∣ ∣ w ∣ ∣ c \leq ||w|| c≤∣∣w∣∣;
依靠模的计算,有 ∣ ∣ w ∣ ∣ ≤ 1 2 ∣ ∣ w 1 ∣ ∣ + 1 2 ∣ ∣ w 2 ∣ ∣ = c ||w|| \leq \frac{1}{2}||w_1|| + \frac{1}{2}||w_2|| = c ∣∣w∣∣≤21∣∣w1∣∣+21∣∣w2∣∣=c;
(夹逼)因此有 ∣ ∣ w ∣ ∣ = 1 2 ∣ ∣ w 1 ∣ ∣ + 1 2 ∣ ∣ w 2 ∣ ∣ ||w|| = \frac{1}{2}||w_1|| + \frac{1}{2}||w_2|| ∣∣w∣∣=21∣∣w1∣∣+21∣∣w2∣∣, w 1 , w 2 w_1,w_2 w1,w2角度为0,方向相同, w 1 = λ w 2 , ∣ λ ∣ = 1 w_1 = \lambda w_2, |\lambda|=1 w1=λw2,∣λ∣=1, λ \lambda λ取-1时,则 w = 0 w=0 w=0不满足存在性,应该取1,则有 w 1 = w 2 w_1 = w_2 w1=w2
(2)证明 b b b:
7.1.4 学习的对偶算法
笔者疑问:对偶问题求解相比原始问题有何优势?
引子1:拉格朗日
- 原始问题:各式子均可微
min x ∈ R n f ( x ) s . t . c i ( x ) ≤ 0 h j ( x ) = 0 \min_{x \in R^n}{f(x)} \\ s.t. \ {c_i(x) \leq 0} \\ h_j(x) = 0 x∈Rnminf(x)s.t. ci(x)≤0hj(x)=0 - 引进拉格朗日函数:
α
i
≥
0
\alpha_i \geq 0
αi≥0
L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ i = 1 l β j h j ( x ) L(x,\alpha, \beta) = f(x) + \sum_{i=1}^{k}{\alpha_i c_{i}(x)} + \sum_{i=1}^{l}{\beta_j h_{j}(x)} L(x,α,β)=f(x)+i=1∑kαici(x)+i=1∑lβjhj(x)
引入 x x x的函数:注意max底下并没有x,说明其中的 f ( x ) f(x) f(x)项并没有起到最大化效果。 p p p表示原始问题。
θ P ( x ) = max α , β ; α ≥ 0 L ( x , α , β ) \theta_P(x) = \max_{\alpha, \beta; \alpha \geq 0}{L(x,\alpha,\beta)} θP(x)=α,β;α≥0maxL(x,α,β)
换言之:
假设 x x x引发两个条件,即存在 i , j i,j i,j使得 c i ( x ) ≤ 0 , h j ( x ) = 0 c_i(x) \leq 0 ,h_j(x) = 0 ci(x)≤0,hj(x)=0无法成立,因为 α i , β j − > + ∞ \alpha_i, \beta_j -> +\infty αi,βj−>+∞则
max α , β ; α ≥ 0 ∑ i = 1 k α i c i ( x ) = + ∞ max α , β ; α ≥ 0 ∑ i = 1 l β j h j ( x ) = + ∞ \max_{\alpha, \beta; \alpha \geq 0} \sum_{i=1}^{k}{\alpha_i c_{i}(x)} = +\infty \\ \max_{\alpha, \beta; \alpha \geq 0} \sum_{i=1}^{l}{\beta_j h_{j}(x)} = +\infty α,β;α≥0maxi=1∑kαici(x)=+∞α,β;α≥0maxi=1∑lβjhj(x)=+∞
因此有:
θ P ( x ) = max α , β ; α ≥ 0 L ( x , α , β ) = { f ( x ) , C o n d i t i o n s S a t i s f i e d + ∞ , N o t S a t i s f i e d \theta_P(x) = \max_{\alpha, \beta; \alpha \geq 0}{L(x,\alpha,\beta)}= \begin{cases} f(x), Conditions Satisfied\\ +\infty, NotSatisfied \\ \end{cases} θP(x)=α,β;α≥0maxL(x,α,β)={f(x),ConditionsSatisfied+∞,NotSatisfied - 考虑原始问题
min
x
∈
R
n
f
(
x
)
\min_{x \in R^n}{f(x)}
minx∈Rnf(x) 则有“拉格朗日极小极大问题”:
min x ∈ R n f ( x ) = min x ∈ R n θ P ( x ) = min x ∈ R n max α , β ; α ≥ 0 L ( x , α , β ) \min_{x \in R^n}{f(x)}=\min_{x \in R^n}{\theta_P(x) }=\min_{x\in R^n}\max_{\alpha, \beta; \alpha \geq 0}{L(x,\alpha,\beta)} x∈Rnminf(x)=x∈RnminθP(x)=x∈Rnminα,β;α≥0maxL(x,α,β) - 原始问题的值: p ∗ = min x ∈ R n θ P ( x ) p^* = \min_{x \in R^n}{\theta_P(x) } p∗=minx∈RnθP(x)
引子2:拉格朗日对偶问题
- “拉格朗日极大极小问题”(
m
i
n
,
m
a
x
min,max
min,max的下标一样需要跟进):
max α , β ; α ≥ 0 θ D ( α , β ) = max α , β ; α ≥ 0 min x ∈ R n L ( x , α , β ) \max_{\alpha, \beta; \alpha \geq 0 }{\theta_D(\alpha, \beta) }=\max_{\alpha, \beta; \alpha \geq 0} \min_{x \in R^n}{L(x,\alpha,\beta)} α,β;α≥0maxθD(α,β)=α,β;α≥0maxx∈RnminL(x,α,β)
对偶问题的值: d ∗ = max α , β ; α ≥ 0 θ D ( α , β ) d^* = \max_{\alpha, \beta; \alpha \geq 0 }{\theta_D(\alpha, \beta) } d∗=maxα,β;α≥0θD(α,β) - 对偶问题和原始问题的关系:
(1)
θ D ( α , β ) = min x ∈ R n L ( x , α , β ) ≤ L ( x , α , β ) ≤ max α , β ; α ≥ 0 L ( x , α , β ) = θ P ( x ) \theta_D(\alpha, \beta) = \min_{x \in R^n}{L(x,\alpha,\beta)} \leq L(x,\alpha,\beta) \\ \leq \max_{\alpha, \beta; \alpha \geq 0}{L(x,\alpha,\beta)} = \theta_P(x) θD(α,β)=x∈RnminL(x,α,β)≤L(x,α,β)≤α,β;α≥0maxL(x,α,β)=θP(x)
即有, θ D ( α , β ) ≤ θ P ( x ) \theta_D(\alpha, \beta) \leq \theta_P(x) θD(α,β)≤θP(x)
所以两者的最优值有大小关系, d ∗ = max α , β ; α ≥ 0 θ D ( α , β ) ≤ min x ∈ R n θ P ( x ) = p ∗ d^* = \max_{\alpha, \beta; \alpha \geq 0 }{\theta_D(\alpha, \beta) } \leq \min_{x \in R^n}{\theta_P(x) }=p^* d∗=α,β;α≥0maxθD(α,β)≤x∈RnminθP(x)=p∗
(2)
x
∗
x^*
x∗是原始问题的解,
α
∗
,
β
∗
\alpha^*,\beta^*
α∗,β∗是对偶问题的解
<— 充分必要条件 —>
KKT条件(图片来自于《统计学习方法-李航》)
拉格朗日函数要对
x
,
α
,
β
x,\alpha,\beta
x,α,β求导得0,其他满足于前文所示条件。
如何进行学习的对偶算法
由7.1.3我们得到应该求得的最优化凸二次规划问题
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w ∗ x i + b ) − 1 ≥ 0 , i = 1 , 2 , . . . , N \min_{w,b}\ \frac{1}{2}||w||^2 \\ s.t. \ y_i(w*x_i + b) - 1 \geq 0, \ i=1,2,...,N w,bmin 21∣∣w∣∣2s.t. yi(w∗xi+b)−1≥0, i=1,2,...,N
构造拉格朗日函数:在此拉格朗日中的 x x x为问题中的 ω , b \omega, b ω,b
L ( ω , b , α , β ) = f ( ω , b ) + ∑ i = 1 k α i c i ( ω , b ) + ∑ i = 1 l β j h j ( ω , b ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 k α i ( 1 − y i ( w ∗ x i + b ) ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 k α i y i ( w ∗ x i + b ) + ∑ i = 1 k α i ∗ 1 L(\omega,b, \alpha, \beta) = f(\omega,b) + \sum_{i=1}^{k}{\alpha_i c_{i}(\omega,b)} + \sum_{i=1}^{l}{\beta_j h_{j}(\omega,b)} \\ = \frac{1}{2}||w||^2 + \sum_{i=1}^{k}{\alpha_i (1 - y_i(w*x_i + b))} \\ = \frac{1}{2}||w||^2 - \sum_{i=1}^{k}{\alpha_i y_i(w*x_i + b)} + \sum_{i=1}^{k}{\alpha_i * 1} L(ω,b,α,β)=f(ω,b)+i=1∑kαici(ω,b)+i=1∑lβjhj(ω,b)=21∣∣w∣∣2+i=1∑kαi(1−yi(w∗xi+b))=21∣∣w∣∣2−i=1∑kαiyi(w∗xi+b)+i=1∑kαi∗1
通过对偶问题来求解,极大极小问题
max α ; α ≥ 0 min ω b ∈ R n L ( ω , b , α ) \max_{\alpha; \alpha \geq 0} \min_{\omega b \in R^n}{L(\omega,b,\alpha)} α;α≥0maxωb∈RnminL(ω,b,α)
(1)先求解 min ω b ∈ R n L ( ω , b , α ) \min_{\omega b \in R^n}{L(\omega,b,\alpha)} minωb∈RnL(ω,b,α): 对于 ω , b \omega,b ω,b求导
∇ ω L ( ω , b , α ) = w − ∑ i = 1 N α i y i x i = 0 ∇ b L ( ω , b , α ) = − ∑ i = 1 N α i y i = 0 \nabla_{\omega} L(\omega,b,\alpha) = w-\sum_{i=1}^{N}{\alpha_i y_ix_i }=0 \\ \nabla_{b} L(\omega,b,\alpha) = - \sum_{i=1}^{N}{\alpha_i y_i} = 0 ∇ωL(ω,b,α)=w−i=1∑Nαiyixi=0∇bL(ω,b,α)=−i=1∑Nαiyi=0
所以,得到目标的表达式和另外的条件。如果看下表,则 ω \omega ω不应该按照如下公式表示, x i x_i xi需要转置。(但暂时不看向量的积的维度问题)
y i y_i yi | ( w w w | x i x_i xi | + | b b b ) |
---|---|---|---|---|
1*1 | 1*d | d*1 | 1*1 |
w = ∑ i = 1 N α i y i x i ∑ i = 1 N α i y i = 0 w = \sum_{i=1}^{N}{\alpha_i y_ix_i } \\ \sum_{i=1}^{N}{\alpha_i y_i} = 0 w=i=1∑Nαiyixii=1∑Nαiyi=0
将其代入 L ( ω , b , α ) L(\omega,b,\alpha) L(ω,b,α)之中,得到
L ( ω , b , α ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i y i ( ( ∑ j = 1 N α j y j x j ) ⋅ x i + b ) + ∑ i = 1 N α i = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) L(\omega,b,\alpha) = \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) \\ -\sum_{i=1}^{N} \alpha_i y_i ((\sum_{j=1}^{N} \alpha_j y_j x_j) \cdot x_i +b) + \sum_{i=1}^{N} \alpha_i \\ =\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) L(ω,b,α)=21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαiyi((j=1∑Nαjyjxj)⋅xi+b)+i=1∑Nαi=i=1∑Nαi−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)
得到下一步的输入物:
min ω , b ∈ R n L ( ω , b , α ) = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) \min_{\omega, b \in R^n}{L(\omega,b,\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) ω,b∈RnminL(ω,b,α)=i=1∑Nαi−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)
(2)开始求极大极小中的极大问题,
max α ; α ≥ 0 min ω b ∈ R n L ( ω , b , α ) = 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 \max_{\alpha; \alpha \geq 0} \min_{\omega b \in R^n}{L(\omega,b,\alpha)}\\ = \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) \\ s.t. \ \sum_{i=1}^{N}{\alpha_i y_i} = 0\\ \alpha_i \geq 0 α;α≥0maxωb∈RnminL(ω,b,α)=αmaxi=1∑Nαi−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)s.t. i=1∑Nαiyi=0αi≥0
转化为极小问题
min α ; α ≥ 0 L ( ω , b , α ) = min α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 α i ≥ 0 \min_{\alpha; \alpha \geq 0} {L(\omega,b,\alpha)}\\ = \min_{\alpha} \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) -\sum_{i=1}^{N} \alpha_i\\ s.t. \ \sum_{i=1}^{N}{\alpha_i y_i} = 0\\ \alpha_i \geq 0 α;α≥0minL(ω,b,α)=αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαis.t. i=1∑Nαiyi=0αi≥0
支持向量
将训练数据集中对应于 α i > 0 \alpha_i >0 αi>0的样本点 ( x i , y i ) (x_i, y_i) (xi,yi)的实例 x i ∈ R n x_i \in R^n xi∈Rn称为支持向量。由于存在KKT条件, α i ( y i ( w ∗ x i + b ) − 1 ) = 0 \alpha_i (y_i (w * x_i +b)-1)=0 αi(yi(w∗xi+b)−1)=0,需要解同时符合
y i ( w ∗ x i + b ) = 1 y_i (w * x_i +b)=1 yi(w∗xi+b)=1
因此 x i x_i xi是在间隔边界上。
7.2 线性SVM与软间隔最大化
7.2.1 线性SVM(不是线性可分)
由于现实中大多数样例都不是线性可分的,所以需要“松弛变量”来令SVM得以“纳错”以正确分类。
【重点】在于之前的不等式约束条件不能得到满足。线性不可分意味着,一些样本点无法满足几何间隔大于等于1的情况。
因此,纳入新的“松弛变量”改变原先的不等式约束条件,得到式子:
y
i
∗
(
ω
∗
x
i
+
b
)
≥
1
−
ξ
i
y_i*(\omega * x_i + b) \geq 1- \xi_i
yi∗(ω∗xi+b)≥1−ξi
相应的学习问题依旧为凸二次规划:
(7.32)
min
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ξ
i
s
.
t
.
y
i
(
w
∗
x
i
+
b
)
≥
1
−
ξ
i
,
i
=
1
,
2
,
.
.
.
,
N
ξ
i
≥
0
\min_{w,b}\ \frac{1}{2}||w||^2 + C\sum_{i=1}^{N} \xi_i \\ s.t. \ y_i(w*x_i + b) \geq 1-\xi_i, \ i=1,2,...,N \\ \xi_i \geq 0 \tag{7.32}
w,bmin 21∣∣w∣∣2+Ci=1∑Nξis.t. yi(w∗xi+b)≥1−ξi, i=1,2,...,Nξi≥0(7.32)
之后得到SVM为
f
(
x
)
=
s
i
g
n
(
ω
∗
⋅
x
i
+
b
∗
)
f(x) = sign (\omega^* \cdot x_i + b^*)
f(x)=sign(ω∗⋅xi+b∗),其中
ω
∗
\omega^*
ω∗有唯一解,
b
∗
b^*
b∗有区间解,两者为规划问题的解。
7.2.2 学习的对偶算法推导
- 根据7.32公式写出拉格朗日方程
L ( w , b , ξ , α , μ ) = f ( w , C , ξ i ) + ∑ i = 1 k α i c i ( x ) + ∑ i = 1 l β j h j ( x ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i − ∑ i = 1 N α i ( y i ( w ∗ x i + b ) − 1 + ξ i ) − ∑ i = 1 N μ i ξ i w h e r e , α ≥ 0 , μ ≥ 0 L(w,b,\xi,\alpha,\mu) = f(w,C,\xi_i) + \sum_{i=1}^{k}{\alpha_i c_{i}(x)} + \sum_{i=1}^{l}{\beta_j h_{j}(x)} \\ = \frac{1}{2}||w||^2 + C\sum_{i=1}^{N} \xi_i - \sum_{i=1}^{N}{\alpha_i ( \ y_i(w*x_i + b)-1+\xi_i)} - \sum_{i=1}^{N}{\mu_i \xi_i} \\ where, \alpha \geq 0, \mu \geq 0 L(w,b,ξ,α,μ)=f(w,C,ξi)+i=1∑kαici(x)+i=1∑lβjhj(x)=21∣∣w∣∣2+Ci=1∑Nξi−i=1∑Nαi( yi(w∗xi+b)−1+ξi)−i=1∑Nμiξiwhere,α≥0,μ≥0 - 由于求极大极小问题,所以先求极小问题。
min
w
,
b
,
ξ
L
(
w
,
b
,
ξ
,
α
,
μ
)
\min_{w,b,\xi} \ L(w,b,\xi,\alpha,\mu)
w,b,ξmin L(w,b,ξ,α,μ)
求导
∇ ω L ( ω , b , ξ i , α ) = w − ∑ i = 1 N α i y i x i = 0 ∇ ξ i L ( ω , b , ξ i , α ) = C − α i − μ i = 0 ∇ b L ( ω , b , ξ i , α ) = − ∑ i = 1 N α i y i = 0 \nabla_{\omega} L(\omega,b,\xi_i,\alpha)= w- \sum_{i=1}^{N}{\alpha_i y_ix_i }=0\\ \nabla_{\xi_i} L(\omega,b,\xi_i,\alpha) = C-\alpha_i - \mu_i =0\\ \nabla_{b} L(\omega,b,\xi_i,\alpha)=-\sum_{i=1}^{N}{\alpha_i y_i}=0 \\ ∇ωL(ω,b,ξi,α)=w−i=1∑Nαiyixi=0∇ξiL(ω,b,ξi,α)=C−αi−μi=0∇bL(ω,b,ξi,α)=−i=1∑Nαiyi=0
得到若干条件:
w = ∑ i = 1 N α i y i x i C = α i + μ i ∑ i = 1 N α i y i = 0 w=\sum_{i=1}^{N}{\alpha_i y_ix_i }\\ C = \alpha_i + \mu_i \\ \sum_{i=1}^{N}{\alpha_i y_i}=0 \\ w=i=1∑NαiyixiC=αi+μii=1∑Nαiyi=0
重新代入 min L ( w , b , ξ , α , μ ) \min \ L(w,b,\xi,\alpha,\mu) min L(w,b,ξ,α,μ)之中:
L ( w , b , ξ , α , μ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i − ∑ i = 1 N α i ( y i ( w ∗ x i + b ) − 1 + ξ i ) − ∑ i = 1 N μ i ξ i = 1 2 ∑ i = 1 N α i y i x i ∑ j = 1 N α j y j x j + ∑ i = 1 N ( α i + μ i ) ξ i + ∑ i = 1 N α i − ∑ i = 1 N α i y i ( ∑ j = 1 N α j y j x j ) x i − ∑ i = 1 N μ i ξ i − ∑ i = 1 N α i ξ i = − 1 2 ∑ i = 1 N α i y i x i ∑ j = 1 N α j y j x j + ∑ i = 1 N α i = − 1 2 ∑ i = 1 N ∑ j = 1 N α i y i α j y j ( x i ⋅ x j ) + ∑ i = 1 N α i L(w,b,\xi,\alpha,\mu) \\ =\frac{1}{2}||w||^2 + C\sum_{i=1}^{N} \xi_i - \sum_{i=1}^{N}{\alpha_i ( \ y_i(w*x_i + b)-1+\xi_i)} - \sum_{i=1}^{N}{\mu_i \xi_i} \\ = \frac{1}{2} \sum_{i=1}^{N}{\alpha_i y_ix_i }\sum_{j=1}^{N}{\alpha_j y_j x_j } +\sum_{i=1}^{N} (\alpha_i + \mu_i)\xi_i +\sum_{i=1}^{N}{\alpha_i} \\ -\sum_{i=1}^{N}{\alpha_i y_i (\sum_{j=1}^{N}{\alpha_j y_j x_j } ) x_i } - \sum_{i=1}^{N}{\mu_i \xi_i} - \sum_{i=1}^{N}{\alpha_i \xi_i} \\ = -\frac{1}{2} \sum_{i=1}^{N}{\alpha_i y_ix_i }\sum_{j=1}^{N}{\alpha_j y_j x_j } +\sum_{i=1}^{N}{\alpha_i} \\ =-\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i y_i \alpha_j y_j (x_i \cdot x_j)+\sum_{i=1}^{N}{\alpha_i} L(w,b,ξ,α,μ)=21∣∣w∣∣2+Ci=1∑Nξi−i=1∑Nαi( yi(w∗xi+b)−1+ξi)−i=1∑Nμiξi=21i=1∑Nαiyixij=1∑Nαjyjxj+i=1∑N(αi+μi)ξi+i=1∑Nαi−i=1∑Nαiyi(j=1∑Nαjyjxj)xi−i=1∑Nμiξi−i=1∑Nαiξi=−21i=1∑Nαiyixij=1∑Nαjyjxj+i=1∑Nαi=−21i=1∑Nj=1∑Nαiyiαjyj(xi⋅xj)+i=1∑Nαi - 对于
min
L
(
w
,
b
,
ξ
,
α
,
μ
)
\min \ L(w,b,\xi,\alpha,\mu)
min L(w,b,ξ,α,μ)求在
α
\alpha
α上的极大问题:
max α min w , b , ξ L ( w , b , ξ , α , μ ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i y i α j y j ( x i ⋅ x j ) + ∑ i = 1 N α i s . t . C = α i + μ i ∑ i = 1 N α i y i = 0 α i ≥ 0 μ i ≥ 0 \max_{\alpha}\min_{w,b,\xi} \ L(w,b,\xi,\alpha,\mu) \\ =-\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i y_i \alpha_j y_j (x_i \cdot x_j)+\sum_{i=1}^{N}{\alpha_i} \\ s.t. \ C = \alpha_i + \mu_i \\ \sum_{i=1}^{N}{\alpha_i y_i}=0 \\ \alpha_i \geq 0\\ \mu_i \geq 0\\ αmaxw,b,ξmin L(w,b,ξ,α,μ)=−21i=1∑Nj=1∑Nαiyiαjyj(xi⋅xj)+i=1∑Nαis.t. C=αi+μii=1∑Nαiyi=0αi≥0μi≥0
消去 μ i \mu_i μi限制条件可以写为:
∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C \sum_{i=1}^{N}{\alpha_i y_i}=0 \\ 0 \leq \alpha_i \leq C i=1∑Nαiyi=00≤αi≤C
【小结】相对于“线性可分SVM”,该节所求得的规划问题方程,只是多了一个对 α \alpha α的限制(小于C)。
【定理7.3】得到 α i ∗ , i = 1 , 2 , . . . , N ( α ≤ C ) \alpha_i^*,i=1,2,...,N(\alpha \leq C) αi∗,i=1,2,...,N(α≤C)之后,求出来的解是:可以看出 w w w是唯一解, b b b有可能有多个解,实际计算时可以取在所有符合条件的样本点上的平均值。
w ∗ = ∑ i = 1 N α i ∗ y i x i b = y j − w ∗ x j = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) w^*=\sum_{i=1}^{N}{\alpha_i^* y_ix_i }\\ b= y_j - w^* x_j = y_j - \sum_{i=1}^{N}{\alpha_i^* y_i (x_i \cdot x_j)} w∗=i=1∑Nαi∗yixib=yj−w∗xj=yj−i=1∑Nαi∗yi(xi⋅xj)
7.2.3 支持向量
线1:支持向量本来应该到超平面的距离1(因为经过了规范化)。
线2:
ξ
i
\xi_i
ξi,即所允许的误差,“软间隔”的含义;同时是它到间隔边界的函数距离。
线3:
1
−
ξ
i
1-\xi_i
1−ξi,即最开始的
y
i
∗
(
ω
∗
x
i
+
b
)
≥
1
−
ξ
i
y_i*(\omega * x_i + b) \geq 1- \xi_i
yi∗(ω∗xi+b)≥1−ξi条件。
因此,如《李航-统计学习方法》原文及图片所示,支持向量
x
i
x_i
xi到达间隔边界的几何距离(经过规范化)为
ξ
i
∣
∣
w
∣
∣
\frac{\xi_i}{||w||}
∣∣w∣∣ξi。
【图片来自《李航-统计学习方法》】
优缺点
【参考 https://blog.csdn.net/x1kz18nkbqg/article/details/78690795 】
SVM算法的主要优点有:
- 解决高维特征的分类问题和回归问题很有效,在特征维度大于样本数时依然有很好的效果。
- 仅仅使用一部分支持向量来做超平面的决策,无需依赖全部数据。
- 有大量的核函数可以使用,从而可以很灵活的来解决各种非线性的分类回归问题。
- 样本量不是海量数据的时候,分类准确率高,泛化能力强。
SVM算法的主要缺点有:
- 如果特征维度远远大于样本数,则SVM表现一般。
- SVM在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用。
- 非线性问题的核函数的选择没有通用标准,难以选择一个合适的核函数。
- SVM对缺失数据敏感。
用于回归问题
【参考】
https://blog.csdn.net/x1kz18nkbqg/article/details/78690795
https://blog.csdn.net/luoshixian099/article/details/51121767
参考书目
- 李航-统计学习方法
- 西瓜书
- 清华大学深圳研究生院袁春ppt