支持向量机SVM(直观理解原理、推导)

这里主要基于吴恩达机器学习课程对于SVM的讲解进行总结回顾,并参考各类资料对其推导过程进一步理解及实现。所以分为两个部分及最后的一些个人总结。(内容较多、篇幅较长,静下心来、慢慢体会)

第一部分也即吴恩达课程是从逻辑回归的cost函数讲到svm的cost优化问题的,其实直接上来看是有一定理解难度的(要求有一定相关基础),可以先看第二部分推导,再回过头来看第一部分会有一个更加深刻的理解和掌握。

1、吴恩达机器学习课程对于SVM的讲解

1、损失函数的由来

课程里直接从逻辑回归的cost函数讲起,(线性回归用于拟合,而逻辑回归用于分类,这里的SVM就是用于分类的,所以其应该是属于逻辑回归的)。
支持向量机SVM(直观理解原理、推导)_第1张图片
如上图所示,由逻辑回归的cost函数进行基本的线性变换(*m/lambda)得到SVM的cost的函数;

有了cost函数,我们的目标自然是尽可能地使其取得最小值,在这里假设一种情况:
1)假如前面的系数C非常大的话,为了使总体cost值最小,那么对于C后面的加和乘数其值将接近于0才可;那么此时的cost函数就只剩下最后一项1/2*theta的平方求和。

先解释一下为什么要取C值非常大
如下图所示,为了找一条边界将蓝圆与红叉分开,当取不同的C值对于SVM将有如图所示两种情况分法:一个是粉线、一个为黑线;
那么考虑这两条线哪个更合理呢,

1)当C不大的时候,若没有最左下面的红叉,其计算的分界线肯定是黑色;若加上最左下面那个红叉,分界线将变为粉线(说明了其算法受个别突出样本的影响非常大)
2)当C很大的时候,C的乘数(内部包含样本x)趋近于0,cost只由参数theta决定,所以在有无突出样本(最左下红叉)时,其计算出的分类边界都将是如黑色分类线所示;

所以综上所述,SVM的cost值主要由后一个加法项决定,那么我们的目标变成了最小化最后一项:

2、直观的来理解一下:边距及cost函数的theta值之间的关系

(cost越小也即theta越小,边距越大,分类效果越好,为什么)

如下图所示,这里的cost函数是有条件的,即样本标签y=1时,要求thetax>=1;同样y=0时,thetax<=-1;(这里可以直接类别逻辑回归,只不过是增强了其安全系数,比较的不是0而是-/+1).(在这里上课时老师说SVM是一个强分类器,使用具有较强特征的样本,跟这里的取+/-1而不是0,应该是同一个意思)
支持向量机SVM(直观理解原理、推导)_第2张图片
在这里对其条件形式thetax>=1/<=1进行了转化,(用到了相关的向量内积的知识,向量theta与x取内积,本身就是类比于投影处理:x在theta上的投影;),在这里的p代表了样本x在theta的投影,然后在乘以theta的长度,软化后形式如下图所示:
支持向量机SVM(直观理解原理、推导)_第3张图片
通过上面的两种分类边界情况来直观的理解一下,最大边距与cost及theta之间的关系:
同样是分类圆圈与红叉,分类边界均为绿色那条线,分类边界由theta决定,theta作为其系数,所以theta的方向是与分类边界垂直的。将每个样本向theta做投影,可以看到左边图的分类情况其投影p的值是远小于右边图样本向theta做投影之后的p值的;
**p值的不同说明了什么?**再看cost函数的约束条件:p
theta>=1,p越大,则表示在满足>=1的条件下其theta值越小!!
这就验证了之前的结论:cost函数越小也即theta值越小,其分类效果越好,也即边界距离越大,也就是由上图的边界情况(此时投影p是大的)

课程后面还包括使用线性核函数及高斯核函数的SVM进行分类处理,这里主要是应用层面的,后续博客再行探讨,在此只关注于其原理及推导。

2、SVM的具体推导过程(主要来源于各种博客的个人总结及理解)

1、从最直观的表现走起(其深层含义如第一部分所述):
支持向量机SVM(直观理解原理、推导)_第4张图片
如上图所示,分类边界wx+b=0;两边的支持向量(虚线上的样本点)组成的最大边界线wx+b=+/-1;我们的目的就是使分类边距(即两条虚线间的间距)最大,如下图所示:间距=2/||w||,其约束条件y(wx+b)>=1(这这里样本标签分别取+1/-1);稍微转化一下变为求下面||w||^2的最小值:(这里的w即对应第一部分的theta)
支持向量机SVM(直观理解原理、推导)_第5张图片
2、利用拉格朗日函数求解满足上述条件的w、b

可以看到上面所求函数是一个条件函数,而求解条件函数可以借用拉格朗日函数求解(对于此函数不在过多讨论,大学高数内容,只是一种方便求解的形式,个人认为没必要深究只需记住如何使用并解决问题即可):目标函数、约束条件及拉格朗日函数如下:
支持向量机SVM(直观理解原理、推导)_第6张图片
对于拉格朗日函数求极值的规则就是对变量求偏导并使其为0;在这里L(w,b,a)是有极大值的,因为乘子a>0且由约束条件知y(wx+b)>=1,L的后一项为负数;于是我们将L对w、b求偏导并使其为0,即可得到L关于乘子a的极大值:
支持向量机SVM(直观理解原理、推导)_第7张图片
将如上求值带入L,即可消去w、b得到L关于a的函数:
支持向量机SVM(直观理解原理、推导)_第8张图片
如上问题,只含有一个变量乘子a,我们是可以求出满足条件的a的,然后再根据之前求得的偏导式子中a与w、b的关系,我们便可以求得相应的w、b的,也即得到了分类超平面。

如上是关于SVM的一些理解及推导,其实还有很多细节没有涉及;个人感觉主要是理解其思想及由来,包括前后之间的关系及其直观解释等;

分类----逻辑回归cost----SVM的cost,有了目标函数,就是对其不断优化求解;在这里利用了拉格朗日函数求解法,不断调解a使其满足KKT条件(KKT条件就是在约束下求得目标函数极值时αi满足的条件,只有满足了kkt条件,才算是满足了目标函数和约束函数),然后通过a求得超平面参数w、b最终得到超平面。

参考:https://blog.csdn.net/u014433413/article/details/78427574#commentBox
https://my.oschina.net/wangguolongnk/blog/111353#comments
https://blog.csdn.net/bit_666/article/details/79865225
等。

你可能感兴趣的:(Machine,learning)