1. 线性svm
1.1 代价函数
吴恩达的svm课程中由logisitic回归讲起,将logistic回归中的代价函数转换成图中的形式。刚开始的时候我自己很疑惑这个地方:
- 为什么代价函数要变成这个样子
- 又为什么代价为零的地方要是z=1和−1z=1和−1,不是z=2,3,4……z=2,3,4……
直到好好研究了一番svm的几何意义才明白这样做的意义,下面一一道来。
1.1.1 代价函数为什么要变成这个样子
我们假设二维平面,训练数据散点的坐标为x=(x1,x2)Tx=(x1,x2)T,我们要明确两个地方:
- svm的目标是寻找一条支持最大分类间隔的直线θTx=0θTx=0;
- 我们不要忘记代价函数中的z=θTxz=θTx,这样,我们就可以将代价函数和几何意义联系起来了:
- y=1y=1时,θTx>=1θTx>=1,也就是处于下图中的直线wTx+b=1wTx+b=1的上方,认为判断正确,代价为零。θTx<1θTx<1时,位于直线wTx+b=1wTx+b=1的下方,θTxθTx的值越小,离直线wTx+b=1wTx+b=1越远,代价越大。
- y=−1y=−1时,θTx<=−1θTx<=−1,也就是处于下图中的直线wTx+b=−1wTx+b=−1的下方,认为判断正确,代价为零。θTx>−1θTx>−1时,位于直线wTx+b=−1wTx+b=−1的上方,θTxθTx的值越大,离直线wTx+b=−1wTx+b=−1越远,代价越大。
1.1.2 为什么代价为零的地方要是z=1和−1z=1和−1
简便起见,这里用wTx+bwTx+b表示直线。我们要寻找的wTx+b=1或−1wTx+b=1或−1这两条直线是由数据所决定的,也就是说,在数据确定的情况下,这两条支持直线是确定的。那么显然ww是会随着来调整的,所以z=1z=1不会影响我们的目标。
1.2 间距最大化的直观理解
显然,蓝色的支持直线有一个安全间距,而绿色和红色支持直线几乎是没有的。
1.3 优化目标
- 如果y=1y=1,我们希望θTx>=1θTx>=1,不仅仅是>=0>=0
- 如果y=0y=0,我们希望θTx<=−1θTx<=−1,不仅仅是<=0<=0
这就相当于构建出了一个安全间距。因此,优化目标可以变换为
2. 非线性svm
2.1 核函数
核函数用来描述两个向量之间的相似度。高斯核函数的表达式如下
2.2 核函数在svm中的应用
在线性svm中,我们直接用θTx=0θTx=0作为分界直线。但是在非线性可分的情况下,我们就需要引入二次项了。在二维的情况下,我们可以人工将二次项都表示出来,但是在高维的时候仍然人工表示是不太现实的。
我们注意到,在上面提到的核函数中,是含有经过映射的二次项的。并且,我们可以将训练样本的所有数据作为参考ll,即用与训练样本数据的相似度来刻画出我们所要寻找的非线性分界曲线。
采用核函数的非线性svm的代价函数表达式如下: