机器学习技法(林轩田)学习笔记:Lecture 5 & Lecture 6

Lecture 5:Kernel Logistic Regression

Soft-Margin SVM as Regularized Model

我们首先回顾Soft-Margin SVM的优化目标

在得到的最优解\((b,w,\xi)\)中,当\((x_n,y_n)\)没有越过margin自己这一方的边缘,则\(\xi_n=0\),否则\(\xi_n=1-y_n(w^Tz_n+b)\)

所以\(\xi_n=\max(1-y_n(w^Tz_n+b),0)\)

于是我们可以写出Soft-Margin SVM优化目标无约束的形式:

如果我们令单点误差\(err_n=\max(1-y_n(w^Tz_n+b),0)\),\(C=\frac 1 \lambda\),上面的优化目标等价于

\[\min \frac \lambda 2 w^Tw+\sum_{n=1}^N err_n \]

这很类似单点误差为\(err_n\),加入了L2正则化的误差函数

为什么Soft-Margin SVM不直接优化这个问题呢?因为它不是二次规划问题,也不能使用核技巧,并且max(...)也是不可导的

我们比较L2正则化的\(\lambda\)与Soft-Margin SVM的惩罚系数C:

  • L2正则化中,\(\lambda\)越小,正则化程度越小
  • Soft-Margin SVM中,C越大,正则化程度越小

SVM versus Logistic Regression

\(s=w^Tz_n+b\),我们比较Soft-Margin SVM、PLA(以及口袋算法)、逻辑回归的单点误差函数:

  • Soft-Margin SVM:\(err_{SVM}=\max(1-ys,0)\)
  • PLA/Pocket:\(err_{0/1}=1\{ys\leq 0\}\)
  • 逻辑回归:\(err_{CE}=\ln(1+\exp(-ys))=(\ln 2) err_{SCE}\)
  • Scaled Cross Entropy:\(err_{SCE}=\log_2(1+\exp(-ys))\)

\(err_{SVM},err_{0/1},err_{SCE}\)图像如下图所示:

可见\(err_{SCE}\geq err_{0/1}\),\(err_{SVM}\geq err_{0/1}\),SVM和逻辑回归都是通过最优化凸函数\(err_{SVM}(err_{CE})\)来给\(err_{0/1}\)确定一个很小的上界,从而保证可以实现二分类

SVM的单点误差\(err_{SVM}\)又称为Hinge损失

因为\(ys\to +\infty\)\(err_{SVM}\to 0,err_{CE}\to 0\)\(ys\to -\infty\)\(err_{SVM}\to -ys,err_{CE}\to -ys\),所以Soft-Margin SVM类似于加L2正则化的逻辑回归

SVM for Soft Binary Classification

我们能否用Soft-Margin SVM求出的参数\(w,b\),类似逻辑回归那样,预测某个未知样本属于正/负样本的概率呢?下面介绍输出分类概率的SVM:Probabilistic SVM(该方法最早由Platt提出,叫Platt scaling)

  • 1、首先在训练集\(\mathcal D\)上用Soft-Margin SVM训练出参数\((b_{SVM},w_{SVM})\),并令\(z_n'=w_{SVM}^T\Phi(x_n)+b_{SVM}\)
  • 2、用N个\((z_n',y_n)\)作训练集,训练一个逻辑回归模型:\(g(x)=\theta(Az_n'+B)\),一般如果\((b_{SVM},w_{SVM})\)比较合适的话,\(A>0,B\approx 0\)
  • 3、最终得到的Probabilistic SVM的假设函数就是\(g(x)=\theta(A(w_{SVM}^T\Phi(x_n)+b_{SVM})+B)\),g(x)就是输入特征为x时分类为正样本1的概率

Kernel Logistic Regression

这种方法可以看作是用Soft-Margin Kernel SVM在\(\mathcal Z\)空间内对逻辑回归的一种近似,那么能否直接精确求出\(\mathcal Z\)空间内逻辑回归的解呢?

首先介绍表示定理(Representer Theorem):对于所有带L2正则化的线性模型,

其最优解\(w^*=\sum_{n=1}^N\beta_nz_n\),即w的最优解可以表示成所有输入特征的线性组合

证明:

首先把最优解拆成两个相互正交的分量:\(w^*=w_{||}+w_{\perp}\)
其中\(w_{||}\in \mathrm{span}(z_1,\cdots,z_N)\)(\(z_n\)的生成子空间),\(w_{\perp}\perp \mathrm{span}(z_1,\cdots,z_N)\)
假设\(w_{\perp}\neq 0\),现在我们比较\(w^*,w_{||}\)的损失函数值:
(1)二者的单点误差\(err\)相同:\(err(y_n,w^{*T}z_n)=err(y_n,(w_{||}+w_{\perp})^Tz_n)=err(y_n,w_{||}^{T}z_n+0)\)
(2)$$w{*T}w*=(w_{||}+w_{\perp})^T(w_{||}+w_{\perp})$$

\[=w_{||}^Tw_{||}+2w_{||}^Tw_{\perp}+w_{\perp}^Tw_{\perp} \]

\[=w_{||}^Tw_{||}+w_{\perp}^Tw_{\perp}> w_{||}^Tw_{||} \]

可见,\(w^*\)的损失函数值比\(w_{||}\)大,最优解应该是\(w_{||}\),与假设矛盾,所以\(w^*=w_{||}\in\mathrm{span}(z_1,\cdots,z_N)\)

而在预测输入z的输出值时,我们需要将\(w^*\)\(z\)做内积,表示定理保证了,此时可以用N个\(z_n\)与当前输入\(z\)的内积替代\(w^*\)\(z\)的内积,进一步地,可以用核函数代替这N个内积

这表明,所有带L2正则化的线性模型都可以使用核技巧

回顾带L2正则化的逻辑回归的优化目标:

\(w=\sum_{n=1}^N\beta_nz_n\)代入,并用核函数代替内积,优化目标变成了:

要最优化的参数变成了N个:\(\beta_1,\cdots,\beta_N\)

这就是Kernel Logistic Regression(KLR),这个优化目标使用批量/随机梯度下降等方法,最优化参数即可

若令\(\beta=(\beta_1,\cdots,\beta_N)^T\),N阶矩阵K,\(K_{ij}=K(x_i,x_j)\),则优化目标中的正则化项\(\sum_{n=1}^N\sum_{m=1}^N\beta_n\beta_mK(x_n,x_m)=\beta^TK\beta\)

需要注意的是,这里的\(\beta_n\)与SVM的拉格朗日乘子\(\alpha_n\)不同,\(\alpha_n\)一般来说大部分为0,而\(\beta_n\)大部分是非零的(\(\beta\)不是稀疏的)。

Lecture 6: Support Vector Regression

Kernel Ridge Regression

首先回顾岭回归的优化目标(输入特征已经通过特征变换从\(x\)映射到\(z\)):

\[\min_w \frac \lambda N w^Tw+\frac 1 N \sum_{n=1}^N(y_n-w^Tz_n)^2 \]

表示定理对岭回归一样适用。所以其最优解\(w^*=\sum_{n=1}^N\beta_nz_n\),代入上式,并用核函数代替两个\(z_j,z_j\)的内积:

(其中矩阵K的每个元素\(K_{ij}=K(x_i,x_j)\),\(\sum_{n=1}^N (y_n-\sum_{m=1}^N\beta_mK(x_n,x_m))^2=\|y-K\beta\|^2\))

当上式取最小值时,有\(\nabla_\beta E_{aug}(\beta)=0\)

从而\((\lambda I+K)\beta-y=0\),可以得到解析解\(\beta=(\lambda I+K)^{-1}y\)

(根据Mercer's Condition,K是半正定矩阵,而正则化参数\(\lambda>0\),因此\(\lambda I\)是正定阵,从而\(\lambda I+K\)正定,是可逆的)

时间复杂度分析:\(\lambda I+K\)是N阶矩阵,y是N维列向量,\(\lambda I+K\)求逆需要\(O(N^3)\),之后与y做乘法的时间复杂度是\(O(N^2)\),所以总的时间复杂度是\(O(N^3)\)

通过Kernel Ridge Regression可以很容易地实现非线性的回归了。但Kernel Ridge Regression无法保证得到的\(\beta\)是稀疏的,而且N太大时矩阵求逆也是非常费时的

我们比较一下Linear Ridge Regression和Kernel Ridge Regression:

Linear Ridge Regression

  • 训练的时间复杂度:\(O(d^3+d^2N)\)(计算\(X^TX\)\(O(d^2N)\)的,对\(\lambda I+X^TX\)求逆是\(O(d^3)\)的)
  • 预测某个输入的输出值的时间复杂度:\(O(d)\)(计算\(w^Tx\))
  • \(N\gg d\)时Linear Ridge Regression非常高效,Linear Ridge Regression缺点是只能拟合线性的函数

Kernel Ridge Regression

  • 训练的时间复杂度:\(O(N^3)\)
  • 预测的时间复杂度:\(O(N)\)(要计算\(y=\sum_{n=1}^N \beta_n K(x_n,x)\))
  • 优点是加入核技巧后可以拟合非常复杂的函数

Support Vector Regression Primal

Kernel Ridge Regression得到的\(\beta\)不能保证是稀疏的,现在我们希望得到像SVM那样稀疏的\(\beta\)该怎么办呢?下面介绍Support Vector Regression

首先介绍Tube Regression

在原始的回归问题中,我们把样本y与假设函数\(s=w^Tz\)的差值的平方\((y-s)^2\)作为单点误差err(y,s)

而在Tube Regression中,我们认为s与y之差的绝对值<\(\epsilon\)时是没有误差的,超过\(\epsilon\)时误差为\(|s-y|-\epsilon\),如上图所示,则此时的单点误差\(err(s,y)=\max(0,|s-y|-\epsilon)=\max(0,|w^Tz-y|-\epsilon)\)

两种不同的误差函数的图像如上图所示,可见当\(s\approx y\)时二者非常相近,而\(|s-y|\)很大时,Tube Regression的单点误差没有平方误差增长的那么快,因此Tube Regression在某种程度上可以避免一些噪声比较大的训练样本的干扰

我们对Tube Regression加上L2正则化,则优化目标变成了:

这个无约束的优化目标不方便加入核函数,而且max(...)也是不可导的,下面我们模仿SVM的推导过程,变换这个优化目标

先把偏置b单独写出来,于是现在的\(w=(w_1,\cdots,w_d)^T\)\(z=(z_1,\cdots,z_d)^T\),然后令\(C=\frac 1 {2\lambda}\),现在优化目标等价于

接着仿照SVM,定义松弛变量\(\xi_n^\vee,\xi_n^\wedge\),分别表示y比\(s-\epsilon\)少了多少,比\(s+\epsilon\)多了多少:

\[-\epsilon-\xi_n^\vee\leq y_n-w^Tz_n-b\leq \epsilon+\xi_n^\wedge,\ \ \ \xi_n^\vee\geq 0,\xi_n^\wedge\geq 0 \]

优化目标变成:

\[\min_{b,w,\xi^\vee,\xi^\wedge}\frac 1 2 w^Tw+C\sum_{n=1}^N(\xi_n^\vee+\xi_n^\wedge) \]

\[\mathrm{s.t.}\ \ \ -\epsilon-\xi_n^\vee\leq y_n-w^Tz_n-b\leq \epsilon+\xi_n^\wedge \]

\[\xi_n^\vee\geq 0,\xi_n^\wedge\geq 0 \]

这是一个二次规划问题,有\(2N+\tilde d+1\)个变量,4N个不等式约束条件

最终最优化得到的\(\xi_n^\vee,\xi_n^\wedge\):

  • \(y_n\)\(s_n-\epsilon\)小时,\(\xi_n^\vee\)表示\(y_n\)\(s_n-\epsilon\)少了多少,\(\xi_n^\wedge=0\)
  • \(y_n\)\(s_n+\epsilon\)大时,\(\xi_n^\wedge\)表示\(y_n\)\(s_n+\epsilon\)多了多少,\(\xi_n^\vee=0\)
  • \(y_n\in[s_n-\epsilon,s_n+\epsilon]\)时,\(\xi_n^\vee=\xi_n^\wedge=0\)

类似SVM的推导过程,可以得到该问题的拉格朗日对偶问题

其中,由\(\frac{\partial \mathcal L}{\partial w}=0\)可得\(w=\sum_{n=1}^N(\alpha_n^{\wedge}+\alpha_n^{\vee})z_n\),根据KKT条件中的互补松弛条件:

\(|w^Tz_n+b-y_n|\leq \epsilon\)时,根据之前的推论,\(\xi_n^{\vee}=\xi_n^{\wedge}=0\),此时\(\epsilon+\xi_n^{\vee}+y_n-w^Tz_n-b\neq 0\),\(\epsilon+\xi_n^{\vee}-y_n+w^Tz_n+b\neq 0\),从而\(\alpha_n^\vee=\alpha_n^\wedge=0\)

而大多数点都在tube内,这表明大多数\(\alpha_n^\vee=\alpha_n^\wedge=0\),我们得到的解\(\alpha\)是稀疏的

posted @ 2018-07-27 20:22  YongkangZhang  阅读(304)  评论(0编辑  收藏  举报