深度学习笔记(10) 优化算法(二)

深度学习笔记(10) 优化算法(二)

  • 1. Adam 优化算法
  • 2. 学习率衰减
  • 3. 局部最优的问题


1. Adam 优化算法

Adam代表的是 Adaptive Moment Estimation
基本上就是将 MomentumRMSprop 结合在一起

首先初始化,vdW=0,SdW=0,vdb=0,Sdb=0
在第 t 次迭代中,要计算微分,用当前的mini-batch计算dW,db

接下来计算Momentum指数加权平均数:
在这里插入图片描述
用RMSprop计算:
在这里插入图片描述

计算偏差修正:
在这里插入图片描述
最后更新权重,所以W,b更新后是
在这里插入图片描述
超参数β1常用的缺省值为0.9
这是dW的移动平均数,也就是dW的加权平均数
计算这个微分dW,叫做第一矩

超参数β2,推荐使用0.999
建议 ε 为10-8
计算平方数的指数加权平均数dW2,叫做第二矩


2. 学习率衰减

加快学习算法的一个办法就是随时间慢慢减少学习率,称为学习率衰减
减少a的本质在于,在学习初期,能承受较大的步伐
但当开始收敛的时候,小一些的学习率能让步伐小一些

拆分成不同的mini-batch,第一次遍历训练集叫做第一代
第二次就是第二代,依此类推,
将设学习率:
在这里插入图片描述
衰减率: d e c a y − r a t e decay-rate decayrate
代数: e p o c h − n u m epoch-num epochnum
初始学习率: α α α0

也有指数衰减
其中a相当于一个小于1的值
α α α = 0.95epoch-num α α α0,所以学习率呈指数下降

人们用到的其它公式有:
在这里插入图片描述
t 为 mini-batch 的数字


3. 局部最优的问题

如果要创建一个神经网络,通常梯度为零的点并不是这个图中的局部最优点,通常是鞍点
深度学习笔记(10) 优化算法(二)_第1张图片
但是一个具有高维度空间的函数,如果梯度为0
那么在每个方向,它可能是凸函数,也可能是凹函数

如果在2万维空间中,那么想要得到局部最优,所有的2万个方向都需要是这样
但发生的机率也许很小,也许是2-20000
更有可能遇到有些方向的曲线会这样向上弯曲,另一些方向曲线向下弯,而不是所有的都向上弯曲
因此在高维度空间,更可能碰到鞍点

深度学习笔记(10) 优化算法(二)_第2张图片
局部最优不是问题,结果是平稳段会减缓学习
平稳段是一块区域,其中导数长时间接近于0

花上很长时间慢慢抵达平稳段的这个点,因为左边或右边的随机扰动,就能够走出平稳段
Momentum 或是 RMSpropAdam 这样的算法,能够加速学习算法
在这些情况下,更成熟的优化算法,如 Adam 算法,能够加快速度,尽早往下走出平稳段


参考:

《神经网络和深度学习》视频课程


相关推荐:

深度学习笔记(9) 优化算法(一)
深度学习笔记(8) 实践层面(三)
深度学习笔记(7) 实践层面(二)
深度学习笔记(6) 实践层面(一)
深度学习笔记(5) 深层神经网络


谢谢!

你可能感兴趣的:(算法,深度学习笔记)