深度學習之遷移學習介紹與使用
深度學習之遷移學習介紹與使用
遷移學習概述
在深度學習領域,透過預訓練模型作為檢查點開始訓練生成神經網路模型實現對新任務的支援,這種方法通常被稱為遷移學習,它的好處是不用再重頭開始設計與訓練一個全新的網路,而是基於已經訓練好的網路模型,在其基礎上進行引數與知識遷移,只需要很少量的計算資源開銷與訓練時間就可以實現對新任務的支援。
要理解遷移學習的整個過程就是要搞清楚下面三件事:
1. 遷移學習遷移什麼
2. 遷移學習是怎麼遷移的
3. 遷移學習什麼時候使用
遷移什麼
在預訓練模型中存在各種特徵資料與權重資訊、有些是與分類識別的物件本身關聯比較緊密的特徵資料與權重資訊,有些是一些比較共性的特徵資料與資訊,是可以被不同的任務或者物件之間共享的,遷移學習就是要遷移那些共性特徵資料與資訊,從而避免再次學習這些知識,實現快速學習。簡單點說遷移學習主要是實現卷積層共性特徵遷移,
怎麼遷移
遷移學習早期也被稱為感應遷移(inductive transfer),為了搞清楚,遷移學習到底是怎麼遷移的,大神Yoshua Bengio等人嘗試定義了一個八層的神經網路,將ImageNet的資料集1000個種類分為A與B兩個分類子集,數量均為500,然後繼續分別訓練生成forzen推斷圖、然後分別將網路模型A與B的前三層分別copy給沒有訓練之前網路B,並對B的餘下5層隨機初始化之後開始訓練這兩個全新的網路(B3B與A3B),他們想透過這個實驗證明、如果B3B與A3B跟之前訓練好的網路B有同樣的識別準確率就說明自遷移網路B3B與遷移網路A3B的前三層網路特徵是共性特徵資訊,可以用來遷移,如果網路效能下降則說明它們含有目標物件相關的個性特徵無法用來遷移。
最終的實驗結果表明,前面7層都是共性特徵,只有網路的最後一層才是任務相關的個性特徵資料,無法進行遷移,整個實驗結果如下:
從上面可以看出單純的遷移學習AnB的方式,隨著層數的增加網路效能不斷下降,但是透過遷移學習加fine-tuning的方式AnB+對前N層進行重新訓練調整最佳化,遷移學習的效果居然比原來的還要好。充分說明遷移學習+fine-tuning是個訓練卷積神經網路的好方法。
什麼時候使用遷移
當我們有相似的任務需要完成的時候,我們可以使用預訓練的相關模型,在此基礎上進行遷移學習即可,這個方面caffe與tensorflow都提供大量的可以用於遷移學習的預訓練模型庫,在github上地址分別如下:
# Caffe
模型
https:
//github.com/BVLC/caffe/wiki/Model-Zoo
# tensorflow
模型
https:
//github.com/tensorflow/models
在實際使用中我們把預訓練的網路稱為base-network,把要遷移的前n層複製到一個到目標網路(target network),然後隨機初始化目標網路的餘下各層、開始訓練進行反向傳播、反向傳播時候有兩種方法可以使用:
-
把前面n層凍結forzen、只對後面的層進行訓練,這種方法適合少的樣本資料,而且隨著層凍結n數值增大、網路效能會下降,這種是單純的遷移學習。
-
不凍結前n層、全程參與訓練不斷調整它們的引數,實現更好的網路效能這種方法稱為遷移學習+fine-tuning
轉自:
https://mp.weixin.qq.com/s/01WLhFsni1WRTYPgqoV0Ww
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2217305/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 深度學習+深度強化學習+遷移學習【研修】深度學習強化學習遷移學習
- 深度學習之PyTorch實戰(4)——遷移學習深度學習PyTorch遷移學習
- 深度學習與CV教程(8) | 常見深度學習框架介紹深度學習框架
- 【深度學習系列】遷移學習Transfer Learning深度學習遷移學習
- 深度學習之TensorFlow的介紹與安裝深度學習
- Android學習之 Scroller的介紹與使用Android
- 什麼是遷移學習?什麼時候使用遷移學習?遷移學習
- 簡述遷移學習在深度學習中的應用遷移學習深度學習
- 機器學習,深度學習相關介紹機器學習深度學習
- 7種深度學習工具介紹深度學習
- 深度學習不得不會的遷移學習Transfer Learning深度學習遷移學習
- 遷移學習系列---基於例項方法的遷移學習遷移學習
- 楊強:深度學習、強化學習、遷移學習的結合及應用進展深度學習強化學習遷移學習
- Laravel 學習之資料庫遷移Laravel資料庫
- 數字資訊化之遷移學習遷移學習
- 1.Django介紹與學習Django
- android中的深度學習——快速風格遷移Android深度學習
- 多工學習模型之ESMM介紹與實現模型
- 多工學習模型之DBMTL介紹與實現模型
- 表示學習介紹
- 深度學習中的框架特點及介紹深度學習框架
- 一文看懂遷移學習:怎樣用預訓練模型搞定深度學習?遷移學習模型深度學習
- Dubbo原始碼學習之-SPI介紹原始碼
- 遷移學習(Transfer Learning)遷移學習
- 深度學習(一)深度學習學習資料深度學習
- 【DB2學習】遷移資料之EXPROTDB2
- mysql學習之-三種安裝方式與版本介紹MySql
- 深度學習趣談:什麼是遷移學習?(附帶Tensorflow程式碼實現)深度學習遷移學習
- 【火爐煉AI】深度學習006-移花接木-用Keras遷移學習提升效能AI深度學習Keras遷移學習
- 帶你用深度學習虛擬機器進行文字遷移學習(附程式碼)深度學習虛擬機遷移學習
- 深度學習系列教程(六)tf.data API 使用方法介紹深度學習API
- 【強化學習】強化學習/增強學習/再勵學習介紹強化學習
- 深度學習系列(2)——神經網路與深度學習深度學習神經網路
- dapr學習:dapr介紹
- Presto學習-presto介紹REST
- 學習內容介紹
- 使用Mobilenet和Keras進行遷移學習!Keras遷移學習
- 【遷移學習】大資料時代下的遷移學習--- 機器學習的下一個前沿遷移學習大資料機器學習