正则化目的:防止过拟合、增强模型的泛化能力。
什么是 dropout?
在神经网络中,遍历神经网络的每一层,为每一层设置一个概率keep-prob,并以1-(keep-prob)的概率移除一些神经元。 也可以理解为每一个神经元被保留下来的概率为该层的keep-prob。
注意:深度学习模型在训练时使用dropout,在测试时不使用dropout。
Inverted dropout 反向随机激活
- 随机生成矩阵d[l]=np.random.randn(a[l].shape,a[l-1].shape)
- 判断d[l]中每一个元素与keep-prob的大小,若小于keep-prob则被保留下来。
- 新的激活向量为a[l]=np.multiply(a[l],d[l]) <这里是为了把a[l]中相应元素归零,即消除这部分的神经元 >
- 使得a[l]=a[l]/(keep-prob) <随机失活后恢复被保留下来神经元本身的值,即保证a[l]期望不变> 这里把第三步乘上的keep-prob又给除掉了!这是重点!!!