淺析深度遷移學習
人工神經網路(ANN)方法正在經歷它的第三次研究浪潮。
第一次浪潮起源於上世紀50年代,當時單層感知機可以完美的擬合and、or和not等函數,但是這種感知機的提出本質上不能解決非線性的問題如xor。上世紀60年代末在學者們對感知機的質疑聲和對多層感知機發展的悲觀態度中,ANN的第一次浪潮從巔峰跌落。直到80年代中期,多層神經網路發展的停滯才由反向傳播演算法的提出而得以恢復生機,神經網路的發展來到第二次高潮。90年代中期,由於支持向量機(SVM)演算法的出現,其眾多超越多層感知機的優良特性再次使得ANN的研究歸於平靜。06年Hinton在《Science》上撰文被公認為是第三次ANN研究浪潮的起點,隨著計算機計算力、分散式計算以及雲計算等技術的發展,ANN的研究也向深度化發展。超越千層的神經網路模型也不鮮見,這在計算資源不足的時代是斷然不可想像的。
縱然計算力空前發展的今天,在數據爆炸和模型複雜度急劇上升的情況下,訓練一個深度神經網路模型所需的時間常常按天計算。回想構建大型軟體產品過程中肯定會提到模塊化的問題,實現模塊化的重要契機是軟體復用。那麼能否把模塊化的思想套用在深度神經網路模型中,能否一定程度上實現模型的復用呢?在訓練數據不足時,能否將現成相似問題的模型部分遷移到新模型?這就是今天討論的深度遷移學習最關心的問題。
談談遷移學習和深度學習
遷移學習的起源是對機器學習的假設進行拓寬後的結果。要進行傳統的機器學習需要滿足如下兩個條件:
(1)訓練樣本和測試樣本是獨立同分布的
(2)需要有足夠的訓練樣本進行訓練才能得到好的模型
如果訓練樣本充足,通常可以通過隨機抽樣的方法保證兩個數據集相互獨立同分布。然而實際情況中碰到的數據常常數量稀少,數據的分布不能滿足要求,某些數據時效性強。所以遷移學習是運用已存在的知識對不同但相關領域問題進行求解的一種新的機器學習方法。
人體視覺感知的研究表明,人體的視覺感知是具有層級結構的,從紋理到輪廓到形狀再到行為,視覺系統是從低級特徵到高級特徵的組合,對於深度神經網路的研究表明神經網路的訓練過程是不同層級神經網路特徵的無監督學習和樣本標記的有監督學習(fine-tuning)的組合。本文之後兩節將分別介紹利用可視化技術進行深度神經網路特徵的探索,以及深度遷移學習方法初探。
神經網路是黑箱?
卷積神經網路(CNN)在圖像分類和物體識別領域已經創造了超越人類的識別精度,不同於傳統的ANN,CNN除全連接層在最後連接用於構建分類器外,還加入了卷積層和池化層。為了探索CNN提取特徵的不同層級的效應,需要對不同層級進行可視化,反卷積網路通過反池化、反卷積和反激活方法進行層特徵的可視化。下圖為構建的一個7層CNN,1-5層為卷積層,6-7為全連接層。
圖.1一個7層CNN結構圖
反池化: 池化是一個信息丟失的過程,其本質是不可逆的,但是如果在最大值池化的過程中記錄了最大值在矩陣中的位置,那麼就可以近似還原池化前的矩陣,未知的矩陣其他位置的值用0代替。
反激活: 反激活和激活過程一致,都是直接採用relu函數。
反卷積: 使用原來卷積核的轉置就可以從輸出還原原矩陣。
圖.2 反卷積網路
反卷積網路可以看成卷積神經網路的逆,通過把特定層的特徵圖導入反卷積網路可以得到和輸入圖像大小相同的特定層的特徵可視化圖。下圖是上述神經網路在除6-7層全連接層之外的卷積層可視化結果:
圖.3 逐層特徵可視化結果
觀察上圖發現,CNN淺層特徵基本是以輪廓和小的局部特徵為主,隨著層數的增加,出現了可辨識的實體,在較高層網路中特徵表現為複雜實體。CNN網路具有從淺層到深層分別抽取從通用特徵(General Feature)到特殊特徵(Specific Feature)的特點,了解到這裡CNN中層數與特徵的基本規律已經明確,但是在深度遷移學習中如何利用這一規律進行模型構建,下一節會專門就這個問題進行討論。
對於深度神經網路的遷移探索
遷移學習的根本精神就在於求同存異,所以在CNN中遷移學習最為關心的特徵應該是通用特徵(General Feature),通用特徵可以很容易在不同的模型之間復用,但是通用特徵和特殊特徵所存在的層數不存在明顯界限,對於模型特徵的復用,從第幾層開始好呢?這便是進行如下實驗的初衷:
使用Caffe訓練一個8層的AlexNet,使用Imagenet比賽圖像分類數據。把原數據的1000個類別按類別均分成兩份,每份500個類別,標記為A和B,使用A和B分別進行8層的AlexNet的訓練,得到基模型A和基模型B,需要明確AnB和BnB的含義。
遷移網路AnB: 將基模型A的前n層凍結,n+1到第8層所有參數隨機初始化,並且使用B的數據重新訓練n+1到第8層。
自遷移網路BnB: 將基模型B的前n層凍結,n+1到第8層所有參數隨機初始化,並且使用B的數據重新訓練n+1到第8層。
遷移網路BnB+: n+1到第8層所有參數隨機初始化,並且使用B的數據重新訓練1到第8層,需要注意的是由於1到n層並沒有進行鎖定,故其參與了第二次訓練中的參數微調(fine-tuning)。
自遷移網路AnB+: n+1到第8層所有參數隨機初始化,並且使用B的數據重新訓練1到第8層。
圖.4 XnB實驗示意圖
實驗的測試集都來源於B,通過不斷變換n的大小並且多次實驗,精度指標使用top-1 accu,得到結果如下圖:
圖.5 XnB實驗結果
未加入任何處理的baseB性能大概在0.63左右。首先分析AnB,當n=1-3時,AnB的性能只有輕微的下降,說明1-3層的通用特徵可以很好的遷移到B中而並不會有明顯的性能損失,當n=4-5時AnB的性能有明顯的下降,A和B數據的差異導致了4-5層的特徵差異較大,特徵的遷移在n=4-5時效果並不好,在n=6-7時由於大部分層的參數鎖定,神經網路的學習能力很差,精度會出現進一步下降。
BnB與AnB的情況類似,當n=3-5時由於一些具有同適配(co-adaption)的特徵不能只由上層的網路學習得到,所以精度出現了下降。當n大於5時,精度出現了上升,因為BnB本身是由B訓練得到的,隨著可學習的層數減少,BnB和baseB趨同。
AnB+和BnB+的準確度均高於baseB,說明fine-tuning可以補償coadaption帶來的模型精度下降。AnB+性能好於BnB+因為也說明深度遷移學習一定程度上可以提高模型的泛化能力。
圖.6 XnB實驗的精度波動原因
總結
1. 神經網路具有層次化的結構,特徵由淺層到深層遵循從通用特徵到特定特徵的規律。
2. 通用特徵一般表徵為線條、紋理、局部形狀,特定特徵一般表徵為複雜實體或形狀(手、眼、頭部輪廓等)。
3.凍結通用特徵並不會很大程度影響模型精度,在7層的AlexNet中,實驗證明通用特徵為前三層。
4. Fine-tuning可以提高深度遷移模型的泛化能力,保持特徵間的co-adaption。
本文旨在梳理深度遷移學習的基本方法和初步思路,有興趣的同學可以繼續深度追蹤領域大牛楊強教授和龍明勝老師等人的最新研究。
參考文獻
[1] Zeiler M D, Fergus R. Visualizing andUnderstanding Convolutional Networks[M]// Computer Vision – ECCV 2014. SpringerInternational Publishing, 2014:818-833.
[2] Yosinski J, Clune J, Bengio Y, et al. Howtransferable are features in deep neural networks?[C]// InternationalConference on Neural Information Processing Systems. MIT Press, 2014:3320-3328.
[3] Pan S J, Yang Q. A Survey on TransferLearning[J]. IEEE Transactions on Knowledge & Data Engineering, 2010,22(10):1345-1359.
[4] Weiss K, Khoshgoftaar T M, Wang D D. A surveyof transfer learning[J]. Journal of Big Data, 2016, 3(1):9.
[5] Long M, Wang J, Jordan M I. Deep TransferLearning with Joint Adaptation Networks[J]. 2016.


TAG:PKUFineLab |
※深度學習之風格遷移
※帶你用深度學習虛擬機進行文本遷移學習
※淺析深度神經網路遷移方法
※綜述論文:四大類深度遷移學習
※學界 | 綜述論文:四大類深度遷移學習
※白話遷移學習
※再無需從頭訓練遷移學習模型!亞馬遜開源遷移學習資料庫 Xfer
※學界 | 結合主動學習與遷移學習:讓醫學圖像標註工作量減少一半
※結合主動學習與遷移學習:讓醫學圖像標註工作量減少一半
※基於遷移學習的反欺詐方法研究
※一文了解遷移學習經典演算法
※7種常見的遷移學習
※不容錯過的遷移學習領域自適應資源
※俯衝帶超臨界流體元素遷移研究取得進展
※初學者怎樣使用Keras進行遷移學習
※NVIDIA 遷移學習工具包:用於特定領域深度學習模型快速訓練的高級SDK
※從語言到美術的遷移教學
※首爾國立大學:問答問題中基於大規模細粒度監督數據的遷移學習研究
※一個應用於物體識別的遷移學習工具鏈
※CVPR 2018|論文:北京大學計算機研究所深度跨媒體知識遷移方法