归一化网络的激活函数(Normalizing activations in a network)
在深度学习兴起后,最重要的一个思想是它的一种算法,叫做Batch归一化,由Sergey loffe和Christian Szegedy两位研究者创造。
Batch归一化会使你的参数搜索问题变得很容易,使神经网络对超参数的选择更加稳定,超参数的范围会更加庞大,工作效果也很好,也会使你的训练更加容易,甚至是深层网络。
让我们来看看Batch归一化是怎么起作用的吧。
当训练一个模型,比如logistic回归时,你也许会记得,归一化输入特征可以加快学习过程。你计算了平均值,从训练集中减去平均值,计算了方差,接着根据方差归一化你的数据集,在之前的笔记中我们看到,这是如何把学习问题的轮廓,从很长的东西,变成更圆的东西,更易于算法优化。所以这是有效的,对logistic回归和神经网络的归一化输入特征值而言。
那么更深的模型呢?
你不仅输入了特征值x,而且这层有激活值a([1]),这层有激活值a([2])等等。
如果你想训练这些参数,比如w([3]),b([3]),那归一化a^([2])的平均值和方差岂不是很好?
以便使w([3]),b([3])的训练更有效率。
在logistic回归的例子中,我们看到了如何归一化x_1,x_2,x_3,会帮助你更有效的训练w和b。
所以问题来了,对任何一个隐藏层而言,我们能否归一化a值,在此例中,比如说a([2])的值,但可以是任何隐藏层的,以更快的速度训练w([3]),b