将软间隔支持向量机看做正则化模型
上一小节中我们介绍了软间隔支持向量机,该模型允许有错分类数据的存在,从而使模型对数据有更好的适应性,有效避免过拟合的问题。
现在我们回顾一下松弛变量ξn,我们用ξn来记录违反分类边界的数据到边界的距离。

我们可以从另外一个角度,考虑一下ξn的计算:
对于任何一个点,如果该点违反了边界,那么ξn记录了其到边界的距离;如果没有违反,ξn为0。

所以我们可以用下面这个式子来表示:

与正则化模型的比较
在正则化中,我们用w的长度来控制复杂度,并且我们希望某个误差度量最小。所以对于软间隔支持向量机来说,你可以把它看成是这种正则化的一种形式。

那么我们为什么不从正则化的角度来介绍SVM呢?
原因:
首先如果以正则化的角度看待SVM,那么这就不能使用二次规划的方式来求解,这样就不能使用核技巧来解决对偶问题
其次,max(·,0)这个误差函数可能没有办法进行微分,比较难以求解
SVM和正则化
正则化做的事情是,其想让Ein变小,但是在其上使用w的长度作为控制的条件。
而硬间隔SVM是在把Ein当做是条件,要求模型一定要将数据正确的分开,并且希望w的长度越小越好。
如果看一般的L2正则化,则是如下的形式:

所以,最大间隔就是一个正则化的实现形式,它代表了可以找到较少的超平面。
参数C比较大的时候,对应比较小的λ,就代表了越小的正则化。

小结
我们已经介绍完了SVM,但是我们想将SVM延伸到其他问题上,比如逻辑回归的问题上,那么我们需要知道SVM和其他问题的关系,这样才能将它灵活的运用。
使用SVM来求解逻辑回归问题
第一步:比较SVM中误差函数和逻辑回归的交叉熵误差
下面我们将SVM中误差函数、逻辑回归的交叉熵误差和0/1误差画在同一图像中:

我们可以看出SVM中误差函数和逻辑回归的交叉熵误差都是0/1误差的上限函数,而且SVM的误差函数还是一个凸上限函数。
我们可以发现SVM中误差函数和逻辑回归的交叉熵误差是很相像的。
下面是这两个误差函数的比较:

于是,我们可以猜想,SVM相当于做L2正则化的逻辑回归问题。
第二步:用SVM做二元软分类来得到类别概率

根据上面的式子,我们首先使用SVM计算一个分数,得到w。然后再加上两个自由度,将这个分数乘上放缩因子A,加上平移因子B,这样比较符合逻辑回归中最大似然的需求。从几何意义上来讲,我们通过SVM计算得到分割线的法向量,然后再进行一些平移和放缩的微调,使之能更加吻合最大似然的要求。这是一个融合SVM和逻辑回归的方式。
如果SVM做的足够好的话,A的值应该大于0,而B的值应该很接近0。

下面是新的逻辑回归的式子:

这个式子第一阶段用SVM得到的一个分数,这个分数也可以看做是做完SVM后得到的一个特别的转换,相当于从多维转到一维的转换。
在第二阶段相当于求解的是单一维度的逻辑回归问题。
这个算法流程叙述如下:

这个方法是使用核SVM得到Z空间中的逻辑回归的近似解。
核逻辑回归
在SVM中,我们要解的是一个二次规划问题,然后可以到处对偶的式子,我们使用核技巧来求解高维向量的内积。
然而,在逻辑回归中,压根就不存在二次规划问题,那么我们该怎么去使用核技巧呢?
我们在计算中用到了w和z的内积,如果w可以表示成z的线性组合,当w和z求内积的时候,我们就可以用核技巧来计算z和z的内积了。

表示定理(Representer Theorem)
如果你求解的是L2-regularized的问题,那么一定有一个最好的w可以表示成z的线性组合:

如何来证明这件事情呢?
我们将w分成两个部分,分别为w的平行部分(由zn展开的那个空间的向量来构成)和w的垂直部分(与zn展开表示的向量垂直的向量)。
我们希望最后完全没有w的垂直部分。
将最优的那个w与zn相乘其实和w的平行部分和zn相乘得到的结果是一样的,因为w的垂直部分与zn相乘为0,所以得到的err是一样的。
对于最佳解wTw,其包含w的平行部分的平方和w的垂直部分的平方,如果使用反证法,假设w的垂直部分不是0,那么,wTw必将大于w的平行部分的平方,但是最小解wTw却比w的平行部分的平方还大,这与我们的假设是矛盾的,所以就证明了w的垂直部分为0。
这样就证明了w的最佳解可以被z线性表达。

通过上面的证明,我们知道只要是求解L2的线性模型,就可以使用核技巧。
将核技巧用于L2正则化的逻辑回归

我们先得到要求解的表达式,然后用zn和βn的线性组合的方式表示最佳的w,代入到原始的式子中,就可以通过求βn代替求w了。

这就得到了一个没有约束条件的最佳化问题,我们可以通过梯度下降的方法来求解βn。这就是核逻辑回归问题。
核逻辑回归的另一种解释
在之前的介绍中,我们将核逻辑回归看做是w的线性模型,这个w的线性模型作用于使用核技巧进行的转换之中的数据,还使用了L2正则项。
而另一种视角是,我们可以将K(xm,xn)当做是一种数据的转换,在转换后的数据(K(x1,xn),K(x2,xn),...,K(xN,xn))加以β的权重。
将前面一项写作矩阵形式βT* K *β可以看做是β和β的乘积,也相当于一种正则项。
这样核逻辑回归就可以看做是β的线性模型,作用于使用核函数转换之后的数据和一个核正则项。

转载请注明作者Jason Ding及其出处
GitCafe博客主页(http://jasonding1354.gitcafe.io/)
Github博客主页(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
简书主页(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)
百度搜索jasonding1354进入我的博客主页