一、什么是過擬合?
過擬合(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 可以看作是一種集成學習方法。每次迭代都在訓練一個略有不同的網絡,這些網絡可以看作是對原始網絡的不同“猜測”。在測試階段,我們實際上是在平均所有“猜測”的結果,這通常比單一網絡的結果要好。