吳恩達深度學習筆記(89)-遷移學習(Transfer Learning)

遷移學習(Transfer Learning)

如果你要做一個計算機視覺的應用,相比于從頭訓練權重,或者說從隨機初始化權重開始蓝角,如果你下載別人已經(jīng)訓練好網(wǎng)絡結構的權重,你通常能夠進展的相當快,用這個作為預訓練使鹅,然后轉換到你感興趣的任務上颇象。

計算機視覺的研究社區(qū)非常喜歡把許多數(shù)據(jù)集上傳到網(wǎng)上,如果你聽說過并徘,比如ImageNet,或者MS_COCO扰魂,或者Pascal類型的數(shù)據(jù)集麦乞,這些都是不同數(shù)據(jù)集的名字,它們都是由大家上傳到網(wǎng)絡的劝评,并且有大量的計算機視覺研究者已經(jīng)用這些數(shù)據(jù)集訓練過他們的算法了姐直。

有時候這些訓練過程需要花費好幾周,并且需要很多的GPU蒋畜,其它人已經(jīng)做過了声畏,并且經(jīng)歷了非常痛苦的尋最優(yōu)過程,這就意味著你可以下載花費了別人好幾周甚至幾個月而做出來的開源的權重參數(shù)姻成,把它當作一個很好的初始化用在你自己的神經(jīng)網(wǎng)絡上插龄。用遷移學習把公共的數(shù)據(jù)集的知識遷移到你自己的問題上,讓我們看一下怎么做科展。

來個栗子

舉個例子均牢,假如說你要建立一個貓咪檢測器,用來檢測你自己的寵物貓才睹。

比如網(wǎng)絡上的Tigger徘跪,是一個常見的貓的名字,Misty也是比較常見的貓名字琅攘。

假如你的兩只貓叫Tigger和Misty垮庐,還有一種情況是,兩者都不是坞琴。所以你現(xiàn)在有一個三分類問題哨查,圖片里是Tigger還是Misty,或者都不是置济,我們忽略兩只貓同時出現(xiàn)在一張圖片里的情況〗馇。現(xiàn)在你可能沒有Tigger或者Misty的大量的圖片,所以你的訓練集會很小浙于,你該怎么辦呢护盈?

我建議你從網(wǎng)上下載一些神經(jīng)網(wǎng)絡開源的實現(xiàn),不僅把代碼下載下來羞酗,也把權重下載下來腐宋。

有許多訓練好的網(wǎng)絡,你都可以下載。舉個例子胸竞,ImageNet數(shù)據(jù)集欺嗤,它有1000個不同的類別,因此這個網(wǎng)絡會有一個Softmax單元卫枝,它可以輸出1000個可能類別之一煎饼。

你可以去掉上圖中的這個Softmax層,創(chuàng)建你自己的Softmax單元校赤,用來輸出Tigger吆玖、Misty和neither三個類別

就網(wǎng)絡而言马篮,我建議你把所有的層看作是凍結的沾乘,你凍結網(wǎng)絡中所有層的參數(shù),你只需要訓練和你的Softmax層有關的參數(shù)浑测。這個Softmax層有三種可能的輸出翅阵,Tigger、Misty或者都不是迁央。

通過使用其他人預訓練的權重掷匠,你很可能得到很好的性能,即使只有一個小的數(shù)據(jù)集漱贱。幸運的是槐雾,大多數(shù)深度學習框架都支持這種操作,事實上幅狮,取決于用的框架募强,它也許會有trainableParameter=0這樣的參數(shù),對于這些前面的層崇摄,你可能會設置這個參數(shù)擎值。

為了不訓練這些權重,有時也會有freeze=1這樣的參數(shù)逐抑。不同的深度學習編程框架有不同的方式鸠儿,允許你指定是否訓練特定層的權重。在這個例子中厕氨,你只需要訓練softmax層的權重进每,把前面這些層的權重都凍結。

另一個技巧命斧,也許對一些情況有用田晚,由于前面的層都凍結了,相當于一個固定的函數(shù)国葬,不需要改變贤徒。因為你不需要改變它芹壕,也不訓練它,取輸入圖像X接奈,然后把它映射到這層(softmax的前一層)的激活函數(shù)踢涌。

所以這個能加速訓練的技巧就是,如果我們先計算這一層(紫色箭頭標記)序宦,計算特征或者激活值睁壁,然后把它們存到硬盤里。你所做的就是用這個固定的函數(shù)互捌,在這個神經(jīng)網(wǎng)絡的前半部分(softmax層之前的所有層視為一個固定映射)堡僻,取任意輸入圖像X,然后計算它的某個特征向量疫剃,這樣你訓練的就是一個很淺的softmax模型,用這個特征向量來做預測硼讽。

對你的計算有用的一步就是對你的訓練集中所有樣本的這一層的激活值進行預計算巢价,然后存儲到硬盤里,然后在此之上訓練softmax分類器固阁。所以壤躲,存儲到硬盤或者說預計算方法的優(yōu)點就是,你不需要每次遍歷訓練集再重新計算這個激活值了备燃。

因此如果你的任務只有一個很小的數(shù)據(jù)集碉克,你可以這樣做。

要有一個更大的訓練集怎么辦呢并齐?

根據(jù)經(jīng)驗漏麦,如果你有一個更大的標定的數(shù)據(jù)集,也許你有大量的Tigger和Misty的照片况褪,還有兩者都不是的撕贞,這種情況,你應該凍結更少的層测垛,比如只把上圖中前面括起來的這些層凍結捏膨,然后訓練后面的層。如果你的輸出層的類別不同食侮,那么你需要構建自己的輸出單元号涯,Tigger、Misty或者兩者都不是三個類別锯七。有很多方式可以實現(xiàn)链快,你可以取后面幾層的權重,用作初始化起胰,然后從這里開始梯度下降久又。

或者你可以直接去掉這幾層巫延,換成你自己的隱藏單元和你自己的softmax輸出層,這些方法值得一試地消。但是有一個規(guī)律炉峰,如果你有越來越多的數(shù)據(jù),你需要凍結的層數(shù)越少脉执,你能夠訓練的層數(shù)就越多疼阔。這個理念就是,如果你有一個更大的數(shù)據(jù)集半夷,也許有足夠多的數(shù)據(jù)婆廊,那么不要單單訓練一個softmax單元,而是考慮訓練中等大小的網(wǎng)絡巫橄,包含你最終要用的網(wǎng)絡的后面幾層淘邻。

最后,如果你有大量數(shù)據(jù)湘换,你應該做的就是用開源的網(wǎng)絡和它的權重宾舅,把這、所有的權重當作初始化彩倚,然后訓練整個網(wǎng)絡筹我。再次注意,如果這是一個1000節(jié)點的softmax帆离,而你只有三個輸出蔬蕊,你需要你自己的softmax輸出層來輸出你要的標簽。

如果你有越多的標定的數(shù)據(jù)哥谷,或者越多的Tigger岸夯、Misty或者兩者都不是的圖片,你可以訓練越多的層们妥。極端情況下囱修,你可以用下載的權重只作為初始化,用它們來代替隨機初始化王悍,接著你可以用梯度下降訓練破镰,更新網(wǎng)絡所有層的所有權重。

這就是卷積網(wǎng)絡訓練中的遷移學習压储,事實上鲜漩,網(wǎng)上的公開數(shù)據(jù)集非常龐大,并且你下載的其他人已經(jīng)訓練好幾周的權重集惋,已經(jīng)從數(shù)據(jù)中學習了很多了孕似,你會發(fā)現(xiàn),對于很多計算機視覺的應用刮刑,如果你下載其他人的開源的權重喉祭,并用作你問題的初始化养渴,你會做的更好。

在所有不同學科中泛烙,在所有深度學習不同的應用中理卑,我認為計算機視覺是一個你經(jīng)常用到遷移學習的領域,除非你有非常非常大的數(shù)據(jù)集蔽氨,你可以從頭開始訓練所有的東西藐唠。總之鹉究,遷移學習是非常值得你考慮的宇立,除非你有一個極其大的數(shù)據(jù)集和非常大的計算量預算來從頭訓練你的網(wǎng)絡。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末自赔,一起剝皮案震驚了整個濱河市妈嘹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绍妨,老刑警劉巖蟋滴,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異痘绎,居然都是意外死亡,警方通過查閱死者的電腦和手機肖粮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門孤页,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人涩馆,你說我怎么就攤上這事行施。” “怎么了魂那?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵蛾号,是天一觀的道長。 經(jīng)常有香客問我涯雅,道長鲜结,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任活逆,我火速辦了婚禮精刷,結果婚禮上,老公的妹妹穿的比我還像新娘蔗候。我一直安慰自己怒允,他們只是感情好,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布锈遥。 她就那樣靜靜地躺著纫事,像睡著了一般勘畔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上丽惶,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天炫七,我揣著相機與錄音,去河邊找鬼蚊夫。 笑死诉字,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的知纷。 我是一名探鬼主播壤圃,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼琅轧!你這毒婦竟也來了伍绳?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤乍桂,失蹤者是張志新(化名)和其女友劉穎冲杀,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體睹酌,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡权谁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了憋沿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旺芽。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖辐啄,靈堂內(nèi)的尸體忽然破棺而出采章,到底是詐尸還是另有隱情,我是刑警寧澤壶辜,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布悯舟,位于F島的核電站,受9級特大地震影響砸民,放射性物質(zhì)發(fā)生泄漏抵怎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一岭参、第九天 我趴在偏房一處隱蔽的房頂上張望便贵。 院中可真熱鬧,春花似錦冗荸、人聲如沸承璃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盔粹。三九已至隘梨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間舷嗡,已是汗流浹背轴猎。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留进萄,地道東北人捻脖。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像中鼠,于是被迫代替她去往敵國和親可婶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容