首页 > 其他 > 详细

SVM

时间:2020-11-02 14:28:45      阅读:23      评论:0      收藏:0      [点我收藏+]

SVM是一种用于二分类问题的监督学习算法,由Vapnik等人在1995年提出。
Decision Boundaries的划分有多种方法:Neural Networks、Nearest Neighbors以及SVM等等,当一种方法无法继续时,我们要考虑用新的视角去解决问题。

我们的基本问题是:在线性可分的情况下,用哪条直线来区分正负样本效果最好呢?
技术分享图片
SVM的思想是找到一条有着maximum margin的线,MIT的课里叫做widest street approach:
技术分享图片
引入垂直于street的长度未知的向量\(w\),对于任意一个样本点\(u\),我们希望判断出它的正负,那么我们只要计算出\(u\)\(w\)方向上的投影,即如果\(w\cdot u \geq c\),那么就可以判断为正样本,稍作改写即可得到Decision Rule

\[w\cdot u+b\geq 0, +sample\tag{1} \]

接下来的问题就是计算\(b\)\(w\),需要添加约束条件,我们认为对于正负样本:

\[w\cdot x_++b\geq 1 \w\cdot x_-+b\leq -1 \]

这样正负样本之间就有一个距离间隔。
为了统一表示上面2种情况,引入\(y_i=\begin{cases} 1,&\text{+sample}\-1,&\text{-sample} \end{cases}\),所有样本统一表示为:

\[y_i(w\cdot x_i+b)-1\geq 0 \]

对于street边缘的点(support vectors),等号成立:$$y_i(w\cdot x_i+b)-1=0\tag{2}$$

为了求出最佳直线(street宽度最大),首先要表示出宽度:
取一个正样本的support vector\(x_+\)以及一个负样本的support vector\(x_-\),那么宽度就是\(x_+-x_-\)\(w\)方向上的投影:

\[width=(x_+-x_-)\cdot \frac{w}{||w||}=\frac{2}{||w||}\tag{3} \]

接下来就是要在约束条件(2)下求得(3)的最大值,也即最小化\(\frac{||w||^2}{2}\),这种问题叫做Quadratic Optimization Problem。

约束条件下的极值问题自然要想到Lagrange Multiplier:

\[L=\frac{||w||^2}{2}-\Sigma\alpha_i[y_i(w\cdot x_i+b)-1] \]

分别对\(\vec{w}\)\(b\)求偏导:

\[\frac{\partial L}{\partial\vec{w}}=\vec{w}-\Sigma\alpha_iy_ix_i=0, \vec{w}=\Sigma\alpha_iy_ix_i \\frac{\partial L}{\partial b}=\Sigma\alpha_iy_i=0, \Sigma\alpha_iy_i=0\]

决策向量\(\vec{w}\)样本的线性和,将\(\vec{w}\)代入\(L\),看看我们的极值会变成什么:

\[L=\Sigma\alpha_i-\frac{1}{2}\Sigma_i\Sigma_j\alpha_i\alpha_jy_iy_jx_i\cdot x_j\tag{4} \]

到这里,我们发现了一个令人惊喜的结论:我们的极值只依赖于样本对之间的点积

再将\(\vec{w}\)代入Decision Rule(1),有:

\[\Sigma\alpha_iy_ix_i\cdot u+b\geq 0, +sample \]

类似地,Decision Rule也只取决于样本点和未知点的点积。

与神经网络不同,这里的优化问题是凸优化,意味着不会卡在局部最大,一定可以找到全局最优解。

上面我们讨论了线性可分的情况,如果线性不可分呢?
当前的特征空间线性不可分,我们可以做一个变换\(\phi(\vec{x})\),将样本映射到另外一个空间,也许就线性可分了。(4)式表明最值只依赖于点积,所以变换后的优化同样只需要最大化\(\phi(\vec{x_i})\cdot\phi(\vec{x_j})\),只要有一个函数\(K(\vec{x_i},\vec{x_j})=\phi(\vec{x_i})\cdot\phi(\vec{x_j})\)提供新空间的样本点的点积,我们都不需要知道这个变换是什么,就可以得到最优解,\(K\)叫做Kernel Function

一种常用的kernel是线性的:\((\vec{u}\cdot\vec{v}+1)^n\),当前空间的\(u\)\(v\)通过简单的点积映射到了另一个空间;
另一种kernel是高斯核:\(e^{-\frac{||x_i-x_j||}{\sigma}}\)

SVM

原文:https://www.cnblogs.com/EIMadrigal/p/13913864.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!