我的AI路之SVM(Support Vector Machine)

惊鸿一瞥

SVM(Support Vector Machine, 支持向量机),看到名字,就为之一怔,若是初学者,按照这个名字肯定是毫无概念。如果换个易懂的名字,可以称为是基于若干数据向量的算法,这几个若干数据向量对应于支持向量。事实上 ,就如开车不需要知道或者了解发动机原理、刹车原理一样,使用SVM亦非常简单,甚至只要使用区区5行代码就能构建一个简单的SVM。

、图一  SVM极简demo

第一行代码,从sklearn中导出svm算法包;第二行代码,定义两个二维向量的数据集合;第三行代码,定义前面两个数据对应的标签;第四行代码,定义基于SVM的分类器;第五行代码,根据数据X和标签数据y训练模型。

庖丁解牛

图二 SVM的示例图

根据图二,目标任务很明确,五个字概括,找最优分割。如何使用数学语言来描述并且通过最终数学方法来求解呢?一种思路是,在《我的AI路之序言》中提到,探索未知,提出问题,解决问题。拿出一张白纸,能否自己将找最优分割的方法描述并推导出来呢?(此处省略1500字)。另一种思路是听讲,第一个推荐讲座是MIT的P.H. Winston教授讲授的SVM(请自行B站搜索)。

这堂课里Winston教授讲了SVM的前世今生。简而言之,SVM的流行是一个励志的故事。大概有个叫Vapnic的俄罗斯科学家在其60年代的博士论文就提到了SVM的雏形,但是一直都没有引起大家的广泛关注。直到这个科学家移民到美国,在贝尔实验室工作时跟同事探索出了使用SVM进行手写字体识别的应用,实验数据表明,SVM比起神经网络更胜任手写字识别的工作,从而引起了SVM流行的狂潮。这时已经来到了90年代!

你可能感兴趣的:(我的AI路之SVM(Support Vector Machine))