Linear SVM 和 LR 有什么异同?

SVM和LR,本质上,不都是找一个分类超平面吗? 那他们有什么本质上的差别吗?
关注者
1,295
被浏览
143,394

17 个回答

好像大家的答案没有提到这一点:LR可以给出每个点属于每一类的概率,而SVM是非概率的。

我再拓展一下,扯点别的……以下抄写自张潼大佬04年的老文 Statistical behavior and consistency of classification methods based on convex risk minimization。这篇文章研究了在二类问题中对 0-1 损失做不同的 convex relaxation 后所得到的分类器的某些异同。这些分类器包括了 SVM 和 logistic regression。

约定 x 为输入, y\in\{\pm1\} 为输出类别,f(x)(\approx y)为待学习的预测函数,f(x) 的符号(正负)表示 x 的预测类别。另外,用大写字母表示相应概念(输入或输出)的随机变量。我们用0-1损失函数 L 来衡量 f 的分类质量:

\begin{align*} \eta(X)=&\Pr(Y=1|X)\\ L(f(\cdot))=&E_{f(X)\ge 0}[1-\eta(X)]+E_{f(X)< 0}[\eta(X)] \end{align*}

大家都知道,0-1损失很难被直接最小化,所以我们需要一些别的好做优化的损失函数。下图是 0-1 损失各种常用的 convex relaxation:

它们分别是(v=yf(x) ,略去常数因子)

  • Logistic Regression: \phi(v)=\ln(1+\exp(-v))
  • SVM: \phi(v)=\max(0,1-v)
  • Least Square: \phi(v)=(1-v)^2
  • AdaBoost: \phi(v)=\exp(-v)

Q(\eta,f)=\eta\phi(f)+(1-\eta)\phi(-f) ,则我们改为寻找 f 使下面这个量最小化(相当于relax后的 L ):

\begin{align*} Q(f(\cdot))=&E_X[Q(\eta(X),f(X))]\\ =&E_{X}[\eta(X)\phi(f(X))+(1-\eta(X))\phi(-f(X))] \end{align*}


不太严格地说,论文至少证明了这么几个事情:

  1. Q^*(\eta)=\inf_fQ(\eta,f),则在某些条件下, L(f(\cdot))-L^* 能被 E_X[Q(\eta(X),f(X))-Q^*(\eta(X))] 控制,其中 L^*=\inf_fL(f(\cdot))=L(2\eta(\cdot)-1)是 optimal Bayes error。这大致是说,虽然我们没有直接最小化 0-1 损失,但如果最小化 Q后能找到一个比较好的 f ,那么它的 0-1 损失也应该比较接近最优的 0-1 损失。
  2. Q^*(\eta)是个凹函数,且当 \phi 可微时有 Q(\eta,f^*(\bar{\eta}))-Q^*(\eta)=d_{Q^*}(\bar{\eta},\eta) ,其中f^*=f^*(\eta)=\arg\min_fQ(\eta,f)d_{Q^*}Q^* 对应的 Bregman divergence。这里的 \bar{\eta} 可以看成是真实的条件概率 \eta 的一个估计。于是这一条大致是说,最小化 Q 其实也是在最小化真实条件概率 \eta(X) 及其估计之间的某种差别。特别地,logistic regression 对应的 \phi 给出的 Bregman divergence 恰好是一个相对熵(KL-Divergence),因此 logistic regression 对应一个极大似然估计。但对于列出的其他分类器,它们则不能被解释为极大似然估计。
  3. 一堆误差界。其中包括 consistency:对于某些凸的 \phiE_X[Q(\eta(X),f(X))-Q^*(\eta(X))] 在任意数据分布下的下确界均为0(f(\cdot) 跑遍连续函数空间的一个稠密子集,比如说某些 kernel 对应的特征映射,或者激活函数为 sigmoid 函数的二层神经网络等等)。一开始列出的那些 \phi 都符合这里的“某些”所要求的性质。

以上算是“同”的部分。论文在这些一般结论下,通过分析 Q(\eta,f)-Q^*(\eta) ,也分别讨论了各个分类器的表现。具体到 SVM 和 logistic regression,它们 “异”的部分其实跟大家对这两个分类器的印象差不多,不过在论文中这些结论是以比较严格的形式给出的。大(jì)体(xù)上(chāo),

  1. SVM: 当 \eta(x) 不太接近 0.5 时,想令 Q(\eta,f)-Q^*(\eta) 小的话,要求 f(x)\approx\mathrm{sign}(2\eta(x)-1) 。但 \eta(x)\approx 1 时可以允许 f(x)>1\eta(x)\approx 0 时可以允许 f(x)<-1 。这再次说明 SVM 有 large margin 性质。但在中间情形(数据不那么可分时), f(x) 的值可能会堆在 \pm 1 附近,导致丢失了来自条件概率 \eta(x) 的信息。另一方面,对应 \phi(v)=\max(0,1-v)^2 的 L2-SVM(论文里面叫 modified least squares)在这方面有明显优势:大致上,我们有 \eta(x)\approx (T(f(x))+1)/2,其中 T(p)=\min(\max(p,-1),1)是个截断函数,它把 p 的范围限制在 [-1,1] 之间。
  2. Logistic Regression:想令 Q(\eta,f)-Q^*(\eta) 小的话,\eta(x)\approx 1\eta(x)\approx 0 时会导致 |f(x)| 很大(AdaBoost 也有这个问题,且更严重)。所以这个角度上看 logistic regression 适合于数据不那么可分的情形,跟 SVM 有点相反。另一个不同点是 logistic regression 中获取 \eta(x) 的估计非常容易: 1/(1+\exp(-f(x))) 就是 \eta(x) 的极大似然估计,这个大家已经很清楚了。


(小后续:AdaBoost 之父 Robert E. Schapire 针对包含这篇论文的三篇论文写了几页 discussion,说你们这样看 AdaBoost 是不太对的,AdaBoost 的优点其实在这里这里)