设输入为$x$,表示训练集的特征向量,输出为$y={1,-1}$,这些向量都属于两类中的其中一类,假设这些向量是线性可分的,现在要找一个最优的平面(在二维的时候为一条直线),将这些特征向量正确分类,除此之外,能够将新的输入分到合适的类。
设中间直线方程为
$$hat omega x+hat b=0$$
好了,svm中不是还有另外两条边界线吗?他们就是中间这条直线的左膀右臂,而且到中间这条直线的距离是一样的,这两条边界线正好和两侧的特征向量紧挨着,他们的方程就可以表示为
$$hat omega x+hat b=k\
hat omega x+hat b=-k$$
为什么等号右边一个是$k$,一个是$-k$呢,因为他们到中间直线的距离都一样啊,只是方向不一样而已,好了,下面做个简单的变换,将等号两边同时除以$k$,则得到
$$frac {hat omega x}{k}+frac{hat b}{k}=1\
frac {hat omega x}{k}+frac{hat b}{k}=-1$$
好了,此时再设
$$
omega=frac {hat omega}{k} \
b=frac{hat b}{k}
$$
那么,两条边界直线就变成了
$$omega x+b=1\
omega x+b=-1$$
而且将两式相加,就得到中间的直线方程了
$$omega x+b=0$$
看到了吧,很多文章都在讲什么函数间隔,几何间隔,我不讲这些概念,我只讲距离,免得绕来绕去绕到死胡同里。
这个时候,如何求两条边界线之间的距离呢?
简单,因为两条边界到中间直线的距离相等,所以只需要求出一条边界线到中间直线的距离,再乘以2,就得到结果了。那怎么求一条边界线到中间直线的距离呢?
这个简单,运用高中数学空间几何的知识就搞定了,设点P在中间直线上,点Q在边界直线上,那么$$overrightarrow{PQ} cdot omega = |overrightarrow{PQ}|cdot cos( heta) cdot |omega|=dcdot|omega|$$
好了,$overrightarrow{PQ} cdot omega$等于多少呢?就等于1啦,因为$omega$是法向量,点P在中间直线上,点Q在边界直线上,将两条直线方程相减,等号左边就是$overrightarrow{PQ} cdot omega$,等号右边就是1.
所以一条边界线到中间直线的距离$d$等于多少呢?
$$d=frac{1}{|omega|}$$
那么,两条边界线之间的距离也就是$frac{2}{|omega|}$了
好了,只要能够求出$d$取最大值时的$omega,b$值,就可以得到最优的分类直线了,当然,在高维空间,就可以得到最优的分类超平面了!
要知道,只有紧挨着边界线的向量到中间直线的距离才是$d$,边界线以外的向量到中间直线的距离都要大于$d$,因为两类分别为${1,-1}$,所以必须要满足
$$
y_i (omega x_i + b) ge 1
$$
要求$frac{1}{|omega|}$的最大值,也就等价于求$frac{1}{2}{||omega||}^2$的最小值,这样写的目的是为了转换成凸优化问题,方便求解。好了,此时问题已经很明确了,可用数学语言表示为
$$
egin{align*}
&min limits_{omega, b} && frac{1}{2}{Vert omega Vert}^2 \
&s.t. && y_i (omega x_i + b) ge 1,i=1,2,ldots,N
end{align*}
$$
其中$N$为样本点的个数