美文网首页
梯度下降和牛顿法

梯度下降和牛顿法

作者: zuomeng844 | 来源:发表于2020-10-07 08:50 被阅读0次

这里主要讨论梯度下降法和牛顿法的原理

1.梯度下降法

形式:\theta _{k+1}=\theta _{k}-\eta \bigtriangledown L(\theta _{k}),其中L为损失函数,\theta 为模型参数

下面将推导这一形式的由来.

首先,需要用到多元函数的一级泰勒展开式:L(\theta ) = L(\theta_0) + [\bigtriangledown L(\theta_0) ]^T (\theta - \theta_0) + \omicron (\theta - \theta_0)

如果忽略高阶无穷小,即\theta \theta _0\delta领域,那么等号就会变为近似相等,即:L(\theta ) -L(\theta_0) \approx    [\bigtriangledown L(\theta_0) ]^T (\theta - \theta_0)

要使得损失函数L下降更快,只需要等式右边得到最小值。

X^TY=||X||\cdot ||Y||\cdot cos\alpha 可知,当[\bigtriangledown L(\theta _0)](\theta -\theta _0)的夹角余弦cos\alpha =-1时等式右边可取得最小值。

由于[\bigtriangledown L(\theta _0)]对应的方向单位向量可表示为:\frac{[\bigtriangledown L(\theta _0)]}{||[\bigtriangledown L(\theta _0)]||}

[\bigtriangledown L(\theta _0)](\theta -\theta _0)的方向相反(夹角余弦cos\alpha =-1)时有:(\theta -\theta_0)= - \eta  \frac{[\bigtriangledown L(\theta _0)]}{||[\bigtriangledown L(\theta _0)]||} ,其中\eta 为正数。由于分母为标量,因此可以合并到\eta 中,化简为:\theta =\theta_0 - \eta \bigtriangledown L(\theta _0)

需要注意的是,\theta \theta_0要离的充分近,也就是在它的\delta邻域里面,才能忽略掉泰勒展开里面的一次以上的项,否则就不能忽略它了,它就不是高阶无穷小了,约等于的条件就不成立了,所以\eta 步长不能够太大,由此我们就得到了梯度下降法的公式。

2.牛顿法

    形式:\theta_{k+1} = \theta_{k} -H^{-1}g_k , 其中为Hessian矩阵

下面将推导这一形式的由来。

首先,需要用到多元函数的二级泰勒展开式:L(\theta ) = L(\theta_0)  + [\bigtriangledown L(\theta_0)]^T(\theta -\theta_0)+\frac{1}{2} (\theta -\theta_0)^T H(\theta -\theta_0) + \omicron (\theta -\theta_0)

如果忽略高阶无穷小,即\theta \theta_0\delta邻域,那么等号就会变为近似相等,即:L(\theta ) \approx  L(\theta_0)  + [\bigtriangledown L(\theta_0)]^T(\theta -\theta_0)+\frac{1}{2} (\theta -\theta_0)^T H(\theta -\theta_0)

如果是二次函数的话,我们找它梯度等于0的点是非常好找的,基于约等于的式子,两边同时求导。

因为

且H是对称矩阵,所以:\bigtriangledown L(\theta )\approx \bigtriangledown L(\theta_0)+H(\theta_0)(\theta - \theta_0) = 0

下面可以求解一次方程,如果hessian 矩阵可逆,就可以两边乘上 H 的逆矩阵,令g = \bigtriangledown L(\theta _0),则g+H(\theta -\theta_0)=0

两边同时乘H 的逆矩阵,有\theta -\theta_0 = -H^{-1}g

注意一下H和g都是\theta =\theta_0点处取得的,稍作调整为:\theta_{k+1}=\theta_{k}-H^{-1}g_k

有同学肯定会说,那我们去求解方程组,那不是一次就可以求得梯度等于 0 的点 \theta 了嘛, 但是因为我们忽略了后面的高阶无穷小,所以我们只是近似的找到了梯度等于 0 的点,但 是它并没有真正找到,所以我们下次要继续去用这个公式去迭代。

迭代优化时会加上步长:\theta_{k+1} = \theta_{k} -\eta H^{-1}g_k

如果我们的\theta 是二次函数的话,牛顿法一步就可以收敛,前提是步长不做设置,等于 1 的 时候就可以了,这是因为如果原函数L(\theta )是二次函数的话,泰勒展开里面就不是约等于,而是直接等于。

梯度下降法和牛顿法的关系

梯度下降法和牛顿法的关系

梯度下降法只用到了一阶导数的信息,牛顿法既用到了一阶导数的信息,也用到了二阶导数的信息。

梯度下降法是用线性函数来代替目标函数,牛顿法是用二次函数来代替目标函数, 所以说牛顿法的收敛速度是更快的。

但是牛顿法也有它的局限,hessian 矩阵不一定可逆,第二个即使存在,我们来解一个线性 方程组,当 hessian 矩阵规模很大,解线性方程组是非常耗时的,因此出现了一种改进的算 法叫拟牛顿法

相关文章

  • 梯度优化算法

    梯度下降,共轭梯度法;牛顿法,拟牛顿法;信赖域方法,罚函数法。

  • 牛顿法和梯度下降法的学习

    牛顿法和梯度下降法的差别 牛顿法:二次逼近梯度下降法:一阶逼近 牛顿法:对局部凸的函数找到极小值,对局部凹的函数找...

  • 最优化方法

    常见最优化方法 1.梯度下降法 2.牛顿法 3.拟牛顿法 4.共轭梯度法

  • 梯度下降和牛顿法

    这里主要讨论梯度下降法和牛顿法的原理 1.梯度下降法 形式:,其中为损失函数,为模型参数 下面将推导这一形式的由来...

  • 【转】常见的几种最优化方法

    转自Poll 的笔记 阅读目录 梯度下降法(Gradient Descent) 牛顿法和拟牛顿法(Newton's...

  • PyTorch基础知识

    一. 常用优化方法 最小二乘法,牛顿法,拟牛顿法,梯度下降法 二. tensor和numpy array的相互转换...

  • 机器学习中的数学基础之微积分

    常用符号: 重要极限: 常用微分: 偏分 求导法则 泰勒级数的本质是多项式逼近 牛顿法和梯度下降法 牛顿法知道逼近...

  • 2018-08-23

    1.gbdt,xgboost,lgbm的区别(阿里,头条) 2.梯度下降法,牛顿法,拟牛顿法区别(阿里) 3.SG...

  • 梯度下降法与牛顿法

    梯度下降和牛顿法的推导均与泰勒公式有关,所以先介绍泰勒展开公式:基本形式: 上面这个迭代形式将应用到下面的梯度下降...

  • [机器学习必知必会]牛顿法与拟牛顿法

    前言 同梯度下降法一样,牛顿法和拟牛顿法也是求解无约束最优化问题的常用方法。牛顿法本身属于迭代算法,每一步需要求解...

网友评论

      本文标题:梯度下降和牛顿法

      本文链接:https://www.haomeiwen.com/subject/mazxpktx.html