深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业

正则化

通常而言,深度学习的Regularization 方法包括:
1. L2正则化
2. Dropout
3. Data Augmentation
4. Early stopping

L2 正则化

“Weight decay”
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业
L2正则为什么会有效果,为什么会regularization?
1. 当λ变大时,w[L]变小,相当于很多神经元不再起效,因此神经网络简化为简单的模型;
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业
2. 神经网络中 activation 采用 tanh,当z在0的较小范围变化时,tanh(z)会呈线性变换。当λ 变大时,w[L] 会变小,由于z[L]=w[L]a[L1]+b[L]使得z[L]变小,使得非线性变换中a[L]=tanh(z[L])接近线性变换,而当整个神经网络中的非线性变换转化为线性变换时,模型的解释能力就慢慢减弱,过拟合就减轻了。
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业

dropout

Inverted dropout, 为了保证输入、输出值的期望不发生变化,即z[L]=w[L]a[L1]+b[L]中的z[L]保持不变,需要除以keep_prob。此时的a[3]除以keep_prob,当然在反向传播的时候da[3]也需要除以keep_prob,保持与输入相同的变化。
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业
dropout的regularization效果:
1. 神经网络神经元数量减少,网络结构变简单,和正则化效果相同;
2. 解耦(具体可阅读《Improving neural networks by preventing co-adaptation of feature detectors》等论文);
3. 和L2正则化的效果相同(产生收缩权重的平方范数的效果shrinking the squared norm of the weights);
4. 添加乘性噪声。

early stopping

early stopping的特性(缺点)
通常对于任何机器学习系统的学习可分为两步:
1、优化成本函数J,最优化包括RMSProp、Adam或其他包含momentum的方法等;
2、预防过拟合,包括一些正则化步骤。
但是early stopping将两者同时进行,无法保证学习的充分性。
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业

Normalizing inputs

使用0均值和方差为1的Normalization方法,在训练集上得到均值和方差并将其用到测试集上。
为什么使用Normalizing? 使得特征都在相似的范围内变化,加快训练速度。
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业

神经网络初始化

在使用不同**函数时,选择不同的初始化权重设置,但是一般这种加速训练的方法优先级不高。
下图He et al初始化方法配合Relu使用能够更好的更快的收敛。
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业

第一周作业

forward-propagation:
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业
back-propagation:(其中标红为relu**函数反向求导的方法)
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业

不同初始化参数效果

参数initialization的不同效果:
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业
以上三种不同的参数初始化方法为:
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业
其中可以看到,1、不同参数的初始化结果不同;2、随机初始化打破了参数对称性,使得不同的神经元学习到不同的知识;3、当随机初始化较大的参数值时,效果不好,收敛速度较慢;4、He initialization方法针对Relu**函数效果较好。

Inverted Dropout

训练的时候采用dropout,在正向传播和反向传播时都需要采用dropout,在测试集上和正常的预测采用相同的方法。
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业
forward_propagation: 通过D1和D2将A1和A2进行部分关闭,然后Dropout(Inverted Dropout),需要通过A1/keep_prob得到和没有dropout相同的输入输出期望值。
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业
back_propagation: 因为在前向传播的时候已经除以了keep_prob,那么在反向传播的时候为了保持相同的值也需要除以keep_prob,反向传播剩余部分和其他的相同。
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第一周正则化 笔记和作业