为了理解svm算法,我这边以2位空间的点数据集分类为例,在二维空间中,直线的一般公式为:Ax+By+c=0;然后我们希望通过已有的数据点,求出直线的A,B,C三个参数,这就是SVM算法的目的。
(1)这里我们为了方便,我把直线的一般公式写成:
写成矩阵形式:
简化为:
先回忆一下点P(x1,x2)位于直线的上方和下方的计算公式,判断方法如下:
如果,则P点位于直线的下方;
如果,则点P位于直线的上方;
如果,则点位于直线上。
为了简便起见,我们令:,对于点P到直线的距离公式为:
有向距离函数d(p)有可能为正也有可能为负数,其代表点p位于直线的下方或者上方的意义,这个距离计算公式,在svm中称之为几何间隔函数。由于svm是有监督学习算法,因此一开始给定数据点集的时候,我们就可以从这些数据点集中知道其是位于直线的上方还是下方,假设数据点p的符号为y(p),其中:
这个对于训练数据时已知的。我们定义全局的几何间隔函数为:
其实说白了,就是计算训练数据中所有的点到直线的最短距离,该距离必为正数。因为我们的目的是求取直线,其实这个直线等价于:
因此我们求取的直线其实也可以简单写为:
这个叫做直线的归一化公式,我们直接求取这个归一化的直线,这是为了与上面的距离函数的计算简便,所以才用直线的归一化形式。由于因此上面的有向距离函数又可以简单的写为:
最后全局最小几何间隔函数为:
我们的目的便是要使得最小的距离rmin最大。即求解公式为:
这个公式其实又等价于:
这个便是目前为止的推导出来的公式,看以下这个公式的物理意义,r其实是训练数据点到直线的最短距离,我们的目的便,svm算法中为了简便起见,对r做了归一化。然而求解:
因此:
因此公式进一步演化为:
而这一步,其实又等价于:
也就是说我们要求解w,b使得满足最小的同时,满足约束条件:所有训练数据点到直线的距离的最小值大于1。这就是svm算法的最初公式,也就是说我们后面接着要做的事就是求解上面这个公式,然而上面这个公式的求解可不是那么简单就可以求解的,后面我的博文将继续详解这个约束优化方程的求解。