台大机器学习技法学习笔记

台大机器学习技法学习笔记

标签(空格分隔): 机器学习


Lecture 1: Linear hard-margin SVM

1.Large-Margin Separating Hyperplane

   之前我们介绍过PLA算法,即在线性可分的数据中,找到一条线,能够区分开正负样本.但是PLA的解具有随机性的特点,不同的解具有对噪声不同的容忍度,即点向分类超平面扩展的区域大小对应对于噪声的容忍度。这个边界越大,代表对噪声的容忍度也越大,而从边界线的角度来讲,即从边界线向两侧延伸直到遇到点的这个所谓的“垫子”——我们称之为margin,margin越大,也代表此分类超平面具有最大的鲁棒性,对噪声的容忍度最强。
  线性可分支持向量机:
给定线性可分训练数据集,通过间隔最大化或等价求解相应的凸二次规划问题学习得到的分离超平面为
w^Tx + b = 0
以及相应的分类决策函数
f(x) = sign(w^Tx + b )
称之为线性可分支持向量机。
  当训练数据集线性可分时,对于PLA来说存在无数多个超平面可以将其正确分开,而linear SVM利用间隔最大化求得唯一的最优分离超平面。

2.Standard Large-Margin Problem

  有了linear SVM的定义和要解决的问题之后,我们试图用数学语言来对其进行描述。我们先来看点到分离超平面的距离:
假设分离超平面外有点x,其对分离超平面投影和到超平面距离分别为x_0\gamma,超平面法向量为w,则
x = x_0 + \gamma \cdot \frac{w}{||w||}
x_0在分离超平面上
w^Tx_0 + b = 0
可得
\gamma = \frac{w^Tx + b}{||w||}
综合考虑两种分类结果,对\gamma绝对值化
\tilde{\gamma} = \frac{w^Tx + b}{||w||}
至此,我们的问题可以简述成:
\begin{matrix} \mathop{max}\limits_{w,b}&\tilde{\gamma}\\s.t. & y_i \left( \frac{w^Tx_i + b}{||w||} \right) \ge \tilde{\gamma},\quad i=1,2,...,N \end{matrix}
将式中的\tilde{\gamma}写成
\tilde{\gamma} = \frac{\hat{\gamma}}{||w||}
最优化问题变换为
\begin{matrix} \mathop{max}\limits_{w,b}& \frac{\hat{\gamma}}{||w||}\\s.t. & y_i ( w^Tx_i + b ) \ge \hat{\gamma}, \quad i=1,2,...,N \end{matrix}
式中\hat{\gamma}的取值不影响最优化问题的解。可以这样考虑:假设将wb按比例更改为\lambda w\lambda b,这时\hat{\gamma}也放大为\lambda\hat{\gamma},但是这些改变对于最优化问题的目标函数和不等式约束都没有影响,产生的是一个等价的最优化问题。即我们可以任意缩放\hat{\gamma}而不影响y最优化问题的求解,于是将\hat{\gamma}取为1,并且注意到最大化\frac{1}{||w||}与最小化\frac{1}{2}||w||^2是等价的,于是得到如下的linear SVM学习的最优化问题
\begin{matrix} \mathop{min}\limits_{w,b}&\frac{1}{2}||w||^2\\s.t. & y_i ( w^Tx_i + b ) - 1 \ge 0, \quad i=1,2,...,N \end{matrix}

3.Support Vector Machine

  上面得到的问题形式和二次规划QP一致,所以可以使用二次规划的方法求解。二次规划的一般形式如下:
\begin{matrix} optimal \ u \ \leftarrow&QP(Q,p,A,c)\\ \mathop{\min}\limits_{u}&\frac{1}{2}u^TQu + p^Tu\\ s.t.& a_m^Tu \ge c_m,\ for \ m = 1,2,...,M \end{matrix}
  将linear hard SVM的求解公式套用QP一般形式,接下来就可以通过任何实现QP解法的工具计算求解,对于非线性问题,可以通过对x做二次转化或其他转化,然后求解。

4.Reasons behind Large-Margin Hyperplane

  相比较PLA的平面,linear hard SVM得到的平面结果更苛刻,由于有”厚垫子”,linear hard SVM不能shatter任意3个inputs,这说明有更少的dichotomie,更小的VC维度,也就有更好的泛化效果。同时,如果使用特征转换,可以使linear hard SVM进行一些更精细的分类。
  Linear hard SVM的解法中需要训练数据线性可分,然后通过缩放平面和等价转换,将原始问题转成QP问题求解。数据线性可分在实际情况中很难出现,所以linear hard SVM的应用价值比较有限。同时,在特征转换时,将原始数据映射到其他空间的计算无法省略。接下来课程中,会使用一些方法解决这两个问题,。


Lecture 2: Dual Support Vector Machine

  上一篇文章总结了linear hard SVM,解法很直观,直接从SVM的定义出发,经过等价变换,转成QP问题求解。这一讲,从另一个角度描述hard SVM的解法,不那么直观,但是可以避免feature转换时的数据计算,这样就可以利用一些很高维度(甚至是无限维度)的feature转换,得到一些更精细的解。

1.Motivation of Dual SVM

  上一节我们讲到SVM问题的定义,如下:
\mathop {\min }\limits_{b,W}\frac{1}{2}W^TW\\s.t.\quad y_n(W^TZ_n+b)\ge1,\quad for\ n=1,2,...,N

  这是一个线性约束问题,不方便优化,是否有一种方法可以将线性约束放到优化问题本身,这样就可以无拘无束的优化,而不用考虑线性约束了。拉格朗日提供了一种方法,可以达到这个目的,称之为拉格朗日乘子式,形式如下(式中,右边的是约束条件):
\mathcal{L}(b,W,\alpha)=\frac{1}{2}W^TW+\sum_{n=1}^N\alpha_n(1-y_n(W^TZ_n+b))
  通过拉格朗日算子,我们可以把SVM问题转化为下式:
SVM\equiv\mathop{\min}\limits_{W,b}\left(\mathop{\max}\limits_{\alpha_n\ge0}\mathcal{L}(W,b,\alpha)\right)
  这是如何做到的呢?解释如下:
+
  对于大括号内的式子,我们是固定\alpha,变动Wb的值,我们考虑之前的约束条件y_n(W^TZ_n+b)\ge1,总体来讲会出现两种情况下的Wb,其中一种满足约束条件一种不满足约束条件,则1-y_n(W^TZ_n+b)在这两种情况下分别是负数和正数,而对于大括号里的式子\mathop{\max}\limits_{\alpha_n\ge0}\mathcal{L}(W,b,\alpha)=\mathop{\max}\limits_{\alpha_n\ge0}\left(\frac{1}{2}W^TW+\sum_{n=1}^N\alpha_n(1-y_n(W^TZ_n+b))\right)而言,既是此式分别趋向\frac{1}{2}W^TW+\infty的过程,再带入SVM的式子,我们得到
\begin{split} SVM&\equiv\mathop{\min}\limits_{W,b}\left(\mathop{\max}\limits_{\alpha_n\ge0}\mathcal{L}(W,b,\alpha)\right)\\&=\mathop{\min}\limits_{W,b}\left(\mathop{\max}\limits_{\alpha_n\ge0}\left(\frac{1}{2}W^TW+\sum_{n=1}^N\alpha_n(1-y_n(W^TZ_n+b))\right)\right)\\&=\mathop{\min}\limits_{W,b}\left(\frac{1}{2}W^TW,+\infty\right) \end{split}
  所以,综上所述,SVM问题与此min max变换公式等价。SVM\equiv\mathop{\min}\limits_{W,b}\left(\mathop{\max}\limits_{\alpha_n\ge0}\mathcal{L}(W,b,\alpha)\right)
  到这里做一个总结:通过拉格朗日乘子,我们重新定义一个无约束问题,这个无约束问题等价于原来的约束优化问题,从而将约束问题无约束化。

2.Lagrange Dual SVM

  上面的问题中先max后min的形式不方便求解,不过可以通过一番变化,导出max min的形式,这样就可以从内到外,先计算里面的min,然后计算外面的max。这种变化叫对偶变化。
  首先,对于一个固定的\alpha'(\text{With all $\alpha'\gt0$})有:
\mathop{\max}\limits_{\alpha_n\ge0}\mathcal{L}(W,b,\alpha)\ge\mathcal{L}(W,b,\alpha')
  则有
\mathop{\min}\limits_{W,b}\left(\mathop{\max}\limits_{\alpha_n\ge0}\mathcal{L}(W,b,\alpha)\right)\ge\mathop{\min}\limits_{W,b}\mathcal{L}(W,b,\alpha')
  的\alpha'有多重选择,但是上面的不等式一致成立,所以在众多的选择一个最大的,上面的等式变形为,
\mathop{\min}\limits_{W,b}\left(\mathop{\max}\limits_{\alpha_n\ge0}\mathcal{L}(W,b,\alpha)\right)\ge\mathop{\max}\limits_{\alpha_n\ge0}\left(\mathop{\min}\limits_{W,b}\mathcal{L}(W,b,\alpha')\right)
  上式右边的\alpha'\alpha没有区别,故上式可变为:
\mathop{\min}\limits_{W,b}\left(\mathop{\max}\limits_{\alpha_n\ge0}\mathcal{L}(W,b,\alpha)\right)\ge\mathop{\max}\limits_{\alpha_n\ge0}\left(\mathop{\min}\limits_{W,b}\mathcal{L}(W,b,\alpha)\right)
  这样min max就和max min建立了联系,前者\ge后者,这种成为弱对偶,若是两者相等,就称为强对偶。而强对偶如何才能成立呢,需要满足如下的条件:

  • 原始问题是凸形状的
  • 原始问题线性可分(如转换到z域线性可分)
  • 具有线性约束条件

  而SVM问题满足上述条件,即存在解(b,W,\alpha)对于等式两边都是最优解,即我们现在可以通过解相对简单的对偶问题来间接求解原始问题。

3.Solving Dual SVM

  经过之前的对偶变换,我们可以得到:SVM\equiv\mathop{\min}\limits_{W,b}\left(\mathop{\max}\limits_{\alpha_n\ge0}\mathcal{L}(W,b,\alpha)\right)=\mathop{\max}\limits_{\alpha_n\ge0}\mathop{\min}\limits_{W,b}\left(\frac{1}{2}W^TW+\sum_{n=1}^N\alpha_n(1-y_n(W^TZ_n+b))\right)
max括号之内的部分已经没有约束,为求其最优解,先对b求偏导,可以得到:
\frac{\partial\mathcal{L}(b,W,\alpha)}{\partial{b}}= -\sum_{n=1}^N\alpha_ny_n=0
这个结果代入上面的式子:
\begin{split} SVM&=\mathop{\max}\limits_{\alpha_n\ge0}\mathop{\min}\limits_{W,b}\left(\frac{1}{2}W^TW+\sum_{n=1}^N\alpha_n(1-y_nW^TZ_n)-b\sum_{n=1}^N\alpha_ny_n\right)\\&=\mathop{\max}\limits_{\alpha_n\ge0}\mathop{\min}\limits_{W,b}\left(\frac{1}{2}W^TW+\sum_{n=1}^N\alpha_n(1-y_nW^TZ_n)\right)\\&=\mathop{max}\limits_{\alpha_n\ge0,\sum_{n=1}^N\alpha_ny_n=0}\mathop{\min}\limits_{W}\left(\frac{1}{2}W^TW+\sum_{n=1}^N\alpha_n(1-y_nW^TZ_n)\right)\text{(此时min式子中已没有b)}\\ \end{split}
继续对W_i求导:
\frac{\partial\mathcal{L}(b,W,\alpha)}{\partial{W_i}}=W_i -\sum_{n=1}^N\alpha_ny_nz_{n,i}=0
得到:
W= \sum_{n=1}^{N}\alpha_ny_nz_{n}
继续代入上面的式子,
\begin{split} SVM&=\mathop{\max} \limits_{all\ \alpha_n\ge0,\sum_{n=1}^N\alpha_ny_n=0,W= \sum_{n=1}^{N}\alpha_ny_nz_{n}}\left(\frac{1}{2}W^TW+\sum_{n=1}^N\alpha_n-W^TW\right)\\&=\mathop{\max} \limits_{all\ \alpha_n\ge0,\sum_{n=1}^N\alpha_ny_n=0,W= \sum_{n=1}^{N}\alpha_ny_nz_{n}}\left(\sum_{n=1}^N\alpha_n-\frac{1}{2}||\sum_{n=1}^N\alpha_ny_nz_n||^2\right)\text{(min式子已经消失)}\\ \end{split}

  现在对式子做几步变换,首先通过整体取负号的方式转化为min,接着把w代入,并将其他的约束条件写下:
\begin{matrix}\mathop{\min}\limits_{\alpha}&\frac{1}{2}\sum_{n=1}^N\sum_{m=1}^N\alpha_n\alpha_my_ny_mz_n^Tz_m-\sum_{n=1}^N\alpha_n\\ s.t.&\sum_{n=1}^Ny_n\alpha_n=0\\&\alpha_n\ge0,for\ n=1,2,...,N \end{matrix}
到这里,现在的目标函数只与\alpha有关,形式满足二次规划(QP),容易能得到结果\alpha,继而通过之前的式子得到W:
W= \sum_{n=1}^{N}\alpha_ny_nz_{n}
  现在只剩下最后一个问题,如何计算b?在之前的简化过程中消去了b,上面的QP解与b无关。KKT条件帮助我们解决这个问题。如果原始问题和对偶问题都有最优解,且解相同,那么会满足KKT条件。这也是一个充分必要条件,其中很重要的一点是complementary slackness(互补松弛性),该条件有下面等式成立,
\alpha_n(1-y_n(W^TZ_n+b))=0\\if\quad one\quad\alpha_n\gt0\Rightarrow b=y_n-W^Tz_n
理论上,我们只需要一个点就可以,但是实际上由于误差,可能会计算所有的b,然后求平均。而且由于这些点满足:
1-y_n(W^TZ_n+b)=0
即这些点就是支持向量。但是我们只用\alpha_n\gt0的点:
SV(a_i\gt0)\subseteq SV\ condidates(on\ boundary)
并且我们可以在计算wb的时候,只计算SV的点,因为其他点\alpha为0:
W= \sum_{n=1}^{N}\alpha_ny_nz_{n}=\sum_{SV}^{N}\alpha_ny_nz_{n}\\b=y_n-W^Tz_n\ with\ any\ SV(z_n,y_n)
  由此我们可以得到,只有支持向量对于wb的计算是有帮助的,其他的点统统无用。我们也可以得到:

SVM的定义
通过对偶最优解,确定支持向量,从而找到最粗的超平面。

4.Messages behind Dual SVM

  通过上面的计算,其实最后w(y_n,z_n)的线性组合,同样,PLA中的w也是(y_n,z_n)的线性组合,只是SVM利用支持向量求解线性组合,PLA使用错误的向量求解。同理,逻辑回归、线性回归也有类似规律,这种现象c被称为”w represented by data”。
  本节使用对偶问题,从另外一个侧面求解了SVM,并且数学推导相对复杂,计算量也增加了许多,因为需要求解一个N*N维度的矩阵Q。但是,为什么要做这些事情呢,hard linear SVM要简单许多呢?其实换成对偶问题是为了利用kernel做铺垫,改kernel可以将维度转化的计算省略,从而可以计算很复杂的转化。


Lecture 3: Kernel Support Vector Machine

标签(空格分隔): 机器学习


1.Kernel Trick

  上一次我们已经阐述了SVM的最佳解可以通过对偶问题来求得,而最终就是为了应用核技巧在其之上。
  核函数:\mathcal{X}是输入空间,又称\mathcal{H}为特征空间,如果存在一个从\mathcal{X}\mathcal{H}的映射:
\phi(x):\mathcal{X}\rightarrow\mathcal{H}
使得对所有的x,x’属于x,函数k(x,x’)满足条件
K(x,x') = \phi(x)\phi(x')
则称K(x,x')为核函数,\phi(x)为映射函数,式中\phi(x)\phi(x')\phi(x)\phi(x')的内积。

  核技巧的思想是,在学习与预测中只定义核函数K(x,x'),而不显式地定义映射函数phi。通常,直接计算K(x,x')比较容易,而通过计算\phi(x)\phi(x')计算K(x,x')并不容易。而值得注意是,\phi是输入空间\mathbf{R}^n到特征空间h的映射,特征空间\mathcal{X}一般是高维的甚至是无穷维的(维度爆炸)。Kernel的本质是将向量feature转换与点积运算合并后的运算。

  常见kernel有线性、多项式线性高斯,各有利弊。

  • 线性kernel
    不做feature转换,直接使用。不需要使用对偶技巧,直接使用linear hard SVM解。

    优点:计算效率高;结果解释性好。
    缺点:需要数据线性可分

2.Polynomial Kernel

  • 多项式kernel
    对x进行多项式展开,一般的形式为:
    K_Q(x, x') = (\zeta + \gamma x^Tx')^Q
    其中a,b,Q为常量。

优点:相比线性kernel,对数据要求没有那么严格
缺点:需要选择的系数较多;Q太大会超出一些计算机的精度,一般Q<=3。

3.Gaussian Kernel

  • 高斯Kernel

有些资料也称为RBF(Radial Base Function),一般形式为:
K(x, x') = \exp (- \gamma ||x^Tx'||^2)^Q
其中a(>0)是常量。高斯kernel独到的地方是可以将原始数据x映射到无限维度空间中,x下面取\gamma=1的例子:
\begin{split} K(x, x') &= \exp (- \gamma ||x^Tx'||^2)^Q \\ &= \exp(- (x)^2) \exp(- (x')^2) \exp(2xx')\\ &= \exp(- (x)^2) \exp(- (x')^2) \left(\sum_{i=0}^{\infty}\frac{(2xx')^i}{i!}\right)\\&= \sum_{i=0}^{\infty}\left(\exp(- (x)^2) \exp(- (x')^2) \sqrt{\frac{2^i}{i!}}\sqrt{\frac{2^i}{i!}} (x)^i (x')^i\right)\\&= \sum_{i=0}^{\infty}\left(\left(\exp(- (x)^2) \sqrt{\frac{2^i}{i!}} (x)^i \right)\left( \exp(- (x')^2) \sqrt{\frac{2^i}{i!}} (x')^i\right)\right)\\ &= \phi(x)^T\phi(x') \end{split}
其中特征转化为:
\phi(x) = \exp(-x^2) \cdot\left(1, \sqrt{\frac{2}{1!}}x, \sqrt{\frac{2^2}{2!}}x^2,...\right)
这样,就完成了向无线维度转换。

优点:调试的系数较少;比线性和多项式更强大,几乎可以适应所有数据;不容易出现计算精度问题
缺点:无线维度无法解释;太强大,容易过拟合;计算开销大。

4.Comparison of Kernels

  核函数是SVM画龙点睛之笔,真的很佩服发现kernel的科学家。在实际使用SVM的过程中,很大一部分精力可能就是选择kernel和相关系数。Kernel还可以自定义,但是需要满足一些条件,具体可以参考讲义相关部分。


Lecture 4: Soft-margin SVM

1.Motivation and Primal Problem

  之前所讨论的SVM都是非常严格的hard版本,必须要求每个点都被正确的区分开。但是,实际情况时很少出现这种情况的,因为噪声数据时无法避免的。所以,需要在Hard-Margin SVM上添加容错机制,使得可以容忍少量噪声数据。

  软化SVM的思路类似正规化,在目标函数添加错误累加项,然后加一个系数,控制对错误的容忍度,并且在约束中添加错误容忍度的约束,形式如下:
\begin{matrix} \mathop{\min}\limits_{b,w,\xi}& \frac{1}{2}w^Tw + C \cdot \sum_{n=1}^{N} \xi_n\\ s.t.&y_n(W^Tz_n + b) \ge 1 - \xi_n \ \text{and} \ \xi_n \ge 0 \ \text{for all n} \end{matrix}
  现在问题就变成了(d+1+N)个变量和2N个约束。ξ用来描述错误的容忍度。C是常量,用来控制容忍度。C越大,由于min的作用,ξ错误就会变小,也就是对错误的容忍度变小,约束变苛刻,边界变窄;反之,容忍度越大,约束变宽松,边界变宽。

2.Dual Problem

  现在,将上面软化后的SVM问题进行对偶转化和简化,得到的结果和之前hard版本十分类似,好像遇到了老熟人:
\begin{split} SVM&=\mathop{\min} \limits_{0 \le \ \alpha_n\le C,\sum_{n=1}^N\alpha_ny_n=0,W= \sum_{n=1}^{N}\alpha_ny_nz_{n}}\left(\frac{1}{2}||\sum_{n=1}^N\alpha_ny_nz_n||^2 - \sum_{n=1}^N\alpha_n\right)\\ \end{split}
与hard-margin SVM相比,只多了N个约束。

3.Messages behind Soft-Margin SVM

α仍然可以使用QP方法计算得到,b的求解也是通过complementary slackness,但是在求解b的过程,可以将向量分为三类,很有参考意义,可用于数据分析。

首先看看complementary slackness条件:
\alpha(1 - \xi_n - y_n(w^Tz_n + b)) = 0\\ (C - \alpha_n)\xi_n = 0

  • \alpha = 0时,\xi =0,表明其没有犯错,样本点被正确分类,远离边界或者在边界上
  • 0 \lt \alpha \lt C时,\xi = 0,向量在边界上, 称之为free SV
  • \alpha = C时,向量在边界上(\xi =0),或者违反边界(\xi \gt0)。

4.Model Selection

  对于Gaussian SVM的参数(C, \gamma)通常通过validation来选择。而通过cross validation优化过的问题在于它优化的只是一个upper bound,于是通常被用于初步的检验。


Lecture 5: Kernel Logistic Regression

1.Soft-Margin SVM as Regularized Model

  我们现在来讲Kernel Logistic Regression,也就是把Kernel的技巧融合到逻辑回归里面。首先我们对比一下Hard-Marin Dual SVM和Soft-Margin Dual:
\text{Hard-Margin Dual}:\\ \begin{matrix} \mathop{\min}\limits_{\alpha} & \frac{1}

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值