参考这篇【机器学习】支持向量机 SVM(非常详细)
支持向量机
SVM 又叫支持向量机,支持向量就是
S
、
R
、
G
S、R、G
S、R、G这三个点,也就是边界点吧,支持向量机就是通过支持向量运算的分类器。如果对应到超平面的话,就是找到各类样本点到超平面的距离最远,也就是找到最大间隔超平面。
背后公式
定义一个超平面的方程:
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0 其中
w
=
(
w
1
;
w
2
;
w
3
.
.
.
w
d
)
w=(w_1;w_2;w_3...w_d)
w=(w1?;w2?;w3?...wd?)为法向量,决定方向,
b
b
b是偏移项。在样本空间中任意一个
x
x
x到超平面
(
w
,
b
)
(w,b)
(w,b)的距离就是:
r
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
r=\frac{|w^Tx+b|}{||w||}
r=∣∣w∣∣∣wTx+b∣? 然后可以根据
r
r
r的值来定义
x
x
x的类别,就好比大于等于1小于等于1等等。看上面的图就是
R
,
S
,
G
R,S,G
R,S,G这三个点就是等于1或者-1,恰巧是临界点。可以写出这公式:
{
w
T
x
i
+
b
>
=
+
1
,
y
i
=
+
1
w
T
x
i
+
b
<
=
?
1
,
y
i
=
?
1
\begin{cases} w^Tx_i+b>=+1, &\text y_i = +1 \\ w^Tx_i+b<=-1, &\text y_i = -1 \end{cases}
{wTxi?+b>=+1,wTxi?+b<=?1,?yi?=+1yi?=?1?两个不同类别支持向量之间的距离就是
r
=
2
∣
∣
w
∣
∣
r=\frac{2}{||w||}
r=∣∣w∣∣2?我们所做的就是找到这个最大间隔,于是就有了求极值的问题,在满足
y
i
(
w
T
x
i
+
b
)
>
=
1
y_i(w^Tx_i+b)>=1
yi?(wTxi?+b)>=1的条件下,满足
2
∣
∣
w
∣
∣
\frac{2}{||w||}
∣∣w∣∣2?最大。 再变变形就是
m
i
n
1
2
∣
∣
w
∣
∣
2
s
.
t
.
?
y
i
(
w
T
x
i
+
b
)
>
=
1
min \frac{1}{2}||w||^2 \\ s.t. \ y_i(w^Tx_i+b)>=1
min21?∣∣w∣∣2s.t.?yi?(wTxi?+b)>=1这就是SVM的基础型了。
往后就是人们对如何解这个方程,提出一系列的方法。
拉格朗日乘子法
对偶问题
KKT条件
核方法
软间隔
正则化
可以看看这些 svm原理从头到尾详细推导 支持向量机(SVM)——原理篇 【机器学习】支持向量机 SVM(非常详细) [机器学习] 绝对能听懂的支持向量机SVM(Part 1)
|