相关课程内容
二、改善深层神经网络
- 第一周 深度学习的实用层面
知识点总结
1. 训练集与测试集分布不匹配问题
- 训练集(train)
- 验证集(dev)
- 测试集(test):test和dev分布相同
2. 偏差(Bias)与方差(Variance)
(1)高偏差与高方差
(2)降低偏差/方差的方法
现在可以在降低偏差/方差的同时几乎不影响另一个数值的变化。
3. 正则化(Regularization)
- 减小过拟合,降低高方差,提高模型在验证集上的性能,但相应的会影响训练集性能(降低)。
- 在原有的损失函数J基础上加一个正则化项,常用的有L1正则化和L2正则化,它们可以看做是损失函数的惩罚项,对损失函数中的某些参数做一些限制。
(1)L1正则化
(2)L2正则化
(3)Frobenius范数(F范数)
各元素的平方和再开平方根。
(4)dropout(随机失活)正则化
- 注意:在测试阶段不使用dropout函数,否则预测会受到干扰。因为在输出预测时,我们不期望输出结果是随机的。
- 在前向传播和反向传播中都应用dropout。
为保证每层输出的期望值相同,需要除以keep_prob概率值。
(5)其它正则化方法
A. 数据扩增:例如额外生成假训练数据。
B. early stopping:提早终止神经网络训练。
4. 为什么正则化可以减少过拟合
- 减小方差(增大lambd)
- 因为会让网络的权重变得更小,通常认为权重小的网络更为简单(更接近线性),而复杂的网络会拟合出复杂的函数。
5. 归一化输入
- 确保所有的特征在相似的范围内,有利于学习算法运行得更快。
6. 梯度消失与梯度爆炸
7. 神经网络的权重初始化
各种初始化方法:
参考本文里的:2. 随机初始化方法
- (1)全零初始化
- (2)随机初始化
- (3)Xavier初始化
- (4)He初始化
- (5)其他
8. 梯度数值的逼近
9. 梯度检验(Gradient Checking)
梯度检验方法:
注意:
10. 构建深层神经网络
- (1)初始化参数
- (2)前向计算
- (3)计算loss
- (4)反向计算
- (5)更新参数
- 迭代2~5
- (6)预测