算法相关|B站(李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning)

总览学习目录篇 链接地址:https://blog.csdn.net/xczjy200888/article/details/124057616

B站:李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning

      • 一、一些符号说明
      • 二、On-line vs Off-line
      • 三、梯度下降算法回顾
        • 1. SGD(Stochastic Gradient Descent)随机梯度下降
        • 2. SGDM(SGD with Momentum)加入动量机制的随机梯度下降
        • 3. Adagrad 自适应梯度算法
        • 4. RMSProp(root mean square prop) 均方根传递
        • 5. Adam梯度下降法
      • 四、真实场景应用
        • 1. Adam和SGDM算法比较
        • 2. SWATS:Adam和SGDM算法结合
        • 3. 改进Adam
          • 3.1 Adam存在的问题

一、一些符号说明
  • θ t θ_t θt?:在stept t t时,模型的参数
  • ? L ( θ t ) ?L(θ_t) ?L(θt?)或者 g t g_t gt?:参数值为 θ t θ_t θt?时的梯度,被用来计算 θ t + 1 θ_{t+1} θt+1?
  • m t + 1 m_{t+1} mt+1?:从step0 0 0到stept t t的积累的势能,被用来计算 θ t + 1 θ_{t+1} θt+1?
  • 最优是什么?
    • 找到一个 θ θ θ,得到最小的 ∑ x L ( θ ; x ) \sum_x{L(θ; x)} ∑x?L(θ; x)
    • 或找到一个 θ θ θ,得到最小的 L ( θ ) L(θ) L(θ)
二、On-line vs Off-line
  • on-line:某个时间点一次放一个样本进模型里
  • off-line:每个时间点一次性把所有样本放进模型里(着重介绍off-line)
    算法相关|B站(李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning)
    文章图片

    算法相关|B站(李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning)
    文章图片
三、梯度下降算法回顾
1. SGD(Stochastic Gradient Descent)随机梯度下降
  • 朝梯度下降的方向优化
    算法相关|B站(李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning)
    文章图片
2. SGDM(SGD with Momentum)加入动量机制的随机梯度下降
  • 动量不仅仅基于梯度,也基于之前的动量值
    算法相关|B站(李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning)
    文章图片

    算法相关|B站(李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning)
    文章图片
  • v i v^i vi是之前所有梯度的加权和
    算法相关|B站(李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning)
    文章图片
3. Adagrad 自适应梯度算法
  • 如果过去的梯度很大, ∑ i = 0 t ? 1 ( g i ) 2 \sqrt{\sum_{i=0}^{t-1}{(g_i)^2}} ∑i=0t?1?(gi?)2 ?就越小,后续优化更新就越缓
  • 自适应梯度算法缺点:分母部分 ∑ i = 0 t ? 1 ( g i ) 2 \sqrt{\sum_{i=0}^{t-1}{(g_i)^2}} ∑i=0t?1?(gi?)2 ?,如果梯度特别大,优化速度会越来越慢
    算法相关|B站(李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning)
    文章图片
4. RMSProp(root mean square prop) 均方根传递
  • 解决自适应梯度算法,随着时间,优化调整步伐越来越小的问题,平方梯度的指数移动平均值不是单调递增的
    算法相关|B站(李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning)
    文章图片
5. Adam梯度下降法
  • Adam梯度下降法,结合了SGDM梯度下降法和RMSProp梯度下降法的方法
  • β β β是一个小于1的值,开始的时候 β 1 m t ? 1 β_1m_{t-1} β1?mt?1?很小,所以用一个 m t ^ = m t 1 ? β 1 t \hat{m_t}=\frac{m_t}{1-β_1^t} mt?^?=1?β1t?mt??来让值稍大一点,稳定一些。随着时间的推移, m t m_t mt?慢慢的稳定下来。
    算法相关|B站(李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning)
    文章图片
四、真实场景应用
1. Adam和SGDM算法比较
  • Adam和SGDM是表现较好且常用的两种梯度下降算法。
  • 两者在不同场景,表现优劣不同。
  • Adam:训练快,泛化差距大,不稳定
  • SGDM:训练稳定,泛化差距小,收敛性更好
  • 下图:泛化的直观意思是:
    (Y 轴表示损失函数的值,X 轴表示变量参数)
    • flat是相对平稳的获取到的一个损失函数的最小值
    • sharp是快速获取到一个损失函数的最小值
算法相关|B站(李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning)
文章图片

2. SWATS:Adam和SGDM算法结合
  • 开始使用Adam,快速下降,后面用SGDM
    算法相关|B站(李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning)
    文章图片
SWATS相关论文:Keskar N S , Socher R . Improving Generalization Performance by Switching from Adam to SGD[J]. 2017.
【算法相关|B站(李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning)】文中,切换两种梯度算法的中间节点没有细说。
3. 改进Adam 3.1 Adam存在的问题
  • 在训练前期,大多数梯度很小且无信息,在训练的最后阶段,由于累计值影响较大,一些 mini-batch 提供大的信息但梯度更新较小。
    算法相关|B站(李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning)
    文章图片
  • 一次更新的最大移动距离上限为 1 1 ? β 2 η \sqrt{\frac{1}{1-β_2}η} 1?β2?1?η ?
    算法相关|B站(李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning)
    文章图片

    推荐阅读