【优化算法】梯度之上:基于 Jacobian 和 Hessian 矩阵的优化算法

本文探讨了一阶优化算法的局限性,并详细介绍了如何利用二阶导数,特别是Jacobian矩阵和Hessian矩阵,来改进优化效果。通过分析二阶导数的意义,解释了它们如何反映函数的曲率和加速度。文章讨论了在梯度下降法中,二阶导数信息如何帮助预测优化步长的选择,并解释了如何通过Hessian矩阵的特征值判断临界点的性质。此外,还提到了Hessian矩阵的条件数在多维优化中的重要性以及优化算法在深度学习领域的应用挑战。
摘要由CSDN通过智能技术生成

上篇说的,仅仅基于梯度的优化算法称为 一阶优化算法(first-order optimization algorithms), 比如最典型的 梯度下降法;很多时候,仅仅使用一阶的梯度信息效果是不够优良的,还需要考虑梯度的梯度, 也就是 二阶优化算法(second-order optimization algorithms), 二阶优化算法基于的是 Hessian 矩阵, 比较典型的方法如 牛顿法。

先来回顾一下 梯度,Jacobian 矩阵 和 Hessian 矩阵 的关系。开始!
二阶导数(second derivative),即导数的导数,表达的是一阶导数如何随着输入的变化而变化。一阶导数,表征的是曲线的斜率, 同理我们可以认为二阶导数,表征的是曲线(或曲面)的曲率. 借助物理来理解,就是函数表征的是位移和时间的对应关系,一阶导数就是速度,二阶导数就是加速度。

  • 对于一个一次函数而言,比如 y=kx y = k x , 其一阶导数就是常数 k k , 而二阶导数就是 0 , 或者说匀速直线运动,速度恒定,没有加速度。
  • 对于一个二次函数而言,比如自由落体运动 y=12gx2 y = 1 2 g x 2 , 其一阶导数就是 xt x t , 二阶导数就是常数 g g , 也就是说有随 x 变化的斜率和固定的曲率,或者说有固定的加速度然后有随时间变化的速度。

回到优化算法中,我们之前使用的梯度下降法,相当于以当前的速度匀速直线前进一个 δx δ x 时间,作为估计的 y^ y ^ , 当然这个和真实的 y y 肯定是有差距的。二阶导数信息就可以用来预知这个差距的大小:

  • 如果二阶导数/曲率 0 , 也就是没有加速度,匀速直线运动,那么我们用梯度进行预测就是很准确的。

    • 如果二阶导数/曲率 为负, 也就是减速运动,那么我们用梯度进行预测的值就会比真实值大。
    • 如果二阶导数/曲率 为正, 也就是加速运动, 那么我们用梯度进行预测的值就会比真实值小。
    • 对于多元函数,二阶函数有很多,我们将这些导数合并成为 Hessian 矩阵。由于微分算子在任何二阶偏导连续的点处都可以交换,因此 Hessian 矩阵在这些点上是对称的。在深度学习背景中,我们遇到的大多数的 Hessian 矩阵基本都是对称的。而由于Hessian 矩阵是实对称的,我们可以将其分解为一组实特征值和一组特征向量的正交基。那么在特定方向 d d 上的 二阶导数就可以写成 d T H d 。 当 d d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值