CNN訓練之fine tune

目的

深度卷積神經網絡包含大量的參數,這就要求了我們需要大量的數據來訓練它。而針對特定的一個任務,往往只有少量數據集。在此背景下,微調網絡,作爲遷移學習的一種應用,很大程度上(並不是完全)解決了這個困難,比如可以先在ImageNetTinyImages數據集上訓練卷積神經網絡,然後將學習到的特徵表述遷移到特定的圖像分類任務,從而達到一個比較好的效果。但是當圖像的特徵分佈相差較大時,單純的遷移學習就沒有那麼有效了,比如將ImageNet直接遷移到醫學圖像上,就不能得到理想的效果。

微調訓練方案

用原始數據(一般爲有標籤且數量足夠多)訓練得到一個比較好的CNN模型,然後逐漸增加目標數據在原始數據中的比例,迭代微調CNN模型。相比於直接用目標數據,此方法往往效果更好。

CAFFE上的實現

按需調節每一層的學習參數,一般爲增大頂層的學習率,而減小(或設置爲0)底層的學習率。在CAFFE中即修改網絡配置文件中的lr_mult和decay_mult兩個參數。
由於模型加載時是按照層的名字加載的,因此當我們修改修改某一層的結構時,就要修改該層的名字才能開始訓練,比如我們往往會修改最後一層的num_ouput,這樣最後一層就要修改名字。

發佈了21 篇原創文章 · 獲贊 27 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章