分类模型——SVM支持向量机
1 什么是支持向量机
首先看一下百度百科对支持向量机的介绍:
支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)。
SVM使用铰链损失函数(hinge loss)计算经验风险(empirical risk)并在求解系统中加入了正则化项以优化结构风险(structural risk),是一个具有稀疏性和稳健性的分类器。
SVM可以通过核方法(kernel method)进行非线性分类,是常见的核学习(kernel learning)方法之一。
看不太懂?看不太懂就对了,毕竟百度百科已不说人话很多年。以下是我个人的描述:
支持向量机是一个用于分类的模型,一般用于对输入进行二分类,即分为是或不是两类。
如果输入的对象拥有n个参数,则代表输入对象的点存在于n维空间中,支持向量机的目的是构建一个n-1维的连续划分,使这个划分能较精确地划分现有的输入,同时能对未来的输入有较好的包容性。
2 对支持向量机的直观感知
最直观的支持向量机模型为二维平面内点的划分,再形象化一些,可以将待划分的点看做阵前对垒的两支军队。很明显,两军之间的那条明显的界限即为分割线,因为它分开了两种点,每种点在分隔线的一侧占据极大的比重(或者全部)。这样的分割线就是我们需要的分隔。
但在支持向量机中,仅仅将两种点分开是不够的,因为这样的分隔可能存在无数种,前面已介绍过,支持向量机所求的分隔不仅要完成分隔的功能,还要兼顾包容性,即降低经验风险与结构风险。为直观认识到支持向量机需要的划分是什么样子的,可以看下图:

在这三条线中,那个分隔更符合支持向量机的要求呢?答案是H3。可以明显地看到H1甚至都没有分开两种点,而H2虽然分开了两种点,但因为分隔地过于精细,H2两侧最近的点的距离过近,如果接下来的输入数据有抖动,很容易分类错误,对数据的包容性不好,即结构风险较大。相比较而言,H3不仅满足了分隔的要求,同时距离H3最近的点的距离达到了最大值,分隔的容错率较好。
3 支持向量机处理问题的三种状态
在实际使用支持向量机时,会遇到三种状态的待分隔点集,每种状态对应一种支持向量机的求解方法,由简到繁有以下三种:
-
线性可分
在当前空间中,存在一种分隔可以将两种点完全区分开

-
线性
在当前空间中,不存在一种分隔可以将两种点完全分开,但两组点集之间有模糊的边界存在

-
非线性
在当前空间中,不存在一种分隔可以将两组点集完全分开,也不存在边界

接下来对这三种状态的分隔求解方法做推导
4 名词解释
线性可分
就是两组点可以被空间中的一个超平面分开,数学表述为:
D 0 D_0 D0 和 D 1 D_1 D1 是 n 维欧氏空间中的两个点集。如果存在 n 维向量 W 和实数 b,使得所有属于 D 0 D_0 D0 的点 X 都有 W X + b > 0 WX+b>0 WX+b>0 ,而对于所有属于 D 1 D_1 D1 的点 则有 W X + b < 0 WX+b<0 WX+b<0 ,则我们称 D 0 D_0 D0 和 D 1 D_1 D1 线性可分。
间隔
点到超平面的最小距离
最大间隔超平面(分隔)
当n>3时,n维向量W很难被想象出来,被称为超平面。
最大间隔超平面有以下两个要求:
- 能分隔两组点集
- 距离超平面最近的点的距离取得最大值
支持向量
距离最大间隔超平面最近的点
5 线性可分
5.1 待求解式的推导过程
对于点P ( x , y ) (x,y) (x,y)和直线l: A x + B y + b = 0 Ax+By+b=0 Ax+By+b=0,点P到直线l的距离公式为 ∣ A x + B y + b ∣ A 2 + B 2 \frac{|Ax+By+b|}{\sqrt{A^2+B^2}} A2+B2∣Ax+By+b∣,我们很熟悉这样的公式,然而这仅是二维平面上点到直线的距离计算公式。在实际应用中,待分隔的点集通常有许多的特征,即点集存在于多维空间中,这时我们就需要对距离公式做推广。
对于点P ( x 1 , x 2 , x 3 . . . x n ) (x_1, x_2, x_3...x_n) (x1,x2,x3...xn),我们记作 x T x^T xT,对于超平面H: w 1 x 1 + w 2 x 2 + w 3 x 3 . . . + w n x n + b w_1x_1+w_2x_2+w_3x_3...+w_nx_n+b w1x1+w2x2+w3x3...+wnxn+b,我们记作 w x T + b wx^T+b wxT+b,其中 w = ( w 1 , w 2 , w 3 . . . w n ) w=(w_1,w_2,w_3...w_n) w=(w1,w2,w3...wn)。此时点P到超平面H的距离为
∣ w x T + b ∣ ∣ ∣ w ∣ ∣ \frac{|wx^T+b|}{||w||} ∣∣w∣∣∣wxT+b∣
∣ ∣ w ∣ ∣ = w 1 2 + w 2 2 + w 3 2 . . . + w n 2 ||w||=\sqrt{w_1^2+w_2^2+w_3^2...+w_n^2} ∣∣w∣∣=w12+w22+w32...+wn2。
对于超平面H: w x T + b wx^T+b wxT+b,若此时支持向量到超平面的距离为 d d d,则可得到不等式
∣
w
x
T
+
b
∣
∣
∣
w
∣
∣
≥
d
\frac{|wx^T+b|}{||w||}\geq{d}
∣∣w∣∣∣wxT+b∣≥d
注:支持向量即与超平面距离最小的点
让我们回顾一下最大间隔超平面的定义:1. 能分隔两组点集 2.距离超平面最近的点的距离取得最大值,它们分别为带求解问题的准确性标准和本体
5.1.1 准确性标准
我们引入 y y y作为点集分类的标签。搭建模型时,超平面H对点集进行分类,最容易也是最有效的分类为正负分类。所以我们引入互为相反数的 y y y作为分类标签(比如 y ∈ { − 1 , 1 } y\in\{-1,1\} y∈{−1,1}),对于点集中的所有点,都满足 y ( w x T + b ) ≥ 0 y(wx^T+b)\geq0 y(wxT+b)≥0时两组点被正确分隔, ∣ w x T + b ∣ |wx^T+b| ∣wxT+b∣为判断分类置信度的依据, ∣ w x T + b ∣ |wx^T+b| ∣wxT+b∣越大,代表分类越明确。
使用模型时,对于任意一组数据,在经过超平面H: w x T + b wx^T+b wxT+b计算后会产生一个输出,此时我们可以利用输出的正负对数据进行分类(比如常用分类决策函数sign)
总而言之,对于可分隔数据模型,正确分隔可用下式表示
y
(
w
x
T
+
b
)
≥
0
y(wx^T+b)\geq0
y(wxT+b)≥0
5.1.2 待求解问题
为了使模型具有更好的鲁棒性,不至于因为输入数据的微小差异而分为不同的类,我们要做的就是最大化两点集的间隔,使得距离最大间隔超平面距离最小的点的距离取得最大值
这么说有点绕,将问题用数学形式表达为
m
a
x
d
0
s
.
t
.
∀
d
i
,
d
i
≥
d
0
max \ d_0\\ s.t. \quad\forall d_i , d_i\geq d_0
max d0s.t.∀di,di≥d0
d
i
d_i
di为点
x
i
x_i
xi到超平面的距离,
d
0
d_0
d0为所有距离中的最小距离。
如果令分类标签
y
∈
{
−
1
,
1
}
y\in\{-1,1\}
y∈{−1,1},则带求解问题可进一步写为
m
a
x
y
0
(
w
x
0
T
+
b
)
∣
∣
w
∣
∣
s
.
t
.
∀
x
i
,
y
i
(
w
x
i
+
b
)
≥
y
0
(
w
x
0
T
+
b
)
max \ \frac{y_0(wx_0^T+b)}{||w||}\\ s.t. \quad\forall x_i, y_i(wx_i+b)\geq y_0(wx_0^T+b)
max ∣∣w∣∣y0(wx0T+b)s.t.∀xi,yi(wxi+b)≥y0(wx0T+b)
5.2 带求解问题的转化
在5.1中我们得到了待解决的问题。超平面随着
w
w
w与
b
b
b的变化在空间中运动,这个变化是连续的;而对每个确定的超平面我们都要计算点集与超平面的距离,因为点与点是离散的,我们很难用连续的数学工具处理所有点的距离在变化过程中的最小值,因此,我们需要将待求解问题转化。首先,原问题等价于
m
a
x
λ
γ
0
∣
∣
λ
w
∣
∣
s
.
t
.
∀
x
i
,
λ
γ
i
≥
λ
γ
0
max\ \frac{\lambda\gamma_0}{||\lambda{w}||}\\ s.t. \quad\forall x_i, \lambda\gamma_i\geq\lambda\gamma_0\\
max ∣∣λw∣∣λγ0s.t.∀xi,λγi≥λγ0
其中
γ
=
y
(
w
x
T
+
b
)
\gamma=y(wx^T+b)
γ=y(wxT+b),上式是对原式一个简单的变形,
λ
\lambda
λ为任意正数时,两式都明显等价。
之后我们让 λ \lambda λ有一个有意义的赋值,令 λ = 1 γ 0 \lambda=\frac{1}{\gamma_0} λ=γ01,得
m a x 1 ∣ ∣ w γ 0 ∣ ∣ s . t . ∀ x i , γ i γ 0 ≥ 1 max \frac{1}{||\frac{w}{\gamma_0}||}\\ s.t. \quad\forall x_i, \frac{\gamma_i}{\gamma_0}\geq 1 max∣∣γ0w∣∣1s.t.∀xi,γ0γi≥1
令 w γ ′ = w ′ \frac{w}{\gamma'}=w' γ′w=w′, γ i γ 0 = γ i ′ \frac{\gamma_i}{\gamma_0}=\gamma_i' γ0γi=γi′,原式可化简为
m a x 1 ∣ ∣ w ′ ∣ ∣ s . t . ∀ x i , γ i ′ ≥ 1 max \ \frac{1}{||w'||}\\ s.t. \quad\forall x_i, \gamma_i'\geq 1 max ∣∣w′∣∣1s.t.∀xi,γi′≥1
再用 w w w代替 w ′ w' w′, γ \gamma γ代替 γ ′ \gamma' γ′,得到转化后的待解问题
m a x 1 ∣ ∣ w ∣ ∣ s . t . ∀ x i , γ i ≥ 1 max \ \frac{1}{||w||}\\ s.t. \quad\forall x_i, \gamma_i\geq 1 max ∣∣w∣∣1s.t.∀xi,γi≥1
γ = y ( w x T + b ) \gamma=y(wx^T+b) γ=y(wxT+b),这就是待求解式的来历,因为很多教材没有说变形过程,直接就变形了,所以这里写得详细些。其变形的依据就是 w w w和 b b b同乘一个常数不会改变超平面的空间属性,但会改变计算结果 w x T + b wx^T+b wxT+b(置信度,置信度绝对值越大说明这个点离最大间隔超平面越远,说明分类越明确),在计算过程中,我们统一支持向量的置信度为一个常数(通常为1)。
如果对于您对于上述变形依旧有些苦恼,不妨正向考虑这个问题。假设我们已经有了一个模型,设定正例标签 y = 1 y=1 y=1,反例标签 y = − 1 y=-1 y=−1。设超平面H: w x T + b = 0 wx^T+b=0 wxT+b=0,超平面H1: w x T + b = 1 wx^T+b=1 wxT+b=1,H1经过此时的支持向量。(当然,H1右侧的常数可以为任意值) 这样设定的好处是,无论 w w w与 b b b如何同比例变化,最大间隔超平面H: w x T + b = 0 wx^T+b=0 wxT+b=0的空间属性不变,还在原来的位置;而超平面H1: w x T + b = 1 wx^T+b=1 wxT+b=1会随着 w w w和 b b b的同比例变化而移动,并一定存在一个比例使得H1经过支持向量。因为我们只变化了 w w w和 b b b,而未改变H1的右侧常数1,所以可以认为此时所有点 ∣ w x T + b ∣ ≥ 1 |wx^T+b|\geq1 ∣wxT+b∣≥1(因为H1经过支持向量),在此基础上 y ( w x T + b ) ≥ 1 y(wx^T+b)\geq1 y(wxT+b)≥1的点被正确分类了,分类的置信度有了统一的比较。 此时最近点与超平面H最大距离问题就转化为了恒定常数差(这里为1)的两超平面H与H1的最大距离问题,即 m a x 1 ∣ ∣ w ∣ ∣ max \ \frac{1}{||w||} max ∣∣w∣∣1,限制条件为所有点被正确分类, y ( w x T + b ) ≥ 1 y(wx^T+b)\geq1 y(wxT+b)≥1。
5.3 问题求解
m
a
x
1
∣
∣
w
∣
∣
s
.
t
.
y
(
w
x
T
+
b
)
≥
1
max \ \frac{1}{||w||}\\ s.t. \quad y(wx^T+b)\geq1
max ∣∣w∣∣1s.t.y(wxT+b)≥1
这是一个有条件约束的多元最值问题,首先,变量都在分母上,不便于求解,而且还有根号,因此我们将待解问题变形
m
i
n
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
(
w
x
T
+
b
)
≥
1
min \ \frac{1}{2}{||w||^2}\\ s.t. \quad y(wx^T+b)\geq1
min 21∣∣w∣∣2s.t.y(wxT+b)≥1
对于这样的约束最值问题,可以用拉格朗日乘数法来尝试解决,因为约束条件不为等式,引入变量
a
i
a_i
ai将其转化为等式,此时问题为
m
i
n
F
(
w
,
b
,
λ
,
a
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
n
λ
i
[
a
i
2
+
(
1
−
y
i
(
w
x
i
T
+
b
)
)
]
s
.
t
.
a
i
2
+
(
1
−
y
i
(
w
x
i
T
+
b
)
)
=
0
min \ F(w,b,\lambda,a) = \frac{1}{2}||w||^2+\sum_{i=1}^{n}{\lambda_i[a_i^2+(1-y_i(wx_i^T+b))]}\\ s.t. \quad a_i^2+(1-y_i(wx_i^T+b))=0
min F(w,b,λ,a)=21∣∣w∣∣2+i=1∑nλi[ai2+(1−yi(wxiT+b))]s.t.ai2+(1−yi(wxiT+b))=0
在求导时,除了对
w
w
w和
λ
i
\lambda_i
λi求导,引入的松弛变量
a
i
a_i
ai也要求导,求导结果为
{
∂
F
∂
w
=
∂
1
2
∣
∣
w
∣
∣
2
∂
w
−
∑
i
=
1
n
λ
i
y
i
x
i
T
=
0
∂
F
∂
b
=
−
∑
i
=
1
n
λ
i
y
i
=
0
∂
F
∂
λ
i
=
a
i
2
+
(
1
−
y
i
(
w
x
i
T
+
b
)
)
=
0
∂
F
∂
a
i
=
2
λ
i
a
i
=
0
\begin{cases} \frac {\partial F}{\partial w} = \frac {\partial \frac{1}{2}||w||^2}{\partial w} - \sum_{i=1}^{n}{\lambda_i y_i x_i^T} = 0 \\ \frac {\partial F}{\partial b} = -\sum_{i=1}^{n}{\lambda_i y_i} = 0\\ \frac {\partial F}{\partial \lambda_i} = a_i^2 + (1-y_i(wx_i^T+b)) = 0\\ \frac {\partial F}{\partial a_i} = 2\lambda_ia_i = 0 \end{cases}
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧∂w∂F=∂w∂21∣∣w∣∣2−∑i=1nλiyixiT=0∂b∂F=−∑i=1nλiyi=0∂λi∂F=ai2+(1−yi(wxiT+b))=0∂ai∂F=2λiai=0
观察求导结果,通过
∂
F
∂
a
i
=
λ
i
=
0
\frac {\partial F}{\partial a_i} = \lambda_i = 0
∂ai∂F=λi=0可以得知,若
a
i
a_i
ai在式中参与运算,即
y
i
(
w
x
i
T
)
>
1
y_i(wx_i^T) > 1
yi(wxiT)>1时,此时要求
λ
i
=
0
\lambda_i = 0
λi=0,这一计算项被清零,对问题的优化不产生影响。直观理解为,非支持向量对最大间隔超平面不存在影响,只有支持向量才能决定最大间隔超平面的位置。
在得到求导结果后,我们将原式展开
F
(
w
,
b
,
λ
,
a
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
n
λ
i
a
i
2
+
∑
i
=
1
n
λ
i
−
∑
i
=
1
n
λ
i
y
i
w
x
i
T
−
∑
i
=
1
n
λ
i
y
i
b
F(w,b,\lambda,a) = \frac {1}{2}||w||^2 + \sum_{i=1}^{n}{\lambda_ia_i^2} + \sum_{i=1}^{n}{\lambda_i} - \sum_{i=1}^{n}{\lambda_iy_iwx_i^T} - \sum_{i=1}^{n}{\lambda_iy_ib}
F(w,b,λ,a)=21∣∣w∣∣2+i=1∑nλiai2+i=1∑nλi−i=1∑nλiyiwxiT−i=1∑nλiyib
第2项和第5项为0,化简原式
F
(
w
,
b
,
λ
,
a
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
n
λ
i
−
∑
i
=
1
n
λ
i
y
i
w
x
i
T
F(w,b,\lambda,a) = \frac {1}{2}||w||^2 + \sum_{i=1}^{n}{\lambda_i} - \sum_{i=1}^{n}{\lambda_iy_iwx_i^T}
F(w,b,λ,a)=21∣∣w∣∣2+i=1∑nλi−i=1∑nλiyiwxiT
由求导结果可知,
w
=
∑
i
=
1
n
λ
i
y
i
x
i
w = \sum_{i=1}^{n}{\lambda_iy_ix_i}
w=∑i=1nλiyixi(
∂
1
2
∣
∣
w
∣
∣
2
∂
w
=
w
\frac{\partial \frac{1}{2}||w||^2}{\partial w}=w
∂w∂21∣∣w∣∣2=w,老实说向量可以这样求导我还真不清楚),带入化简式,得
F
=
1
2
∑
i
=
1
n
λ
i
y
i
x
i
∑
j
=
1
n
λ
j
y
j
x
j
−
∑
i
=
1
n
λ
i
y
i
x
i
T
∑
j
=
1
n
λ
j
y
j
x
j
T
+
∑
i
=
1
n
λ
i
=
∑
i
=
1
n
λ
i
−
1
2
∑
i
=
1
n
λ
i
y
i
x
i
∑
j
=
1
n
λ
j
y
j
x
j
F = \frac {1}{2} \sum_{i=1}^{n}{\lambda_iy_ix_i}\sum_{j=1}^{n}{\lambda_jy_jx_j} - \sum_{i=1}^{n}{\lambda_iy_ix_i^T}\sum_{j=1}^{n}{\lambda_jy_jx_j^T} + \sum_{i=1}^{n}{\lambda_i}\\ =\sum_{i=1}^{n}{\lambda_i} - \frac{1}{2}\sum_{i=1}^{n}{\lambda_iy_ix_i}\sum_{j=1}^{n}{\lambda_jy_jx_j}
F=21i=1∑nλiyixij=1∑nλjyjxj−i=1∑nλiyixiTj=1∑nλjyjxjT+i=1∑nλi=i=1∑nλi−21i=1∑nλiyixij=1∑nλjyjxj
这样就变成了一个二次规划的问题,我们要做的就是确定n个对应的 λ i \lambda_i λi,使F最小,限制条件为 ∑ i = 1 n λ i y i = 0 \sum_{i=1}^{n}{\lambda_iy_i}=0 ∑i=1nλiyi=0。在求解完成后,代入 w = ∑ i = 1 n λ i y i x i T w=\sum_{i=1}^{n}{\lambda_iy_ix_i^T} w=∑i=1nλiyixiT得到最大分隔超平面的 w w w,因为不为0的 λ \lambda λ对应的是支持向量,很容易判断,所以将一个支持向量代入H1: w x T + b = 1 wx^T+b=1 wxT+b=1就可以得到 b b b。
6 线性不可分——软间隔
6.1 待求解问题
对于软间隔问题,即无法找到一个超平面对两组点集进行准确分隔,我们允许分隔有一定的模糊性,一些点不被正确分类。软间隔的“软”要有度,被模糊分类的点不是越多越好,也不是越少越好,我们的目的是找到一个最好的软间隔,使分类效果最好。
我们和硬间隔推导时一样,设最大间隔超平面H:
w
x
T
+
b
=
0
wx^T+b=0
wxT+b=0,未被正确分类的点的充要条件为
y
(
w
x
T
+
b
)
≤
0
y(wx^T+b) \leq 0
y(wxT+b)≤0
因为最大间隔超平面H无法分隔所有点,引入分隔带的概念:分隔带两侧正确分隔了点,而分隔带内两种点都有。软间隔就是用分隔带完成了对两组点集的模糊分隔,设分隔带边界分别为H1:
w
x
T
+
b
=
1
wx^T+b=1
wxT+b=1和H2:
w
x
T
+
b
=
−
1
wx^T+b=-1
wxT+b=−1
被分隔带正确分隔的点满足
y
(
w
x
T
+
b
)
≥
1
y(wx^T+b)\geq 1
y(wxT+b)≥1
在分隔带内部的点满足
−
1
≤
y
(
w
x
T
+
b
)
≤
1
-1 \leq y(wx^T+b) \leq 1
−1≤y(wxT+b)≤1
注意此时有些点可能未出现在分隔带中,也未被分隔带正确分隔,可以认为是被分类地“错误的离谱”的点,这样的点满足
y
(
w
x
T
+
b
)
≤
−
1
y(wx^T+b) \leq -1
y(wxT+b)≤−1
这样的点应在数据处理时考虑删去,较极端的数据可能会对模型的计算产生较大的影响,但如果真的带入计算,我们也不应忽略这些点,所以对于软间隔,点可分为两类
{
y
(
w
x
T
+
b
)
≥
1
被
正
确
分
隔
y
(
w
x
T
+
b
)
<
1
被
模
糊
分
隔
或
分
类
错
误
\begin{cases} y(wx^T+b) \geq 1 \quad 被正确分隔\\ y(wx^T+b) < 1 \quad 被模糊分隔或分类错误 \end{cases}
{y(wxT+b)≥1被正确分隔y(wxT+b)<1被模糊分隔或分类错误
软间隔模型要取的较好的分类效果,就要尽量减少模糊分类的点和错误分类的点。
6.2 问题转化
因为要尽量减少模糊分类和分类错误的点,所以我们在硬间隔的原问题上稍做修改,引入惩罚函数
L
=
m
a
x
(
0
,
1
−
y
(
w
x
T
+
b
)
)
L=max(0, 1-y(wx^T+b))
L=max(0,1−y(wxT+b))
怎么理解这个“惩罚函数”呢?可以看到,当
y
(
w
x
T
+
b
)
≥
1
y(wx^T+b)\geq1
y(wxT+b)≥1时,
L
=
0
L=0
L=0,此时因为点被正确分类了,所以没有“惩罚”;而当
y
(
w
x
T
+
b
)
<
1
y(wx^T+b) < 1
y(wxT+b)<1时,点分类错误,
L
>
0
L>0
L>0,惩罚被引入了。
结合刚介绍过的硬间隔问题,此时待解决的问题为
m
i
n
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
n
m
a
x
(
0
,
1
−
y
i
(
w
x
T
+
b
)
)
min \ \frac{1}{2}{||w||^2}+C\sum_{i=1}^{n}{max(0, 1-y_i(wx^T+b))}
min 21∣∣w∣∣2+Ci=1∑nmax(0,1−yi(wxT+b))
很明显这是个最小化问题,所以惩罚项为正数阻碍最小化,体现了惩罚的含义。其中 C C C为一个参数,体现惩罚力度的大小, C C C越大,要求越苛刻。
为去除
m
a
x
max
max表示,便于计算,我们引入变量
m
m
m对待解问题变形
m
i
n
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
n
m
i
2
s
.
t
.
y
(
w
x
T
+
b
)
≥
1
−
m
2
min \frac{1}{2}{||w||^2}+C\sum_{i=1}^{n}{m_i^2} \\ s.t. \ \quad y(wx^T+b) \geq 1-m^2
min21∣∣w∣∣2+Ci=1∑nmi2s.t. y(wxT+b)≥1−m2
此时使用拉格朗日乘数法处理限制条件,限制条件为不等式,原式最小化等价于
m
i
n
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
n
m
i
2
+
∑
i
=
1
n
λ
i
[
1
−
y
i
(
w
x
i
T
+
b
)
−
m
i
2
]
s
.
t
.
λ
i
≥
0
1
−
y
i
(
w
x
i
T
+
b
)
−
m
i
2
≤
0
min \ \frac{1}{2}{||w||^2}+C\sum_{i=1}^{n}{m_i^2}+\sum_{i=1}^{n}{\lambda_i[1-y_i(wx_i^T+b)-m_i^2]} \\ s.t. \ \quad \lambda_i \geq 0 \\ 1-y_i(wx_i^T+b)-m_i^2 \leq 0
min 21∣∣w∣∣2+Ci=1∑nmi2+i=1∑nλi[1−yi(wxiT+b)−mi2]s.t. λi≥01−yi(wxiT+b)−mi2≤0
如果不明白为什么可以这样变化,请看对拉格朗日乘数法和KKT条件的讲解
接下来对原变量
w
,
b
,
m
i
w, b, m_i
w,b,mi进行求导
{
∂
F
∂
w
=
w
−
∑
i
=
1
n
λ
i
y
i
x
i
T
=
0
∂
F
∂
b
=
−
∑
i
=
1
n
λ
i
y
i
=
0
∂
F
∂
m
i
=
2
C
m
i
−
2
λ
i
m
i
=
0
\begin{cases} \frac {\partial F}{\partial w} = w - \sum_{i=1}^{n}{\lambda_i y_i x_i^T} = 0 \\ \frac {\partial F}{\partial b} = -\sum_{i=1}^{n}{\lambda_i y_i} = 0\\ \frac {\partial F}{\partial m_i} = 2Cm_i-2\lambda_im_i = 0 \end{cases}
⎩⎪⎨⎪⎧∂w∂F=w−∑i=1nλiyixiT=0∂b∂F=−∑i=1nλiyi=0∂mi∂F=2Cmi−2λimi=0
观察求导结果,将求导结果带入原式,得到对
w
,
b
,
m
i
w, b, m_i
w,b,mi的极小
∑
i
=
1
n
λ
i
−
1
2
∑
i
=
1
n
λ
i
y
i
x
i
T
∑
j
=
1
n
λ
j
y
j
x
j
T
\sum_{i=1}^{n}{\lambda_i}-\frac{1}{2}\sum_{i=1}^{n}{\lambda_iy_ix_i^T}\sum_{j=1}^{n}{\lambda_jy_jx_j^T}
i=1∑nλi−21i=1∑nλiyixiTj=1∑nλjyjxjT
接下来求对
λ
i
\lambda_i
λi的极大,这是个二次规划问题,约束条件为
s
.
t
.
λ
i
≥
0
i
f
1
−
y
i
(
w
x
T
+
b
)
≥
1
λ
i
=
C
i
f
1
−
y
i
(
w
x
i
T
+
b
)
<
1
∑
i
=
1
n
λ
i
y
i
=
0
s.t. \ \quad \lambda_i \geq 0 \ if \ 1-y_i(wx^T+b) \geq 1\\ \lambda_i = C \ if \ 1-y_i(wx_i^T+b) < 1 \\ \sum_{i=1}^{n}{\lambda_iy_i} = 0
s.t. λi≥0 if 1−yi(wxT+b)≥1λi=C if 1−yi(wxiT+b)<1i=1∑nλiyi=0
可以使用解决二次规划问题的方法(比如SMO算法)得到最优的
λ
∗
\lambda^*
λ∗,将
λ
∗
\lambda^*
λ∗带入,得到
w
=
∑
i
=
1
n
λ
i
y
i
x
i
T
b
=
1
∣
S
V
∣
∑
s
v
y
i
−
w
x
i
T
w = \sum_{i=1}^{n}{\lambda_iy_ix_i^T} \\ b = \frac{1}{|SV|}\sum_{sv}{y_i-wx_i^T}
w=i=1∑nλiyixiTb=∣SV∣1sv∑yi−wxiT
这里需要说明,sv表示支持向量空间,即由支持向量构成的集合。与硬间隔一样,可以忽略
λ
=
0
\lambda = 0
λ=0对应的点,而剩下的点为支持向量。与硬间隔不同的,硬间隔的支持向量分布在与间隔平面距离一定的平面上(如之前提到的H1:
w
x
T
+
b
=
1
wx^T+b=1
wxT+b=1和H2:
w
x
T
+
b
=
−
1
wx^T+b=-1
wxT+b=−1),所以只要带入一个支持向量求解;而软间隔的支持向量离散分布,所以需要求平均值。
7 非线性模型
对于一些分类问题,如果连模糊分隔都无法做到的话,这时就要使用核技巧,将样本点映射到更高维的空间,然后在高维空间中进行分类。与之前介绍的处理方式相对照,非线性模型多了向高维空间投影的过程,而投影之后的处理方式一致。
投影时用到的函数成为核函数,常见的核函数有多项式核函数、高斯核函数。
本文介绍了支持向量机(SVM)的基本概念,包括它作为一个用于二分类的模型,以及如何通过最大间隔超平面进行分类。文章深入浅出地解释了线性可分、线性以及非线性情况下的SVM处理方法,涉及到间隔、支持向量等关键概念,并探讨了软间隔和非线性模型的应用。
7177

被折叠的 条评论
为什么被折叠?



