本文是机器学习技法系列文章的第五篇。介绍了 Kernel Logistic Regression (KLR)的推导过程,以及折叶损失函数。



Kernel Logistic Regression

上节课学习了 Soft-Margin SVM,相比于 Hard-Margin SVM,其允许错误的分类样本点存在,不要求分隔超平面一定严格可分,借鉴Pocket算法,通过在目标函数中引入参数 CC ,来表示更注重足够宽的边界还是更注重最小化分类错误样本点的误差的权衡。通过推导,发现Soft-Margin SVM与Hard-Margin SVM 的目标函数其实很像,唯一的区别就是 Soft-Margin SVM 的拉格朗日乘子 αn\alpha_n 的上界为 CC 。本节课更进一步,将Soft-Margin SVM中学习的Kernel拓展到其他问题上,比如 Kernel Logistic Regression 。

5.1 Soft­Margin SVM as Regularized Model

机器学习技法05:Kernel Logistic Regression(KLR)
首先复习一下前四讲所学的内容,从一开始的Hard-­Margin SVM 开始,为了减少算法复杂度,通过对偶问题,将 zz 空间的维度 d~\tilde{d} 从目标函数中去掉;为了降低过拟合风险,想办法提高 SVM 对错误的容忍度,从而进一步推出了 Soft-Margin SVM,同时,还推倒了其对偶问题。可以发现 Soft-Margin SVM 与 Hard-Margin SVM 的唯一区别是拉格朗日乘子 αn\alpha_n 多了上界 CC。那么 Soft-Margin SVM 是如何推导的呢,简单回顾一下:
机器学习技法05:Kernel Logistic Regression(KLR)
ξn\xi_n 表示分类错误样本点的误差,即到边界的距离,如果没有分类错误的样本点,则 ξn=0\xi_n=0。然后将有条件的最优化问题转换为对偶问题求解。

下面从另一个角度考虑,给定一组w,bw,b ,对于任意的样本可以算出其是否是分类错误的样本点,如果是分类错误的样本点,则 ξn=1yn(wTzn+b)\xi_n = 1 − y_n(w^Tz_n+ b),如果分类正确,则 ξn=0\xi_n=0。由此,可以得到 ξn=margin violation=max(1yn(wTzn+b),0)\xi_n = margin \ violation = max(1 − y_n(w^Tz_n+ b),0) ,将该式带入到 Soft-Margin SVM的目标函数得到:
机器学习技法05:Kernel Logistic Regression(KLR)
通过这样的转化,可以将参数 ξn\xi_n 去掉,把分类错误的样本点的误差转化为一个最大化问题。其实该形式与L2正则化问题的目标函数很相似:
机器学习技法05:Kernel Logistic Regression(KLR)

看到这里,好像SVM就是一个特殊的正则化问题,那么为什么不能直接使用求解正则化的步骤求解呢?原因如下:

  • 无条件约束的最优化问题无法通过二次规划求解,所以无法转化为对偶问题,也无法使用Kernel。
  • max() 函数中的项并不一定是处处可导的,所以很难用微分去解。

有约束的正则化,硬边界SVM,L2正则化,软边界SVM的目标函数如下:
机器学习技法05:Kernel Logistic Regression(KLR)
可以看出,large margin 其实就相当于更小的超平面,也等价于 L2正则化中小的 ww ;使用特别的误差 err^\hat{err} 表示软边界SVM中分类错误样本点的误差。Soft-Margin SVM 中的参数 CC 与正则化中的参数 λ\lambda 相对应,其关系为:较大的 CC 相当于较小 λ\lambda ,相当于对目标函数中的参数做了更小的约束。

通过以上对比易知,其实 SVM 就相当于一个正则化算法,可以将其扩展到更多学习算法。


习题1:
机器学习技法05:Kernel Logistic Regression(KLR)


5.2 SVM versus Logistic Regression

Soft­-Margin SVM 的无条件形式如下:
机器学习技法05:Kernel Logistic Regression(KLR)
令上式中的 s=wTzn+bs = w^Tz_n+ b ,则可转换为:
机器学习技法05:Kernel Logistic Regression(KLR)
二分类的误差 err0/1err_{0/1} 和 Soft-Margin SVM的分类误差 err^SVM\hat{err}_{SVM} 的误差曲线分别如上图所示。其中 err^SVM\hat{err}_{SVM}err0/1err_{0/1} 的上界。更一般地,通常将 err^SVM\hat{err}_{SVM} 称为折叶损失函数(Hinge Error Measure),它是一个Convex函数,在最优化问题中容易求解。接下来对比缩放后的逻辑回归的损失函数 errSCEerr_{SCE}
机器学习技法05:Kernel Logistic Regression(KLR)
通过上式,不难发现,存在以下关系:
机器学习技法05:Kernel Logistic Regression(KLR)


对比之前所学的线性二分类模型,其优化方法,优缺点如下:
机器学习技法05:Kernel Logistic Regression(KLR)

  • PLA算法的优点是对于线性可分的情形表现很好;缺点是如果输入空间不是线性可分,则需要借助平Pocket算法,但往往表现也不是很好。
  • 正则化逻辑回归往往使用梯度下降或者随机梯度下降求解。其优点是容易优化,并且有正则化限制特征空间的维度,使得其不宜过拟合,从而调泛化能力;其缺点是损失函数上界 errSCEerr_{SCE} 条件过于松弛,不利于最优化求解。
  • 软边界支持向量机使用二次规划求解;其优点是容易优化,并且有理论保证,缺点同逻辑回归。

由以上对比易知,求解了 regularized logistic regression 问题相当于求解了 Soft­-Margin SVM 问题。那么反过来成立吗?下一小节介绍这个问题。


习题2:
机器学习技法05:Kernel Logistic Regression(KLR)


5.3 SVM for Soft Binary Classification

首先看一下怎么样把 SVM 用于 Soft 二元分类问题。
机器学习技法05:Kernel Logistic Regression(KLR)

  • 第一个想法是使用 SVM 的到最好的参数 wSVM,bSVMw_{SVM}, b_{SVM} ,然后直接代入逻辑回归的假设函数中求解。这种方法借鉴了两类算法的相似性,优点适用于一般情况;缺点是形式过于简单,没有结合二者的优点。
  • 第二个方法是将SVM求解参数作为逻辑回归的初始化参数,然后是会用梯度下降或随机梯度下降迭代求解,然后求解最佳的假设函数矩g。这种方法看起来好像没什么问题,但实际上相比原来的逻辑回归更复杂了。

接下来考虑如何将逻辑回归和SVM的优势结合起来,更好的解决二分类问题。首先构造假设函数:
机器学习技法05:Kernel Logistic Regression(KLR)
其中 A 表示缩放因子,B表示平移因子。如果 wSVMw_{SVM} 参数对于假设函数比较好,则A应该是>0的;如果 bSVMb_{SVM} 参数比较好,则B ≈ 0。现在带入到逻辑回归问题的目标函数中构造新的逻辑回归问题:
机器学习技法05:Kernel Logistic Regression(KLR)
ΦSVM\Phi_{SVM} 相当于从多维到一维的转换。该问题有两个阶段,第一个阶段用SVM求解参数,将这个求解过程当做空间转换,转换到 zz 空间;第二个阶段做逻辑回归,其间还会有诸如正则化这样的抑制过拟合策略。这种方法称为 Platts ModelPlatt's \ Model。该算法的伪代码如下:
机器学习技法05:Kernel Logistic Regression(KLR)
因为引入了系数A和B,所以导致这种 soft binary classifier 得到的结果与SVM classifier 得到的结果可能不一样。该方法效果更好,可以用逻辑回归的求解方法,比如梯度下降或者随机梯度下降等等,但因为实际上只有两个参数A和B,可以使用一些更简单的方法。


习题3:
机器学习技法05:Kernel Logistic Regression(KLR)


5.4 Kernel Logistic Regression

上一小节中是使用 Kernel SVM 在转换后的 zz 空间求解近似解;现在打算在 zz 空间中直接使用 逻辑回归求解,应该如何做呢?回顾SVM的做法,先转换为对偶问题,其次通过二次规划,最后只需要最小化参数ww的内积,然后结合Kernel求解。但是逻辑回归的目标函数中是log形式的,看起来没有诸如二次式这样的多项式,所以没办法使用Kernel求解二次规划问题。Kernel的核心思想是将 zz 空间的内积运算转换为 xx 空间中易于计算的函数。内积运算需要在训练和预测过程中使用,准确地说是 wwzz 的内积。那么,如果现在可以将 ww 表示成一堆 zz 的线性组合 znz_n,就可以将 wwzz 的内积运算表示成 Kernel的形式。所以,最佳的 ww 是一堆 zz 的线性组合,这是求解问题的关键。
机器学习技法05:Kernel Logistic Regression(KLR)
其实 SVM,PLA,逻辑回归都可以将 ww 表示成 zz 的线性组合的形式。在SVM中,组合的系数 αn\alpha_n 就是对偶问题的解;PLA中,组合系数 αn\alpha_n 是通过不断地修正错误得到;使用梯度下降优化的逻辑回归也有这样的性质,组合系数 αn\alpha_n 表示随机梯度下降算法中的移动步幅。这样,就可以将这些算法与 Kernel 联系起来,在 zz 空间中求解。那么什么时候最佳的 ww 可以通过 zz 表达出来呢?
机器学习技法05:Kernel Logistic Regression(KLR)
假设要解决的是带L2正则化的线性问题,通过求解该目标函数,求解得到的最佳的 ww_* 一定可以表示为 znz_n 的线性组合。 其证明过程如下:
机器学习技法05:Kernel Logistic Regression(KLR)
假设存在最佳解 ww_* (权重向量),将其拆解为两个部分,第一个部分 ww_{||} 表示可以用 znz_n 表现出来的部分,ww_{⊥} 表示垂直于 znz_n 空间的部分。如果最佳的 ww_* 可以被 znz_n 表现出来,我们希望的是第二部分 w=0w_{⊥} = 0。使用反证法证明。考虑 ww_{||} 的特性,如果 ww_{⊥} 存在,会发生什么。我们知道,两向量相乘,也等于用分量表示的两向量相乘。 两垂直向量相乘(内积)等于零,则可推导出上式1成立,然后计算最佳解 wTww_*^Tw_*,可以退出公式2成立,但是此时说明 ww_{||} 要比求解出的最佳的 ww_* 要好,因为最小化目标函数中更小,这与已知是矛盾的,所以得证。因此,也就到到:任何L2正则化线性模型都可以使用Kernel!

既然 ww 可以用 znz_n 表示,也可以引入Kernel,那么直接求解组合系数 βn\beta_n 即可。也就转化成了无条件的最优化问题,可以使用梯度下降相关算法求解。这样,与之前求解逻辑回归的方法没有什么不一样。
机器学习技法05:Kernel Logistic Regression(KLR)
可以换一种思路理解这种算法的核心思想:
机器学习技法05:Kernel Logistic Regression(KLR)
之前讲过Kernel其实就一种相似性,可将Kernel当做对输入样本的转换;可以将 β\beta 当做转换空间后,原来 xx 空间中权重 ww 。将 βnβmK(xn,xm)β_nβ_mK(x_n,x_m) 进一步简化为 βTKββ^TKβ,相当于做正则化,其中 KK 表示类似缩放等的转换。这就是 Kernel Logistic Regression模型。

其中,β\beta 大部分都不为零,这不同于SVM中的参数 αn\alpha_n,这是需要注意的点。


习题4:
机器学习技法05:Kernel Logistic Regression(KLR)


Summary

本节课介绍了 Kernel Logistic Regression(KLR)。一开始先把 Soft-Margin SVM 解释为一个与 Regression有关的模型,其实做的就是 L2正则化,对应一个特别的误差函数 err^\hat{err} ,也就是折叶损失函数。那么SVM与逻辑回归是则么结合起来的呢?如果有求出最佳的参数 w,bw,b,可以通过二阶段的训练方式,将问题转化为Soft-Binary Classification,如果要在 zz 空间求解逻辑回归,可以将最佳的权重向量 ww_* 表示成分量的形式,然后通过求解组合系数 β\beta 求解,也就是KLR,但是因为大多数不为零,所以计算量会很大。

下节课介绍 Kernel 解决一般的回归问题。
机器学习技法05:Kernel Logistic Regression(KLR)


相关文章:

  • 2021-08-05
  • 2021-07-10
  • 2021-10-08
  • 2021-06-27
  • 2021-05-23
  • 2021-08-11
  • 2021-09-08
  • 2022-01-01
猜你喜欢
  • 2022-12-23
  • 2021-07-22
  • 2022-12-23
  • 2022-12-23
  • 2021-09-04
  • 2021-07-02
  • 2021-07-26
相关资源
相似解决方案