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