DeepLearning.ai 笔记(四)

本笔记是课程《Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization》的第三周学习笔记,主要内容为超参数的选择策略,Batch normalization(BN层)和softmax函数。


超参数

超参数选择中,学习率是最重要的。可以采用随机撒点的策略,也可以又粗到细搜索的策略。

学习率的随机取值,可以采用对数坐标的随机取值:

指数加权平均的超参数beta随机取值,可以对1-beta进行随机取值,然后采用对数坐标的方式:

在[-3, -1]之间随机取值。

超参数搜索有两个方式:

  1. 当设备资源有限时,可以采用“熊猫”的方式,只训练一个模型,然后一遍又一遍的逐步改善,逐步调试。
  2. 当设备资源充足时,可以采用“鱼子酱”的方式,同时训练多个模型,然后选择其中效果较好的超参数。


Batch normalization

每次只是针对一个mini-batch来计算。

训练算法会把隐层神经元的均值和方差设置成某一固定值。一般是对Z进行BN处理。

使用BN时,参数b通常没用,一般效果会被$\beta$取代,可以省去或者设置为0。

$\beta$和$\gamma$并非超参数,而是可以被训练的参数,它们的size等于Z。

BN层减少了后层神经元输入分布的改变程度,使得它们更加稳定。前层改变。迫使后层适应的程度减小了,它减少了前后层的联系程度,使得网络每层都可以自己学习,有助于加速整个网络的学习。

BN层也有轻微的正则化效果,因为每一个Mini-batch的均值和标准差都是带有一定的噪音的,因此会使得隐层神经元不会过分依赖前面任何一个神经元输出。因为噪音比较小,所以是轻微的正则化效果,而应用较大的batch size可以减少正则化效果,因为噪声减少了。可以把BN和dropout同时使用。

把BN当做一个加速的方式,不要当作正则化的方式,正则化是附带的作用。BN还可以有助于训练更深的神经网络。

在测试时,在所有的Mini-batch上对均值和标准差进行指数加权平均,最后用平均后的均值和标准差,结合训练后得到的$\beta$和$\gamma$,来进行测试。


Softmax

softmax梯度反向传播时,dZl = y^ - y,和logistics回归相同,但和logistics回归维度不同。反向传播时的梯度计算如下(y为标签):
$$
dZ^{[l]}=\hat{y}-y
$$