机器学习自学笔记——最好懂的支持向量机

文献参考

· 百度知道:桂纶美

基本概念

支持向量

概念:位于分类超平面附近的样本点,称为支持向量

在数学中,点这个概念常常用向量去取代。比如在直角坐标系下,点A坐标为(3,4),我们可以认为它代表着向量OA = (3,4)

现在我们有如下左图的一个二维样本点(向量),其中黄色的线是经过线性回归计算得出来的分类线;而右图那些临近回归线的点(用蓝色方形标注),就叫做支持向量。

“支持” 的含义可以这样理解:

​ 那些临近分类边界的点,才是对回归线(超平面)的走向有影响的点;距离分类边界较远的点,它们对回归线(超平面)如何去画并没有什么影响

请添加图片描述

如果我们将“机”理解成“算法”,那么支持向量机不难理解为“与支持点相关的(求出分类超平面的)算法”

下面给出支持向量机较为标准的概念:

支持向量机(SVM)

是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。

对于下面这一些数据集,要用一条回归线将其分开,现有①、②、③三条线,哪一条效果最好呢?

请添加图片描述

我想绝大部分人都会认为是②。虽然三条线都满足了将三角形和圆形分开,但是对于②线来说,三角形和圆形的支持向量到②线的距离看上去更加“均衡”,像是从中间位置将其分隔。

其实,支持向量机的意思是指:求支持向量到超平面的距离之和尽可能的大的算法。

事实上,根据基本不等式,距离之和最大和距离更加“均衡”其实是等价的

那么这里就引出了最大间隔超平面的概念

最大间隔超平面

上图中对应的②线——也就是我们看起来的最“均衡线”,它其实是以最大间隔把两类样本分开的线(高维的称作超平面),即最大间隔超平面。

请添加图片描述

我们会发现①、③两条线的样本间隔要比②的小很多,如下图

请添加图片描述

而我们支持向量机算法(SVM)实质上求的就是②这样的线、平面或者超平面

软间隔与硬间隔

请添加图片描述

假设上图中左边的坐标系中黄色、黑色和红色分别为负/决策/正超平面,而此时如果在黄线和红线之间新增了一个数据点 A A A,那么围绕超平面是否进行调整,会分成两种情况:

  • 第一种就是右上角的图1,虽然加入了 A A A,但是仍然使其在黄线与红线之间;
  • 第二种就是右下角的图2,随着 A A A的加入,超平面也随之发生变化,最终保证 A A A在黄线之下。

第一种情况中的黄线与红线的距离我们称之为软间隔;第二种情况中的黄线与红线的距离我们称之为硬间隔。

SVM最优化问题求解思路

在线性代数中,任意超平面可以用下面这个线性方程来描述:
W T X + b = 0 W^{T}X+b=0 WTX+b=0
其中
W = [ w 1 , w 2 , ⋅ ⋅ ⋅ , w n ] W=[w_1,w_2,···,w_n] W=[w1,w2,⋅⋅⋅wn]

X = [ x 1 , x 2 , ⋅ ⋅ ⋅ , x n ] X=[x_1,x_2,···,x_n] X=[x1,x2,⋅⋅⋅xn]

为系数矩阵,矩阵W转置后

[ W 1 W 2 ⋅ ⋅ ⋅ W n ] \left[ \begin{array} {} W_1\\ W_2\\ ·\\ ·\\ ·\\ W_n \end{array} \right] W1W2Wn

$$


W T X = w 1 x 1 + w 2 x 2 + w 3 x 3 + ⋅ ⋅ ⋅ + w n x n W^TX=w_1x_1+w_2x_2+w_3x_3+···+w_nx_n WTX=w1x1+w2x2+w3x3+⋅⋅⋅+wnxn
就是我们正常看到的超平面函数表达式

根据点到直线的距离公式

∣ A x + B y + C ∣ A 2 + B 2 \frac{|Ax+By+C|}{\sqrt{A^2+B^2}} A2+B2 Ax+By+C
从二维拓展成高维
∣ w 1 x 1 + w 2 x 2 + w 3 x 3 + ⋅ ⋅ ⋅ + w n x n + b ∣ w 1 2 + w 2 2 + ⋅ ⋅ ⋅ + w n 2 \frac{|w_1x_1+w_2x_2+w_3x_3+···+w_nx_n+b|}{\sqrt{w_1^2+w_2^2+···+w_n^2}} w12+w22+⋅⋅⋅+wn2 w1x1+w2x2+w3x3+⋅⋅⋅+wnxn+b
其中
w 1 x 1 + w 2 x 2 + w 3 x 3 + ⋅ ⋅ ⋅ + w n x n = W T X w_1x_1+w_2x_2+w_3x_3+···+w_nx_n=W^TX w1x1+w2x2+w3x3+⋅⋅⋅+wnxn=WTX
为前面所得出的公式
w 1 2 + w 2 2 + ⋅ ⋅ ⋅ + w n 2 = ∣ ∣ W ∣ ∣ \sqrt{w_1^2+w_2^2+···+w_n^2}=||W|| w12+w22+⋅⋅⋅+wn2 =∣∣W∣∣
为向量的模的定义

对于二维向量 X = (3,4),其模
∣ ∣ X ∣ ∣ = 3 2 + 4 2 = 5 ||X||=\sqrt{3^2+4^2}=5 ∣∣X∣∣=32+42 =5
高维向量以此类推

所以上面的高维距离公式可以转化为

∣ W T X + b ∣ ∣ ∣ W ∣ ∣ \frac{|W^TX+b|}{||W||} ∣∣W∣∣WTX+b

支持向量机数学原理

通过上文介绍,我们大概了解了支持向量机的作用与简单原理。下面我们详细介绍一下支持向量机的数学原理以及其算法。

  • 第一步:建立支持向量方程

首先补充一下上文介绍超平面的内容。我们一般将中间的用于分隔的超平面叫做决策超平面,决策超平面也是我们最后求得的超平面。而决策超平面的正方向与负方向分别有两个超平面:正超平面和负超平面。这两个超平面用于辅助生成决策超平面。为了简单化,我们先只考虑二维的支持向量机。

请添加图片描述

图中正超平面、决策超平面、负超平面的方程分别如下:
w 1 x 1 + w 2 x 2 + b = 1 w 1 x 1 + w 2 x 2 + b = 0 w 1 x 1 + w 2 x 2 + b = − 1 w_1x_1+w_2x_2+b=1\\w_1x_1+w_2x_2+b=0\\w_1x_1+w_2x_2+b=-1 w1x1+w2x2+b=1w1x1+w2x2+b=0w1x1+w2x2+b=1
这个并非是超平面的唯一写法。前面基础部分我们介绍了线性方程如何用矩阵来表达,这种写法只是上面的一种等价变式(移项),方便后面的运算。

现在我们假设在正超平面和负超平面上分别有两个支持向量M和N。他们分别满足下式:
w 1 x 1 m + w 2 x 2 m + b = 1 w 1 x 1 n + w 2 x 2 n + b = − 1 w_1x_{1m}+w_2x_{2m}+b=1\\w_1x_{1n}+w_2x_{2n}+b=-1 w1x1m+w2x2m+b=1w1x1n+w2x2n+b=1
目前现有的这两个方程对我们并没有什么作用或者启发,考虑到两个式子中都可以提出公因子 w 1 、 w 2 w_1、w_2 w1w2,以及都有常数 b b b,所以我们将两式作差,会得到如下结果:
w 1 ( x 1 m − x 1 n ) + w 2 ( x 2 m − x 2 n ) = 2 w_1(x_{1m}-x_{1n})+w_2(x_{2m}-x_{2n})=2 w1(x1mx1n)+w2(x2mx2n)=2
如果我们将上述式子看成两个向量做点积,我们会得到:
w ⃗ ( x m ⃗ − x n ⃗ ) = 2 \vec{w}(\vec{x_m}-\vec{x_n})=2 w (xm xn )=2
其中 w ⃗ = [ w 1   w 2 ] \vec{w}=[w_1 \ w_2] w =[w1 w2] x m ⃗ = [ x 1 m   x 2 m ] T \vec{x_m}=[x_{1m} \ x_{2m}]^T xm =[x1m x2m]T x n ⃗ = [ x 1 n   x 2 n ] T \vec{x_n}=[x_{1n} \ x_{2n}]^T xn =[x1n x2n]T

根据 a ⃗ ⋅ b ⃗ = ∣ ∣ a ⃗ ∣ ∣ ∗ ∣ ∣ b ⃗ ∣ ∣ ∗ c o s θ \vec{a}·\vec{b}=||\vec{a}||*||\vec{b}||*cos\theta a b =∣∣a ∣∣∣∣b ∣∣cosθ
∣ ∣ w ⃗ ∣ ∣ ∗ ∣ ∣ x m ⃗ − x n ⃗ ∣ ∣ ∗ c o s θ = 2 ||\vec{w}||*||\vec{x_m}-\vec{x_n}||*cos\theta=2 ∣∣w ∣∣∣∣xm xn ∣∣cosθ=2
其中 ∣ ∣ w ⃗ ∣ ∣ = w 1 2 + w 2 2 ||\vec{w}||=\sqrt{w_1^2+w_2^2} ∣∣w ∣∣=w12+w22

移项
∣ ∣ x m ⃗ − x n ⃗ ∣ ∣ ∗ c o s θ = 2 ∣ ∣ w ⃗ ∣ ∣ ||\vec{x_m}-\vec{x_n}||*cos\theta=\frac{2}{||\vec{w}||} ∣∣xm xn ∣∣cosθ=∣∣w ∣∣2

通过移项 x x x w w w分别在等式左右两边。左边是数据点的坐标,右边是待求的权重值。

  • 第二步:求出最大间隔 L L L表达式

这里我们不妨思考下 ∣ ∣ x m ⃗ − x n ⃗ ∣ ∣ ∗ c o s θ ||\vec{x_m}-\vec{x_n}||*cos\theta ∣∣xm xn ∣∣cosθ 的意义。

所以我们画出下图,尝试从几何角度去观察上式的意义。

我们知道向量点积可以转化为投影,即将一个向量的模乘 c o s θ cos\theta cosθ投影到另外一个向量的方向上,相同方向会极大的方便计算。

请添加图片描述

于是我们画出了下面的坐标系与向量(称为图1)。我们想用向量点积投影,但是我们并不知道MN和 w ⃗ \vec{w} w 的夹角。

请添加图片描述

但是我们可以进行转化。我们知道M、N两点在正负超平面上,那如果M、N在决策超平面上呢?由于这三个超平面的方程只有等号右边的常数不一样,所以如果M、N在决策超平面上时的 w ⃗ \vec{w} w 应该与上图的一样。所以我们不妨先设M、N在决策超平面上。我们可以画出下图(称为图2):

请添加图片描述

此时的M、N分别满足下列式子:
w 1 x 1 m + w 2 x 2 m + b = 0 w 1 x 1 n + w 2 x 2 n + b = 0 w_1x_{1m}+w_2x_{2m}+b=0\\w_1x_{1n}+w_2x_{2n}+b=0 w1x1m+w2x2m+b=0w1x1n+w2x2n+b=0
两式作差,可以得到:
w 1 ( x 1 m − x 1 n ) + w 2 ( x 2 m − x 2 n ) = 0 w_1(x_{1m}-x_{1n})+w_2(x_{2m}-x_{2n})=0 w1(x1mx1n)+w2(x2mx2n)=0

w ⃗ ( x m ⃗ − x n ⃗ ) = 0 \vec{w}(\vec{x_m}-\vec{x_n})=0 w (xm xn )=0
向量点积为零说明两向量互相垂直。观察上图, x m ⃗ − x n ⃗ \vec{x_m}-\vec{x_n} xm xn 即为 N M ⃗ \vec{NM} NM 。而这也就意味着 w ⃗ \vec{w} w 垂直于决策超平面,也就垂直与正、负超平面。好,这时我们从图2转回图1,我们再次将图1放出来方便说明。

请添加图片描述

由于 w ⃗ \vec{w} w 垂直于超平面,所以 ∣ ∣ N M ⃗ ∣ ∣ ||\vec{NM}|| ∣∣NM ∣∣ w ⃗ \vec{w} w 上的投影就为正负超平面的最大间隔 L L L。而正好 ∣ ∣ N M ⃗ ∣ ∣ = ∣ ∣ x m ⃗ − x n ⃗ ∣ ∣ ∗ c o s θ ||\vec{NM}||=||\vec{x_m}-\vec{x_n}||*cos\theta ∣∣NM ∣∣=∣∣xm xn ∣∣cosθ,故
L = 2 ∣ ∣ w ⃗ ∣ ∣ L=\frac{2}{||\vec{w}||} L=∣∣w ∣∣2

  • 第三步:求 L L L约束条件,得出优化问题

正超平面:所有红点属于正类,所以 y i = 1 y_i=1 yi=1;所有红点都在正超平面上方,所以 w ⃗ ⋅ x i ⃗ + b ≥ 1 \vec{w}·\vec{x_i}+b≥1 w xi +b1

负超平面:所有黄点属于负类,所以 y i = − 1 y_i=-1 yi=1;所有黄点都在负超平面下方,所以 w ⃗ ⋅ x i ⃗ + b ≤ 1 \vec{w}·\vec{x_i}+b≤1 w xi +b1

上面两种情况可以总结成下面这个式子:
y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) ≥ 1 y_i*(\vec{w}·\vec{x_i}+b)≥1 yi(w xi +b)1
而这个式子就是约束条件。

所以,求决策超平面问题就转化为:

y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) ≥ 1 y_i*(\vec{w}·\vec{x_i}+b)≥1 yi(w xi +b)1条件下, ∣ ∣ w ⃗ ∣ ∣ ||\vec{w}|| ∣∣w ∣∣的最小值。

由于 ∣ ∣ w ⃗ ∣ ∣ = w 1 2 + w 2 2 ||\vec{w}||=\sqrt{w_1^2+w_2^2} ∣∣w ∣∣=w12+w22 中含有根号,所以最小值并不是很好求。所以我们转化一下,将 ∣ ∣ w ⃗ ∣ ∣ ||\vec{w}|| ∣∣w ∣∣转化成 ∣ ∣ w ⃗ ∣ ∣ 2 2 \frac{||\vec{w}||^2}{2} 2∣∣w 2,于是问题等价为:

y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) ≥ 1 y_i*(\vec{w}·\vec{x_i}+b)≥1 yi(w xi +b)1条件下, ∣ ∣ w ⃗ ∣ ∣ 2 2 \frac{||\vec{w}||^2}{2} 2∣∣w 2的最小值。

  • 第四步:解出优化问题解的前四个条件

这种问题我们会通过拉格朗日乘子法进行求解。

但是有一个问题,就是约束条件 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) ≥ 1 y_i*(\vec{w}·\vec{x_i}+b)≥1 yi(w xi +b)1是不等式而不是等式,所以我们要先经过一步转化,将不等式转化为等式。

我们将 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) ≥ 1 y_i*(\vec{w}·\vec{x_i}+b)≥1 yi(w xi +b)1转换成 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 = p i 2 y_i*(\vec{w}·\vec{x_i}+b)-1=p_i^2 yi(w xi +b)1=pi2,由于 p i 2 ≥ 0 p_i^2≥0 pi20恒成立,故 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 ≥ 0 y_i*(\vec{w}·\vec{x_i}+b)-1≥0 yi(w xi +b)10恒成立。

所以原问题等价为:

y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 = p i 2 y_i*(\vec{w}·\vec{x_i}+b)-1=p_i^2 yi(w xi +b)1=pi2条件下, ∣ ∣ w ⃗ ∣ ∣ 2 2 \frac{||\vec{w}||^2}{2} 2∣∣w 2的最小值。

下面构造拉格朗日函数:
L ( w , b , λ i , p i ) = ∣ ∣ w ⃗ ∣ ∣ 2 2 − ∑ i = 1 s λ i ∗ ( y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 − p i 2 ) L(w,b,\lambda_i,p_i)=\frac{||\vec{w}||^2}{2}-\sum_{i=1}^s\lambda_i*(y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2) L(w,b,λi,pi)=2∣∣w 2i=1sλi(yi(w xi +b)1pi2)
然后进行求解。拉格朗日函数对每个未知数求偏导并令其等于0。
∂ L ∂ w = 0 ; ∂ L ∂ b = 0 ; ∂ L ∂ λ i = 0 ; ∂ L ∂ p i = 0 \frac{\partial{L}}{\partial{w}}=0;\frac{\partial{L}}{\partial{b}}=0;\frac{\partial{L}}{\partial{\lambda_i}}=0;\frac{\partial{L}}{\partial{p_i}}=0 wL=0;bL=0;λiL=0;piL=0
下面我们一个个来计算。

  • 首先是 ∂ L ∂ w = 0 \frac{\partial{L}}{\partial{w}}=0 wL=0 w w w出现在两个位置,分别是 ∣ ∣ w ⃗ ∣ ∣ 2 2 \frac{||\vec{w}||^2}{2} 2∣∣w 2 ∑ i = 1 s λ i ∗ y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) \sum_{i=1}^s\lambda_i*y_i*(\vec{w}·\vec{x_i}+b) i=1sλiyi(w xi +b),很容易求导得下式:

w ⃗ − ∑ i = 1 s λ i y i x i ⃗ = 0 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ① \vec{w}-\sum_{i=1}^s\lambda_iy_i\vec{x_i}=0············① w i=1sλiyixi =0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅

  • 然后是 ∂ L ∂ b = 0 \frac{\partial{L}}{\partial{b}}=0 bL=0 b b b只出现在一个位置,为 ∑ i = 1 s λ i ∗ y i ∗ b \sum_{i=1}^s\lambda_i*y_i*b i=1sλiyib,很容易求导得下式:

∑ i = 1 s λ i y i = 0 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ② \sum_{i=1}^s\lambda_iy_i=0············② i=1sλiyi=0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅

  • 接着是 ∂ L ∂ λ i = 0 \frac{\partial{L}}{\partial{\lambda_i}}=0 λiL=0 λ i \lambda_i λi只出现在一个位置,为 ∑ i = 1 s λ i ∗ ( y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 − p i 2 ) \sum_{i=1}^s\lambda_i*(y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2) i=1sλi(yi(w xi +b)1pi2)。本来求偏导得到的结果应该是 ∑ i = 1 s y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 − p i 2 = 0 \sum_{i=1}^{s}{y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2=0} i=1syi(w xi +b)1pi2=0,但其实根据限制条件, y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 − p i 2 = 0 y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2=0 yi(w xi +b)1pi2=0,没有必要使用求和符号。

y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 − p i 2 = 0 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ③ y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2=0············③ yi(w xi +b)1pi2=0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅

  • 最后是 ∂ L ∂ p i = 0 \frac{\partial{L}}{\partial{p_i}}=0 piL=0 p i p_i pi只出现在一个位置,为 ∑ i = 1 s λ i ∗ ( − p i 2 ) \sum_{i=1}^s\lambda_i*(-p_i^2) i=1sλi(pi2),很容易求导得到下式:

2 λ i p i = 0 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ④ 2\lambda_ip_i=0············④ 2λipi=0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅

下面的步骤就是利用①~④式和原式求出 ∣ ∣ w ⃗ ∣ ∣ ||\vec{w}|| ∣∣w ∣∣的最小值。首先我们将④式左右两边同时除以2并乘 p i p_i pi,得到下式:
λ i p i 2 = 0 \lambda_ip_i^2=0 λipi2=0
之所以要这样做是因为③式中有一个 p i 2 p_i^2 pi2,这样做可以一定程度上化简计算。我们将③式代入④式,得到:
λ i ( y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 ) = 0 \lambda_i(y_i*(\vec{w}·\vec{x_i}+b)-1)=0 λi(yi(w xi +b)1)=0
这个式子非常有趣。之前我们在第三步得到 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) ≥ 1 y_i*(\vec{w}·\vec{x_i}+b)≥1 yi(w xi +b)1这个约束条件,那这样上式只可能在两种情况下成立:

y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 ) > 0 y_i*(\vec{w}·\vec{x_i}+b)-1)>0 yi(w xi +b)1)0 λ i = 0 \lambda_i=0 λi=0;

y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 = 0 y_i*(\vec{w}·\vec{x_i}+b)-1=0 yi(w xi +b)1=0 λ i ≠ 0 \lambda_i≠0 λi=0

  • 第五步:得出优化问题解的第五个条件

对于拉格朗日函数 L ( w , b , λ i , p i ) = ∣ ∣ w ⃗ ∣ ∣ 2 2 − ∑ i = 1 s λ i ∗ ( y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 − p i 2 ) L(w,b,\lambda_i,p_i)=\frac{||\vec{w}||^2}{2}-\sum_{i=1}^s\lambda_i*(y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2) L(w,b,λi,pi)=2∣∣w 2i=1sλi(yi(w xi +b)1pi2)来说,当不满足约束条件时,即 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 < 0 y_i*(\vec{w}·\vec{x_i}+b)-1<0 yi(w xi +b)1<0时,如果 λ i < 0 \lambda_i<0 λi<0,则 ∑ i = 1 s λ i ∗ ( y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 − p i 2 ) > 0 \sum_{i=1}^s\lambda_i*(y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2)>0 i=1sλi(yi(w xi +b)1pi2)>0,而 L ( w , b , λ i , p i ) L(w,b,\lambda_i,p_i) L(w,b,λi,pi)也会更小。根据拉格朗日函数的性质,越符合约束条件拉格朗日函数的值越小。这就说明, λ i \lambda_i λi小于0是不符合常理的,故其应该大于等于0。

我们同样也可以通过图像来解释这个问题。

我们假设是二维空间,在这个二维空间中,横纵坐标分别是 w 1 w_1 w1 w 2 w_2 w2,那么 ∣ ∣ w ⃗ ∣ ∣ = w 1 2 + w 2 2 ||\vec{w}||=\sqrt{w_1^2+w_2^2} ∣∣w ∣∣=w12+w22 在图像上表示的几何含义为一个圆心为原点,半径为 w 1 2 + w 2 2 \sqrt{w_1^2+w_2^2} w12+w22 的圆。

请添加图片描述

我们所要求得的优化问题 m i n ∣ ∣ w ⃗ ∣ ∣ 2 2 min\frac{||\vec{w}||^2}{2} min2∣∣w 2,即为 ∣ ∣ w ⃗ ∣ ∣ ||\vec{w}|| ∣∣w ∣∣取最小值时取到。而由于 ∣ ∣ w ⃗ ∣ ∣ ||\vec{w}|| ∣∣w ∣∣即为圆的半径,所以我们希望圆尽可能的小。

现在我们加入约束条件。第一个约束条件为 g 1 = y 1 ∗ ( w ⃗ ⋅ x 1 ⃗ + b ) − 1 ≥ 0 g_1=y_1*(\vec{w}·\vec{x_1}+b)-1≥0 g1=y1(w x1 +b)10,它在图像上表示的含义是可行区域在一条直线之上(浅绿色),如下图:

请添加图片描述

而能够使圆上有点能在可行区域之内,且圆的半径要最小的情况就是圆与直线相切(如图中深蓝色圆所表示)

此时我们加入另外一个限制条件, g 2 = y 2 ∗ ( w ⃗ ⋅ x 2 ⃗ + b ) − 1 ≥ 0 g_2=y_2*(\vec{w}·\vec{x_2}+b)-1≥0 g2=y2(w x2 +b)10。此时在两个限制条件下,最小的圆是经过两条直线交点的圆。而此时的 w ⃗ = ( w 1 , w 2 ) \vec{w}=(w_1,w_2) w =(w1,w2)的方向(红色线所表示)只要在两个直线之内即可。

请添加图片描述

通过上图直观理解,我们也可以得出下面一个式子:向量 ∂ f ∂ w \frac{\partial{f}}{\partial{w}} wf可以由 ∂ g 1 ∂ w 和 ∂ g 2 ∂ w \frac{\partial{g_1}}{\partial{w}}和\frac{\partial{g_2}}{\partial{w}} wg1wg2线性表出,而它们的系数 λ 1 \lambda_1 λ1 λ 2 \lambda_2 λ2都为非负数(通过直观理解或者用矢量三角形理解)。
∂ f ∂ w = λ 1 ∂ g 1 ∂ w + λ 2 ∂ g 2 ∂ w \frac{\partial{f}}{\partial{w}}=\lambda_1\frac{\partial{g_1}}{\partial{w}}+\lambda_2\frac{\partial{g_2}}{\partial{w}} wf=λ1wg1+λ2wg2
通过上述图像也可以帮助我们理解, λ i \lambda_i λi为什么大于等于0。我们也就得到了第五个条件:
λ i ≥ 0 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⑤ \lambda_i≥0············⑤ λi0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
综合上述,我们已经得到了解的五个条件,又称为KKT条件:
w ⃗ − ∑ i = 1 s λ i y i x i ⃗ = 0 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ① ∑ i = 1 s λ i y i = 0 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ② y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 − p i 2 = 0 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ③ 2 λ i p i = 0 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ④ λ i ≥ 0 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⑤ \vec{w}-\sum_{i=1}^s\lambda_iy_i\vec{x_i}=0····················①\\\sum_{i=1}^s\lambda_iy_i=0·························②\\y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2=0············③\\2\lambda_ip_i=0····························④\\\lambda_i≥0·······························⑤ w i=1sλiyixi =0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅i=1sλiyi=0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅yi(w xi +b)1pi2=0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅2λipi=0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅λi0⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅

  • 第六步:转化成SVM对偶问题

对偶问题是一种求解线性规划问题的常用方法。通过将一个问题转化为其对偶问题,有时能大大简化求解问题的难度。

我们先回顾一下原问题:

g i ( w , b ) = y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 = p i 2 g_i(w,b)=y_i*(\vec{w}·\vec{x_i}+b)-1=p_i^2 gi(w,b)=yi(w xi +b)1=pi2条件下, 求 ∣ ∣ w ⃗ ∣ ∣ 2 2 求\frac{||\vec{w}||^2}{2} 2∣∣w 2的最小值。

我们先假设原问题的最优解为 w ∗ 、 b ∗ w^*、b^* wb。然后设
q ( λ i ) = m i n ( L ( w , b , λ i ) ) = m i n ( ∣ ∣ w ⃗ ∣ ∣ 2 2 − ∑ i = 1 s λ i ∗ ( y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 − p i 2 ) ) q(\lambda_i)=min(L(w,b,\lambda_i))=min(\frac{||\vec{w}||^2}{2}-\sum_{i=1}^s\lambda_i*(y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2)) q(λi)=min(L(w,b,λi))=min(2∣∣w 2i=1sλi(yi(w xi +b)1pi2))
代入 w ∗ 、 b ∗ w^*、b^* wb,可以得到下面的式子:
q ( λ i ) = m i n ( L ( w , b , λ i ) ) ≤ m i n ( L ( w ∗ , b ∗ , λ i ) ) q(\lambda_i)=min(L(w,b,\lambda_i))≤min(L(w^*,b^*,\lambda_i)) q(λi)=min(L(w,b,λi))min(L(w,b,λi))
m i n ( ∣ ∣ w ⃗ ∣ ∣ 2 2 − ∑ i = 1 s λ i ∗ ( y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 − p i 2 ) ) ≤ ∣ ∣ w ∗ ⃗ ∣ ∣ 2 2 − ∑ i = 1 s λ i ∗ ( y i ∗ ( w ∗ ⃗ ⋅ x i ⃗ + b ∗ ) − 1 − p i 2 ) min(\frac{||\vec{w}||^2}{2}-\sum_{i=1}^s\lambda_i*(y_i*(\vec{w}·\vec{x_i}+b)-1-p_i^2))≤\frac{||\vec{w^*}||^2}{2}-\sum_{i=1}^s\lambda_i*(y_i*(\vec{w^*}·\vec{x_i}+b^*)-1-p_i^2) min(2∣∣w 2i=1sλi(yi(w xi +b)1pi2))2∣∣w 2i=1sλi(yi(w xi +b)1pi2)

小于等于号的存在是由 m i n min min最小值函数决定的。

根据KKT条件的③和⑤, ∑ i = 1 s λ i ∗ ( y i ∗ ( w ∗ ⃗ ⋅ x i ⃗ + b ∗ ) − 1 − p i 2 ) \sum_{i=1}^s\lambda_i*(y_i*(\vec{w^*}·\vec{x_i}+b^*)-1-p_i^2) i=1sλi(yi(w xi +b)1pi2)必定大于0,故
∣ ∣ w ∗ ⃗ ∣ ∣ 2 2 − ∑ i = 1 s λ i ∗ ( y i ∗ ( w ∗ ⃗ ⋅ x i ⃗ + b ∗ ) − 1 − p i 2 ) ≤ ∣ ∣ w ∗ ⃗ ∣ ∣ 2 2 \frac{||\vec{w^*}||^2}{2}-\sum_{i=1}^s\lambda_i*(y_i*(\vec{w^*}·\vec{x_i}+b^*)-1-p_i^2)≤\frac{||\vec{w^*}||^2}{2} 2∣∣w 2i=1sλi(yi(w xi +b)1pi2)2∣∣w 2
又由于 w ∗ ⃗ \vec{w^*} w 是原问题最优解,所以我们可以得到:
∣ ∣ w ∗ ⃗ ∣ ∣ 2 2 ≤ ∣ ∣ w ⃗ ∣ ∣ 2 2 \frac{||\vec{w^*}||^2}{2}≤\frac{||\vec{w}||^2}{2} 2∣∣w 22∣∣w 2
所以我们可以得到下面一个不等式链:
q ( λ i ) ≤ m i n ( L ( w ∗ , b ∗ , λ i ) ) ≤ ∣ ∣ w ∗ ⃗ ∣ ∣ 2 2 ≤ ∣ ∣ w ⃗ ∣ ∣ 2 2 q(\lambda_i)≤min(L(w^*,b^*,\lambda_i))≤\frac{||\vec{w^*}||^2}{2}≤\frac{||\vec{w}||^2}{2} q(λi)min(L(w,b,λi))2∣∣w 22∣∣w 2
我们假设 λ i ∗ 为 q ( λ i ) \lambda_i^*为q(\lambda_i) λiq(λi)的最优解。则
q ( λ i ) ≤ q ( λ i ∗ ) ≤ ∣ ∣ w ∗ ⃗ ∣ ∣ 2 2 ≤ ∣ ∣ w ⃗ ∣ ∣ 2 2 q(\lambda_i)≤q(\lambda_i^*)≤\frac{||\vec{w^*}||^2}{2}≤\frac{||\vec{w}||^2}{2} q(λi)q(λi)2∣∣w 22∣∣w 2
好,进行到这一步我们就可以将原问题转化成对偶问题了。

原问题:

  • g i ( w , b ) = y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 ≥ 0 g_i(w,b)=y_i*(\vec{w}·\vec{x_i}+b)-1≥0 gi(w,b)=yi(w xi +b)10条件下, 求 ∣ ∣ w ⃗ ∣ ∣ 2 2 求\frac{||\vec{w}||^2}{2} 2∣∣w 2的最小值。

对偶问题:

  • λ i ≥ 0 \lambda_i≥0 λi0的条件下,求 q ( λ i ) = m i n ( L ( w , b , λ i ) ) q(\lambda_i)=min(L(w,b,\lambda_i)) q(λi)=min(L(w,b,λi))的最大值。

q ( λ i ∗ ) = ∣ ∣ w ∗ ⃗ ∣ ∣ 2 2 q(\lambda_i^*)=\frac{||\vec{w^*}||^2}{2} q(λi)=2∣∣w 2时,两个问题为强对偶问题,应同时取得最优解,下面进行证明:

因为
q ( λ i ) ≤ ∣ ∣ w ⃗ ∣ ∣ 2 2 q(\lambda_i)≤\frac{||\vec{w}||^2}{2} q(λi)2∣∣w 2
所以
q ( λ i ∗ ) ≤ ∣ ∣ w ⃗ ∣ ∣ 2 2 q(\lambda_i^*)≤\frac{||\vec{w}||^2}{2} q(λi)2∣∣w 2

∣ ∣ w ∗ ⃗ ∣ ∣ 2 2 ≤ ∣ ∣ w ⃗ ∣ ∣ 2 2 \frac{||\vec{w^*}||^2}{2}≤\frac{||\vec{w}||^2}{2} 2∣∣w 22∣∣w 2
而又根据前面得到的 q ( λ i ) ≤ m i n ( L ( w ∗ , b ∗ , λ i ) ) ≤ ∣ ∣ w ∗ ⃗ ∣ ∣ 2 2 q(\lambda_i)≤min(L(w^*,b^*,\lambda_i))≤\frac{||\vec{w^*}||^2}{2} q(λi)min(L(w,b,λi))2∣∣w 2,所以
q ( λ i ) ≤ ∣ ∣ w ∗ ⃗ ∣ ∣ 2 2 = q ( λ i ∗ ) q(\lambda_i)≤\frac{||\vec{w^*}||^2}{2}=q(\lambda_i^*) q(λi)2∣∣w 2=q(λi)
所以 q ( λ i ∗ ) q(\lambda_i^*) q(λi) q ( λ i ) q(\lambda_i) q(λi)的最大值解。

故证明在强对偶条件下,原问题和对偶问题的最优解同时取到。

  • 第七步:优化方程

根据前面的拉格朗日函数,我们已经得到:
m a x ( q ( λ ) ) = m a x ( m i n ( ∣ ∣ w ⃗ ∣ ∣ 2 ) − ∑ i = 1 s λ i ∗ ( y i ∗ ( w ∗ ⃗ ⋅ x i ⃗ + b ∗ ) − 1 ) ) ) max(q(\lambda))=max(min(\frac{||\vec{w}||}{2})-\sum_{i=1}^s\lambda_i*(y_i*(\vec{w^*}·\vec{x_i}+b^*)-1))) max(q(λ))=max(min(2∣∣w ∣∣)i=1sλi(yi(w xi +b)1)))
将KKT条件代入化简可得:
m a x ( q ( λ ) ) = m a x ( ∑ i = 1 s λ i − 1 2 ∑ i = 1 s ∑ j = 1 s λ i λ j y i y j x i ⃗ ⋅ x j ⃗ ) max(q(\lambda))=max(\sum_{i=1}^s{\lambda_i}-\frac{1}{2}\sum_{i=1}^{s}\sum_{j=1}^s\lambda_i\lambda_jy_iy_j\vec{x_i}·\vec{x_j}) max(q(λ))=max(i=1sλi21i=1sj=1sλiλjyiyjxi xj )

  • 第八步:得出算法步骤

上文我们推导过下列式子:

y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 > 0 y_i*(\vec{w}·\vec{x_i}+b)-1>0 yi(w xi +b)1>0 λ i = 0 \lambda_i=0 λi=0;

y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 = 0 y_i*(\vec{w}·\vec{x_i}+b)-1=0 yi(w xi +b)1=0 λ i ≠ 0 \lambda_i≠0 λi=0

同时我们也推导出 λ i ≥ 0 \lambda_i≥0 λi0这个条件。

根据上面的两个条件我们可以得到一些结论。

  • 如果数据点在正负超平面 w ⃗ ⋅ x i ⃗ + b ± 1 = 0 \vec{w}·\vec{x_i}+b±1=0 w xi +b±1=0上,由于 ∣ y i ∣ = 1 |y_i|=1 yi=1,所以 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 = 0 y_i*(\vec{w}·\vec{x_i}+b)-1=0 yi(w xi +b)1=0,则属于情况②,故 λ i > 0 \lambda_i>0 λi0

  • 如果数据点不在正负超平面上 w ⃗ ⋅ x i ⃗ + b ± 1 = 0 \vec{w}·\vec{x_i}+b±1=0 w xi +b±1=0上,则属于情况①,所以 λ i = 0 \lambda_i=0 λi=0。而将 λ i = 0 \lambda_i=0 λi=0代入可得 λ i ( y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 ) = 0 \lambda_i(y_i*(\vec{w}·\vec{x_i}+b)-1)=0 λi(yi(w xi +b)1)=0

上述推导说明,我们在计算超平面权重值 w w w时只需要用到支持向量(在正负超平面上的数据点),而不需要非支持向量。

有了前文铺垫,我们就可以得出支持向量机SVM算法了。

① 通过下列问题求得 λ i \lambda_i λi的值
m a x ( q ( λ ) ) = m a x ( ∑ i = 1 s λ i − 1 2 ∑ i = 1 s ∑ j = 1 s λ i λ j y i y j x i ⃗ ⋅ x j ⃗ ) 其中 λ i ≥ 0 max(q(\lambda))=max(\sum_{i=1}^s{\lambda_i}-\frac{1}{2}\sum_{i=1}^{s}\sum_{j=1}^s\lambda_i\lambda_jy_iy_j\vec{x_i}·\vec{x_j})\\其中\lambda_i≥0 max(q(λ))=max(i=1sλi21i=1sj=1sλiλjyiyjxi xj )其中λi0
② 根据KKT条件
w ⃗ = ∑ i = 1 s λ i y i x i ⃗ \vec{w}=\sum_{i=1}^s\lambda_iy_i\vec{x_i} w =i=1sλiyixi
可以求出 w ⃗ \vec{w} w

标题

③ 根据 y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 = 0 y_i*(\vec{w}·\vec{x_i}+b)-1=0 yi(w xi +b)1=0求解出 b b b

升维转换与核技巧

我们看下面一个情景:

比如现在在一维x轴上有一些数据点,红色和蓝色。我们现在想要将其用一个函数(对于一维来说就是一个常量)去划分红点和蓝点。很直观地可以看出,这个是不可能的。

请添加图片描述

但是,如果上图是由二维平面图形投影到一维x轴上而产生的,我们“还原”二维平面,或许会发现不一样的世界:

请添加图片描述

如上图,如果我们能通过某些方法将一维的数据点转化为二维的数据点,那么我们似乎可以很容易对数据点进行划分(如图中粉红色那条线)

这一过程即为升维转换。

在支持向量机中我们也可以利用这个方法。我们先回顾下优化方程:
m a x ( q ( λ i ) ) = m a x ( ∑ i = 1 s λ i − 1 2 ∑ i = 1 s ∑ j = 1 s λ i λ j y i y j x i ⃗ ⋅ x j ⃗ ) 其中 λ i ≥ 0 max(q(\lambda_i))=max(\sum_{i=1}^s{\lambda_i}-\frac{1}{2}\sum_{i=1}^{s}\sum_{j=1}^s\lambda_i\lambda_jy_iy_j\vec{x_i}·\vec{x_j})\\其中\lambda_i≥0 max(q(λi))=max(i=1sλi21i=1sj=1sλiλjyiyjxi xj )其中λi0
x i ⃗ ⋅ x j ⃗ \vec{x_i}·\vec{x_j} xi xj 表示在原维度下对应向量坐标的点积。但是事实上,上述方程是无解的,所以我们可以利用核技巧进行升维变换。我们会通过一个函数 T ( x ) T(x) T(x)进行升维变换操作,这个函数我们称之为维度转换函数。通过维度转换函数,原来的 x i ⃗ \vec{x_i} xi 变成了 T ( x i ⃗ ) T(\vec{x_i}) T(xi ) x j ⃗ \vec{x_j} xj 变成了 T ( x j ⃗ ) T(\vec{x_j}) T(xj )。所以原问题也转换成了下式:
m a x ( q ( λ i ) ) = m a x ( ∑ i = 1 s λ i − 1 2 ∑ i = 1 s ∑ j = 1 s λ i λ j y i y j T ( x i ⃗ ) ⋅ T ( x j ⃗ ) ) 其中 λ i ≥ 0 max(q(\lambda_i))=max(\sum_{i=1}^s{\lambda_i}-\frac{1}{2}\sum_{i=1}^{s}\sum_{j=1}^s\lambda_i\lambda_jy_iy_jT(\vec{x_i})·T(\vec{x_j}))\\其中\lambda_i≥0 max(q(λi))=max(i=1sλi21i=1sj=1sλiλjyiyjT(xi )T(xj ))其中λi0
事实上,这里我们既可以通过 x i ⃗ 、 x j ⃗ \vec{x_i}、\vec{x_j} xi xj 写出 T ( x i ⃗ ) 、 T ( x j ⃗ ) T(\vec{x_i})、T(\vec{x_j}) T(xi )T(xj ),然后再进行点积操作,也可以直接令 K ( x i ⃗ , x j ⃗ ) = T ( x i ⃗ ) ⋅ T ( x j ⃗ ) K(\vec{x_i},\vec{x_j})=T(\vec{x_i})·T(\vec{x_j}) K(xi ,xj )=T(xi )T(xj ),然后进行计算。这两者的区别在于,后者是直接将 x i ⃗ ⋅ x j ⃗ \vec{x_i}·\vec{x_j} xi xj 看成一个未知数整体代入计算。而这里的 K ( x i ⃗ , x j ⃗ ) K(\vec{x_i},\vec{x_j}) K(xi ,xj )即为核函数。其一般表达式如下:
K ( x i ⃗ , x j ⃗ ) = ( c + x i ⃗ ⋅ x j ⃗ ) d K(\vec{x_i},\vec{x_j})=(c+\vec{x_i}·\vec{x_j})^d K(xi ,xj )=(c+xi xj )d
那么参数 c 和 d c和d cd都有什么作用呢?

对于相同的 d d d,不同的 c c c来说, c c c可以控制低次项的存在与否,以及低次项的系数;

对于相同的 c c c,不同的 d d d来说, d d d的大小决定了最高维度大小。

除此之外,核函数还可以由多个核函数线性组合而成,比如: K 1 ′ ( x i ⃗ , x j ⃗ ) + K 2 ′ ( x i ⃗ , x j ⃗ ) K_1'(\vec{x_i},\vec{x_j})+K_2'(\vec{x_i},\vec{x_j}) K1(xi ,xj )+K2(xi ,xj )

也有一种比较特殊的核函数,即将二维转化成无穷维。这个核函数是高斯核函数(RBF),其公式如下:
K ( x i ⃗ , x j ⃗ ) = e − γ ∣ ∣ x i ⃗ − x j ⃗ ∣ ∣ 2 K(\vec{x_i},\vec{x_j})=e^{-\gamma||\vec{x_i}-\vec{x_j}||^2} K(xi ,xj )=eγ∣∣xi xj 2

软间隔

前文中解释过软硬间隔的概念,下面我们详细讨论下。

请添加图片描述

如上图,有个点A违反了约束条件,在黄线和黑线之内。

我们知道硬间隔约束条件为 y i ∗ ( w ∗ ⃗ ⋅ x i ⃗ + b ∗ ) − 1 ≥ 0 y_i*(\vec{w^*}·\vec{x_i}+b^*)-1≥0 yi(w xi +b)10。如果点A违背约束条件,则点A满足式子 y a ∗ ( w ∗ ⃗ ⋅ x a ⃗ + b ∗ ) − 1 < 0 y_a*(\vec{w^*}·\vec{x_a}+b^*)-1<0 ya(w xa +b)10。我们想要把不等式转化为等式,则需要一个 ϵ a \epsilon_a ϵa来衡量误差,式子如下:
ϵ a = 1 − y a ∗ ( w ∗ ⃗ ⋅ x a ⃗ + b ∗ ) \epsilon_a=1-y_a*(\vec{w^*}·\vec{x_a}+b^*) ϵa=1ya(w xa +b)
所以软间隔优化问题如下:

g i ( w , b ) = y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 > 0 g_i(w,b)=y_i*(\vec{w}·\vec{x_i}+b)-1>0 gi(w,b)=yi(w xi +b)10 m a x ( 0 , 1 − y a ∗ ( w ∗ ⃗ ⋅ x a ⃗ + b ∗ ) ) max(0,1-y_a*(\vec{w^*}·\vec{x_a}+b^*)) max(0,1ya(w xa +b))条件下,

求 ∣ ∣ w ⃗ ∣ ∣ 2 2 + C ∑ i = 1 s ϵ i 求\frac{||\vec{w}||^2}{2}+C\sum_{i=1}^s{\epsilon_i} 2∣∣w 2+Ci=1sϵi的最小值。

我们可以和之前的硬间隔优化问题进行比对:

g i ( w , b ) = y i ∗ ( w ⃗ ⋅ x i ⃗ + b ) − 1 > 0 g_i(w,b)=y_i*(\vec{w}·\vec{x_i}+b)-1>0 gi(w,b)=yi(w xi +b)10条件下,

求 ∣ ∣ w ⃗ ∣ ∣ 2 2 求\frac{||\vec{w}||^2}{2} 2∣∣w 2的最小值。

事实上,软间隔相比于硬间隔的最大差别是在于多了一项
C ∑ i = 1 s ϵ i C\sum_{i=1}^s{\epsilon_i} Ci=1sϵi
这一项的意思就是,将所有的误差 ∑ i = 1 s ϵ i \sum_{i=1}^s{\epsilon_i} i=1sϵi考虑到优化问题中,这样求最小值的时候也能够起到减少误差的作用。而常数 C C C是我们人为规定的,它起到调节误差容忍度的作用。

  • C C C越大,说明对 ϵ i \epsilon_i ϵi的容忍度越小,也就是最终算出来的结果中产生的误差越少;
  • C C C越小,说明对 ϵ i \epsilon_i ϵi的容忍度越大,也就是最终算出来的结果中产生的误差越大;

猜你喜欢

转载自blog.csdn.net/m0_61787307/article/details/129544454