如何使用小數據集改進深度學習模型?
譯文譯者 | 布加迪
審校 | 孫淑娟
眾所周知,深度學習模型對數據的需求量很大。為深度學習模型提供的數據越多,它們的表現就越好。遺憾的是,在大多數實際情形下,這是不可能的。您可能沒有足夠的數據,或者數據過于昂貴而無法收集。
本文將討論在不用更多數據的情況下改進深度學習模型的四種方法。
為什么深度學習需要這么多數據?
深度學習模型之所以引人注目,是由于它們可以學習了解復雜的關系。深度學習模型包含多個層。每一層都學習了解復雜性逐步遞增的數據表示。第一層可能學習檢測簡單的模式,比如邊緣。第二層可能學習查看這些邊緣的模式,比如形狀。第三層可能學習識別由這些形狀組成的對象,依此類推。
每層由一系列神經元組成,它們又連接到前一層中的每個神經元。所有這些層和神經元意味著有大量參數需要優化。所以好的方面是深度學習模型擁有強大的功能。但不好的方面意味著它們容易過擬合。過擬合是指模型在訓練數據中捕捉到過多的干擾信號,無法適用于新數據。
有了足夠的數據,深度學習模型可以學習檢測非常復雜的關系。不過,如果您沒有足夠的數據,深度學習模型將無法理解這些復雜的關系。我們必須有足夠的數據,那樣深度學習模型才能學習。
但是如果不太可能收集更多的數據,我們有幾種技術可以克服。
1. 遷移學習有助于用小數據集訓練深度學習模型。
遷移學習是一種機器學習技術,您可以拿來針對一個問題訓練的模型,將其用作解決相關的不同問題的起點。
比如說,您可以拿來針對龐大狗圖像數據集訓練的模型,并將其用作訓練模型以識別狗品種的起點。
但愿第一個模型學到的特征可以被重用,從而節省時間和資源。至于兩種應用有多大不同,沒有相應的經驗法則。但是,即使原始數據集和新數據集大不相同,照樣可以使用遷移學習。
比如說,您可以拿來針對貓圖像訓練的模型,并將其用作訓練模型以識別駱駝類型的起點。但愿在第一個模型中找出四條腿的功能可能有助于識別駱駝。
想進一步了解遷移學習,可以參閱??《自然語言處理的遷移學習》???。如果您是Python程序員,可能還會發覺??《使用Python實際動手遷移學習》??很有幫助。
2. 嘗試數據增強
數據增強是一種技術,您可以拿現有數據生成新的合成數據。
比如說,如果您有一個狗圖像數據集,可以使用數據增強來生成新的狗圖片。您可以通過隨機裁剪圖像、水平翻轉、添加噪點及其他幾種技術做到這一點。
如果您有一個小數據集,數據增強大有益處。通過生成新數據,可以人為地增加數據集的大小,為您的深度學習模型提供更多可使用的數據。
這些??關于深度學習的講義??有助于您深入了解數據增強。
3. 使用自動編碼器
自動編碼器是一種用于學習低維度數據表示的深度學習模型。
當您有一個小數據集時,自動編碼器很有用,因為它們可以學習將您的數據壓縮到低維度空間中。
有許多不同類型的自動編碼器。變分自動編碼器(VAE)是一種流行的自動編碼器。VAE 是一種生成式模型,這意味著它們可以生成新數據。這大有幫助,因為您可以使用VAE生成類似于訓練數據的新數據點。這是增加數據集大小而無需實際收集更多數據的好方法。
原文標題:??How to Improve Deep Learning Models With Small Datasets??