深度学习|李宏毅机器学习2021——Optimization(最优化)

一、The problem in optimization

gradient趋于0,到达critical point(临界点)
(一)两种情况
  1. 卡在local minima(局部最小),并不是很常见
  2. 卡在saddle point(鞍点,微分为0)
(二)鉴别两种情况 by Taylor Series
二、How to get optimization? (一)单个参数(单维) 【深度学习|李宏毅机器学习2021——Optimization(最优化)】针对一个w在update过程中卡住的问题,可以尝试的改进思路:01-样本量:每次update不取全部的样本,而是取一定量的batch,然后进行不断的shuffle;02-步长:自适应学习率;03-每一步的方向:momentum。
1. batch
batch是hyperparameter,需要尝试调参
large-sized batch small-sized batch
time during one epoch short long
训练和预测的效果 较差 较好
  • epoch:使用训练集的完整数据进行一次训练
  • 由于GPU支持并行计算,所以大的batch反而整体的训练速度会更快
  • 由于大的batch容易遇到stuck停下,而small batch有很多的noise,难以陷入小峡谷停下。所以小的batch训练和预测效果更好
Summary:
  • large batch的计算时间更快
  • small batch的训练和预测效果更好
2. Adaptive learning rate(Adaptive lr) 01-随时间调整lr decay:
深度学习|李宏毅机器学习2021——Optimization(最优化)
文章图片

warm up:
深度学习|李宏毅机器学习2021——Optimization(最优化)
文章图片

02-Adagrad: 用微分去调整每一步的学习率,使得recent lr更适应目前图像的斜率情况。
深度学习|李宏毅机器学习2021——Optimization(最优化)
文章图片

其中,
深度学习|李宏毅机器学习2021——Optimization(最优化)
文章图片

03-RMSProp: 调整δ,使recent δ有更多的权重,而不是各个δ均分权重的情况,从而update的步长更大,速度会更快。
深度学习|李宏毅机器学习2021——Optimization(最优化)
文章图片

3. momentum
  • vanilla gradient descent(一般的梯度下降):gradient往其反方向调整(因为是减号)
  • momentum:gradient方向要结合前一步的方向,这样就不会因为遇到临界点而被stuck。也就是说gradient不是单一的这一步的微分,而是结合了之前所有微分。
(二)多个参数(多维) 1.问题:
不同的w的斜率不同,所以同一个lr很难去满足斜率相差很大的参数更新要求
2.解决办法:
01-Adagrad 不同参数初始化不同的lr,然后分别进行Adagrad
★ 02-Adam=RMSProp+Momentum 同时在步长和方向上调整,solve不同参数不同斜率带来的收敛困难的情况。
★ 03-batch normalization
  • 每一层都要做特征标准化,让范围相差很大的x转化为相等的scale。
  • 适用于batch size较大的情况,因为batch size小的话,求均值和方差意义不大。

    推荐阅读