当前位置: 代码迷 >> 综合 >> 吴恩达 deeplearning.ai - 改善深层神经网络 - 第2周测验
  详细解决方案

吴恩达 deeplearning.ai - 改善深层神经网络 - 第2周测验

热度:71   发布时间:2023-11-11 06:40:34.0

参考链接:

https://blog.csdn.net/u013733326/article/details/79877639

https://zhuanlan.zhihu.com/p/30034654

第2周测验-优化算法

注:部分题目只标注了正确答案

1.当输入从第八个mini-batch的第七个的例子的时候,你会用哪种符号表示第三层的激活?

解:a[3]8(7)

1

[i]{j}(k)上标表示 第i层,第j小块,第k个示例

2.关于mini-batch的说法哪个是正确的?

  1. 在不同的mini-batch下,不需要显式地进行循环,就可以实现mini-batch梯度下降,从而使算法同时处理所有的数据(矢量化)。
  2. 使用mini-batch梯度下降训练的时间(一次训练完整个训练集)比使用梯度下降训练的时间要快。
  3. mini-batch梯度下降(在单个mini-batch上计算)的一次迭代快于梯度下降的迭代。

解:3

1:矢量化不适用于同时计算多个mini-batch。

2:一次训练整个训练集就等价于batch梯度下降。

3:对于普通的梯度下降法,一个epoch只能进行一次梯度下降;而对于Mini-batch梯度下降法,一个epoch可以进行Mini-batch的个数次梯度下降。由于训练集减小了,梯度下降一次迭代也快于梯度下降的迭代。

3.为什么最好的mini-batch的大小通常不是1也不是m,而是介于两者之间?

解:如果mini-batch大小为1,则会失去mini-batch示例中矢量化带来的的好处;如果mini-batch的大小是m,那么你会得到批量梯度下降,这需要在进行训练之前对整个训练集进行处理。

如果mini-batch大小为1,就等价于随机梯度下降,相当于每次只对一个样本进行训练,所以失去了mini-batch示例中矢量化带来的好处。

如果如果mini-batch的大小是m,就等价于batch梯度下降,需要迭代的时间较长,且需要对整个训练集做处理。

4.如果你的模型的成本JJ随着迭代次数的增加,绘制出来的图如下,那么:

2

解:如果你使用的是mini-batch梯度下降,这看起来是可以接受的。但是如果你使用的是下降,那么你的模型就有问题。

使用mini-batch梯度下降会有一些振荡,因为mini-batch中可能会有一些噪音数据。 然而,批量梯度下降总是保证在到达最优值之前达到较低的J。

5.假设一月的前三天卡萨布兰卡的气温是一样的:

一月第一天: θ1 = 10

一月第二天: θ2 = 10

假设您使用β= 0.5的指数加权平均来跟踪温度:v0 = 0,vt =βvt?1 +(1-β)θt。 如果v2是在没有偏差修正的情况下计算第2天后的值,并且vcorrected2是您使用偏差修正计算的值。 这些下面的值是正确的是?

解:v2 = 7.5, vcorrected2 = 10

v0=0, v1=0.5 * 0+(1-0.5) * 10=5, v2=0.5 * 5 + (1-0.5) * 10=7.5

偏差修正后

v0=0, v1=0.5 * 0+(1-0.5) * 10=5, 1-βt=1-(0.5)^2=0.75, vcorrected2=v2/0.75=(0.5 * 5 + (1-0.5) * 10)/0.75=10

6.下面哪一个不是比较好的学习率衰减方法?

解:α = et * α0

这会使得学习率出现爆炸,而没有衰减。

7.您在伦敦温度数据集上使用指数加权平均值, 您可以使用以下公式来追踪温度:vt = β vt -1 +(1 - β)θt。 下面的红线使用的是β= 0.9来计算的。 当你改变β时,你的红色曲线会怎样变化?

3

解:增加β会使红线稍微向右移动;减少β会在红线内产生更多的振荡。

当 β=0.9 时,指数加权平均最后的结果如图中红色线所示;

当 β=0.98 时,指数加权平均最后的结果如图中绿色线所示;

当 β=0.5 时,指数加权平均最后的结果如下图中黄色线所示;

4

可以看出来β增加会导致红线右移,β减少会产生更多振荡

8.看一下这个图:

5

这些图是由梯度下降产生的; 具有动量梯度下降(β= 0.5)和动量梯度下降(β= 0.9)。 哪条曲线对应哪种算法?

解:(1)是梯度下降。 (2)是动量梯度下降(β值比较小)。 (3)是动量梯度下降(β比较大)

6

在利用梯度下降法来最小化该函数的时候,每一次迭代所更新的代价函数值如图中蓝色线所示在上下波动,而这种幅度比较大波动,减缓了梯度下降的速度,而且我们只能使用一个较小的学习率来进行迭代。

如果用较大的学习率,结果可能会如紫色线一样偏离函数的范围,所以为了避免这种情况,只能用较小的学习率。

但是我们又希望在如图的纵轴方向梯度下降的缓慢一些,不要有如此大的上下波动,在横轴方向梯度下降的快速一些,使得能够更快的到达最小值点,而这里用动量梯度下降法既可以实现,如红色线所示。

9.假设在一个深度学习网络中批处理梯度下降花费了太多的时间来找到一个值的参数值,该值对于成本函数J(W[1],b[1],…,W[L],b[L])来说是很小的值。 以下哪些方法可以帮助找到J值较小的参数值?

  1. 尝试使用 Adam 算法
  2. 尝试对权重进行更好的随机初始化
  3. 尝试调整学习率α
  4. 尝试mini-batch梯度下降
  5. 尝试把权值初始化为0

解:1 2 3 4

一定要避免将权重都初始化为0,这样会导致神经元同步更新,无法破坏对称性。

10.关于Adam算法,下列哪一个陈述是错误的?

解:Adam应该用于批梯度计算,而不是用于mini-batch。

Adam 可以同时使用。

  相关解决方案