1.SVM简介
1-1.物理世界角度理解svm
SVM全称Support Vector Machine是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)
总结:SVM用于二分类,目的是使得点到SVM平面的最小距离变大。
看着介绍有点模糊,直接来个图感受下。
- 假设有个这样的图(左一)需要你去分类,很明显线性不可分,直观的想法是利用非线性的曲线去划分这两类数据,什么时候一条曲线是线性的呢?答:高维空间,通过线性变化即可得到。
二维平面中,两点之间直线最短,三维也适用,为什么呢?因为我们的三维是正交的,如果第三维度不是正交而是有曲度的,那么把三维空间带有曲度的两点连线投影到二维,在二维的人看来就是两点之间曲线最短。
- 再举例一个实例:苹果和枣子均匀交叉分布在一个桌子上,怎么去用一条线划分?一个方法,只要用力打击桌面,利用反震的力量击飞苹果和枣子就行,苹果重,所以弹起高度低的是苹果,高的是枣子,这就是从二维进化到了三维。或者我们可以用风吹他们,加速度快的是枣子,这也是从二维到三维。
- 而svm的目的就是找到最具有区分度的一种方法去区分一个平面中的苹果和枣子。
2.知识前提
2-1 数学基本知识
凸集定义:欧式空间中,对于集合中的任意两点的连线,连线上任意一点都在集合中,我们就说这个集合是凸集。
凸函数定义:对于任意属于[0,1]的a和任意属于凸集的两点x, y,有f( ax + (1-a)y ) <= a * f(x) + (1-a) * f(y),几何上的直观理解就是两点连线上某点的函数值,大于等于两点之间某点的函数值。凸函数的任一局部极小点也是全局极小点
凸函数的充要条件:如果f(x)在开凸集S上具有二阶连续偏导数,且f(x)的海塞矩阵(二阶偏导的矩阵)在S上处处半正定,则f(x)为S上的凸函数。
半正定矩阵的定义:特征值大于等于0的实对称矩阵。
半正定矩阵的充要条件:行列式(n阶顺序主子式)等于0,行列式的i阶顺序主子式=0,i从1到n-1
2-2 几何间隔与函数间隔
SVM是通过超平面将样本分为两类。数据集为 ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i))。在超平面确定的情况下,根据距离公式 ∣ A x 0 + B y 0 + C ∣ A 2 + B 2 \frac{|Ax_0+By_0+C|}{\sqrt{A^2+B^2}} A2+B2∣Ax0+By0+C∣ 则 ∣ w ⋅ x + b ∣ |w \cdot x+b| ∣w⋅x+b∣可以表示点到超平面的远近,而对于二分类问题有 f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ ) 其 中 s . t . { w ∗ ⋅ x i + b ∗ > 0 y i > 0 w ∗ ⋅ x i + b ∗ < 0 y i < 0 由 上 可 知 y i ( w ∗ ⋅ x i + b ∗ ) 必 大 于 0 f(x)=sign(w^* \cdot x+b^*) \\ 其中s.t.\left\{ \begin{aligned} w^* \cdot x_i+b^*>0 \quad y_i>0\\ w^* \cdot x_i+b^*<0 \quad y_i<0\\ \end{aligned} \right.\\ 由上可知y_i(w^* \cdot x_i+b^*)必大于0 f(x)=sign(w∗⋅x+b∗)其中s.t.{w∗⋅xi+b∗>0yi>0w∗⋅xi+b∗<0yi<0由上可知yi(w∗⋅xi+b∗)必大于0
则我们可以用 y ( w x + b ) y(wx+b) y(wx+b)表示上面的绝对值,这个公式的值越大则分类结果可信度越大。问题是对于一个超平面的 w , b w,b w,b可以任意放缩,所以这个函数值也可以任意放缩,所以函数距离并不能描述真正的距离。
真正的距离就是几何距离,把超平面带入空间距离公式即可得到如下:
d
i
s
t
a
n
c
e
=
∣
w
T
x
i
+
b
∣
∣
∣
w
∣
∣
distance=\frac{|w^Tx_i+b|}{||w||}
distance=∣∣w∣∣∣wTxi+b∣
2-3 拉格朗日乘子法与KKT条件
参考瑞典皇家理学院PPT-------http://www.csc.kth.se/utbildning/kth/kurser/DD3364/Lectures/KKT.pdf
https://blog.csdn.net/qq_32742009/article/details/81411151
https://www.cnblogs.com/liaohuiqiang/p/7805954.html
2-3-1 什么是拉格朗日乘子法
拉格朗日乘子法是我们高数中求解含有约束条件的函数的极值的一种方法。先给出定义:
有如下函数
它的拉格朗日形式为:
其中
α
i
和
β
i
\alpha_i 和 \beta_i
αi和βi都大于等于0,我接下来的一切回答就是为了解决为什么这两个值大于等于0的问题。
先来一步步回忆下。我们以前是怎么做的?让我们由浅入深一步步考虑。
- 先是无约束的函数优化
- 等式约束的函数优化
- 不等式约束的函数优化(解在可行范围内)
- 不等式约束的函数优化(解不在可行范围内)
2-3-2 无约束的函数优化
对于无约束的优化问题一般如下:
min
x
f
(
x
)
\min_x f(x)
xminf(x)
这种问题很好解决,之间求导使得
∇
x
f
(
x
)
=
0
\nabla_xf(x)=0
∇xf(x)=0即可。
2-3-3 等式约束的函数优化以及物理解释
当目标函数加上约束条件之后,问题就变成如下形式:
约束条件会将解的范围限定在一个可行域,此时不一定能找到使得
∇
x
f
(
x
)
=
0
\nabla_xf(x)=0
∇xf(x)=0的点,一般的做法都是设置一个值
α
\alpha
α构建如下公式:
然后对所有参数变量求导
这样的意义是什么呢?我参考了瑞典皇家理学院的PPT
http://www.csc.kth.se/utbildning/kth/kurser/DD3364/Lectures/KKT.pdf
这里面其实包含了优化的梯度方向的意义。
比如说我们现在有这样的函数如下其中
f
(
x
)
f(x)
f(x)是目标函数,
h
(
x
)
h(x)
h(x)是约束等式项
我们这边引入正梯度和负梯度的定义,正梯度是使得函数值变大的梯度方向,负梯度是函数值变小的梯度方向
我们把这两个函数画出来,下图左上角的蓝色就是我们的优化目标,越小越好,红色的圈就是我们的约束等式,可以看见随着蓝色的线往下降,函数值在变小,所以这个梯度方向就是负梯度,右上角的图中 的蓝色箭头就显示了负梯度方向,而对于我们的等书约束函数,它的正梯度就是使得函数变大的方向,这是是个圆形,所以函数的正梯度就是向外扩散,如下图中的左下图,而他们的梯度的合就是我们的优化方向,如下图右下图所示的紫色箭头。
随着函数跟着梯度以及约束一路优化,我们会发现它的迭代方向是如下所示的圈,但是在左下角和右上角的箭头点地方不一样,对于左下角的箭头,我们的优化函数的负梯度和约束等式的正梯度重合了,也就是说优化函数的正梯度和约束等式的正梯度方向相反,此时我们合并梯度,先不管梯度大小,反正梯度方向要么左下,要么右上 ,并朝着这个方向走,但是由于我们的约束等式的存在让我们无法再去更新梯度,所以其实这里的梯度和等于0,函数达到了一个稳定点。
这个稳定点也就是我们的目标函数的最小值。
在这个点上有
到此为止,我们讲述了等书约束优化的物理意义和解法。下面请看不等式的约束和函数优化。
对于不等式约束又有两种情况
- 极值点在约束范围内
- 极值点不在约束范围内
2-3-4 不等式约束的函数优化以及物理解释(解在约束内)
我们先考虑第一种
考虑优化的不等式如下:其中f(x)是目标优化函数,g(x)是不等式约束
这种情况比较简单,下面一张图就可以描述了,蓝色是优化函数,红色是可行区域,蓝色的负梯度向着圆心,而红色的正梯度往外扩散【这时约束条件不起作用,使得
λ
=
0
\lambda=0
λ=0消去即可,当然如果解在边界上,那么
λ
≠
0
\lambda \not =0
λ=0 因为这时候会有
−
∇
x
f
(
x
)
=
λ
∇
x
g
(
x
)
-\nabla_xf(x)=\lambda \nabla_x g(x)
−∇xf(x)=λ∇xg(x)】,和上面等式约束一样做法。
2-3-5 不等式约束的函数优化以及物理解释(解在约束外)
考虑解在外的约束,函数如下:
此时让我们来看看这两个函数的图
上图中红色为约束区域,蓝色为优化区域,红色箭头是约束项的正梯度,蓝色是目标优化和函数的负梯度,这时候我们不等式的正梯度明显比目标函数的负梯度大,但是我们在红色圆的右下角已经达到了极值。这时候我们就有等式如下:
2-3-6 为什么 α i \alpha_i αi和 β i \beta_i βi要大于0?
现在回答这个问题应该是相当轻松了,为了因为我们的优化目标是求最小值所以梯度是负梯度,而为了和不等式约束的正梯度相互抵消达到平衡,所以引入了 λ > 0 \lambda > 0 λ>0
2-3-7 KKT条件
先给出KKT条件的形式,设函数形式如下
由拉格朗日得到的无约束的优化问题如下:
可行解
x
x
x就满足如下的KKT条件:(充要条件)
有了上面的过程,稍微分析下这些等式。
等式一是拉格朗日取得可行解的必要条件;
等式二是称作松弛互补条件,解在边界内不起作用,边界外或者边界上起作用
等式三和四就是初始的约束条件
等式五就是上面提到 的为什么 λ > 0 \lambda>0 λ>0
2-4 拉格朗日对偶问题
参考资料如下:
https://blog.csdn.net/qq_32742009/article/details/81413068
https://www.cnblogs.com/ooon/p/5723725.html
https://www.zhihu.com/question/58584814
https://blog.csdn.net/chunyun0716/article/details/52554544/
https://wenku.baidu.com/view/3cadf75da9956bec0975f46527d3240c8447a125.html#
2-4-1 对偶问题的性质
- 对偶问题的对偶是原问题
- 无论原问题是否是凸或者凹,对偶问题都是凸优化
- 对偶问题可以给出原始问题的一个下界
- 一定条件下,对偶问题与原问题是等价的
2-4-2 如何求解一个线性规划的对偶问题?
这个问题的细节比较复杂这边放一张推到图和链接
https://wenku.baidu.com/view/3cadf75da9956bec0975f46527d3240c8447a125.html#
这个链接里面基本全都提到了,弱对偶,强对偶等等。我们主要使用它的结论,所以这里不再赘述
从上面的推导可知,如果我想求一个函数如下:
min
w
,
b
max
α
L
(
w
,
b
,
α
)
\min_{w,b}\max_{\alpha}L(w,b,\alpha)
w,bminαmaxL(w,b,α)
那么它的对偶问题就是把前面的
m
a
x
max
max和
m
i
n
min
min交换:(这个结论要记住,下面要用到)
max
α
min
w
,
b
L
(
w
,
b
,
α
)
\max_{\alpha}\min_{w,b}L(w,b,\alpha)
αmaxw,bminL(w,b,α)
到此我们的准备工作已经完成,接下来就是推导硬间隔的SVM了
3. SVM 目标函数与约束的推导
数据集
SVM用于解决二分类问题,我们这里为了简单化,我们定义二分类的标签为{-1,1}
数据集被定义如下:
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
}
x
∈
R
N
,
y
i
∈
{
+
1
,
−
1
}
T=\{ (x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} \quad\quad\quad x\in R^N,y_i\in \{+1,-1\}
T={(x1,y1),(x2,y2),...,(xN,yN)}x∈RN,yi∈{+1,−1}
我们的目标是希望把这个二分类分类的足够好 ,那么怎么去我们的关注点就是如何衡量足够好?很简单,比如在二维空间中,我们画出了某条曲线区分两种类,我们当然是希望如下图所示。我们希望离我们划分的直线最近的点离的直线越远越好。
那我们就可以利用初中就学过点到直线的距离公式,去计算每个点到划分平面的距离,得出最小值,下面给出点到直线的距离:
d
=
∣
A
x
0
+
B
y
0
+
C
∣
A
2
+
B
2
d=\frac{|Ax_0+By_0+C|}{\sqrt{A^2+B^2}}
d=A2+B2∣Ax0+By0+C∣
但我们要求的是点到超平面的距离,先要得到超平面的公式,我们这边的超平面用于分割两个数据,所以在超平面某一面则为正标签,另一面则为反标签,位于超平面上面则为0。所以我们的超平面公式如下:
w
∗
⋅
x
+
b
∗
=
0
,
x
=
[
x
1
,
x
2
.
.
.
x
n
]
T
w^*\cdot x+b^*=0 ,\quad x=[x_1,x_2...x_n]^T
w∗⋅x+b∗=0,x=[x1,x2...xn]T
通过超平面去决策的函数函数如下:
f
(
x
)
=
s
i
g
n
(
w
∗
⋅
x
+
b
∗
)
其
中
s
i
g
n
(
x
)
=
{
1
x
>
0
0
x
=
0
−
1
x
<
0
f(x)=sign(w^* \cdot x+b^*) \\ 其中sign(x)=\left\{ \begin{aligned} 1 \quad x>0\\ 0 \quad x=0 \\ -1 \quad x<0\\ \end{aligned} \right.
f(x)=sign(w∗⋅x+b∗)其中sign(x)=⎩⎪⎨⎪⎧1x>00x=0−1x<0
回到我们刚刚的任务,我们是要求最短的 点到超平面的距离,那么就把点到直线距离扩展下计算我们的点到平面距离,公式如下:
d
i
s
t
a
n
c
e
=
∣
w
T
x
i
+
b
∣
∣
∣
w
∣
∣
注
意
这
里
的
x
i
是
一
条
数
据
的
n
维
特
征
向
量
∣
∣
w
∣
∣
是
2
范
数
(
P
S
:
不
开
根
是
为
了
后
面
求
导
方
便
)
distance=\frac{|w^Tx_i+b|}{||w||}\\ 注意这里的x_i是一条数据的n维特征向量\\ ||w||是2范数(PS:不开根是为了后面求导方便)
distance=∣∣w∣∣∣wTxi+b∣注意这里的xi是一条数据的n维特征向量∣∣w∣∣是2范数(PS:不开根是为了后面求导方便)
3-1 如何去除优化公式中的绝对值
OK,公式来了,我们的任务就是要去优化这玩意,也就是最大化 最短的点到平面的距离,可是带个绝对值怎么求?很简单,让我们回过头看看我们的判定函数。
f
(
x
)
=
s
i
g
n
(
w
∗
⋅
x
+
b
∗
)
其
中
s
.
t
.
{
w
∗
⋅
x
i
+
b
∗
>
0
y
i
>
0
w
∗
⋅
x
i
+
b
∗
<
0
y
i
<
0
由
上
可
知
y
i
(
w
∗
⋅
x
i
+
b
∗
)
必
大
于
0
f(x)=sign(w^* \cdot x+b^*) \\ 其中s.t.\left\{ \begin{aligned} w^* \cdot x_i+b^*>0 \quad y_i>0\\ w^* \cdot x_i+b^*<0 \quad y_i<0\\ \end{aligned} \right.\\ 由上可知y_i(w^* \cdot x_i+b^*)必大于0
f(x)=sign(w∗⋅x+b∗)其中s.t.{w∗⋅xi+b∗>0yi>0w∗⋅xi+b∗<0yi<0由上可知yi(w∗⋅xi+b∗)必大于0
我们根据上面的公式知道了
y
i
(
w
∗
⋅
x
i
+
b
∗
)
y_i(w^* \cdot x_i+b^*)
yi(w∗⋅xi+b∗)必然大于0,所以我们要替换掉绝对值的化只要把
∣
w
∗
⋅
x
i
+
b
∗
∣
|w^* \cdot x_i+b^*|
∣w∗⋅xi+b∗∣替换为
y
i
(
w
∗
⋅
x
i
+
b
∗
)
y_i(w^* \cdot x_i+b^*)
yi(w∗⋅xi+b∗)即可。那么我们的目标开始明确了。优化的函数可以写成如下公式
max
w
,
b
min
x
i
y
i
(
w
∗
⋅
x
i
+
b
∗
)
∣
∣
w
∣
∣
\max_{w,b}\min_{x_i}\frac{y_i( w^* \cdot x_i+b^*)}{||w||}
w,bmaxximin∣∣w∣∣yi(w∗⋅xi+b∗)
这里的
max
w
,
b
\max \limits_{w,b}
w,bmax和
min
x
\min \limits_x
xmin需要解释下,我们之前说过,我们的目标是最大化 最短的点到平面的距离,最短的点到平面的距离就是找到
x
i
x_i
xi,此时
x
i
x_i
xi就是个参数,我们把
w
,
b
w,b
w,b看作常数,所以写成函数就是
min
x
i
y
i
(
w
∗
⋅
x
i
+
b
∗
)
∣
∣
w
∣
∣
\min \limits_{x_i}\frac{y_i( w^* \cdot x_i+b^*)}{||w||}
ximin∣∣w∣∣yi(w∗⋅xi+b∗)。而
max
w
,
b
\max \limits_{w,b}
w,bmax就是把
w
,
b
w,b
w,b看作参数去调整平面,使得到平面的最短的距离 变长。
3-2 为优化函数添加约束项
那么问题来了,如果我改变了
w
,
b
w,b
w,b导致本来距离平面最短的点发生了变化,变成了另一个点怎么?所以我们还需要加上一个约束项:
设
γ
^
i
=
y
i
(
w
∗
⋅
x
i
+
b
∗
)
意
为
某
点
的
函
数
间
隔
γ
^
=
min
i
=
1..
N
γ
^
i
意
为
最
小
的
函
数
间
隔
s
.
t
.
y
i
(
⋅
x
i
+
b
)
⩾
γ
^
意
为
所
有
值
的
函
数
间
隔
都
大
于
最
小
点
的
函
数
间
隔
设\hat \gamma_i=y_i( w^* \cdot x_i+b^*)\\ 意为某点的函数间隔\\ \hat{\gamma}=\min_{i=1..N}\hat \gamma_i\\ 意为最小的函数间隔\\ s.t. \quad \quad y_i(\cdot x_i+b) \geqslant \hat\gamma\\ 意为所有值的函数间隔都大于最小点的函数间隔
设γ^i=yi(w∗⋅xi+b∗)意为某点的函数间隔γ^=i=1..Nminγ^i意为最小的函数间隔s.t.yi(⋅xi+b)⩾γ^意为所有值的函数间隔都大于最小点的函数间隔
这样我们的约束项就确立了,由公式
γ
^
=
min
i
=
1..
N
y
i
(
w
∗
⋅
x
i
+
b
∗
)
\hat{\gamma}=\min \limits_{i=1..N}y_i( w^* \cdot x_i+b^*)
γ^=i=1..Nminyi(w∗⋅xi+b∗)整理下我们的优化目标和优化约束,结果如下:
max
w
,
b
γ
^
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
⩾
γ
^
\begin {aligned} \max_{w,b}\frac{\hat \gamma }{||w||} \\s.t. \quad \quad y_i(w\cdot x_i+b) \geqslant \hat \gamma \end {aligned}
w,bmax∣∣w∣∣γ^s.t.yi(w⋅xi+b)⩾γ^
3-3 进一步化简复杂的优化目标
OK现在我们已经解决了公式中的绝对值,并且把公式整理了一下,看起来公式确实方便不少,但是仔细一看这个公式的
γ
^
\hat\gamma
γ^依然包含了三个参数
x
i
,
w
,
b
x_i,w,b
xi,w,b,仍然很难求,怎么办呢?这就需要我们做进一步的化简。
那么我们的思路就是如何使得这个公式的优化目标尽可能的减少参数。那么如何减少参数呢?
- 我们可以观察这个我们优化函数的分子,这是个函数间隔。
- 众所周知, w , b w,b w,b可以随便放缩但是不影响平面形状,所以函数距离没有意义,而且观察下面的约束项我们放大 w , b w,b w,b为 λ w , λ b \lambda w,\lambda b λw,λb时候,约束项右边的 γ ^ \hat \gamma γ^也会同比放大为 λ γ ^ \lambda \hat\gamma λγ^,所以函数间隔对约束项没有影响。
- 既然对约束项没有影响了,我们就可以任意在放大缩小,既然可以任意放大缩小,那么我们函数间隔 y i ( w ⋅ x i + b ) y_i(w\cdot x_i+b) yi(w⋅xi+b)中的 x i x_i xi的取值就对函数间隔没有影响了
- 得出结论:无论 x i x_i xi如何影响当前的函数间隔取值,我们总能找到一个 w , b w,b w,b使得函数间隔的值达到某个值。
哎哎哎,来了来了,怎么优化的思路来了,既然上面的函数间隔可以任意变换且对于优化目标和优化约束都没影响,那么我们为什么不干脆给他取值为1呢?这样一来不就简单了嘛。说干就干,我们的优化目标函数就变成了
max
w
,
b
1
∣
∣
w
∣
∣
\max \limits_{w,b}\frac{1 }{||w||}
w,bmax∣∣w∣∣1。这样看起来是不是爽多了,但是还有个分号,为了更爽一点,我们直接把他倒过来,此时我们的优化函数就变成了这个样子
min
w
,
b
∣
∣
w
∣
∣
\min\limits_{w,b} ||w||
w,bmin∣∣w∣∣ 。
而且我们的约束项也变化了,因为我们把最小函数间隔设置为了1,所以约束项如下:
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
⩾
1
变
形
可
以
得
到
y
i
(
w
⋅
x
i
+
b
)
−
1
⩾
0
s.t. \quad\quad y_i(w\cdot x_i+b) \geqslant 1\\ 变形可以得到y_i(w\cdot x_i+b) -1\geqslant 0
s.t.yi(w⋅xi+b)⩾1变形可以得到yi(w⋅xi+b)−1⩾0
- 这里来个小技巧。
- 大家都知道 ∣ ∣ w ∣ ∣ = w T w ||w||=w^Tw ∣∣w∣∣=wTw所以这玩意是个内积,求导后前面会有个系数2
- 所以这里先给他加上2次方和系数1/2这样以后求导后就没系数了
最终我们的优化目标和约束如下:
min
w
,
b
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
−
1
⩾
0
\begin {aligned} \min_{w,b}\frac{1}{ 2}{||w||}^2 \\s.t. \quad \quad y_i(w\cdot x_i+b) -1\geqslant 0 \end {aligned}
w,bmin21∣∣w∣∣2s.t.yi(w⋅xi+b)−1⩾0
3-4 如何求解优化函数?
回忆我们预知识里面的拉格朗日乘子法。再看我们这里的优化问题,这不就来了嘛,拉格朗日乘子法,高数知识。根据上面的优化目标以及约束项,我们定义拉格朗日函数如下:
【为什么是负号?因为我们线性规划的标准式子的约束项是小于等于0,而我们上面的式子的约束项是大于等于0,所以这里的符号就是上式的约束项两边同乘负号,然后再使用拉格朗日乘子法】:
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
−
∑
i
=
1
N
α
i
y
i
(
w
⋅
x
i
+
b
)
+
∑
i
=
1
N
α
i
(
1
)
其
中
α
i
⩾
0
L(w,b,\alpha)=\frac{1}{2}||w||^2-\sum_{i=1}^N\alpha_iy_i(w\cdot x_i+b)+\sum_{i=1}^N\alpha_i \quad \quad(1)\\ 其中\alpha_i \geqslant 0
L(w,b,α)=21∣∣w∣∣2−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi(1)其中αi⩾0
此时我们的优化目标就变成了如下,这个公式如下:
min
w
,
b
max
α
L
(
w
,
b
,
α
)
\min_{w,b}\max_{\alpha}L(w,b,\alpha)
w,bminαmaxL(w,b,α)
这里思考下这个公式为什么加了个max,这是因为我们的目标是使得
1
2
∣
∣
w
∣
∣
2
\frac{1}{2}||w||^2
21∣∣w∣∣2最小,而不是
max
α
L
(
w
,
b
,
α
)
\max \limits_{\alpha}L(w,b,\alpha)
αmaxL(w,b,α),那么两个之间有啥关系?请看下面公式:我们把
max
α
L
(
w
,
b
,
α
)
\max \limits_\alpha L(w,b,\alpha)
αmaxL(w,b,α)重新写下:
max
α
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
max
α
{
−
∑
i
=
1
N
α
i
y
i
(
w
⋅
x
i
+
b
)
+
∑
i
=
1
N
α
i
}
由
α
i
大
于
零
−
y
i
(
w
⋅
x
i
+
b
)
+
1
小
于
零
\max \limits_\alpha L(w,b,\alpha)=\frac{1}{2}||w||^2+\max_{\alpha}\{-\sum_{i=1}^N\alpha_iy_i(w\cdot x_i+b)+\sum_{i=1}^N\alpha_i \} \\ 由\alpha_i大于零\quad\quad -y_i(w\cdot x_i+b)+1小于零\\
αmaxL(w,b,α)=21∣∣w∣∣2+αmax{−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi}由αi大于零−yi(w⋅xi+b)+1小于零
可知后面的
max
α
\max \limits_{\alpha}
αmax最大值为0 所以对整体优化无影响,同时避免了
α
→
+
∞
\alpha \to +\infty
α→+∞时候函数整体趋近于负无穷而无意义的尴尬。
OK现在我们的函数又复杂了,并且我们不知道这个函数是不是一个凸优化问题,求出来也不一定是个全局的最优值,怎么办?这时候我们就想到了上面讲过的对偶的性质
无论原问题是不是一个凸优化问题,他的对偶问题一定是个凸优化问题
所以说,我们之间把上面的式子变成对偶问题然后求解不就行了。
那么接下来就先把原问题变成下面的对偶问题,然后求解就完事了:
max
α
min
w
,
b
L
(
w
,
b
,
α
)
\max_{\alpha}\min_{w,b}L(w,b,\alpha)
αmaxw,bminL(w,b,α)
为了求得对偶问题的解,需要先求
L
(
w
,
b
,
α
)
L(w,b,\alpha)
L(w,b,α)对
w
,
b
w,b
w,b的极小值,在对
α
\alpha
α求极大,那么我们下面就分两部
- 求 min w , b L ( w , b , α ) \min \limits_{w,b}L(w,b,\alpha) w,bminL(w,b,α)
- 求
min
w
,
b
L
(
w
,
b
,
α
)
\min \limits_{w,b}L(w,b,\alpha)
w,bminL(w,b,α)对
α
\alpha
α的极大
接下来就解决这俩个问题
3-5 求解 min w , b L ( w , b , α ) \min \limits_{w,b}L(w,b,\alpha) w,bminL(w,b,α)
这个解的方法很常规,就是我们高数中求拉格朗日约束的问题,所以我们只需对
w
,
w,
w,求偏导并且使他们为0即可。
∇
w
L
(
w
,
b
,
α
)
=
w
−
∑
i
=
1
N
α
i
y
i
x
i
=
0
∇
b
L
(
w
,
b
,
α
)
=
−
∑
i
=
1
N
α
i
y
i
=
0
\nabla_w L(w,b,\alpha)=w-\sum_{i=1}^N \alpha_iy_ix_i=0\\ \nabla_b L(w,b,\alpha)=-\sum_{i=1}^N \alpha_iy_i=0
∇wL(w,b,α)=w−i=1∑Nαiyixi=0∇bL(w,b,α)=−i=1∑Nαiyi=0
得
w
=
∑
i
=
1
N
α
i
y
i
x
i
(
2
)
∑
i
=
1
N
α
i
y
i
=
0
(
3
)
w=\sum_{i=1}^N\alpha_iy_ix_i \quad\quad\quad(2)\\ \sum_{i=1}^N\alpha_iy_i=0 \quad \quad\quad(3)
w=i=1∑Nαiyixi(2)i=1∑Nαiyi=0(3)
我们把公式2,3带入公式1得:
L
(
w
,
b
,
α
)
=
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
x
i
x
j
−
∑
i
=
1
N
α
i
y
i
(
(
∑
j
=
1
N
α
j
y
j
x
j
)
⋅
x
j
+
b
)
+
∑
i
=
1
N
α
i
=
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
x
i
x
j
+
∑
i
=
1
N
α
i
L(w,b,\alpha)=\frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j x_i x_j-\sum_{i=1}^N \alpha_i y_i((\sum_{j=1}^N \alpha_j y_j x_j)\cdot x_j +b)+\sum_{i=1}^N \alpha_i\\ =-\frac{1}{2}\sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j x_i x_j+\sum_{i=1}^N \alpha_i \quad \quad\quad\quad\quad\quad
L(w,b,α)=21i=1∑Nj=1∑Nαiαjyiyjxixj−i=1∑Nαiyi((j=1∑Nαjyjxj)⋅xj+b)+i=1∑Nαi=−21i=1∑Nj=1∑Nαiαjyiyjxixj+i=1∑Nαi
即有公式:
min
w
,
b
L
(
w
,
b
,
α
)
=
−
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
x
i
x
j
+
∑
i
=
1
N
α
i
\min_{w,b}L(w,b,\alpha)=-\frac{1}{2}\sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j x_i x_j+\sum_{i=1}^N \alpha_i
w,bminL(w,b,α)=−21i=1∑Nj=1∑Nαiαjyiyjxixj+i=1∑Nαi
此时求解
min
w
,
b
L
(
w
,
b
,
α
)
\min \limits_{w,b}L(w,b,\alpha)
w,bminL(w,b,α)完成,函数内已经没有参数
w
,
b
w,b
w,b,其他量视为常数。求解完毕
3-6 求 min w , b L ( w , b , α ) \min \limits_{w,b}L(w,b,\alpha) w,bminL(w,b,α)对 α \alpha α的极大
我们接下来就解决第二个问题:
求
min
w
,
b
L
(
w
,
b
,
α
)
\min \limits_{w,b}L(w,b,\alpha)
w,bminL(w,b,α)对
α
\alpha
α的极大值即求
max
α
L
(
w
,
b
,
α
)
\max \limits_{\alpha}L(w,b,\alpha)
αmaxL(w,b,α)
求
max
α
L
(
w
,
b
,
α
)
\max \limits_\alpha L(w,b,\alpha)
αmaxL(w,b,α)即求
min
α
−
L
(
w
,
b
,
α
)
\min_\alpha-L(w,b,\alpha)
minα−L(w,b,α),我们再整理下整个式子,如下:
min
α
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
x
i
x
j
−
∑
i
=
1
N
α
i
s
.
t
.
∑
i
=
1
N
α
i
y
i
=
0
α
i
⩾
0
\begin {aligned} \min_\alpha \frac{1}{2}\sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j x_i x_j-\sum_{i=1}^N \alpha_i \\s.t. \quad \sum_{i=1}^N\alpha_iy_i=0 \quad\quad\quad\quad\quad\quad\quad \\ \alpha_i \geqslant 0\quad\quad\quad\quad\quad\quad\quad \end {aligned}
αmin21i=1∑Nj=1∑Nαiαjyiyjxixj−i=1∑Nαis.t.i=1∑Nαiyi=0αi⩾0
这里很清晰了,现在上面的函数是个仅仅与
α
\alpha
α有关的函数,必然有个最优解
α
∗
\alpha^*
α∗,同时根据公式(2)
w
=
∑
i
=
1
N
α
i
y
i
x
i
w=\sum_{i=1}^N\alpha_iy_ix_i
w=∑i=1Nαiyixi,其中
x
i
,
y
i
,
α
i
x_i,y_i,\alpha_i
xi,yi,αi都为已知,必有最优解
w
∗
w^*
w∗,此时除了
b
b
b以外的最优解全部已知,我们自然可以求出最优解
b
∗
b^*
b∗,那么怎么求解呢?请看下面分析。
3-7 如何求 b ∗ b^* b∗?
如何求出b*这个问题要用到我们上面的KKT条件了。不明白的可以往上看KKT条件。根据满足KKT的第三条条件,我们可以得到如下公式:
y
j
(
w
∗
⋅
x
j
+
b
∗
)
−
1
=
0
y_j(w^* \cdot x_j +b^*)-1=0
yj(w∗⋅xj+b∗)−1=0
又我们根据公式
w
∗
=
∑
i
=
1
N
α
∗
y
i
x
i
w^*=\sum_{i=1}^N\alpha^*y_ix_i
w∗=∑i=1Nα∗yixi和
y
2
=
1
y^2=1
y2=1化简上面的公式,得:
b
∗
=
y
j
−
∑
i
=
1
N
α
∗
y
i
(
x
i
⋅
x
j
)
b^*=y_j-\sum_{i=1}^N\alpha^*y_i(x_i \cdot x_j)
b∗=yj−i=1∑Nα∗yi(xi⋅xj)
这下子所有变量都求出来了,终于得出结果了,我们可以写出我们最终得到的超平面函数如下:
∑
i
=
1
N
α
∗
y
i
(
x
⋅
x
i
)
+
b
∗
=
0
\sum_{i=1}^N \alpha^*y_i(x \cdot x_i)+b^*=0
i=1∑Nα∗yi(x⋅xi)+b∗=0
最终的决策函数如下:
f
(
x
)
=
s
i
g
n
{
∑
i
=
1
N
α
∗
y
i
(
x
⋅
x
i
)
+
b
∗
}
f(x)=sign\{\sum_{i=1}^N \alpha^*y_i(x \cdot x_i)+b^* \}
f(x)=sign{i=1∑Nα∗yi(x⋅xi)+b∗}