SVM–深入学习1
根据台湾大学林轩田老师机器学习技法课程整理。
SVM就是要找一条最胖的分类线,最胖的分类线如何确定呢?所有点到分类线都有一定距离,这条最胖的线就是最大的所有点中距离最小的那条线。(有点绕)
如下图所示,三幅图中三条线都分类正确,第一幅图中所有点中距离分类线最近的距离记为a1,第二幅图中记为a2,第三幅图记为a3,显然a3>a2>a1,所以a3的那条分类线就是我们所求的最胖的线(max margin)
下面我们来说明如何求每一点到分类线的距离distance(几何知识)。
(以分类面为例,和分类线同一道理,利用分类面更方便解释说明)
如下图所示,
x′
,
x′′
是分类面上的两个向量,
W
是分类面的法向量,于是有
求得了distance,margin 就是min distance,我们的目标是求max margin,如下图所示。这里yn=sign(
WTx
),yn只能取1或-1,正确分类了所以两者乘积肯定为正,所以把上面公式中的绝对值换成了现在的形式。
再进一步转化(这个转化还没搞特别清楚,先不写缘由了),得到
一般比较方便求最小值,所以再把求最大值转化为求最小值,约束条件也做一下转化,得到
这个形式其实就是二次规划,我们用的工具里面都有现成的二次规划求解,所以就很容易求解了。
但是以上这些都是基于线性可分讨论的,如果线性不可分呢?