深度學習系列Part2:遷移學習和微調深度卷積神經網絡

深度學習系列Part2:遷移學習和微調深度卷積神經網絡

2016-08-30 16:28:36          
0 0 0

本文是微軟數據科學家 Anusua Trivedi 所寫的《Deep Learning》系列文章的第二部分,是對遷移學習和微調深度卷積神經網絡的介紹。機器之心此前也已經編譯了該系列的第一部分,詳情點擊《五大主流深度學習框架比較分析:MXNET是最好選擇》。文中涉及到的論文可點擊這裏下載。

這是由幾個部分組成的博客系列,我將在此係列中聊一聊我對深度學習的經驗及認識。在第一部分,我討論了不同的有代表性的框架的優劣,以及我選擇 Theano(與 Lasagne)作爲我的平臺的原因。

第二部分是基於我將要在 2016 年度數據科學論壇(The Data Science Conference)上的發言內容整理的。我將在這部分講解深度卷積神經網絡(DCNN:Deep Convolutional Neural Network),以及遷移學習(Transfer learning)和微調(Fine-tuning)可以如何幫助更好地完成特定領域圖像的訓練過程。

引言

一種叫糖尿病視網膜病變(DR)的眼病是視力減退的常見原因。使用熒光血管造影篩查糖尿病患者有可能降低致盲的風險。目前的研究趨勢已經證明,DCNN 在自動分析大量圖像和識別圖像特徵方面是非常有效的,它可以將圖像分類的誤差降到最低。DCNN 很少從頭開始訓練,因爲得到足夠大樣本量的特定領域的數據集並不是那麼容易。同時由於現代 DCNN 在 GPU 上訓練需要耗時 2-3 周,加州大學伯克利分校的視覺和學習中心(BVLC)發佈了一些最終 DCNN 檢查點。在這篇文章中,我們使用一個預訓練的網絡:GoogLeNet。GoogLeNet 是基於大量真實圖像的 ImageNet 圖像庫預訓練的網絡。我們將學習的 ImageNet 的權重遷移(transfer)作爲網絡的初始權重,然後微調(fine-tune)這些預訓練的通用網絡使它們能夠識別出眼睛的熒光血管造影圖像,從而提高對 DR 眼病的預測效果。  

使用提取的明確特徵預測糖尿病視網膜病變

對於提取 DR 患者的顯著特徵,人們已經進行了很多算法開發和形態圖像處理方面的研究。一個標準的圖像分類技術所用的一般工作流程如下:

  • 噪聲去除和增強對比度的圖像預處理技術

  • 特徵提取技術

  • 分類

  • 預測

Faust 等人的論文提供了一種非常全面的分析模型來提取 DR 篩選的特徵。Vujosevic 等人的論文基於 55 位病人的圖像數據,建立了一個明確形成單發病竈特徵的二元分類器。Acharya 等人的論文使用形態圖像處理技術來提取血管和出血點,然後在一個 331 張圖像的數據集上訓練了一個 SVM(支持向量機)模型。Nayak 等人的論文報告稱在 140 張圖像的數據集的二元分類任務上實現了 90% 的準確率和 90% 的靈敏度(sensitivity)。

然而,所有這些處理方法都是非常耗時耗力的。進一步提高預測精度仍需要大量有標籤的數據。對於圖像數據集的圖像處理和特徵提取是一件十分繁瑣和耗費時間的事情。綜上,我們需要選用一種自動處理圖像和特徵提取的方法——DCNN。

深度卷積神經網絡(DCNN)

圖像數據需要相關領域的專業知識來提取關鍵特徵。DCNN 可以自動從特定領域的圖像中提取特徵,不需要任何特徵工程技術。下列過程使得 DCNN 非常適合用來分析圖像信息:

  • DCNN 可以訓練有很多層的網絡

  • 疊加多個層可以建立改進的特徵空間

  • 初始層用來學習最基本的特徵(例如顏色、邊緣等)

  • 後面的層用來學習更高級的特徵(針對輸入數據集的特徵)

  • 最終層的特徵被送入分類層

jqzx (88).png

C 層是卷積,S 層是池化/採樣

卷積:卷積層由矩形網格的神經元構成。卷積層中每一個的神經元的權重相同。卷積過濾器(convolution filter)由卷積層的權重確定。



jqzx (133).png

卷積

池化:池化層從卷積層獲取小矩形塊,對這些塊進行子抽樣(subsample),以產生該塊的單個輸出。

jqzx (141).png

池化

在這篇文章中,我們將使用谷歌開發的 GoogLeNet DCNN。GoogLeNet 曾贏得了 2014 年的 ImageNet 挑戰賽(ImageNet challenge),並創造了同期結果的最好記錄。開發這個模型的動機是爲了得到一個更深度的同時又在計算上更便宜的計算架構。


jqzx (24).png

GoogLeNet

遷移學習和微調 DCNN

在實踐中,我們通常不會完全從頭開始隨機初始化訓練 DCNN,這是因爲有能滿足深度網絡需求的足夠大小的數據集相當的少見。作爲代替,常見的是在一個大型數據集上預訓練一個 DCNN,然後使用這一訓練的 DCNN 的權重作爲初始設置或作爲相關任務的固定的特徵提取器。

微調(Fine-Tuning):遷移學習策略取決於多種因素,但最重要的兩個是新數據集的大小以及新數據集與原數據集的相似度。謹記網絡前面幾層的 DCNN 特徵更加泛型(generic),在後面層中更加具有數據集特定性(dataset-specific),以下是 4 個主要情景:

  • 新數據集相比於原數據集在大小上更小,在內容上相似:如果數據過小,考慮到過擬合,這對 DCNN 的微調來說不太好。因爲數據類似於原數據,我們期望 DCNN 中更高層次的特徵也與此數據集相關。因此,最好的思路可能是在 CNN 特徵上訓練一個線性分類器。

  • 新數據集相比於原數據集在大小上較大,在內容上相似:由於我們有更多的數據,如果我們試圖微調整個網絡那我們更有信心不會過擬合。

  • 新數據集相比於原數據集更小但內容很不相同:由於數據較小,只訓練一個線性分類器可能更好。因爲數據集不同,從網絡頂部就開始訓練分類器可能不是最好的選擇,這包含更多的數據集特定特徵。另外,從網絡前部的激活函數開始訓練分類器可能更好一點。

  • 新數據集相比於原數據集較大,但內容非常不同:由於數據集很大,我們可能會期望從頭開始訓練一個 DCNN。然而,在實踐中從一個預訓練模型開始初始化權重仍然是一種有益的方法。在這種情況下,我們會有足夠的數據和信心對整個網絡進行微調。

微調 DCNN:對 DR 預測問題而言,我們屬於第四種情景。我們通過持續的反向傳播來微調預訓練的 DCNN 的權重。微調 DCNN 的所有層是可能的,或者保持前面一些層固定(由於擔憂過擬合)而只微調網絡的一些高層部分是可能的。可以這麼做是因爲我們已經觀察到 DCNN 的一些早期特徵中所包含的特徵更爲一般化(如邊緣檢測器或彩色斑點檢測器),可以在許多任務中發揮作用;而 DCNN 中更靠後的層會越來越特定於該 DR 數據中所包含的分類的細節。

遷移學習的限制:因爲我們使用了預訓練的網絡,所以我們在模型架構方面受到了一點點限制。比如說,我們不能隨意移除預訓練網絡中的卷積層。但由於參數共享的關係,我們可以很輕鬆地在不同空間尺寸的圖像上運行一個預訓練網絡。這在卷積層和池化層和情況下是顯而易見的,因爲它們的前向函數(forward function)獨立於輸入內容的空間尺寸。在全連接層(FC)的情形中,這仍然成立,因爲全連接層可被轉化成一個卷積層。

學習率(learning rate):我們假設預訓練的 DCNN 的權重是相對較好的,因此我們可以給正被微調的 DCNN 權重使用較小的學習率。我們不希望太快或過於改變它們,所以我們讓我們的學習率和學習率衰減都保持得非常小。

數據增強(Data Augmentation):非正則化網絡的一個缺點是它們非常靈活:它們可以同樣好地學習特徵和噪聲,而這會帶來過擬合的風險。我們在我們的模型中使用了 L2 正則化來避免過擬合。但即使在那之後,我們也還是觀察到了訓練和驗證 DR 圖像上模型表現的巨大差異,這說明對訓練數據集的微調過程是過擬合的。爲了解決這個過擬合問題,我們在 DR 圖像數據集上使用了數據增強。

數據增強的方法有很多,例如流行的水平翻轉(horizontally flipping)、隨機修剪(random crop)和色彩抖動(color jittering)。因爲這些圖像中的顏色信息是非常重要的,所以我們只是對圖像進行了不同角度(0, 90, 180, 270 度)的旋轉。

使用 DR 圖像替換預訓練的 GoogLeNet 網絡的輸入層。我們對所有的層都進行了微調,除了最頂上的 2 個預訓練層——這 2 層包含了更一般的獨立於數據的權重。

微調 GoogLeNet:我們在這裏所使用的用於 DR 篩選的 GoogLeNet 最初是在 ImageNet 上訓練的。ImageNet 數據集包含了大約 100 萬張自然圖像和 1000 個標籤/分類。相對而言,我們的有標註的 DR 數據集僅有 30,000 張特定領域的圖像和 4 個標籤/分類。因此,我們的 DR 數據集不足以用來訓練 GoogLeNet 這樣複雜的網絡,所以我們使用了來自根據 ImageNet 訓練的 GoogLeNet 網絡的權重。我們對所有的層都進行了微調,除了最頂上的 2 個預訓練層——這 2 層包含了更一般的獨立於數據的權重。其原本的分類層 loss3/classifier 可以輸出有 1000 個類別的預測,我們將其替換成了一個二元分類層。

jqzx (86).png

微調 GoogLeNet

結論

微調讓我們能將頂級 DCNN 模型的能力帶入到數據不足、時間/成本限制可能阻礙其使用的新領域。這一方法在平均準確率上取得了重大提升,也推進了最先進的基於圖像的醫學分類技術的發展。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章