关于感知机与支持向量机中算法策略的一些总结

1.引言

最近深入研究了一下感知机(Perceptron)与支持向量机(SVM)的数学推导,总算是弄明白了对偶问题、凸二次规划等到底是怎么回事。不得不承认,机器学习算法还是得从数学入手,跟着一起推导证明,才能真正体会到算法中的精妙所在。这篇博文不对算法细节和推导作过多说明,主要是记录一下自己对感知机和支持向量机在算法策略的选择理由上的一些体会和总结。

2.对偶问题

拉格朗日对偶性(Lagrange Duality)是在感知机与支持向量机中都用到了的经典规划问题,主要思想是是一个原始问题对应着一个对偶问题,在满足某些条件(KKT等)时,求解对偶问题将等价于求解原始问题,而在这两种算法中,求解对偶问题都比求解原始问题要简单。关于对偶问题的详细说明这里就不多赘述了,网上有许多不错的文章,以及李航的《统计学习方法》中附录三对于对偶问题的数学推导非常详细,都是很好的学习资料。下面就对偶问题的特点及为什么要使用对偶问题展开讨论。

2.1 Perceptron中的对偶问题

感知机中的原始优化问题是: min ⁡ w , b L ( ω , b ) = − ∑ x ∈ M y i ( ω ⋅ x i + b ) \min_{w,b}L(\omega,b)=-\sum_{x\in M}y_i(\omega\cdot x_i+b) w,bminL(ω,b)=xMyi(ωxi+b)
其中,M指的是训练样本中误分类的样本集合。
优化问题对应的感知机模型是: f ( x ) = s i g n ( ω ⋅ x + b ) f(x)=sign(\omega\cdot x+b) f(x)=sign(ωx+b)
下面来看原始问题对应的对偶问题,作者没有找到优化问题的对偶问题,所以只展示感知机模型的对偶形式: f ( x ) = s i g n ( ∑ j = 1 N α j y j x j ⋅ x + b ) f(x)=sign(\sum_{j=1}^N\alpha_jy_jx_j\cdot x+b) f(x)=sign(j=1Nαjyjxjx+b)
公式中为什么用j而不用i,我想是因为样本集是用 x i x_i xi表示,所以要避免混淆。
Perceptron使用的优化算法是梯度下降法(Gradient Decent),所以在训练过程中需要将每个样本代入 f ( x ) f(x) f(x)来求出对 ω \omega ω或者是对 α \alpha α的导数。
原始问题中,我们选取每个样本点 x i x_i xi要与新一轮的权重 ω \omega ω相乘,由于 ω \omega ω是不断更新的,所以这个步骤是不能提前计算的。
而在对偶问题中, x i x_i xi的运算只体现在了与 x j x_j xj的内积运算上,这是不会随着算法的进行而变化的,再加上在计算机中(以python的numpy为例),矩阵的内积运算是极快的,所以我们可以在最开始将所有样本点间的内积计算好,存放在一个矩阵中,在梯度下降过程中,只需要在矩阵中取值即可,这个矩阵也叫做Gram matrix
至此,我们可以看出,通过对原始问题的对偶变换,我们将原本需要穿插在训练全过程中的繁琐计算转换为了一步到位的高速计算,这大大提高了计算机的训练效率。

2.2 SVM中的对偶问题

还是先展示公式。
SVM的原始优化问题: min ⁡ ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 \min_{\omega ,b}\cfrac{1}{2}||\omega||^2 ω,bmin21ω2 s . t . y i ( ω ⋅ x i + b ) − 1 ≥ 0 , i = 1 , 2 , . . . , N s.t.\quad y_i(\omega \cdot x_i+b)-1\geq0, i=1,2,...,N s.t.yi(ωxi+b)10,i=1,2,...,N
看不懂公式的话请去查看SVM的推导。
SVM的决策模型: f ( x ) = s i g n ( ω ∗ ⋅ x + b ∗ ) f(x)=sign(\omega^*\cdot x+b^*) f(x)=sign(ωx+b)
这里的 ω ∗ \omega^* ω b ∗ b^* b代表的是最大间隔超平面对应的 ω \omega ω b b b,因为SVM并不是使用梯度下降法对感知机模型作优化,所以公式中直接给出了最优解。
相应地,SVM的对偶优化问题是: min ⁡ α 1 2 ∑ i = 1 j = 1 α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i \min_\alpha \cfrac{1}{2}\sum_{i=1}^{j=1}\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i αmin21i=1j=1αiαjyiyj(xixj)i=1Nαi s . t . ∑ i = 1 N α i y i = 0 s.t. \quad \sum_{i=1}^{N}\alpha_iy_i=0 s.t.i=1Nαiyi=0 α i ≥ 0 , i = 1 , 2 , . . . , N \alpha_i\geq0,\quad i=1,2,...,N αi0,i=1,2,...,N
对偶决策模型是: f ( x ) = s i g n ( ∑ i = 1 N α ∗ y i ( x ⋅ x i ) + b ∗ ) f(x)=sign(\sum_{i=1}^N\alpha^*y_i(x\cdot x_i)+b^*) f(x)=sign(i=1Nαyi(xxi)+b)
SVM中的对偶形式的优势就比Perceptron更明显了,原因有三:

  1. 决策函数仍然以样本内积形式计算,与2.1中一样,求解时更方便
  2. SVM的一个重大突破就是它可以对非线性可分的数据进行分类,其关键手法核技巧(Kernel trick)的引入与内积空间的计算密不可分。正因为对偶问题中的内积空间计算,使得核技巧能被引入,进而使对非线性可分数据进行高维映射时可以避开具体的映射函数计算,使训练变得可行。
  3. 对偶问题使得原本要对高维向量 ω \omega ω优化问题转换成了对 α \alpha α的优化问题, ω \omega ω的维度与样本的特征有关,而 α \alpha α的数量只与样本的数量相关,对计算机来说,求解有限的数值可比求解向量要容易多了。

3. 两种算法的优化策略

相信在刚开始学习机器学习时,看完一些数学推导后总会有些困扰,即为什么要使用梯度下降法而不直接使用费马大定理求极值? 。如果有这样的困扰,相比要思路进入了一个死胡同,下面针对人与计算机的计算模式进行讨论。

3.1 人的计算

  1. 给定一个凸优化问题,如 f ( x ) = 2 x 2 f(x)=2x^2 f(x)=2x2求极值,相信任何人都能一眼看出来,但现在我们先假设这是一个未知的问题,答案需要等着我们的求解。如果使用梯度下降法求解,我们就需要先初始化一个值 x 0 x_0 x0,代入 f ′ ( x ) = x f^\prime(x)=x f(x)=x中,然后设定一个步长Learning rate α \alpha α,求解 x n e w = x 0 − α f ′ ( x 0 ) x^{new}=x_0-\alpha f^\prime(x_0) xnew=x0αf(x0), 然后不断迭代此过程,最终将会得到一个满足停止条件的解,例如 f ′ ( x ) = 0 f^\prime(x)=0 f(x)=0
  2. 可以看出,如果让人使用梯度下降法去求解此问题,是非常麻烦的,而恰巧人又非常擅长解方程,所以我们往往不会初始化 x 0 x_0 x0,而是直接令 f ′ ( x ) = 0 f^\prime(x)=0 f(x)=0,来求得对应的最优解x。

3.2 计算机的计算

对于计算机来说,它可不能向人一样去解 f ′ ( x ) = 0 f^\prime(x)=0 f(x)=0这个方程,就像对于方程 a x = b ax=b ax=b,你不成把这个方程直接扔给计算机让它得出a给你,毕竟在计算机中变量是要初始化的,你只能告诉计算机 x = b a x=\cfrac{b}{a} x=ab。所以,费马大定理对计算机不管用,只能通过初始化初值再不断梯度下降来求得最优解。

3.3 优化策略的总结

  1. 当我们看数学证明时,会看到公式其实都是求极值的方法,但这些方法都是人算的,不是我们想要交给计算机的方法。另外,不管是在SVM还是Perceptron中,我们选择对偶性质等等优化方案,都是为了使计算机求解实现更简单或是提高训练效率。
  2. 前文所述的也不尽然,因为在某些情况下,我们的目标函数往往也无法求得导数为0的点,所以只能使用梯度下降法不断向最优解逼近。
  3. 梯度下降法当然也不是唯一的方法,如SVM中使用的序列最小最优化(SMO)算法就比梯度下降的速度要快很多。

4. 总结

经典机器学习算法的学习离不开对数学推导的理解,深度调参的同时也应该回归到对经典算法的踏实学习中来。

Reference

李航,《统计学习方法》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值