1 什么是支持向量机?

支持向量机,support vector machine,支持向量机模型是指由支持向量支撑的模型,在这个模型中,仅支持向量起到作用,而非支持向量对模型没有作用。

假设此时是一个而二维平面,我们需要将+和-点分开,显然这条线很多种可能,那么我们要找到最优的那条边界,那么这条边界的定义就是离这个边界最近的点,使得这个点离边界最远。

通俗的将就是找离这条先最近的点,得到距离L,那么我们希望这个L越大越好。

这条线就叫做决策边界。通过决策变量,此时就可以将将两组样本分割开来。

那么上下两条边界插过的点就叫做支持向量,图中3个支持向量。

支持向量机与bp优点的区别 支持向量机 通俗_二维

2 支持向量的作用

真正发挥作用的点只有那么几个,这就是支持向量,显然,支持向量机的一大特点就是可以应用到小样本集合上。
另外,通过二维推广到三维,通过升维,可以将一些在低维空间中不可分的数据集合分离开来,因为更高的维度更容易找到一个超平面,将样本分开,那么低维不可分问题就可以通过提升维度,映射到高维度上去了。

3 如何实现支持向量机

本质上还是机器学习的套路做法,找到目标函数,通过数学推导,迭代,找到极值点。

3.1 目标函数

通俗的讲:找到一条线(w,b),使得离该线最近的点能够足够远。回归到问题的本身,我们是要找到一条直线(w和b),使得离该线最近的点能够最远。
求解到的点到直线的距离,其中包含了一个绝对值:
支持向量机与bp优点的区别 支持向量机 通俗_支持向量机与bp优点的区别_02

为了去除绝对值,我们引入了支持向量机与bp优点的区别 支持向量机 通俗_样本集_03,得到:
支持向量机与bp优点的区别 支持向量机 通俗_机器学习_04
由于支持向量机与bp优点的区别 支持向量机 通俗_支持向量机与bp优点的区别_05

  • 放缩变换:对于决策工程(w,b)可以通过放缩使得其结果值|Y|>=1,在3.1中我们已经得到了|Y|>0,那么通过放缩*N,我们可以使得|Y|>=1,
    支持向量机与bp优点的区别 支持向量机 通俗_支持向量机与bp优点的区别_06(之前我们认为恒大于0,现在严格了些)
  • 优化目标:
    支持向量机与bp优点的区别 支持向量机 通俗_支持向量机_07

上面的公式中,有两个求解,一个是min,一个是max。
min:找到离决策边界最近的那个样本。min里面就是距离公式,这里就是找最近的样本点。离决策边界最近的那个样本点。
max:得到这个点之后,我们再去求什么样的w和b,使得雷离我们的决策边界越大越好。

总结两点:
1)求距离决策边界最近的点
2)求w,b,使得1)求得的点离决策边界最远

上面我们提到了可以通过缩放,让支持向量机与bp优点的区别 支持向量机 通俗_二维_08
那么此时我们可以认为支持向量机与bp优点的区别 支持向量机 通俗_样本集_09,那么目标函数就变为:
支持向量机与bp优点的区别 支持向量机 通俗_支持向量机_10
也就是说,现在目标是找到w使得这个目标函数支持向量机与bp优点的区别 支持向量机 通俗_二维_11最大。

3.2 目标函数求解

这里目标函数是求解max也就是最大值,但是机器学习中都是求解最小值的,所以说,我们还是要转化为求解极小值的问题。
支持向量机与bp优点的区别 支持向量机 通俗_二维_11的最大值,就是求支持向量机与bp优点的区别 支持向量机 通俗_机器学习_13的最小值。之前的假设是这个目标函数的前提:支持向量机与bp优点的区别 支持向量机 通俗_支持向量机_14
求解支持向量机与bp优点的区别 支持向量机 通俗_机器学习_13的极小值可以认为是求解支持向量机与bp优点的区别 支持向量机 通俗_支持向量机_16的极小值,前面的1/2是为了后面方便求导用到。

如何求解这个极小值问题?应用拉格朗日乘子法。
就是为了求解极值的方法。这里直接使用。

拉格朗日乘子法

支持向量机与bp优点的区别 支持向量机 通俗_支持向量机与bp优点的区别_17


支持向量机与bp优点的区别 支持向量机 通俗_支持向量机_18


支持向量机与bp优点的区别 支持向量机 通俗_机器学习_19


subject to是约束条件。


其中

支持向量机与bp优点的区别 支持向量机 通俗_支持向量机_20

表示有m组约束条件,从

支持向量机与bp优点的区别 支持向量机 通俗_支持向量机_21

支持向量机与bp优点的区别 支持向量机 通俗_样本集_22

注意:
支持向量机与bp优点的区别 支持向量机 通俗_机器学习_23
后面的支持向量机与bp优点的区别 支持向量机 通俗_样本集_24其实和上面的限制是类似的,这是改了变量而已。
注意,上面的约束条件有两类,所以我们在应用拉格朗日乘子法的时候,我们需要将我们的约束条件转换成这种。
1)支持向量机与bp优点的区别 支持向量机 通俗_支持向量机与bp优点的区别_25
2)支持向量机与bp优点的区别 支持向量机 通俗_二维_26

这个时候,将目标函数和约束条件合并后,得到了一个新的目标函数支持向量机与bp优点的区别 支持向量机 通俗_支持向量机_27,这个时候我们求解这个函数的极值点。由于我们要求最小值,所以求最小值。

由于支持向量机与bp优点的区别 支持向量机 通俗_机器学习_28不太好求解,那么我们可以换一种思路,也就是求解一个和w有关的变量,使得得到最小值,最后得到w。(就是绕了一下)
现在变为求解一个中间变量以及中间变量和w的关系。

应用了拉格朗日乘子法,首先变换我们的约束条件:
支持向量机与bp优点的区别 支持向量机 通俗_支持向量机与bp优点的区别_29
此时应用拉格朗日乘子法,得到我们的公式:
支持向量机与bp优点的区别 支持向量机 通俗_二维_30
其中支持向量机与bp优点的区别 支持向量机 通俗_二维_31是一个系数。
(约束条件不要忘了:支持向量机与bp优点的区别 支持向量机 通俗_支持向量机_14,这个约束条件无论什么时候都不能忘记)
此时原来的目标函数就转换到了一个拉格朗日乘子法的求解了。

利用KTT,本质上就是一个对偶性质:
支持向量机与bp优点的区别 支持向量机 通俗_支持向量机与bp优点的区别_33

这个时候,从对w求偏导对公式可以得到w取值,那么我们之前提到过,求w不容易,我们可以先求一个中间值,这个值和w有关系。就是这里的支持向量机与bp优点的区别 支持向量机 通俗_样本集_34,其中,支持向量机与bp优点的区别 支持向量机 通俗_二维_31是每个样本数据的系数,这就是我们的中介,我们就转化成了求解支持向量机与bp优点的区别 支持向量机 通俗_二维_31
对b求偏导,这个时候,由于b是一次项,那么b求导后=1,那么得到的偏导数就没有b了,这个相当于一个条件了。也就是支持向量机与bp优点的区别 支持向量机 通俗_机器学习_37,也就是支持向量机与bp优点的区别 支持向量机 通俗_二维_31支持向量机与bp优点的区别 支持向量机 通俗_样本集_03之间的关系。

得到偏导数后,代入原来的公式中。

支持向量机与bp优点的区别 支持向量机 通俗_样本集_40


将w代入上面的公式:上述在第二步的时候代入。代入后得到以下化简后的公式,后面半部分为了区分支持向量机与bp优点的区别 支持向量机 通俗_支持向量机与bp优点的区别_41,将后面的那个求和公式改为j=1

再来提醒一下,这里求到了的拉格朗日乘子法的公式支持向量机与bp优点的区别 支持向量机 通俗_二维_42

现在就剩下支持向量机与bp优点的区别 支持向量机 通俗_支持向量机与bp优点的区别_43了,我们还是要继续求解下去,什么样的支持向量机与bp优点的区别 支持向量机 通俗_二维_44能使的L最小,并且将这样的支持向量机与bp优点的区别 支持向量机 通俗_二维_45代入到公式中。

max求解
不要忘记,里面的min求解完了,外面还有一个max求解,也就是求解什么样的支持向量机与bp优点的区别 支持向量机 通俗_二维_45使得目标函数最大。而支持向量机与bp优点的区别 支持向量机 通俗_二维_45相应的就转换到中介变量支持向量机与bp优点的区别 支持向量机 通俗_支持向量机与bp优点的区别_48了。第一个公式中没有支持向量机与bp优点的区别 支持向量机 通俗_二维_45了,对这样的公式我们要求极大值:问题转换为什么样的支持向量机与bp优点的区别 支持向量机 通俗_支持向量机与bp优点的区别_48使得值最大
支持向量机与bp优点的区别 支持向量机 通俗_机器学习_51
注意,还有限制条件:第一个条件是对b求偏导得到的;而第二个条件是拉格朗日乘子法使用的前提,所有的支持向量机与bp优点的区别 支持向量机 通俗_二维_31必须都大于等于0。
支持向量机与bp优点的区别 支持向量机 通俗_机器学习_53,支持向量机与bp优点的区别 支持向量机 通俗_二维_54

那么,这一步求解之后,我们的支持向量机与bp优点的区别 支持向量机 通俗_二维_31可以求得了,而支持向量机与bp优点的区别 支持向量机 通俗_支持向量机与bp优点的区别_56是已知的,所以支持向量机与bp优点的区别 支持向量机 通俗_样本集_57我们也可以得到。
我们继续求解支持向量机与bp优点的区别 支持向量机 通俗_二维_31,求解支持向量机与bp优点的区别 支持向量机 通俗_支持向量机与bp优点的区别_48是一个比较难的问题。这里还可以继续使用拉格朗日乘子法进行求解。

那么求解大致就到这里了。