优化算法

1. 相关概念

  • 优化

    改变x以最大化、最小化某个函数f(x)的任务

  • 目标函数、准则、代价函数、损失函数、误差函数

    最大化、最小化的函数

  • 用*上标表示最大化最小化函数的x的值

    \[x^{*}=argminf(x) \]

2. 梯度下降

2.1 直观理解

沿着函数的下坡方向(导数反方向),直到最小

image-20230530141604804

2.2 相关概念

  • 极大值点、极小值点、鞍点

    image-20230530142037124
  • 局部最小值点、全局最小值点

    最理想的情况是找到全局最小值点,但可能比较难,特别是在多维情况下,因此找到近似局部最小值点也是可以接受的

    image-20230530142155139
  • 梯度

    是一个向量,多维函数 f 对所有参数 xi 的偏导数构成的一个向量,记为\(\nabla_xf(x)\),梯度方向是函数值增加最快的方向,梯度方向反方向是函数值下降最快的方向,梯度下降算法参数更新的方向即为梯度方向的反方向

2.3 数学证明

梯度方向是函数值增大方向,梯度反方向是函数值下降方向,沿梯度反方向对参数迭代更新,以最小化损失函数

证明如下

image-20230527160621992

式1,2,3,5说明了要使得函数值减小需要满足的条件,式6说明负梯度方向更新参数函数值下降最快

梯度下降算法描述如下

image-20230527160910801

eps为接近0的正数,N为最大迭代次数,防止出现死循环

学习率\(\alpha\)要设置为接近于0的正数,原因如下,结合式3进行理解

image-20230527161115933

3. 梯度下降法的改进

改进方向主要有学习率衰减梯度方向优化,对应的优化算法如下图所示

image-20230529150028487

3.1 动量法

借用物理学动量得概念,直观理解是依靠惯性保持迭代时的前进方向,用历史梯度信息对当前梯度进行修正,消除病态条件问题上的来回震荡

image-20230527162850248

参数更新公式为

\[x_{k+1}=x_k + v_k \]

\[v_k=-\alpha\nabla f(x_k)+\mu v_{k-1} \]

对动量项展开得

image-20230527162520088

考虑动量的优点

  1. 收敛更快
  2. 有机会逃脱局部最小值(因为动量可能推动它脱离局部极小值)

3.2 梯度截断

gradient clipping,是为了解决梯度爆炸问题,当梯度大于一定的阈值时,就将其截断,在训练原始RNN时采取了此方法,参考RNN - dctwan - 博客园 (cnblogs.com)

按值截断

image-20230529151649767

按模截断

image-20230529151723171

3.3 AdaGrad

Adaptive Gradient Descent,自适应学习率梯度下降,学习率在不断发生变化, 且对于每个参数的学习率是不同的。学习率衰减的思想是:训练刚开始时学习率大一些,以保持收敛速度,在收敛到最优点附近时,要小一些避免震荡

对稀疏特征的理解, 稀疏特征的平均梯度通常很小,所以这些特征的训练速度要慢得多。Adagrad 解决这个问题的思路是: 你已经更新的特征越多,你将来更新的就越少,这样就有机会让其它特征(例如稀疏特征)赶上来。更新这个特征的程度即在这个维度中移动了多少,这个概念由梯度平方的累积和表达

参数更新公式为

image-20230527170147225
  • 优点

    更好地避开鞍点,Adagrad 将采取直线路径,而梯度下降(或相关的动量)采取的方法是“让我先滑下陡峭的斜坡,然后才可能担心较慢的方向”。

  • 缺点

    收敛非常慢,随着参数更新的进行,分母越来越大,逐渐趋向于0

3.4 RMSProp

Root Mean Square Propagation,通过添加衰减因子来解决AdaGrad收敛太慢(学习率趋向于0)的问题

image-20230529135227505

为了看到衰减的效果,在这个对比中,AdaGrad (白色)最初与 RMSProp (绿色)差不多,正如调整学习率和衰减率的预期。 但是 AdaGrad 的梯度平方和累计得非常快,以至于它们很快变得非常巨大(从动画中方块的大小可以看出)。买路费负担沉重,最终 AdaGrad 几乎停止了。 另一方面,由于衰变率的原因,RMSProp 一直将方块保持在一个可控的大小。 这使得 RMSProp 比 AdaGrad 更快。

3.5 Adam

综合考虑了动量和自适应学习率

image-20230529135504718 image-20230529135537226

总结如下

image-20230529143353041

4.二阶优化算法:牛顿法、拟牛顿法

5.约束优化

后续待学习

参考:

  1. 梯度下降的可视化解释(Momentum,AdaGrad,RMSProp,Adam)
  2. 《机器学习的数学》——雷明
  3. 花书
posted @ 2023-05-30 10:31  dctwan  阅读(30)  评论(0编辑  收藏  举报