1. 程式人生 > >深度學習系列Part2:遷移學習和微調深度卷積神經網路

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

http://www.jiqizhixin.com/article/1465

本文是微軟資料科學家 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 模型的能力帶入到資料不足、時間/成本限制可能阻礙其使用的新領域。這一方法在平均準確率上取得了重大提升,也推進了最先進的基於影象的醫學分類技術的發展。