机器学习技法CH5:Kernel Logistic Regression
CH5:Kernel Logistic Regression
Soft-Margin SVM as Regularzied
当$(x_n,y_n)$越过边界时,错误就是$1-y_n(w^Tz_n+b)$,当$(x_n,y_n)$没有越过边界时,说明他是正确的没有错误,即$\xi=0$,那么我们综上所述:可以把$\xi$换成另一种写法:$max(1-y_n(w^Tz_n+b),0)$
此时我们的SVM可以这么写:
这样一来,我们把之前抽象的$\xi$概念转化为了具体的式子,同时我们现在可以通过 $b,w$的不同取值最小化下式的soft-margin SVM问题:
因此soft-margin SVM就是一个L2 regularization的问题。
他们之间有一些相互的关系:
SVM versus Logistic Regression
首先我们对比一下0-1error 和 SVM中的error measure的区别:
我们不难看出:SVM中的error measure总是大于0-1error measure。
我们在logistic regression中用到的error measure叫做:scaled cross-entropy error ,详细推导见:logistic regression。
首先我们有个概念叫做:cross entropy
但是为了图像对比,改进成了scaled cross-entropy,即$ln$换成了$log_2$
我们对比一下三者:
这样看来: SVM的error measure方法和logistic regression的error measure方法很相似。
SVM此时可以看作: 有着L2-regularized的logistic regression
因此现在我们有了一个新的想法:
当我们求出SVM的解的时候,我们是否可以通过SVM的解来反映logistics regression里的几率问题呢?
SVM for Soft Binary
我们跑soft-margin SVM然后得到$b,w$, 然后传回到g(x)当作分类器。这样的方法表现得一般不错,但是少了一些逻辑回归的特点,logistics regression中的梯度下降跑出来的结果强调的是maximum(最大),但是现在SVM跑出来的肯定和最大有一点点的差距。
我们还有一种想法就是: 我们做逻辑回归时需要选一个起始点然后去做SGD/GD(梯度下降),那么我们可以把SVM求出来的结果当作迭代的起始点,然后再去做SGD/GD. 但是这样的做法会使得我们SVM中的kernel等特点没法用到。
我们想着补全两者的缺点。因此我们添加上两个自由度A,B
用A,B去微调hyperplane 使得 其满足maximum,即logistics regression的特点
同时我们由于保留了$\phi$,所以kernel的特点也保留了下来。
同时我们也要注意到:
A一般大于0,如果你的A小于0,说明你的$w_{SVM}$求得有问题。B一般约等于0,他只是平移hyperplane,由于我们SVM求出的已经比较准确了,所以一般不会有什么太大的动作。
那我们新的回归问题可以写作:
我们观察这个式子:
这个操作将一个多维的数据$x_n$转换为了一个具体的数:
$\phi_{SVM}(x_n)=w_{SVM}^T\phi(x_n)+b_{SVM}$
我们再用这个数来用A,B做调整即可,此时logistics regression此时只需要做A,B两个维度即可。
但是这样得到的不是Z空间的最优解,只是一个经过A,B调整后比较好的解。
Kernel Logistic Regression
最优解的$w$中也包含核技巧,并且也是$z_n$的线性组合
其实无论是SVM,PLA还是logReg by SGD都是$z_n$的线性组合:
所以我们得出结论:
我们的最佳的$w_*$一定是由两部分组成的,一部分是平行于z-空间向量$z_n$们所张成的空间,另一部分是垂直于这个张成的空间。
我们肯定希望垂直于张成的空间的w部分,即$w_⊥=0$.
如果$w_⊥\ne 0$会得到什么结果呢?我们考虑一下下面两个部分:
我们发现这部分并不会被影响因为$w_⊥z_n=0$是一个事实,垂直于$z_n$的向量和$z_n$相乘当然等于0。
第二部分,当我们考虑大小时就出现了问题,可以看出向量会大一些。
但是这就出现了问题,这提示我们$w_^Tw_>w_∥^Tw_∥$,这说明我们的最优解不是最优解了竟然,这意味着我们的$w_⊥=0$是恒成立的,上面相当于我们在反证这个结论。
$w_⊥=0$是恒成立的就意味着:我们的$w_*$一定是由$z_n$的线性组合得来的。
这样一来我们就可以加上核技巧了。
此时我们求解$\beta$即可。
怎么求呢? GD/SGD都是很好的选择。
另一种视角:
相当于权重$\beta$和做feature transform后的数据的乘积。
这部分可以看作一种特殊的正则化。
因此Kernel Logistic Regression可以看作$\beta$的线性模型,只不过它是通过kernel transform后的数据和一种特殊的kernel regularizer 得到的结果。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!