遷移學習 (Transfer Learning)是什么(總結)
一、總結
一句話總結:
【踩在巨人的肩膀上】:遷移學習就是一層層網絡中每個節點的權重從一個訓練好的網絡遷移到一個全新的網絡里,而不是從頭開始,為每特定的個任務訓練一個神經網絡。
舉圖像識別中最常見的例子,訓練一個神經網絡。來識別不同的品種的貓,你若是從頭開始訓練,你需要百萬級的帶標注數據,海量的顯卡資源。而若是使用遷移學習,你可以使用Google發布的Inception或VGG16這樣成熟的物品分類的網絡,只訓練最后的softmax層,你只需要幾千張圖片,使用普通的CPU就能完成,而且模型的准確性不差。
1、遷移學習使用初衷?
降低資源,比如顯卡、比如訓練時間、比如大量訓練數據
使用深度學習去處理實際生活中遇到的問題,例如圖像和語音的識別時,需要消耗大量的資源,比如顯卡、比如訓練時間。而遷移可以改變這一切,顯著的降低深度學習所需的硬件資源。
舉圖像識別中最常見的例子,訓練一個神經網絡。來識別不同的品種的貓,你若是從頭開始訓練,你需要百萬級的帶標注數據,海量的顯卡資源。而若是使用遷移學習,你可以使用Google發布的Inception或VGG16這樣成熟的物品分類的網絡,只訓練最后的softmax層,你只需要幾千張圖片,使用普通的CPU就能完成,而且模型的准確性不差。
2、遷移學習直觀例子?
你是太子,若是從頭學習治理好國家的知識,肯定是來不及的。你要做的是找你的皇帝老爸,問問他正在做了什么,而他也希望能將他腦子的知識一股腦的轉移到你腦中。這正是遷移學習。
讓我們通過一個直觀的例子來說明什么是遷移學習。
假設你穿越到了古代,成為了太子,為了治理好國家,你需要知道的實在太多了。
若是從頭學起,肯定是來不及的。你要做的是找你的皇帝老爸,問問他正在做了什么,而他也希望能將他腦子的知識一股腦的轉移到你腦中。這正是遷移學習。
即將一個領域的已經成熟的知識應用到其他的場景中。
3、遷移學習使用注意?
使用遷徙學習時要注意,本來預訓練的神經網絡,要和當前的任務差距不大,不然遷徙學習的效果會很差。
使用遷徙學習時要注意,本來預訓練的神經網絡,要和當前的任務差距不大,不然遷徙學習的效果會很差。例如如果你要訓練一個神經網絡來識別肺部X光片中是否包含腫瘤,那么使用VGG16的網絡就不如使用一個已訓練好的判斷腦部是否包含腫瘤的神經網絡。后者與當前的任務有相似的場景,很多底層的神經員可以做相同的事,而用來識別日常生活中照片的網絡,則難以從X光片中提取有效的特征。
4、遷移學習中如何對節點進行微調?
逐層對網絡中每個節點的權重進行微調
另一種遷移學習的方法是對整個網絡進行微調,假設你已訓練好了識別貓品種的神經網絡,你的網絡能對50種貓按品種進行分類。接下來你想對網絡進行升級,讓其能夠識別100種貓,這時你不應該只訓練網絡的最后一層,而應該逐層對網絡中每個節點的權重進行微調。顯然,只訓練最后幾層,是遷移學習最簡單的1.0版,而對節點權重進行微調(fine turing),就是更難的2.0版,通過將其他層的權重固定,只訓練一層這樣的逐層訓練,可以更好的完成上述任務。
5、借鑒網絡結構的遷移學習?
即不是使用已訓練好的網絡的權重,而是使用相同的網絡結構,例如多少層,每層多少節點這樣的信息,然后使用隨機生成的權重作為訓練的起點。
另一種遷移學習的方式是借用網絡的結構,即不是使用已訓練好的網絡的權重,而是使用相同的網絡結構,例如多少層,每層多少節點這樣的信息,然后使用隨機生成的權重作為訓練的起點。例如你要訓練世界上第一個識別fMRI圖像的神經網絡,你就可以借鑒識別X光圖片的神經網絡。
二、遷移學習 (Transfer Learning)是什么
轉自或參考:什么是遷移學習 (Transfer Learning)?這個領域歷史發展前景如何?
https://blog.csdn.net/u010159842/article/details/79202107