本篇讲的是SVM与logistic regression的关系。
(一) SVM算法概论
首先我们从头梳理一下SVM(一般情况下,SVM指的是soft-margin SVM)这个算法。
这个算法要实现的最优化目标是什么?我们知道这个目标必然与error measurement有关。
那么,在SVM中,何如衡量error的?也即:在SVM中ε具体代表着什么?
SVM的目标是最小化上式。我们用来衡量error。这个式子是不是有点眼熟?我们在regularzation一篇中,最小化的目标也是如此形式。但是两者的思路不同:对于regularization,我们的目标是最小化error,但是呢,我们也希望对|w|的长度有限制;
对于SVM,我们的目标是最小化|w|,但是呢,我们也希望对error有所限制。
具体哪一方面占的权重更大,对于regularization来说,可以用λ来调节;对于SVM来说,可以用C来调节。
总体来说,殊途同归,但是使用SVM方法,即使是如上的nonlinear error衡量方式,我们也可以用QP工具来解决;第二,我们可以使用kernel function工具。
具体来说其误差衡量方式与0/1 error相比:
我们发现:这种误差衡量方式也是0/1误差的一种upper bound。之前我们在哪里见识过类似的场景?squared error 和cross-entropy error。
我们可以看到:SVM的错误衡量方式与cross-entropy error的值相似。所以我们说 SVM ≈ L2-regularized logistic regression。
(二)probabilistic SVM
如何融合SVM和logistic regression?
我也不知道为什么要将SVM与logistic regression联系起来。logistic regression与SVM相比,有什么优点?是极大似然?直接使用SVM不好吗?
这两种方法都不好,没有吸收两种方法的好处。
(三)kernel logistic regression
假设我们融合logistic regression与SVM,主要是要在logistic regression中使用SVM的kernel function工具。那么,现在的问题是:能不能直接做kernel logistic regression?
首先明白一点:要想使用kernel trick,必然有:w可以由n个数据来表示。也即:optimal w can be represented by zn。
什么使用这一情况会得到满足?
由此,我们可以做kernel logistic regression: