原文链接:https://blog.csdn.net/u013733326/article/details/79868527
第4周测验 -深度神经网络的关键概念
1.在实现前向传播和反向传播中使用的“cache”是什么?
- 用于在训练期间缓存成本函数的中间值。
- 我们用它传递前向传播中计算的变量到相应的反向传播步骤,它包含用于计算导数的反向传播的有用值。
- 它用于跟踪我们正在搜索的超参数,以加速计算。
- 我们使用它将向后传播计算的变量传递给相应的正向传播步骤,它包含用于计算计算激活的正向传播的有用值。
解:2
1:主要用于将前向传播中的值传递到反向传播。
3:chache不能加速计算
4:应该是从前向传播的值传递到反向传播。
the “cache” records values from the forward propagation units and sends it to the backward propagation units because it is needed to compute the chain rule derivatives.
“cache”记录来自正向传播单元的值并将其发送到反向传播单元,因为需要链式计算导数。
2.以下哪些是“超参数”?
- 隐藏层的大小n[l]
- 学习率α
- 迭代次数
- 神经网络中的层数L
解:1 2 3 4
请注意:你可以查看Quora的这篇文章https://www.quora.com/What-are-hyperparameters-in-machine-learning或者这篇博客http://colinraffel.com/wiki/neural_network_hyperparameters.
3.下列哪个说法是正确的?
- 神经网络的更深层通常比前面的层计算更复杂的输入特征。
- 神经网络的前面的层通常比更深层计算输入的更复杂的特性。
解:1
在《4.4为什么使用深层表示》可以观察到,对于一个人脸识别的网络,第一层用于寻找边缘在哪里;第二层用于寻找面部的不同部分,如眼睛、鼻子等;第三层会把这些部分放在一起,就可以识别或探测不同的人脸了。所以,我们可以看出神经网络的更深层通常比前面的层计算更复杂的输入特征。
4.向量化允许您在L层神经网络中计算前向传播,而不需要在层(l = 1,2,…,L)上显式的使用for-loop(或任何其他显式迭代循环),正确吗?
- 正确
- 错误
解:2
每层参数的计算我们是可以通过向量化来减少计算量,从而避免使用for-loop。但在层间计算中,我们不能避免for循环迭代。
博主注:请想一下输入的迭代次数的参数,在模型内部是用什么实现的?
也是通过循环来实现的,可以使用while循环或者for循环实现。
5.假设我们将n[l]n[l]的值存储在名为layers的数组中,如下所示:layer_dims = [n_x,4,3,2,1]。 因此,第1层有四个隐藏单元,第2层有三个隐藏单元,依此类推。 您可以使用哪个for循环初始化模型参数?
for(i in range(1, len(layer_dims))):parameter[‘W’ + str(i)] = np.random.randn(layers[i], layers[i - 1])) * 0.01parameter[‘b’ + str(i)] = np.random.randn(layers[i], 1) * 0.01
注:参数乘以0.01是为了加快训练速度,也避免了参数过大带来梯度下降缓慢的问题。
6.下面关于神经网络的说法正确的是:
- 层数L为4,隐藏层数为3。
解:1
输入层(L[0])不计数。
As seen in lecture, the number of layers is counted as the number of hidden layers + 1. The input and output layers are not counted as hidden layers.
正如视频中所看到的那样,层数被计为隐藏层数+1。输入层和输出层不计为隐藏层。
7.在前向传播期间,在层l的前向传播函数中,您需要知道层l中的激活函数(Sigmoid,tanh,ReLU等)是什么, 在反向传播期间,相应的反向传播函数也需要知道第l层的激活函数是什么,因为梯度是根据它来计算的,正确吗?
- 正确
- 错误
解:1
这是因为反向传播是需要计算对应的偏导数,而不同的激活函数的偏导数也是不同的,所以反向传播计算时也需要知道激活函数是什么。
During backpropagation you need to know which activation was used in the forward propagation to be able to compute the correct derivative.
在反向传播期间,您需要知道正向传播中使用哪种激活函数才能计算正确的导数。
8.有一些功能具有以下属性:
(i) 使用浅网络电路计算函数时,需要一个大网络(我们通过网络中的逻辑门数量来度量大小),但是(ii)使用深网络电路来计算它,只需要一个指数较小的网络。真/假?
- 正确
- 错误
请注意:参见视频,完全相同的题。
使用简单的函数来描述特征时,我们需要一个大规模的神经网络;而使用复杂的函数来描述特征时,我们就可以用小规模的神经网络来描述。
9.在2层隐层神经网络中,下列哪个说法是正确的?
- W[1]的维度为 (4, 4)
- b[1]的维度为 (4, 1)
- W[2]的维度为 (3, 4)
- b[2]的维度为 (3, 1)
- b[3]的维度为 (1, 1)
- W[3]的维度为 (1, 3)
- 请注意:请参阅图片(找不到图片)。
- 前面的问题使用了一个特定的网络,与层ll有关的权重矩阵在一般情况下,W[1]W[1]的维数是多少
W[l]的维度是 (n[l],n[l?1])