吴恩达深度学习 2.2 改善深度神经网络-优化算法

2021/10/3 22:11:20

本文主要是介绍吴恩达深度学习 2.2 改善深度神经网络-优化算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. 知识点

  • Mini-batch梯度下降法

         普通梯度下降法,每一步梯度下降都要对训练集的所有样本进行运算。

         Mini-batch梯度下降法,每一步梯度下降选择训练集样本的子集进行运算。

        Mini-batch梯度下降的算法实现:打乱训练集、对训练集进行切分(比如,切分为64个子集)、更新参数时每次选择一个子集进行运算。

 

        普通梯度下降、随机梯度下降、Mini-batch梯度下降成本函数的比较:普通梯度下降每一次训练时间较长,成本递减;随机梯度下降成本总体趋势向下,呈波动状态;Mini-batch在前两者之间做到一个平衡。

      Mini-batch大小的选择:如果样本数较小,选择普通梯度下降。切分的子集的样本数,要符合CPU/GPU的运算能力。

  • 指数加权平均:将离散波动的观测值变得平滑。

        同时考虑当前观测值和前n个观测值的平均值,对两者进行加权运算,获得指数加权平均值。v_{t}=\beta v_{t-1}+(1-\beta )\theta _{t}

        偏差修正:由于v_{0}=0 ,且\beta较大,t较小时,v_{t}会明显小于\theta _{t},需要修改。修正函数为v_{t}=v_{t}/(1-\beta ^{t})。随着t的增大,\beta ^{t}接近于0 ,不再起到修正作用。

  • 动量梯度下降法:为了减小梯度下降时成本函数上下波动幅度,将指数加权平均用在计算梯度上。v_{dw}=\beta v_{dw}+(1-\beta )dwv_{db}=\beta v_{db}+(1-\beta )dbw=w-\alpha v_{dw}b=b-\alpha v_{db}
  • RMSprop优化算法:(为啥这样更新能起到减小成本波动的作用,没想明白??)

  •  Adam优化算法:将动量梯度下降法和RMSprop结合起来。

        用动量梯度下降计算v_{dw},用RMSprop计算s_{dw},分别修偏差,v_{dw}=v_{dw}/(1-\beta_{1} ^{t})s_{dw}=s_{dw}/(1-\beta_{2} ^{t}),更新参数w=w-\alpha (v_{dw}/\sqrt{s_{dw}+\varepsilon })

  • 学习率衰减:用固定的学习率,当算法在到达最小值附近时,由于噪声存在,使得不会精确收敛,而是会在最小值附近一定范围内波动。学习率衰减,可以让波动减小,计算结果更接近最小值。
  • 局部最优

        存在一些局部最小值点,其梯度为0。

        在高维度的函数中,会存在一些梯度为0的点,并不是局点最小值点,而是在有些维度局部最小,在有些维度局部最大,这样的点为鞍点。

 

        

        

 

 

 



这篇关于吴恩达深度学习 2.2 改善深度神经网络-优化算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程