一 概念:
(1)learning from scratch 即學乙個cnn網路with random initialization
(2) 在新的學習任務中,可以利用現有訓練好的imagenet網路提取特徵,去掉最後乙個分類的全連線層,在classifier層之前提取4096維的特徵,這些特徵稱為cnn code
(3)在cnn網路結構中,前面的卷積層保留更多的普遍特徵 generic features(edge detectors 或者corlor blob detectors),後面的卷積層包含更多的 task specific 特徵
二 遷移學習的兩種方法:
(1)利用已有的model提取特徵,後面再訓練分類器,比如linear svm或者softmax classifier。
(2)finetune 已有的model: 即在已訓練好引數的cnn結構上,利用自己的資料進行back propagation, finetune網路已有的weights.
(可以finetune 整個cnn ,也可以保持前面的一些層的引數不變,只finetune網路的高層部分,這樣做可以防止過擬合)
三 遷移學習方法的選擇:
主要取決於資料集的大小,以及與之前預訓練資料集的相關性
(1)資料集很小,與預訓練資料集相似: 直接提特徵,提最後一層的cnn code, 訓練linear 分類器
(2) 資料集很小,與預訓練資料集不同: 在前面的網路層中提feature,訓練線性分類器
(3)資料集很大,與預訓練資料相似:finetune 整個網路層
(4)資料集很大,與預訓練資料不同:可以learning from scratch,也可以在預訓練的model上finetune
四 一些實用的建議:
(1)finetune的時候輸入的大小不受限制,因為forward function的與輸入的spatial 大小無關,只要stride能fit
(2)把需要finetune的網路層的學習率設低一點: 因為我們預設預訓練的model的引數已經很好了,因此在finetune優化的時候採取小的學習率
遷移學習
cnn for visual rcognition --- stanford 2015 (二)
遷移學習的相關概念
遷移學習**雜讀(門外漢級)
sinno jialin pan, qiang yang, a survey on transfer learning, ieee transactions on knowledge and data engineering (ieee tkde)
此外在下面的這個鏈結中還有一些開源的軟體和資料庫:
遷移學習( transfer learning )
遷移學習 自我學習
最近在看ng的深度學習教程,看到self taught learning的時候,對一些概念感到很陌生。作為還清技術債的乙個環節,用半個下午的時間簡單搜了下幾個名詞,以後如果會用到的話再深入去看。監督學習在前一篇部落格中討論過了,這裡主要介紹下遷移學習 自我學習。因為監督學習需要大量訓練樣本為前提,同...
深度學習 遷移學習
遷移學習 把公共的資料集的知識遷移到自己的問題上,即將已經訓練好的模型的一部分知識 網路結構 直接應用到另乙個類似模型中去 小資料集 利用遷移學習,應用其他研究者建立的模型和引數,用少量的資料僅訓練最後自定義的softmax網路。從而能夠在小資料集上達到很好的效果。例如 imagenet 資料集,它...
遷移學習概述
遷移學習的目標是從乙個或者多個源領域任務中提取有用知識並將其用在新的目標任務上,本質上就是知識的遷移再利用。遷移學習的問題關鍵就是要解決三個問題,什麼時候遷移,什麼可以遷移,如何遷移。遷移學習的本質就是知識的再利用,數學上,遷移學習包含 域 和 任務 兩個因素。關於域的定義如下 關於域上的任務定義,...