过拟合:我们通过训练集训练的模型对于训练样本的的拟合程度十分高,就会放大一些不必要的特征,再对测试集进行测试时,就容易造成测试精度很低,也就是模型的泛化能力很弱,这就是过拟合。
那么我们如何解决过拟合问题呢?
方法一: 增加数据量, 大部分过拟合产生的原因是因为数据量太少了. 如果我们有成千上万的数据, 红线也会慢慢被拉直, 变得没那么扭曲 .
方法二:利用L1、L2正则化。利用惩罚机制,让W参数变化不会过大,这些方法适用于大多数的机器学习, 包括神经网络.
方法三:Dropout仅适用于神经网络。在训练的时候, 我们随机忽略掉一些神经元和神经联结 , 是这个神经网络变得”不完整”. 用一个不完整的神经网络训练一次.到第二次再随机忽略另一些, 变成另一个不完整的神经网络. 有了这些随机 drop 掉的规则, 我们可以想象其实每次训练的时候, 我们都让每一次预测结果都不会依赖于其中某部分特定的神经元. 像l1, l2正规化一样, 过度依赖的 W , 也就是训练参数的数值会很大, l1, l2会惩罚这些大的 参数. Dropout 的做法是从根本上让神经网络没机会过度依赖.