一、什么是过拟合?
过拟合(overfitting)是指深度学习中选择的模型所包含的参数过多(即模型容量很大),以至于出现这一模型对已知数据预测得很好,但对未知数据预测得很差的现象。
下图是过拟合的例子,曲线很好的拟合了样本,跟样本非常重叠,同样样本中的噪声数据也被拟合了,噪音数据影响了模型训练。
二、什么是Dropout?
Srivastava等大牛在2014年的论文《Dropout: A Simple Way to Prevent Neural Networks from Overfitting》提出了Dropout正则化:
Dropout的表示每次训练时随机忽略一部分神经元,这些神经元dropped-out了。换句话讲,这些被dropped-out的神经元在正向传播时当前神经元权重值相当于为0,对后面层的神经元的影响被忽略,反向传播时也不会更新其权重。
三、Dropout技术的动机?
Dropout技术的主要动机是防止神经网络在训练过程中,训练数据过拟合。Dropout通过随机丢弃一部分神经元,使得模型在每次迭代中使用不同的神经元组合进行计算,从而减少模型对某些神经元的依赖,增强模型的泛化能力。
四、Dropout如何防止过拟合?
1. 减少神经元之间的相互依赖:由于每次迭代都会随机丢弃一些神经元,所以网络不能过度依赖任何一个特定的神经元。这使得网络能够学习到更独立、更鲁棒的特征表示。
2. 增加模型的泛化能力:由于 dropout 引入了随机性,所以每次迭代都在训练一个略有不同的网络。还学习到了如何适应新的、未见过的数据。这有助于提高模型的泛化能力。
3. 模拟集成学习:Dropout 可以看作是一种集成学习方法。每次迭代都在训练一个略有不同的网络,这些网络可以看作是对原始网络的不同“猜测”。在测试阶段,我们实际上是在平均所有“猜测”的结果,这通常比单一网络的结果要好。