机器学习中的最优化思想

1、极值问题

1.1、一元函数情况

在高等数学甚至是初等数学中,我们就已经接触过函数的极值这类问题。在初等数学中,例如二次函数的最小值(最大值)求解问题就是一个典型的极值问题,到了大学,我们可以从高等数学的知识中知道,对于任何一个连续函数来说,它的极值点一定是导数为零的点。

1.2、推广到多元函数

以上讨论的都是基于一元函数的情况(即二维平面中),我们可以把这个问题推广到多元函数中(即多维空间中)。在此之前,先引入偏导数和梯度的概念:

  1. 偏导数:在多元函数中,将其中一个自变量看作待求偏导的自变量而将其余自变量都看作常量对函数求导,所得到的就是函数对于该变量的偏导数;
  2. 梯度:有了偏导数的概念之后,梯度就相当简单了,多元函数对每一个自变量求偏导后,将所求得的所有偏导数构成一个矢量,这个矢量就是梯度。(所以梯度是一个矢量)

举个例子来说,二元函数f(x,y)=x^2+2xy+2y^2,它对x的偏导为fx'=2x+2y,对y的偏导为fy'=2x+4y。那么,函数f在(1,2)这一点对x、y的偏导数分别为6、10。将这两个偏导数结合组成一个矢量(6,10)就是f在点(1,2)处的梯度。

有了偏导数和梯度的概念之后,就可以很容易将极值问题推广到多元函数的情况:多元函数的极值点一定是梯度为零的点。

补充一个小问题,在机器学习中,我们处理的都是矢量,即对于每一个现实中的对象,都是将它化为矢量后再做计算的,也就是说我们在机器学习中的函数都是矢量函数(或者叫向量函数)。其实,矢量函数本质上就是多元函数,我们可以将矢量的每一个分量(即每一维的值)看作是多元函数的每一个自变量。


2、迭代法

前面已经提到过,极值点一定是梯度为零的点,所以极值问题加转化成了求导数(梯度)为零的点的问题。对于前面提到过的那个简单的二元函数来说,梯度为零的点很容易求得,直接联立方程组就可以。但在大多数情况下,这个解并不是很容易求的,甚至没有解析解。例如:函数f(x,y)=x^3-2x^{2}+e^{xy}-y^{3}+10y^{2}+100sin(xy),对x、y的偏导分别为:3x^{2}-4x+ye^{xy}+100ycos(xy)xe^{xy}-3y^{2}+20y+100xcos(xy),使这两个偏导数为零再联立方程组,发现,这是两个超越方程,是没法用解析的方法求得的。基于这种情况,就有了迭代法的思想:

将原函数的极值点初始化为x0(x0是矢量),然后以某个迭代公式从x0得到x1(一般情况下x1比x0更接近极值点),这样一直迭代下去,直到迭代了一定的次数或者该点的梯度已经很接近零,我们就可以认为这一点就是极值点。

由以上定义可以知道,迭代法中最核心的问题就是怎样确定迭代方程让x更好更快地趋近于极值点,下面给出梯度下降法和牛顿法的思路:

由于这两种方法的思想都是基于泰勒公式的,所以在讨论梯度下降法和牛顿法之前,我们先给出多元函数的泰勒展开:

f\left ( x \right )\approx f\left ( x_{0} \right )+\bigtriangledown ^{T}f\left ( x_{0} \right )\left ( x-x_{0} \right )+\frac{1}{2}\left ( x-x_{0} \right )^{T}H\left ( x-x_{0} \right )    ,H为Hessian矩阵

此处约等号是由于等式右边还应加上高阶无穷小,在x0的邻域内可以忽略不计

  • 梯度下降法(只展开到一次项):f\left ( x \right )\approx f\left ( x_{0} \right )+\bigtriangledown ^{T}f\left ( x_{0} \right )\left ( x-x_{0} \right ),即f\left ( x \right )-f\left ( x_{0} \right )\approx \bigtriangledown ^{T}f\left ( x_{0} \right )\left ( x-x_{0} \right ),要使f(x)的值比f(x0)更接近于极小值点,可以让f\left ( x \right )-f\left ( x_{0} \right )\approx \bigtriangledown ^{T}f\left ( x_{0} \right )\left ( x-x_{0} \right )\leqslant 0,梯度下降法的思路是使x-x0等于x0处的负梯度值,即f\left ( x \right )-f\left ( x_{0} \right )\approx \bigtriangledown ^{T}f\left ( x_{0} \right )\left ( x-x_{0} \right )=-\bigtriangledown ^{T}f\left ( x_{0} \right )\bigtriangledown f\left ( x_{0} \right ),等式的右边恒小于零,这样就达到了想要的效果,可以得到梯度下降法的初步迭代公式:x_{k+1}=x_{k}-\bigtriangledown f\left ( x_{0} \right ),前面说过,只有在x0的邻域内高阶无穷小才能忽略不计,所以为了避免跳出x的邻域,我们在迭代公式上再加入一个参数:步长,得到:

x_{k+1}=x_{k}-\gamma \bigtriangledown f\left ( x_{0} \right )

从另外一个角度讲,要想使得两个向量的积\bigtriangledown ^{T}f\left ( x_{0} \right )\left ( x-x_{0} \right )小于零,只要使其夹角大于90度即可,且当夹角为180度时,向量的积达到最小值-1,梯度下降法也正是基于这种思想,使x按照下降速度最快的方向进行迭代以找到极值点。

  • 牛顿法(展开到二次项):f\left ( x \right )\approx f\left ( x_{0} \right )+\bigtriangledown ^{T}f\left ( x_{0} \right )\left ( x-x_{0} \right )+\frac{1}{2}\left ( x-x_{0} \right )^{T}H\left ( x-x_{0} \right ),两边同时求导可得:\bigtriangledown f\left ( x \right )\approx \bigtriangledown f\left ( x_{0} \right )+H \left ( x-x_{0}\right ),使其等于零,得:x=x_{0}-H^{-1}\bigtriangledown f\left ( x_{0} \right ),同样要加入参数步长,可以得到牛顿法的迭代公式:

x_{k+1}=x_{k}-\gamma H^{-1}\bigtriangledown f\left ( x_{k} \right )


3、小结

本文从数学的角度出发,较为详细地讨论了两种典型的最优化思想:梯度下降和牛顿法。基于向量函数(多元函数)的泰勒展开,简单推导了梯度下降法和牛顿法。需要注意的是,本文所讨论的都是无约束条件情况下的最优化问题,对于有约束条件的最优化问题更为复杂,笔者在单独的文章中对其进行探讨。另外,本文所使用的Hessian矩阵,不了解的读者可以自行查阅相关概念。

补充:本文在讨论极值问题时都是以极小值为例的,对于极大值问题,只需要将原目标函数取相反数,再求相反数的极小值即可。不足之处,欢迎各位指正!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 机器学习优化算法是使模型的最终结果达到最优化或最合适的方法。加速一阶优化算法pdf是一个常用的机器学习优化算法,其主要通过对原始的梯度下降算法进行改进来提高算法的收敛速度,在实际训练具有非常重要的作用。 加速一阶优化算法的核心思想是将原始梯度下降算法的学习率逐渐变小的过程改为一种自适应的方式,从而达到在不同情况下都能够保证优秀性能的目的。具体而言,算法通过利用预测出的梯度对历史信息的加权来调整学习率大小,从而对不同大小的梯度设置合适的学习率,避免了在更新的过程一味加大和减小学习率,也可以避免过度振荡。 在实践,加速一阶优化算法pdf在处理高维函数、解决非凸问题以及处理复杂任务的方面表现良好,因为它可以快速提供全局最优或最小的解,并且能够在更少的迭代次数内达到最优结果。同时,算法可以方便地扩展到神经网络、深度学习等领域,并且具有比其他优化算法更好的稳定性和可靠性。 总之,加速一阶优化算法pdf是机器学习优化算法领域涌现的一种全新的方法,其主要特点是自适应的学习率以达到更快的收敛速度。在实践,算法具有应用广泛的优秀性能和强大的稳定性,同时还可以实现在高维、非凸和基于神经网络的复杂任务优化处理。 ### 回答2: 机器学习的加速一阶优化算法pdf是指一类能够提高模型训练效率的算法。在机器学习,为提高模型精度,通常需要通过迭代优化损失函数的方式进行训练。一阶优化算法指的是只利用一次梯度信息进行优化的算法,如随机梯度下降(SGD)。然而,传统的一阶算法通常存在训练缓慢、易陷入局部最优等缺点。 加速一阶优化算法解决了这些问题。其最著名的算法是动量(Momentum)算法,在梯度下降的基础上加上一个动量项,使得参数更新更加平滑。其余算法包括Nesterov加速梯度下降(NAG)、Adagrad、Adadelta、RMSProp、Adam等。 这些算法在提升训练速度的同时,也能保证模型的精度。例如,Adam算法不仅具有快速收敛的特点,还能处理稀疏梯度、自适应学习率等问题。因此,在实际应用,这些算法得到广泛的使用。 总之,机器学习的加速一阶优化算法pdf是提高模型训练速度和精度的一类算法。根据不同的应用场景,可以选择适合的算法以提升模型性能。 ### 回答3: 机器学习的加速一阶优化算法pdf是一种针对机器学习常见的一阶优化问题的优化算法,并且具有加速计算的特性。 在机器学习,存在很多需要优化的问题,比如回归、分类、聚类等。这些问题都可以转化为一阶优化问题,即求解目标函数的梯度并使其为零,从而得到最优解。但通常情况下,求解梯度需要大量计算,时间成本较高。因此,如何加速求解成为机器学习的一个重要问题。 加速一阶优化算法pdf就是一种能够加速求解过程的优化算法。它的基本思想是在不影响结果的前提下,尽可能地减少计算量。具体来说,它使用了一些技巧,比如自适应加步长、动量法等,从而在保证结果准确的前提下,进一步优化了计算效率。 总之,加速一阶优化算法pdf对于机器学习问题的求解具有重要意义,它能够在大大减少计算成本的同时,提高算法的效率和精度。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值