SVM线性可分情况
1. 线性可分
存在一条直线可以将 O
和 X
分开
存在一个平面可以将 O
和 X
分开
如果一个数据集是线性可分的,那么存在无穷多个超平面将各个类别分开。(有个证明,我不会)
2. 解决线性可分问题
问:哪一条最好?
答:大部分人都会认为是 2 号线比较好。其实是在假设的基础上,就是假设训练样本的位置在特征空间上有测量误差。2 号线更能抵抗训练样本位置的误差。
问:2 号线怎么画?
答:Vapnik 给出了一个基于最优化理论的答案。
假设对于任意一条分开两类的直线,将该直线朝一侧平行移动,直到插入到一个或者多个训练样本为止,同理朝另一侧平行移动。这两条平行线插入的训练样本称为这个数据集的支持向量,两条平行线之间的距离称为间隔,2 号线就是间隔最大的那条线。
SVM 寻找的最优分类直线应该满足:
- 该支线分开了两类
- 该直线最大化间隔(margin)
- 该直线处于间隔的中间,到 所有支持向量距离相等
3. 优化问题
3.1 线性可分数学定义
一个训练样本集
{
(
x
i
,
y
i
)
}
,
i
=
1
~
N
\{(x_i, y_i)\},i=1~N
{(xi,yi)},i=1~N 线性可分,是指存在
(
ω
,
b
)
(\omega, b)
(ω,b) 使:
①
当
y
i
=
+
1
时
,
ω
T
x
i
+
b
≥
0
②
当
y
i
=
−
1
时
,
ω
T
x
i
+
b
<
0
综
合
①
②
得
:
y
i
[
ω
T
x
i
+
b
]
≥
0
(
公
式
1
)
\begin{aligned} &① 当 y_i = +1 时, \omega^Tx_i+b \ge 0 \\ &② 当 y_i = -1 时, \omega^Tx_i+b \lt 0 \\ &综合①②得: \\ &y_i[\omega^Tx_i+b]\ge0 (公式1) \end{aligned}
①当yi=+1时,ωTxi+b≥0②当yi=−1时,ωTxi+b<0综合①②得:yi[ωTxi+b]≥0(公式1)
其中,
x
i
x_i
xi 为向量,
y
i
y_i
yi 为标签
3.2 SVM 优化问题
最小化:
1
2
∣
∣
ω
∣
∣
2
\frac{1}{2}||\omega||^2
21∣∣ω∣∣2
限制条件:
y
i
[
ω
T
x
i
+
b
]
≥
1
(
公
式
2
)
y_i[\omega^Tx_i+b]\ge1 (公式2)
yi[ωTxi+b]≥1(公式2)
问:为什么这样写?
首先说明两个事实
- ω T x + b = 0 \omega^Tx+b=0 ωTx+b=0 和 a ω T x + a b = 0 a\omega^Tx+ab=0 aωTx+ab=0 是同一个平面或同一条线,例如 a ( k x + b ) = 0 a(kx+b)=0 a(kx+b)=0 和 k x + b = 0 kx+b=0 kx+b=0 是同一条线,其中 a ∈ R + a∈R^+ a∈R+。
- 点(支持向量)
X
0
X_0
X0 到直线或者点到平面距离公式为
d = ∣ ω T X 0 + b ∣ ∣ ∣ ω ∣ ∣ d = \frac{|\omega^TX_0 + b|}{||\omega||} d=∣∣ω∣∣∣ωTX0+b∣
答:我们可以用
a
a
a 去缩放
(
ω
,
b
)
→
(
a
ω
,
a
b
)
(\omega, b) \to (a\omega, ab)
(ω,b)→(aω,ab),
最终使在支持向量
X
0
X_0
X0上有:
∣
ω
T
X
0
+
b
∣
=
1
|\omega^TX_0 + b| = 1
∣ωTX0+b∣=1,
此时支持向量与平面距离
d
=
1
∣
∣
ω
∣
∣
d = \frac {1}{||\omega||}
d=∣∣ω∣∣1
margin 也就是二倍的
d
d
d,我们的目的是为了最大化 margin,等价于最小化
∣
∣
ω
∣
∣
||\omega||
∣∣ω∣∣,为什么写的时候加上了平方还乘一个
1
2
\frac{1}{2}
21,那是为了方便求导进而方便求解。
问:公式 2 中的大于等于 1 可不可以写成 2 或者其他正数
答:可以,改成其他正数求得的
(
ω
′
,
b
′
)
(\omega', b')
(ω′,b′) 和为 1 时求得的
(
ω
,
b
)
(\omega, b)
(ω,b) 结果相差的倍数是一个常数
a
a
a。
SVM 优化问题也是凸优化问题中的二次规划问题,这个在最优化理论中有证明,这里只说结论:
如果:
- 目标函数为二次项
- 限制条件为一次项
那么,求解只有两种情况:
- 无解
- 只有一个极值