3、SVM,而是必须要从线性分类器开始讲。这里我们考虑的是一个两类的分类问题,数据点用 x 来表示,这是一个 n 维向量,而类别用 y 来表示,可以取1或者-1,分别代表两个不同的类(有些地方会选0和1,当然其实分类问题选什么都无所谓,只要是两个不同的数字即可,不过这里选择+1和-1是为了方便SVM的推导,后面就会明了了)。一个线性分类器就是要在 n 维的数据空间中找到一个超平面,其方程可以表示为一个超平面,在二维空间中的例子就是一条直线。我们希望的是,通过这个超平面可以把两类数据分隔开来,比如,在超平面一边的数据点所对应的 y 全是-1,而在另一边全是1。具体来说,我们令 f(x)=wTx
4、+b ,显然,如果 f(x)=0 ,那么 x 是位于超平面上的点。我们不妨要求对于所有满足 f(x)<0 的点,其对应的 y 等于-1,而 f(x)>0 则对应 y=1 的数据点。当然,有些时候(或者说大部分时候)数据并不是线性可分的,这个时候满足这样条件的超平面就根本不存在,不过关于如何处理这样的问题我们后面会讲,这里先从最简单的情形开始推导,就假设数据都是线性可分的,亦即这样的超平面是存在的。如图所示,两种颜色的点分别代表两个类别,红颜色的线表示一个可行的超平面。在进行分类的时候,我们将数据点 x代入 f(x) 中,如果得到的结果小于0,则赋予其类别-1,如果大于0则赋予类别1。如果
6、=y(wTx+b)=yf(x),注意前面乘上类别 y 之后可以保证这个margin的非负性(因为 f(x)<0 对应于 y=−1 的那些点),而点到超平面的距离定义为geometricalmargin。不妨来看看二者之间的关系。如图所示,对于一个点 x ,令其垂直投影到超平面上的对应的为 x0 ,由于 w 是垂直于超平面的一个向量(请自行验证),我们有又由于 x0 是超平面上的点,满足 f(x0)=0 ,代入超平面的方程即可算出不过,这里的 γ 是带符号的,我们需要的只是它的绝对值,因此类似地,也乘上对应的类别 y即可,因此实际上我们定义geometricalmargin为:显然,fun
7、ctionalmargin和geometricalmargin相差一个 ∥w∥ 的缩放因子。按照我们前面的分析,对一个数据点进行分类,当它的margin越大的时候,分类的confidence越大。对于一个包含 n 个点的数据集,我们可以很自然地定义它的margin为所有这 n 个点的margin值中最小的那个。于是,为了使得分类的confidence高,我们希望所选择的hyperplane能够最大化这个margin值。不过这里我们有