1.SVM基本介绍
1.1 SVM算法定义
??SVM全称是supported vector machine(支持向量机),即寻找到一个超平面使样本分成两类,并且间隔最大。
??SVM能够执行线性和非线性分类,回归,甚至是异常值监测任务。特别适用于中小型复杂数据集的分类。
1.2 SVM和逻辑回归的区别
- 逻辑回归和SVM都是寻找一条分类直线,目标是把这两个类别分开
- 逻辑回归的最终判断标准是:准确率,而SVM最终的判断结果是:准确率+最大间隔
- 逻辑回归的分类直线可能有多条,而SVM的分类直线只有一条。
单纯考虑准确率和考虑最大间隔哪个泛化性能更好一点:
- 准确率只考虑了在训练集上的预测能力
- 准确率+最大间隔即考虑了预测能力,又考虑了模型对未知样本的泛化能力。
1.3 软间隔和硬间隔
硬间隔:指让所有样本都不在最大间隔之间,并且位于分类正确的一边。如果出现异常值或者样本不能线性分割,此时硬间隔无法实现。
软间隔:指容忍一部分样本在最大间隔之内,甚至在错误的一边。相对来说,软间隔可以应用在一些线性不可分的场景中。因此,软间隔可能在训练集表现不是很好,但是在测试集上的泛化性能可能要比硬间隔好。
1.4 惩罚参数C
??在硬间隔的情况下,我们只考虑如何使间隔最大。在软间隔的情况下,我们既要考虑间隔最大化,又要考虑间隔违例样本带来的损失。
??一般间隔违例样本带来的损失为:该点到分类直线之间的距离,C值用于惩罚间隔违例样本带来的损失。
??C值越大,说明间隔违例样本带来的损失越大,就要减少这些样本带来的损失,所以间隔就要越小。
??C值越小,间隔违例样本带来的损失就越小,可以适当增大间隔,以提高模型的泛化性能。
??C值可以用来平衡间隔违例样本损失、最大间隔。当对违反限制间隔的样本点的容忍度很低时,可增大C值,反之就减小C值。
2.SVM算法推导的目标函数
SVM求解目标:将所有样本分类正确的基础上,找出最大间隔。 1.最大间隔距离表示公式:
2
∥
w
∥
\frac{2}{\|\boldsymbol{w}\|}
∥w∥2?
直线方程为:y = w1x1 + w2x2 + b = 0,平面上任意一点(xi,xj)到该直线的距离计算公式为:
d
=
∣
w
1
x
i
+
w
2
x
j
+
b
∣
w
1
2
+
w
2
2
d=\frac{\left|w_{1} x_{i}+w_{2} x_{j}+b\right|}{\sqrt{w_{1}^{2}+w_{2}^{2}}}
d=w12?+w22?
?∣w1?xi?+w2?xj?+b∣? 分母可以用范数的形式表示:||w||
2.训练样本能够正确分类:
{
w
T
x
i
+
b
?
+
1
,
y
i
=
+
1
w
T
x
i
+
b
?
?
1
,
y
i
=
?
1
\left\{\begin{array}{ll} \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b \geqslant+1, & y_{i}=+1 \\ \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b \leqslant-1, & y_{i}=-1 \end{array}\right.
{wTxi?+b?+1,wTxi?+b??1,?yi?=+1yi?=?1?
我们希望所有样本分类正确的情况下,实现最大间隔。因此,目标函数可以转换为:
max
?
w
,
b
=
2
∥
w
∥
?s.t.?
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
?
?
,
m
\begin{array}{l} \max _{w, b}=\frac{2}{\|w\|} \\ \\ \text { s.t. } y_{i}\left(w^{T} x_{i}+b\right) \geq 1, i=1,2, \cdots, m \end{array}
maxw,b?=∥w∥2??s.t.?yi?(wTxi?+b)≥1,i=1,2,?,m? 将最大化问题转化为最小化问题:
min
?
w
,
b
=
1
2
∥
w
∥
2
?s.t.?
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
?
?
,
m
\begin{array}{l} \min _{w, b}=\frac{1}{2}\|w\|^2 \\ \\ \text { s.t. } y_{i}\left(w^{T} x_{i}+b\right) \geq 1, i=1,2, \cdots, m \end{array}
minw,b?=21?∥w∥2?s.t.?yi?(wTxi?+b)≥1,i=1,2,?,m?
- 最大化转换为最小化,加上平方是为了去除二范数的根号,不影响目标优化。1/2是为了求导时候,去掉系数。通过问题转换,让问题向最简单的方向发展。
3.目标函数推导过程
3.1 约束条件优化问题转换
目标函数是一个带有约束条件的优化问题,不容易求解,所以使用拉格朗日乘子法将其转换为多元极值问题,转换构成如下:
h
(
x
)
=
f
(
x
)
+
α
g
(
x
)
h(x)= f(x)+\alpha g(x)
h(x)=f(x)+αg(x) f(x)是原问题,g(x)是原问题的约束条件。因此,约束条件函数可以转换为:
y
i
(
w
T
x
i
+
b
)
≥
1
,
i
=
1
,
2
,
?
?
,
m
∑
i
=
1
n
(
1
?
y
i
(
w
T
?
?
(
x
i
)
+
b
)
)
≤
0
y_i(w^Tx_i+b)\geq 1,i=1,2,\cdots,m \\\sum_{i=1}^{n}(1-y_i(w^T\cdot \phi (x_i)+b)) \leq 0
yi?(wTxi?+b)≥1,i=1,2,?,mi=1∑n?(1?yi?(wT??(xi?)+b))≤0 目标函数可以转换为:
L
(
w
,
b
,
α
)
=
1
2
∥
w
∥
2
?
∑
i
=
1
n
α
i
(
y
i
(
w
T
?
?
(
x
i
)
+
b
)
?
1
)
L(w,b,\alpha)=\frac{1}{2}\|w\|^2-\sum_{i=1}^{n}\alpha_i(y_i(w^T\cdot \phi (x_i)+b)-1)
L(w,b,α)=21?∥w∥2?i=1∑n?αi?(yi?(wT??(xi?)+b)?1) 此时问题转化为满足所有样本都能正确分类的情况下,求解极小极大值问题:
min
?
w
,
b
max
?
α
L
(
w
,
b
,
α
)
\min_{w,b}\max_{\alpha}L(w,b,\alpha)
w,bmin?αmax?L(w,b,α)
3.2 对偶问题转换
1.对偶问题转换
对w求偏导,并令其等于0:
L
(
w
,
b
,
α
)
=
1
2
∥
w
∥
2
?
∑
i
=
1
n
α
i
(
y
i
(
w
T
?
?
(
x
i
)
+
b
)
?
1
)
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
?
∑
i
=
1
n
(
α
i
y
i
w
T
φ
(
x
i
)
+
α
i
y
i
b
?
α
i
)
=
0
?
L
?
w
=
w
?
∑
i
=
1
n
α
i
y
i
φ
(
x
i
)
=
0
L(w,b,\alpha)=\frac{1}{2}\|w\|^2-\sum_{i=1}^{n}\alpha_i(y_i(w^T\cdot \phi (x_i)+b)-1) \\L(w,b,\alpha)=\frac{1}{2}|| w||^{2}-\sum_{i=1}^{n}( \alpha_{i} y_{i} w^{T} \varphi\left(x_{i}\right)+\alpha_{i} y_{i} b-\alpha_{i})=0 \\\frac{\partial L}{\partial w}=w-\sum_{i=1}^n\alpha_iy_i\varphi(x_i)=0
L(w,b,α)=21?∥w∥2?i=1∑n?αi?(yi?(wT??(xi?)+b)?1)L(w,b,α)=21?∣∣w∣∣2?i=1∑n?(αi?yi?wTφ(xi?)+αi?yi?b?αi?)=0?w?L?=w?i=1∑n?αi?yi?φ(xi?)=0 得到:
w
=
∑
i
=
1
n
α
i
y
i
φ
(
x
i
)
w= \sum_{i=1}^n\alpha_iy_i\varphi(x_i)
w=i=1∑n?αi?yi?φ(xi?) 对b求偏导,并令其等于0:
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
?
∑
i
=
1
n
(
α
i
y
i
w
T
φ
(
x
i
)
+
α
i
y
i
b
?
α
i
)
=
0
?
L
?
b
=
∑
i
=
1
n
α
i
y
i
=
0
L(w,b,\alpha)=\frac{1}{2}|| w||^{2}-\sum_{i=1}^{n} (\alpha_{i} y_{i} w^{T} \varphi\left(x_{i}\right)+\alpha_{i} y_{i} b-\alpha_{i})=0 \\\frac{\partial L}{\partial b}=\sum_{i=1}^n\alpha_iy_i=0
L(w,b,α)=21?∣∣w∣∣2?i=1∑n?(αi?yi?wTφ(xi?)+αi?yi?b?αi?)=0?b?L?=i=1∑n?αi?yi?=0 将对w、b求偏导的结果代入原拉格朗日公式中:
L
(
w
,
b
,
α
)
=
1
2
∥
w
∥
2
?
∑
i
=
1
n
α
i
(
y
i
(
w
T
?
?
(
x
i
)
+
b
)
?
1
)
L(w,b,\alpha)=\frac{1}{2}\|w\|^2-\sum_{i=1}^{n}\alpha_i(y_i(w^T\cdot \phi (x_i)+b)-1)
L(w,b,α)=21?∥w∥2?i=1∑n?αi?(yi?(wT??(xi?)+b)?1) 去括号得:
L
(
w
,
b
,
α
)
=
1
2
w
T
w
?
∑
i
=
1
n
α
i
y
i
w
T
?
(
x
i
)
?
b
?
∑
i
=
1
n
α
i
y
i
+
∑
i
=
1
n
α
i
L(w,b,\alpha)=\frac{1}{2}w^Tw-\sum_{i=1}^n\alpha_iy_iw^T\phi(x_i)-b\cdot\sum_{i=1}^n\alpha_iy_i+\sum_{i=1}^n\alpha_i
L(w,b,α)=21?wTw?i=1∑n?αi?yi?wT?(xi?)?b?i=1∑n?αi?yi?+i=1∑n?αi? 代入w、b得:
L
(
w
,
b
,
α
)
=
1
2
w
T
∑
i
=
1
n
α
i
y
i
φ
(
x
i
)
?
w
T
∑
i
=
1
n
α
i
y
i
φ
(
x
i
)
+
∑
i
=
1
n
α
i
L(w,b,\alpha)=\frac{1}{2}w^T\sum_{i=1}^n\alpha_iy_i\varphi(x_i)-w^T\sum_{i=1}^n\alpha_iy_i\varphi(x_i)+\sum_{i=1}^n\alpha_i
L(w,b,α)=21?wTi=1∑n?αi?yi?φ(xi?)?wTi=1∑n?αi?yi?φ(xi?)+i=1∑n?αi? 化简得:
L
(
w
,
b
,
α
)
=
∑
i
=
1
n
α
i
?
1
2
(
∑
i
=
1
n
α
i
y
i
φ
(
x
i
)
)
T
?
∑
i
=
1
n
α
i
y
i
φ
(
x
i
)
L(w,b,\alpha)=\sum_{i=1}^n\alpha_i-\frac{1}{2}(\sum_{i=1}^n\alpha_iy_i\varphi(x_i))^T\cdot\sum_{i=1}^n\alpha_iy_i\varphi(x_i)
L(w,b,α)=i=1∑n?αi??21?(i=1∑n?αi?yi?φ(xi?))T?i=1∑n?αi?yi?φ(xi?) 最终得:
L
(
w
,
b
,
α
)
=
∑
i
=
1
n
α
i
?
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
?
T
(
x
i
)
?
(
x
j
)
L(w,b,\alpha)=\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j\phi^T(x_i)\phi(x_j)
L(w,b,α)=i=1∑n?αi??21?i=1∑n?j=1∑n?αi?αj?yi?yj??T(xi?)?(xj?) 此时,求解当 α 是什么值时,L会变得很大,当求出 α 值,再求解 w, b 值。此时,就变成了极大极小值问题。
3.3 确定超平面
1、求解当α为什么值时,公式的值最大:
α
?
=
arg
?
max
?
α
(
∑
i
=
1
n
α
i
?
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
?
T
(
x
i
)
?
(
x
j
)
)
?
s
.
t
.
∑
i
=
1
n
α
i
y
i
=
0
α
i
≥
0
,
i
=
1
,
2
,
3
?
?
,
n
\alpha^*=\underset{\alpha}{\arg\max}(\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j\phi^T(x_i)\phi(x_j)) \\\ s.t. \sum_{i=1}^n\alpha_iy_i=0 \\ \alpha_i \geq0,i=1,2,3\cdots,n
α?=αargmax?(i=1∑n?αi??21?i=1∑n?j=1∑n?αi?αj?yi?yj??T(xi?)?(xj?))?s.t.i=1∑n?αi?yi?=0αi?≥0,i=1,2,3?,n
2、将上面的问题转换为极小值问题:
m
i
n
α
???
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
?
T
(
x
i
)
?
(
x
j
)
?
∑
i
=
1
n
α
i
\underset{\alpha}{min} \ \ \ \frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j\phi^T(x_i)\phi(x_j)-\sum_{i=1}^n\alpha_i
αmin????21?i=1∑n?j=1∑n?αi?αj?yi?yj??T(xi?)?(xj?)?i=1∑n?αi? 且满足以下条件:
∑
i
=
1
n
α
i
y
i
=
0
α
i
≥
0
,
i
=
1
,
2
,
3
?
?
,
n
\sum_{i=1}^n\alpha_iy_i=0\\ \alpha_i \geq0,i=1,2,3\cdots,n
i=1∑n?αi?yi?=0αi?≥0,i=1,2,3?,n 将训练样本代入上面公式,求解出α值。然后,将α值代入公式计算w、b的值
w
?
=
∑
i
=
1
n
α
i
?
y
i
φ
(
x
i
)
b
?
=
y
i
?
∑
i
=
1
n
α
?
y
i
(
?
(
x
i
)
?
?
(
x
j
)
)
w^*= \sum_{i=1}^n\alpha_i^*y_i\varphi(x_i) \\ b^*=y_i-\sum_{i=1}^n\alpha^*y_i(\phi(x_i)\cdot\phi(x_j))
w?=i=1∑n?αi??yi?φ(xi?)b?=yi??i=1∑n?α?yi?(?(xi?)??(xj?)) 最后求的分离超平面为:
w
?
?
(
x
)
+
b
?
=
0
w^*\phi(x)+b^*=0
w??(x)+b?=0 求的分类决策函数:
f
(
x
)
=
sign
?
(
w
?
?
(
x
)
+
b
?
)
f(x)=\operatorname{sign}(w^*\phi(x)+b^*)
f(x)=sign(w??(x)+b?)
4.案例代入
正例点x1=(3,3),x2=(4,3),负例点x3=(1,1),求线性可分支持向量机。
m
i
n
α
???
1
2
∑
i
=
1
n
∑
j
=
1
n
α
i
α
j
y
i
y
j
?
T
(
x
i
)
?
(
x
j
)
?
∑
i
=
1
n
α
i
s
.
t
.
∑
i
=
1
n
α
i
y
i
=
0
α
i
≥
0
,
i
=
1
,
2
,
3
?
?
,
n
\underset{\alpha}{min} \ \ \ \frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j\phi^T(x_i)\phi(x_j)-\sum_{i=1}^n\alpha_i \\ s.t. \sum_{i=1}^n\alpha_iy_i=0 \\ \alpha_i \geq0,i=1,2,3\cdots,n
αmin????21?i=1∑n?j=1∑n?αi?αj?yi?yj??T(xi?)?(xj?)?i=1∑n?αi?s.t.i=1∑n?αi?yi?=0αi?≥0,i=1,2,3?,n 将3个样本代入上述公式,得到一个关于α的函数:
1
2
(
18
α
1
2
+
25
α
2
2
+
2
α
3
2
+
42
α
1
α
2
?
12
α
1
α
3
?
14
α
2
α
3
)
?
α
1
?
α
2
?
α
3
?
?
(
4.1
)
\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 \cdots\cdots(4.1)
21?(18α12?+25α22?+2α32?+42α1?α2??12α1?α3??14α2?α3?)?α1??α2??α3???(4.1) 由于:
∑
i
=
1
n
α
i
y
i
=
0
=
>
α
1
y
1
+
α
2
y
2
+
α
3
y
3
=
0
?
?
?
?
?
(
4.2
)
\sum_{i=1}^n\alpha_iy_i=0=>\alpha_1y_1+\alpha_2y_2+\alpha_3y_3=0 \cdots\cdots \cdots\cdots \cdots(4.2)
i=1∑n?αi?yi?=0=>α1?y1?+α2?y2?+α3?y3?=0?????(4.2) 可得:
α
1
+
α
2
?
α
3
=
0
?
?
?
?
?
?
(
4.3
)
α
1
+
α
2
=
α
3
?
?
?
?
?
?
?
?
(
4.4
)
\alpha_1+\alpha_2-\alpha_3=0 \cdots\cdots \cdots\cdots \cdots\cdots(4.3) \\\alpha_1+\alpha_2=\alpha_3\cdots\cdots \cdots\cdots \cdots\cdots\cdots\cdot(4.4)
α1?+α2??α3?=0??????(4.3)α1?+α2?=α3?????????(4.4) 将(4.4)式子代入(4.1)式子中可得:
4
α
1
2
+
13
2
α
2
2
+
10
α
1
α
2
?
2
α
1
?
2
α
2
?
?
?
?
?
?
(
4.5
)
4 \alpha_{1}^{2}+\frac{13}{2} \alpha_{2}^{2}+10 \alpha_{1} \alpha_{2}-2 \alpha_{1}-2 \alpha_{2}\cdots\cdots \cdots\cdots \cdots\cdots(4.5)
4α12?+213?α22?+10α1?α2??2α1??2α2???????(4.5) 对 α1、α2 求偏导,并令其等于 0,可得:
{
?
s
(
α
1
,
α
2
)
?
α
1
=
8
α
1
+
10
α
2
?
2
=
0
?
s
(
α
1
,
α
2
)
?
α
2
=
13
α
2
+
10
α
1
?
2
=
0
?
{
α
1
=
1.5
α
2
=
?
1
\left\{\begin{array} { l } { \frac { \partial s ( \alpha 1, \alpha 2 ) } { \partial \alpha 1 } = 8 \alpha 1 + 1 0 \alpha _ { 2 } - 2 = 0 } \\ { \frac { \partial s ( \alpha 1 , \alpha 2 ) } { \partial \alpha 2 } = 1 3 \alpha 2 + 1 0 \alpha 1 - 2 = 0 } \end{array} \Rightarrow \left\{\begin{array}{l} \alpha 1=1.5 \\ \alpha 2=-1 \end{array}\right.\right.
{?α1?s(α1,α2)?=8α1+10α2??2=0?α2?s(α1,α2)?=13α2+10α1?2=0??{α1=1.5α2=?1? 由于限制条件中 α 值必须大于 0,故而上面求出的结果不是最终结果。
- 当α1=0时,对α2求偏导得 2/13,α3=2/13
- 当α2=0时,对α1求偏导得 1/4,α3=1/4
现有两组结果,我们需要找出哪组结果使得结果最小,将每组结果代入(4.5)式子中,得:
- 第一组结果是:-0.1538
- 第二组结果是:-0.25
因此,第二组结果最小,所以α1=1/4,α2=0,α3=1/4
接下来,根据 α 和样本计算 w 的值:
-
正例 1: x1=(3,3),α1 = 1/4 -
正例 1:x2=(4,3),α2 = 0 -
负例 -1: x3=(1,1),α3 = 1/4
w
=
∑
i
=
1
n
α
i
y
i
Φ
(
x
n
)
w=\sum_{i=1}^{n} \alpha_{i} y_{i} \Phi\left(x_{n}\right)
w=i=1∑n?αi?yi?Φ(xn?) 代入得:
w
=
1
4
?
1
?
(
3
,
3
)
+
1
4
?
(
?
1
)
?
(
1
,
1
)
=
(
1
2
,
1
2
)
w=\frac{1}{4} * 1 *(3,3)+\frac{1}{4} *(-1) *(1,1)=\left(\frac{1}{2}, \frac{1}{2}\right)
w=41??1?(3,3)+41??(?1)?(1,1)=(21?,21?) 由 f(x) = 0.5x1 + 0.5x2 + b,并将任意样本代入,可得 b 为:
- 0.5*3 + 0.5*3 + b =1,得:b = -2
- 0.5*1 + 0.5*1 + b =-1,得:b = -2
最终确定分类超平面为:
f
(
x
)
=
sign
?
(
0.5
x
1
+
0.5
x
2
?
2
)
f(x)=\operatorname{sign}\left(0.5 x_{1}+0.5 x_{2}-2\right)
f(x)=sign(0.5x1?+0.5x2??2)
|