吴恩达-DeepLearning.ai-02 改善深层神经网络:超参数调试、正则化以及优化
02 改善深层神经网络:超参数调试、正则化以及优化总结
第一周 深度学习的实用层面
1、数据集划分:训练、验证、测试。验证数据是有偏估计,测试数据是无偏估计。
传统(数据量小):验证和测试数据集比较大(60,20,20)
现在(数据量大):验证和测试数据集比较大(98,1,1)
2、数据集分布保持一致:不同来源的数据集数据分布不一样,对于模型来说性能影响很大,所以要保持模型数据分布一致。
偏差方差
欠拟合和过拟合之间的权衡,并指出在深度学习这方面研究很少,一般单独考虑两者。
正则化
L1和L2正则
正则化参数拉姆达足够大,权重矩阵W被设置成接近于0的值(直观就是把隐藏层参数权重W设置为0),这样就消除了这些神经元的许多影响,这就相当于简化网络模型
dropout正则:随机隐退
数据增强:增加数据量
早停:根据训练和测试结果控制训练停止时间
数据预处理:标准化
标准化后的数据有什么优点?通过参数优化图可以看出,标准化后的数据从椭圆变为圆形,这样优化训练的速度会得到提升,有利于模型训练。
梯度消失与梯度爆炸
导数的坡度会变得很大或者很小,甚至会以指数方式减小,加大了训练难度(**函数)。
解决方法:
1、得到好的初始化参数(只是其中之一后面补充)
第二周 优化算法
1、批梯度下降
介于梯度下降和随机梯度下降之间的方法,区别在优化的数据集方法,是一个一个,一块一块,还是全部。
批梯度下降比梯度下降在大数据集上表现更好(速度)。
2、指数加权平均
提出指数加权是为了引出后面的先进优化算法。
详细优化算法介绍:http://blog.****.net/qq_26583415/article/details/79069264
第三周 超参数调试、batch正则化以及优化
1、为超参数选择合适的范围
模型的选择还是看训练效果,比如学习曲线。
2、batch归一化
上面已经介绍标准化,效果类似,可以提高训练速度,并且可以是的超参数选择更加稳定。第二种观点:正则。
batch归一化:出现在**函数之前。
batch归一化在测试数据集上的处理:单独估算,使用指数加权平均(涵盖了所有的batch),在训练过程中会得到每一次min-batch的均值和方差值,但对于测试数据来说可能需要一个一个预测,这是均值和方差的计算变得无效,解决方法是通过追踪训练过程中每个min-batch中的均值和方差来估算测试数据中的均值和方差使得batch归一化可以在测试集上使用。