这节我们介绍监督学习中分类方法的支持向量机(SVM),我尽量少用数学公式,多用形象的语言去讲清楚基本概念。
定义

SVM是用于分类的监督学习模型,使用支持向量来定义决策边界,支持向量是每一类最接近决策边界的点,如上图中用黑色圈圈起来的点,你可能会问,这不是点吗?为什么说成是向量?把原点和圈住的点相连,它就成向量啦哈哈。所以一堆数据给我们,我们关注的只有其中的几个能做支持向量的点(如果数据特征有n个,则只有要用n+1个支持向量)(其他点可以忽视哈哈),效率非常高。通过将未标记的点与决策边界进行比较就可以进行分类! 支持向量与决策边界之间的距离称为间隔(margin),支持向量机试图在可接受的误差范围内创造尽可能大的间隔。
数学表达
我们定义决策平面(也叫超平面)为
w
T
x
+
b
=
0
\textbf w^T\textbf x+b=0
wTx+b=0,w,x是向量,w法向量决定了超平面的方向,b位移项决定了超平面与原点的距离,空间中任意的点到超平面的距离为r,由初中学的距离公式可知
r
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
r = \frac{|\textbf w^T\textbf x + b|}{||\textbf w||}
r=∣∣w∣∣∣wTx+b∣ 假设超平面能正确分类数据,我们定义 (y是标签):
{
w
T
x
i
+
b
⩾
+
1
,
y
i
=
+
1
w
T
x
i
+
b
⩽
−
1
,
y
i
=
−
1
\begin{cases} &w^Tx_i + b\geqslant +1,\quad y_i=+1 \\ &w^Tx_i + b\leqslant -1,\quad y_i=-1 \end{cases}
{wTxi+b⩾+1,yi=+1wTxi+b⩽−1,yi=−1 所以
y
i
⋅
(
w
T
x
i
+
b
)
⩾
1
y_i\cdot (w^Tx_i + b) \geqslant 1
yi⋅(wTxi+b)⩾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,\quad y_i=+1 \\ &w^Tx_i + b= -1,\quad y_i=-1 \end{cases}
{wTxi+b=+1,yi=+1wTxi+b=−1,yi=−1 所以
y
i
⋅
(
w
T
x
i
+
b
)
=
1
y_i\cdot (w^Tx_i + b) = 1
yi⋅(wTxi+b)=1,我们终于可以推出margin的表达式了:
r
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
=
∣
y
i
⋅
(
w
T
x
+
b
)
∣
∣
∣
w
∣
∣
=
y
i
⋅
(
w
T
x
+
b
)
∣
∣
w
∣
∣
\begin{aligned} r &= \frac{|w^T x + b|}{||w||} = \frac{|y_i\cdot(w^T x + b)|}{||w||} \\ &= \frac{y_i\cdot(w^T x + b)}{||w||} \end{aligned}
r=∣∣w∣∣∣wTx+b∣=∣∣w∣∣∣yi⋅(wTx+b)∣=∣∣w∣∣yi⋅(wTx+b) 所以
m
a
r
g
i
n
=
m
i
n
r
margin = min{\textbf r}
margin=minr , 而
m
i
n
{
y
i
⋅
(
w
T
x
+
b
)
}
=
1
min\{y_i\cdot(w^T x + b)\} = 1
min{yi⋅(wTx+b)}=1,所以:
margin
=
1
||w||
\textbf{margin} = \frac{\textbf 1}{\textbf {||w||}}
margin=||w||1 终于,我们得出了SVM的基本型(max margin 即 min w)(s.t.是subject to 的意思,就是受哪些条件限制):
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
⋅
(
w
T
x
i
+
b
)
⩾
1
,
i
=
1
,
2
,
…
,
m
.
\begin{aligned} &\min_{w,b} \frac{1}{2}||w||^2\\ &s.t. \quad y_i\cdot (w^Tx_i + b)\geqslant 1,\quad i=1,2,\dots,m. \end{aligned}
w,bmin21∣∣w∣∣2s.t.yi⋅(wTxi+b)⩾1,i=1,2,…,m.
问题来了,怎么去求w,b?
我们进入对偶问题,不要害怕,我不引入数学公式了。我们看看上面的基本型,一个多元函数,然后受一些条件限制,然后目标是求它的极值,高数学得好的同学应该有灵感了,没错,这就是多元函数的条件极值问题,最简单的就是用拉格朗日函数法嘛,先引入拉格朗日乘子
α
i
\alpha_i
αi,然后构建拉格朗日函数
L
(
w
,
b
,
α
)
L(w,b,\alpha)
L(w,b,α),再分别对w,b 求导并令为0,再把两式带回拉格朗日函数消去w和b得
L
(
α
)
L(\alpha)
L(α),求其最大值时的
α
\alpha
α,紧接着再求出w,b,搞定。
这只是大概思路,深入的话你会发现这是个二次规划问题,需要引入KKT条件和推导很多数学式子,还会了解到高效的SMO算法,慢慢来比较快。
软间隔

遇到上面这种情况怎么办?不可能精准地将两部分严格分开,那我们就不那么严格地分开,哈哈,称为软间隔分类(soft-margin),就是允许有一定的误差,以大局为重,总的来说能分开就算合格。
我们引入一个参数C,它决定支持向量机允许多少误差。如果C很大,那么支持向量机有一个硬边缘,它不会允许很多错误分类,因此,边缘可以相当小。如果C太大,太宽容,模型就有过拟合的风险。
ξ
\xi
ξ是松弛变量。
min
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ξ
i
s
.
t
.
y
i
⋅
(
w
T
x
i
+
b
)
⩾
1
−
ξ
i
,
ξ
i
⩾
0
,
i
=
1
,
2
,
…
,
m
.
\begin{aligned} &\min_{w,b} \frac{1}{2}||w||^2 + C \sum_{i=1}^{m} \xi^i\\ &s.t. \quad y_i\cdot (w^Tx_i + b)\geqslant 1- \xi^i,\quad \xi^i \geqslant 0,\quad i=1,2,\dots,m. \end{aligned}
w,bmin21∣∣w∣∣2+Ci=1∑mξis.t.yi⋅(wTxi+b)⩾1−ξi,ξi⩾0,i=1,2,…,m.

核函数
核函数里面会有很多数学推导,这里以先熟悉概念为主。

遇到这种数据怎么办?再软也不行了,这就不是直线能够分开的。我们引入核函数,就是把数据先映射到高维空间,在高维空间用超平面把它们分开,然后再把超平面投影回原始维度即为所求。核函数就是把低维数据投影到高纬的函数
比如这个核函数,点(1,2)经过投影得(
2
2
2\sqrt{2}
22,1,4)

在高维空间得到可靠的超平面后,投影回二维平面,得
这个橙色圆的外边即为所求。
附上其他笔记的链接:
《无废话的机器学习笔记(一)》
《无废话的机器学习笔记(二)(线性回归)》
《无废话的机器学习笔记(三)(梯度下降)》
《无废话的机器学习笔记(四)(感知机、逻辑回归、贝叶斯)》
《无废话的机器学习笔记(六)(决策树,KNN)》
《无废话的机器学习笔记(七)(聚类: kmeans、GMM、谱聚类)》
《无废话的机器学习笔记(番外)(数据集,方差-偏差,过拟合,正则化,降维)》
本文介绍了支持向量机(SVM)的基本概念及其实现过程,包括定义、数学表达、软间隔分类和核函数等内容,旨在帮助读者理解SVM如何通过支持向量定义决策边界,并在非线性可分情况下采用核技巧进行分类。
558

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



