机器学习——Kernel Logistic Regression

在我们的生活中,其实大部分使用的都是soft-margin SVM,很少会有人真正去使用hard-margin,因为我们无法避免噪声。现在想想,能否将soft-margin svm与我们之前的losgistic regress结合起来,会得到什么样的学习算法? 之前我们试着将soft-margin SVM的数学描述写成了另外一种形式:

min \(\frac 1 2 W^TW + C\sum_{n=1}^N max\{1-y_n(W^TX_n+b),0\}.\)

实际上,这个形式如果你仔细观察这个形式,就会发现实际上它和losgistic regression加上L2正则化之后的形式非常的相似:

algorithm minimize constraint
regularization by constraint \(E_{in}\) \(W^TW \leq C\)
hard-margin SVM \(W^TW\) \(E_{in} = 0\)[and more]
L2 regularization \(\frac \lambda N W^TW + E_{in}\)
soft-margin SVM \(\frac 1 2 W^TW + CN\hat{E_{in} }\)

只不过之前我们用\(\lambda\),而现在采用的是一个常数C。我们知道,C越大,也就是对应的\(\lambda\)越小。在这里,我们将$ max{1-y(W^TX_n+b),0}$看作为一种error measurement。

如果画出这几个错误的曲线与0\1错误的对比: $$

$$

实际上,这两个函数是非常接近的。当\(y_n(W^TX_n+b)\)很大的时候,logistic regression的\(E_{in}(\log_2^{1+e^{-ys} })\)和 SVM的\(\hat{E_{in} }(max\{1-y(W^TX_n+b),0\})\)都是趋于0的,而当\(y_n(W^TX_n+b)\)非常小(远小于0)的时候,它们的\(E_{in}\)有都趋于\(\vert y_n(W^TX_n+b) \vert\).

所以我们可以觉得,实际上SVM和logistic regression with L2 regularization几乎在做一样的事情。

现在我们希望可以将二者结合,例如我们用SVM的值来预测概率,我们也可以得到不错的结果。但是这个实际上没有用到logistic。或者我们用SVM的结果来做Logitsitc regression的初始值,但是既然logistic regression的\(E_{in}\)是凸函数,因此实际上得到的最终结果区别也不大,也就是实际上就像没有用到SVM。

Platt's Model

有一种这样的方法,将目标函数写为:\(g(X) = \theta (A(W_{SVM}^T \phi(X) + b_{SVM}) +B)\)

对上面的函数进行Logistic Regression。

所以这时候的Cost Function变成: \[ min_{A,B} \frac 1 N \sum_{n=1}^N \log\left( 1+\exp\left( -y_n(A\cdot(W_{SVM}^T\phi(X_n)+b_{SVM})+B)\right)\right) \]

这时候的cost funtion 好像看上去非常复杂,但是仔细想一想的话,实际上既然我们已经有了SVM的结果,因此实际上\(W_{SVM}^T\phi(X_n)+b_{SVM}\)就是一个值,而不再是一个向量,也就是我们只需要两个数的值:A,B。就可以融合SVM和Logistic Regression。

当然,如果SVM做的好的话,A的值应该是大于0的,B的值应该是接近于0的,因为我们得到的最终的参数分别为\(AW_{SVM}^T\)\(Ab_{SVM}+AB\),分别对应最终的W和b,如果SVM做的不错,意味着他们和\(W_{SVM},b_{SVM}\)差距太大。

上述中\(\phi(X)\)意味着利用了特征转换,也就是会使用kernel。可以得到比较不错的logistic regression在z空间不错的解。

但是上面这个办法,不能保证这是logistic regression在Z空间(转换之后的空间)真正最好的解。

Kernal Logistic Regression

想要找到logistic regression在Z空间真正最好的解,一个办法是在Z空间做logistic regression。但是我们的转换实际上是由kernel提供的,方便计算\(Z_n^TZ_m\)。而logistic regression根本就不是二次规划问题,又如何用到kernel?

其实,我们一直在求的东西是\(W\)\(W\)的维度是和\(Z\)的维度一样,那么\(W\)是不是\(Z\)的线性组合呢?

在SVM中,正是这样,还记得\(W\)怎么算吗: \[ W = \sum_{n=1}^N \alpha_n y_nX_n \]

同样的,在PLA,Logistic Regression中也是这样。假如我们想想\(W\)的初始值为0,那么每次更新步骤不就是一个系数乘上一个\(X_i\)的线性组合吗?

实际上,在L2的regularization中,最好的W都是可以被Z线性组合表示出来的。

如何证明这件事情?

我们将optimal \(W\) 写为\(W^\*\). 其中\(W^\*\)可以表示为垂直X空间的与平行X空间(线性组合即为平行)的。

\(W^\* = W_{\Vert} + W_{\perp}\)

我们可以证明的是,当\(W^\*\)\(W^{\perp}\)为0.

如果\(W_{\perp}!=0\),则\(W^{\*T}X = W_{\Vert}^T X + 0\)

从另一方面来说: $W^{ * T}W^* = W_{} ^T W_{} + W_{}^TW_{} >W_{} ^T W_{} $

这说明\(W_{\Vert}\)\(W^\*\)是更好的选择,与假设矛盾。

所以,\(W^{\*} = \sum_{n=1}^N\beta_nZ_n\).

因此,我们将W换成上式,那么就会出现了我们想要的\(Z_nZ_m\).

L2 regularization变成下面的样子: \[ min_{W} \frac \lambda N \sum_{n=1}^N\sum_{m=1}^N \beta_n\beta_m Z_n^TZ_m + \frac 1 N \sum_{n=1}^N \log \left(1 + \exp\left(-y_n \sum_{m=1}^N \beta_m Z_m Z_n \right) \right) \]

我们可以轻易将上式中的\(Z_n^TZ_m\)换成\(k(x_n,x_m)\).从而实现在z空间上logistic regression的最优解。

从另一方面来说,$ {n}^N{m}^N _n_m k(x_n,_m) = ^T K \(,可以将它看成一种特殊的正则化。所以实际上我们可以将KLR看成关于转换后的数据在\)$上的线性模型(原来是关于W的线性模型)。

一般来说\(beta_n\)都不为0,所以这个和SVM中的\(\alpha_n\)不一样。