机器学习技法第五课——Kernel Logistic Regression

此文是学习林轩田老师的机器学习技法第五课——Kernel Logistic Regression——的课程笔记。

这节课主要讨论了 SVM 与 Logistic 回归的相似性,其目标是解决“SVM 从 0/1 分类到概率分类的转换”以及“Logistic 从低维空间到高维空间的转换”,提出了二个方法,一是,将 SVM 训练结果代入 Logistic 中训练,二是,使用 Logistic Regression 的 kernel 模型进行训练。

参考

SVM 与 L2 正则化

推导 Soft Margin SVM 的原始公式:
$$ \min{b,\mathbf{w},\xi} \frac{1}{2}\mathbf{w^Tw} + C \sum{n=1}^{N}\xi_n \\
s.t.\ y_n(\mathbf{w^Tz_n} + b) \ge 1 - \xi_n \\
s.t.\ \xi_n \ge 0
$$
$\xi$ 是松弛变量,也可视作 err,衡量越过 Margin 或分类超平面的程度,大致可以写成 $err = \xi_n = \max{(1-y_n(w^T zn + b),\; 0)}$, 原式大概可以写成:
$$ \min
{b,\mathbf{w}} \frac{1}{2}\mathbf{w^Tw} + C \sum_{n=1}^{N}{\max{(1-y_n(w^T z_n + b),\; 0)}}
$$
$$即\;\min{\frac{1}{2}\mathbf{w^Tw} + C\sum{err}}$$
这个公式与机器学习基石部分的带 L2 正则化的 PLA 算法比较相似。SVM 大致可以视作一个带 L2 正则化的分类器。(这个 error 常被称作 hinge loss)

SVM 与 Logistic 相似

令 $s=w^T z + b$ (超平面分类得分),引入机器学习基石中的 0/1 错误、 Logistic 回归的错误与 SVM 错误比较:

err type function
0/1 [$ys \le 0$]
logistic $\ln(1+\exp(-ys))$
SVM $\max(1-ys,\; 0)$

课程中作图更直观,在此就大致解释下 :P。 $y, s$ 同号时,分类正确,0/1 分类中 “[]” 表示 bool 判断,如果 $ys \le 0$ 取1,反之取0,即分类正确 err 为 0,错误取 1 以记录错误。与之不同的是,Logistic 与 SVM 在分类错误时,不止记录了错误,而且在 $ys$ 越小时,err 取值越大。在分类正确时,后两者要么直接取 0,要么取一个 $0 \sim 1$ 的数。Logistic 与 SVM 都放大了分类错误数据的影响,而忽略分类正确数据的影响。

Platt’s scaling

Platt scaling 又称 Platt calibration,将分类模型对数据的预测评分作为输入,训练 Logistic 模型,将它转化成概率模型。运用这个方法将 SVM 与 Logistic 结合,使得 SVM 拥有概率特征,而 Logistic 可以用 SVM kernel 处理多维空间转换。大致过程为

  • run SVM get $\Phi_{svm}(z_n) = w^T z_n + b$
  • run Logistic problem get A, B:
    $$ \min{A, B} {\frac{1}{N} \sum{n=1}^{N}{ \ln{(1 + \exp(-yn (A \Phi{svm}(z_n) + B)))} }}
    $$
    这里 A 是对 SVM 模型的一个放缩,对结果影响不大,而 B 有对原 SVM 有一定影响,应该尽量接近 0。在课程中,将这个模型称为 probabilistic SVM。

Kernel Logistic Regression

这一部分试图推导出 Logistic 的 kernel,以解决 Logistic 向高维空间映射的问题。提前声明一下,由于此模型不具有 SVM 的稀疏性,林老师在下节课会说明此方法相对 Platt’s scaling 较少使用。

首先,对于以下形式的“带 L2 正则化的线性模型”
$$ \min{\mathbf{w}} \frac{\lambda}{N}\mathbf{w^Tw} + \frac{1}{N} \sum{n=1}^{N}{err(y_n, w^T zn)}
$$
老师用奇妙的方法证明了其中的 $\mathbf{w}$ 可以被 $\mathbf{z}$ 线性表示
$$\mathbf{w} = \sum
{n=1}^N \beta_n z_n$$
,而且该模型能被转换成 kernel 形式。(至于如何证明的,因为十分奇妙在此略过 :P)

当然,带 L2 正则化的 Logistic 回归模型符合以上条件。
$$ \min{w} { \frac{\lambda}{N}\mathbf{w^Tw} +\frac{1}{N} \sum{n=1}^{N}{ \ln{(1 + \exp(-y_n w^T z_n))} }}
$$

Kernel SVM 中,用 kernel 函数 $K(\mathbf{x, x’})$ 替换 $\mathbf{z^Tz’}$,所以,接下来要把高维空间的 $\mathbf{w, z}$ 用 kernel 替换。
$$ \mathbf{w^Tw} = \sum{n=1}^{N}\sum{n=1}^{M} \beta_n \beta_m K(\mathbf{x_n, x_m})\quad (向量内积分配律)\\
\mathbf{w^Tzn} = \sum{m=1}^N {\beta_m K(\mathbf{x_m, x_n})}
$$

最后问题变成求解 $\beta$
$$ \min{w} { \frac{\lambda}{N} \sum{n=1}^{N}\sum_{n=1}^{M} \beta_n \beta_m K(\mathbf{x_n, xm})
+\frac{1}{N} \sum
{n=1}^{N}{ \ln{(1 + \exp(-yn \sum{m=1}^N {\beta_m K(\mathbf{x_m, x_n})}))} }}
$$
需要说明,$\beta$ 往往非 0,而对比 SVM 中的 $\alpha$,则大多是 0(非支持向量),后者具有稀疏性。