1、什么是SVM?
SVM(Support Vector Machines),一个普通的SVM是一条直线,用来完美划分linearly separable 的两类。但这又不是一条普通的直线,这是无数条可以分类的直线中最完美的,因为它恰好在两个类的中间,距离两个类的点都一样远。而所谓的Support vetor 就是这些离分界线最近的点。如果去掉这些点,直线多半会改变位置,所以说这些vector(点)support(定义了)machine(分类器)。
所以说,我们只要找到最靠近的那些点就可以确定分界线或者 分界面。
2、怎么求SVM?
关于这条直线,我们知道(1)它离两边一样远,(2)最近的距离是到support vector的距离,其他距离只能更远。
于是自然而然可以得到重要表达I. direct representation:
,subject to 所有正确归类的苹果和香蕉到boundary的距离都
(可以把margin看作是boundary的函数,并且想要找到使得是使得margin最大化的boundary,而margin(*)这个函数是:输入一个boundary,计算(正确分类的)所有苹果和香蕉中,到boundary的最小距离。)
又有最大又有最小看起来好矛盾。实际上『最大』是对这个整体使用不同boundary层面的最大,『最小』是在比较『点』的层面上的最小。外层在比较boundary找最大的margin,内层在比较点点找最小的距离。
其中距离,说白了就是点到直线的距离;只要定义带正负号的距离,是{苹果+1}面为正{香蕉-1}面为负的距离,互相乘上各自的label,就和谐统一民主富强了。
直接表达虽然清楚但是求解无从下手。做一些简单地等价变换(分母倒上来)可以得到II.canonical representation(敲黑板
subject to 所有苹果和香蕉到boundary的距离
w不过是个定义直线的参数,知道这一步是等价变换出来的表达就可以了。
要得到III. dual representation之前需要大概知道一下拉格朗日乘子法 (method of lagrange multiplier),它是用在有各种约束条件(各种"subject to")下的目标函数,也就是直接可以求导可以引出dual representation(怎么还没完摔)
3、如果苹果和 香蕉不能用直线分割
4、苹果和香蕉有交集
用松弛变量。
5、如果还有梨
就两两之间做一次SVM。
参考:https://www.zhihu.com/question/21094489