深度学习技巧之一
本文的深度学习技巧来自吴恩达课程的笔记。运用深度学习解决问题除了需要掌握深度学习的理论知识外,还需要明白其中大量的技巧。这些技巧可以帮助我们加快训练速度,选取更好的算法和更合适的参数。
1、传统划分数据集可能是70/20/10,大数据时代,例如你有100,0000个训练集,你可以用其中的10000个作为测试集,10000个作为验证集,类似98/1/1。 2、训练集和测试集不匹配,至少保证测试集和验证集要来自于同一个分布。 3、没有验证集也是可以的。 4、很少说bias和variance之间的tradeoff 5、训练集错误可以使用更大的网络更长的训练解决,测试集错误使用更多的数据进行训练或者正则化 6、正则化的时候通常都是加关于权重的正则项,不加关于偏移的正则项,是因为通常权重系数很多且是高维的,b很少,加关于b的没什么卵用。 7、dropout regularization是随机剔除某些变量进行训练,通常是模型过拟合的时候用,如果没有过拟合不要用 8、dropout regularization可以对中间的网络的输入随机剔除,因此可以防止中间某些层的过拟合。但某些层的神经元很多(权重矩阵很大)的时候,可以使用较高概率的dropout regularization。一般输入层不会设置很低的dropout概率 9、dropout在测试集的时候不要使用 10、dropout regularization的缺点是损失函数J不好定义 11、除了前面的正则化方法,还可以使用数据增强(翻转、扭曲)、early stopping方法来防止过拟合 12、early stopping也是一种避免过拟合的正则化方法,它有一个缺点。因为optimizing cost function和not overfitting是两个不同的任务,但是early stopping是将他们绑定到一起了。 13、early stopping的优点是不需要尝试大量的参数来优化损失函数 14、将输入数据正规化可以大大加快神经网络的训练速度 15、正规化使用的均值和方差在训练集和测试集中要一样 16、正规化起作用的原因是把原来那种不规则的损失函数变成了一个均匀对称的损失函数形式,能加快速度 17、防止梯度爆炸或者梯度消失的一个解决方案是谨慎选择权重的初始值。一般将权重的方差设置成输入神经元数量的倒数,即
\text{Var}(W^l) = \frac{1}{n^{l-1}}
