soft-SVM其实就是逻辑回归的损失函数改成hinge-loss的版本。||w||其实对应正则化的功能~
原文链接http://blog.youkuaiyun.com/jackie_zhu/article/details/52331047
逻辑回归和SVM都是比较理想的分类器,但是各有优缺点,逻辑回归不仅可以得到具体的分类类别,还可以得到连续的概率值(因为逻辑回归实质上是回归);SVM则可以利用kernel将特征投影到高维甚至无穷维来更好地拟合数据。这里我们来看一下逻辑回归和SVM之间有没有什么联系,以及能否将kernel应用到逻辑回归上,使得逻辑回归具备类似SVM的非线性分类特性。
逻辑回归
逻辑回归的假设是下面的一条S型曲线,值域是[0,1],可以用来近似表示概率值:
如果把h(x)看成是x属于正类的概率值的话,那么可以写成下面的形式:
根据h(x)这个函数特性,它关于点(0,0.5)对称,因此1-h(x)=h(-x),上面的式子可以归纳成:
于是可以得出似然函数,然后我们的目标就是最大化似然函数
这个最小化函数是凸的,可以通过梯度下降法求解w。这里我们要最小化的error: ln(1+exp(−yiwTxi)) 叫做交叉熵误差。
SVM与正则化的逻辑回归
SVM要优化的目标函数是:
则优化目标又可以写成
这个形式有没有很熟悉?如果我把逻辑回归目标再加上L2正则项的话就是下面的形式:
SVM实质上形式和逻辑回归是一样的, max(0,1−yn(wTϕ(x)+b)) 我们叫作hinge loss。SVM本质上就是一种L2正则化,SVM中C越大,相当于正则化的 λ 越小,C无穷大时候相当于为0,就是没有加正则项,对应的就是hard-margin SVM。
如果我们把Hinge loss, cross-entropy error和0/1 error,画到一个坐标上, 横坐标表示 ywTx 的值:
从图中看出,SVM的hinge loss和逻辑回归的cross-entropy error非常的接近,因此由SVM得到的结果和逻辑回归模型得到的结果也应该是相近的。
其实,在机器学习的优化问题中,如果优化目标如下面这种L2正则化形式的,最后求得的w肯定是各个样本的线性组合,这也是kernel可以应用在这类算法上的关键点。
可以简单的看下,如果把w分解成平行于z和垂直于z的两个分量,在err这项里,作用与只有平行部分是相同的(垂直的分量与z的积是0),而w^Tw这一项,由于有垂直分量,因此会比只有平行分量来得大,因此min的结果只可能是平行的。这个结论在SVM中和逻辑回归中都适用。SVM最后的w是支持向量的线性组合,逻辑回归则是梯度下降时候各种梯度的组合。
Kernel应用于逻辑回归
因此,现在可以假设:
然后把上面的式子代入逻辑回归的cross-entropy error的式子中,得到:
由于z是x转换到高维空间上的点,
znzm
的计算可以利用kernel,即
K(zn,zm)=znzm
。
则上面的式子表示成下面:
上面的式子是关于 β 的凸函数,仍旧可以通过梯度下降法(GD)或随机梯度下降法(SGD)求解。
总结
正则化的逻辑回归和SVM在本质上是类似的,逻辑回归同样也可以利用kernel做高纬度的特征转换。