总览学习目录篇 链接地址: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:某个时间点一次放一个样本进模型里
- off-line:每个时间点一次性把所有样本放进模型里(着重介绍off-line)
文章图片
文章图片
1. SGD(Stochastic Gradient Descent)随机梯度下降
- 朝梯度下降的方向优化
文章图片
- 动量不仅仅基于梯度,也基于之前的动量值
文章图片
文章图片
- v i v^i vi是之前所有梯度的加权和
文章图片
- 如果过去的梯度很大, ∑ 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 ?,如果梯度特别大,优化速度会越来越慢
文章图片
- 解决自适应梯度算法,随着时间,优化调整步伐越来越小的问题,平方梯度的指数移动平均值不是单调递增的
文章图片
- 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?慢慢的稳定下来。
文章图片
1. Adam和SGDM算法比较
- Adam和SGDM是表现较好且常用的两种梯度下降算法。
- 两者在不同场景,表现优劣不同。
- Adam:训练快,泛化差距大,不稳定
- SGDM:训练稳定,泛化差距小,收敛性更好
- 下图:泛化的直观意思是:
(Y 轴表示损失函数的值,X 轴表示变量参数)- flat是相对平稳的获取到的一个损失函数的最小值
- sharp是快速获取到一个损失函数的最小值
文章图片
2. SWATS:Adam和SGDM算法结合
- 开始使用Adam,快速下降,后面用SGDM
文章图片
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 提供大的信息但梯度更新较小。
文章图片
- 一次更新的最大移动距离上限为 1 1 ? β 2 η \sqrt{\frac{1}{1-β_2}η} 1?β2?1?η ?
文章图片
推荐阅读
- 算法相关|B站(李宏毅2020机器学习笔记 3 —— 梯度下降Gradient Descent)
- 机器学习|反卷积通俗详细解析与nn.ConvTranspose2d重要参数解释
- 机器学习|Google Colab装载Google Drive(Google Colab中使用Google Drive)
- 机器学习|TensorBoard快速入门(Pytorch使用TensorBoard)
- 机器学习|【学习笔记-李宏毅】GAN(生成对抗网络)全系列(一)
- 机器学习|Pytorch中DataLoader和Dataset的基本用法
- 机器视觉|低速自动驾驶技术(APA)
- 极客日报|极客头条(小米全球第二,雷军签发内部嘉奖令;亚马逊因违反数据隐私被欧盟处以创纪录的 8.88 亿美元罚款)
- 极客日报|小米自动驾驶测试车曝光;马斯克疑回应生9个孩子(帮助应对人口不足危机;亚马逊发布AI编程助手|极客头条)