参考链接:
https://blog.csdn.net/u013733326/article/details/79959713
https://zhuanlan.zhihu.com/p/30146018
第3周测验 - 超参数调整,批量标准化,编程框架
1.如果在大量的超参数中搜索最佳的参数值,那么应该尝试在网格中搜索而不是使用随机值,以便更系统的搜索,而不是依靠运气,请问这句话是正确的吗?
- 错误
- 正确
解:1
应当尝试随机值,不要使用网格搜索,因为你不知道哪些超参数比其他的更重要。
And to take an extreme example, let’s say that hyperparameter two was that value epsilon that you have in the denominator of the Adam algorithm. So your choice of alpha matters a lot and your choice of epsilon hardly matters.
举一个很极端的例子,就比如在Adam算法中防止除零操作的ε的值,一般为1的负8次方,但是和学习率α相比,ε就显得不那么重要了。
2.每个超参数如果设置得不好,都会对训练产生巨大的负面影响,因此所有的超参数都要调整好,请问这是正确的吗?
- 错误
- 正确
解:1
不同超参数的重要性也不尽相同,为了寻找到所有超参数都好的情况,我们需要付出更多的时间和精力,而且也不能保证一定能让所有的超参数都非常好。
We’ve seen in lecture that some hyperparameters, such as the learning rate, are more critical than others.
我们在视频中讲到的比如学习率这个超参数比其他的超参数更加重要。
3.在超参数搜索过程中,你尝试只照顾一个模型(使用熊猫策略)还是一起训练大量的模型(鱼子酱策略)在很大程度上取决于:
- 是否使用批量(batch)或小批量优化(mini-batch optimization)
- 神经网络中局部最小值(鞍点)的存在性
- 在你能力范围内,你能够拥有多大的计算能力(博主注:就是高性能电脑和低性能电脑的区别)
- 需要调整的超参数的数量
解:3
1:这两种与数据规模有关,数据规模大选择小批量优化,数据规模小选用批量优化
2:鞍点的存在性与数据本身的性质有关
4:需要调整的超参数数量与我们选择的优化算法有关
4.如果您认为βββ(动量超参数)介于0.9和0.99之间,那么推荐采用以下哪一种方法来对ββ值进行取样?
r = np.random.rand()
beta = 1 - 10 ** ( - r - 1 )
注:β=1?10?r?1β=1?10^{-r?1}β=1?10?r?1,因为rrr的取值只能在0到1之间,所以当rrr等于0时,β=1?10?1=1?0.1=0.9β=1?10^{?1}=1?0.1=0.9β=1?10?1=1?0.1=0.9,当rrr等于1时,β=1?10?2=1?0.01=0.99β=1?10^{?2}=1?0.01=0.99β=1?10?2=1?0.01=0.99。
5.找到好的超参数的值是非常耗时的,所以通常情况下你应该在项目开始时做一次,并尝试找到非常好的超参数,这样你就不必再次重新调整它们。请问这正确吗?
- 错误
- 正确
解:1
模型中的细微变化可能导致您需要从头开始重新找到好的超参数。
6.在视频中介绍的批量标准化中,如果将其应用于神经网络的第lll层,那么您怎样进行标准化?
解:z[l]z^{[l]}z[l]
将隐藏层的经过激活函数前的z[l]z^{[l]}z[l]进行归一化
7.在标准化公式中,为什么要使用epsilon(?)?
解:为了避免除零操作
加上? 是为了保证数值的稳定,避免分子过于接近0,导致数值过大。
8.批处理规范中关于 γγγ 和 βββ 的以下哪些陈述是正确的?
- 它们可以在Adam、具有动量的梯度下降或RMSprop使中用,而不仅仅是用梯度下降来学习。
- 它们设定给定层的线性变量 z[l]z^{[l]}z[l] 的均值和方差。
解:1 2
9.在训练具有批处理规范的神经网络之后,在测试时间,在新样本上评估神经网络,您应该:
解:执行所需的标准化,在训练期间使用使用了μμμ和σ2σ^{2}σ2的指数加权平均值来估计mini-batches的情况。
训练过程中,我们是在每个Mini-batch使用Batch Norm,来计算所需要的均值 μμμ 和方差。σ2σ^{2}σ2但是在测试的时候,我们需要对每一个测试样本进行预测,无法计算均值和方差。
此时,我们需要单独进行估算均值 μμμ 和方差 σ2σ^{2}σ2。通常的方法就是在我们训练的过程中,对于训练集的Mini-batch,使用指数加权平均,当训练结束的时候,得到指数加权平均后的均值 μμμ 和方差 σ2σ^{2}σ2 ,而这些值直接用于Batch Norm公式的计算,用以对测试样本进行预测。
10.关于深度学习编程框架的这些陈述中,哪一个是正确的?
- 通过编程框架,您可以使用比低级语言(如Python)更少的代码来编写深度学习算法。
- 即使一个项目目前是开源的,项目的良好管理有助于确保它即使在长期内仍然保持开放,而不是仅仅为了一个公司而关闭或修改。
- 深度学习编程框架的运行需要基于云的机器。
解:1 2
1:tensorflow、pytorch、keras
3:基于云的机器是不必要的