之前以为SVM很强大很神秘,自己了解了之后发现原理并不难,不过,“大师的功力在于将idea使用数学定义它,使用物理描述它”,这一点在看SVM的数学部分的时候已经深刻的体会到了,最小二乘法、梯度下降法、拉格朗日乘子、对偶问题等等被搞的焦头烂额。在培乐园听了讲课之后才算比较清晰的了解了整个数学推导的来龙去脉。
1. 为什么一定要研究线性分类?
首先说一下为什么对数据集一定要说线性可分或线性不可分,难道不可以非线性分开吗?想要非线性分开当然可以,实际上SVM只是把原来线性不可分的数据点映射到一个新的空间,转换为在新空间中线性可分数据来进行分类的。如果返回到原来数据的空间中,其实还是非线性分开的。但是,那为什么不直接在原数据空间中进行非线性分开,而是非要转到新的空间进行线性分开呢?首先,非线性分开比线性分开要复杂很多。线性分开只要一条直线或一个平面之类的就可以了,可以说是曲线中最简单的表现形式。而非线性分开的情况就多了去了。仅就二维空间而言,曲线、折线、双曲线、圆锥曲线、波浪线,以及毫无规律的各种其他曲线太多,没有办法进行统一的处理。即便能够针对某一个具体问题处理得到了非线性分类结果,也无法很好的推广到其他情形,这样,每针对一个具体问题就要数学家专门来建个曲线模型,太麻烦而且也没有那么多时间精力。因此,采用线性分类一是因为它简单,性质很容易研究透彻;二是因为它推广能力强,研究透了之后,其他所有问题都迎刃而解,无需建立其他模型。所以,虽然SVM多了将原始数据映射到新空间这一步骤,看起来增加了工作量,而且如何去寻找新的映射空间看着也不是很容易,但是,总体来说,研究透了之后就会比其他方法省很多力气。
2. SVM的思想是什么?
2.1 硬间隔支持向量机
SVM中最关键的思想之一就是引入和定义了“间隔”这个概念。这个概念本身很简单,以二维空间为例,就是点到分类直线之间的距离。假设直线为y=wx+b,那么只要使所有正分类点到该直线的距离与所有负分类点到该直线的距离的总和达到最大,这条直线就是最优分类直线。这样,原问题就转化为一个约束优化问题,可以直接求解。这叫做硬间隔最大化,得到的SVM模型称作硬间隔支持向量机。