zl程序教程

您现在的位置是:首页 >  后端

当前栏目

吴恩达深度学习网课 通俗版笔记——(02.改善深层神经网络)第二周 优化算法

算法笔记神经网络 优化 深度 02 改善 通俗
2023-09-27 14:29:07 时间

改善深层神经网络——优化算法

前面已经学会了基本的神经网络搭建,但只有把参数调好,使各项设置更符合自己的问题,才能最大化网络性能


2.1 Mini-batch梯度下降法

在前面的梯度下降法中,使用向量化的方法对多样本进行了处理,当数据量非常大时(百万级以上),一次性迭代遍历所有训练集运算速度会很慢。
在这里插入图片描述
Mini-batch:将训练集分割成k个子集,在每个子集上进行梯度下降,这样每一次迭代都会进行k次梯度下降,这会使运算速度更快。
在这里插入图片描述

2.2 理解Mini-batch梯度下降法

普通batch的代价随迭代次数一般是下降且较为平滑,而Mini-batch一次迭代中随着每个子集的梯度下降往往会有很多噪声,一般不能单调下降。(可能第一个batch容易计算,而第二个batch不容易计算,因此会噪声抖动)
在这里插入图片描述

  • 若Mini-batch大小选择为样本总数m,则等价于普通batch
  • 若选择为1,则称之为随机梯度下降,这种方式失去了向量化的优势,每个样本都做一次梯度下降,会有很多噪声,且不能收敛
  • 最好选择中间值
    在这里插入图片描述
    具体的大小选择:
  • 样本数较小,直接用batch梯度下降法
  • 尝试2的次方数,用的比较多的是64、128、256、512
  • 选择的大小至少得要电脑的CPU/GPU能接受

2.3 指数加权平均

该节用一个计算天气变化趋势的例子,给了一个指数加权平均的直观印象。通过给前一天温度和当天温度设置权重,计算每日温度的指数加权平均值。

(1-β)*当天温度可以这么理解:当天温度所占权重为1-β,则说明总天数一共有1/1-β。比如权重0.5,在说明计算的是两天的温度平均值,影响占了一半嘛。

β越大,平均的天数更多,曲线右移,且更加平坦
在这里插入图片描述

不要太细抠这一节。

2.4 理解指数加权平均

接上一节天气数据的例子,把式子倒过来写,其实是一个递归过程,用后面的项替换到前面的项。V100相当于设置一个权重衰减函数对应系数,和天气温度数据相乘再累和起来。

具体算的是多少天的平均温度就看权重的多少次方约等于1/e,和之前的1/1-β结果一致。
在这里插入图片描述
具体实现就只设置一个变量v,不断重复累和计算即可。
在这里插入图片描述
这节也别细抠,知道大概过程就行了。

2.5 指数加权平均的偏差修正

在指数加权平均数的计算中,初期的估测值往往不怎么准,如果对于这些值比较看重的话,可以使用偏差修正。

偏差修正就是在原来公式计算的基础上,再做一个运算,得到的值会更加准确一些。注意公式中有个t次方!
在这里插入图片描述

2.6 动量梯度下降法

该节介绍动量梯度下降法,这是一种比普通梯度下降法性能更好的参数更新方法,它在收敛到最小值时波动更小,且往最小值的移动速度更快。
在这里插入图片描述
该方法利用的是前面几节介绍的指数加权平均数的思想,计算完dw、db后进行一次加权平均后,再进行参数更新。

2.7 RMSprop

该节介绍RMSprop算法(root mean square),它与momentum近似,都可以加快梯度下降。

实现思路就是momentum做一点变形,目的都是为了消除原始梯度下降中的一些摆动,如下图。
在这里插入图片描述

2.8 Adam优化算法

该节介绍Adam优化算法,该算法是momentum和RMSprop算法的结合。
在这里插入图片描述
偏差修正可根据情况看是否使用,两个β区分开来,更新参数时V和S均用上。

2.9 学习率衰减

该节介绍学习率衰减,它是为了在迭代中让参数值更好地收敛到最优,加快训练速度。

每次迭代均会过一遍整个训练集,学习率衰减就是在每次迭代后都减小α的值,使下一次迭代收敛地更慢,方法如下图。
在这里插入图片描述
衰减公式也可以采用其他的指数衰减,平方根衰减以及手动衰减等等。
在这里插入图片描述

2.10 局部最优的问题

梯度为0的地方并不是局部最优点,一般称为鞍点。
在这里插入图片描述
本节只需知道两个问题:

  1. 局部最优基本上找不到,尤其高维空间里
  2. 平稳段会导致学习非常慢,前面介绍的几个加快梯度下降的优化算法起作用