【遷移學習】簡述遷移學習在深度學習中的應用
選自MachineLearningMastery
作者:Jason Brownlee
機器之心編譯
參與:Nurhachu Null、劉曉坤
本文介紹了遷移學習的基本概念,以及該方法在深度學習中的應用,引導構建預測模型的時候使用遷移學習的基本策略。
遷移學習是一種機器學習方法,就是把為任務 A 開發的模型作為初始點,重新使用在為任務 B 開發模型的過程中。
深度學習中在計算機視覺任務和自然語言處理任務中將預訓練的模型作為新模型的起點是一種常用的方法,通常這些預訓練的模型在開發神經網路的時候已經消耗了巨大的時間資源和計算資源,遷移學習可以將已習得的強大技能遷移到相關的的問題上。
讀完本文,你將學會如何使用遷移學習來加速訓練過程,提升深度模型的效能。
讀完本文之後,你會了解以下內容:
什麼是遷移學習?如何使用它?
遷移學習在深度學習中的簡單例子。
什麼時候可以在你自己的預測模型問題中使用遷移學習。
什麼是遷移學習?
遷移學習是一種機器學習的方法,指的是一個預訓練的模型被重新用在另一個任務中。
遷移學習和域適應指的是在一種環境中學到的知識被用在另一個領域中來提高它的泛化效能。
——《深度學習》,第 526 頁
遷移學習與多工學習以及概念飄移這些問題相關,它不是一個專門的機器學習領域。
然而,遷移學習在某些深度學習問題中是非常受歡迎的,例如在具有大量訓練深度模型所需的資源或者具有大量的用來預訓練模型的資料集的情況。僅在第一個任務中的深度模型特徵是泛化特徵的時候,遷移學習才會起作用。
在遷移學習中,我們首先在一個基礎資料集和基礎任務上訓練一個基礎網路,然後我們再微調一下學到的特徵,或者說將它們遷移到第二個目標網路中,用目標資料集和目標任務訓練網路。如果特徵是泛化的,那麼這個過程會奏效,也就是說,這些特徵對基礎任務和目標任務都是適用的,而不是特定的適用於某個基礎任務。
——論文《How transferable are features in deep neural networks?》(https://arxiv.org/abs/1411.1792)
深度學習中的這種遷移被稱作歸納遷移。就是通過使用一個適用於不同但是相關的任務的模型,以一種有利的方式縮小可能模型的搜尋範圍。
歸納學習的解釋
如何使用遷移學習
你可以在自己的預測模型問題上使用遷移學習。
以下是兩個常用的方法:
開發模型的方法
預訓練模型的方法
開發模型的方法
選擇源任務。你必須選擇一個具有豐富資料的相關的預測建模問題,原任務和目標任務的輸入資料、輸出資料以及從輸入資料和輸出資料之間的對映中學到的概念之間有某種關係,
開發源模型。然後,你必須為第一個任務開發一個精巧的模型。這個模型一定要比普通的模型更好,以保證一些特徵學習可以被執行。
重用模型。然後,適用於源任務的模型可以被作為目標任務的學習起點。這可能將會涉及到全部或者部分使用第一個模型,這依賴於所用的建模技術。
調整模型。模型可以在目標資料集中的輸入-輸出對上選擇性地進行微調,以讓它適應目標任務。
預訓練模型方法
選擇源模型。一個預訓練的源模型是從可用模型中挑選出來的。很多研究機構都發布了基於超大資料集的模型,這些都可以作為源模型的備選者。
重用模型。選擇的預訓練模型可以作為用於第二個任務的模型的學習起點。這可能涉及到全部或者部分使用與訓練模型,取決於所用的模型訓練技術。
調整模型。模型可以在目標資料集中的輸入-輸出對上選擇性地進行微調,以讓它適應目標任務。
第二種型別的遷移學習在深度學習領域比較常用。
深度學習中使用遷移學習的例子
下面用兩個常見的例子具體介紹一下深度學習模型中的遷移學習。
使用影象資料進行遷移學習
在使用影象作為輸入的預測建模問題中應用遷移學習是很常見的,其中使用影象或視訊作為輸入。
對於這種型別的問題而言,使用為大規模的挑戰性影象資料集預訓練的模型是很常見的做法,例如 ImageNet(1000 類影象分類挑戰賽的資料集)。
為這個競賽開發模型的研究組織通常會將最終模型釋出出來,並且具備重新使用的許可。這些模型的訓練一般會耗費幾天到幾星期不等的時間,這取決於所用的硬體環境。
這些模型可以直接下載到,它們將影象作為輸入。
以下是這種型別的模型的三個例子:
牛津 VGG 模型(http://www.robots.ox.ac.uk/~vgg/research/very_deep/)
谷歌 Inception 模型(https://github.com/tensorflow/models/tree/master/inception)
微軟 ResNet 模型(https://github.com/KaimingHe/deep-residual-networks)
可以在 Caffe Model Zoo(https://github.com/BVLC/caffe/wiki/Model-Zoo)中找到更多的例子,那裡分享了很多預訓練的模型。
這個方法是有效的,因為大量的圖片在這個模型上進行訓練,需要模型能夠預測出相對比較多的圖片型別,反過來,這需要模型能夠有效地學習從圖片中提取特徵,以較好地解決這個問題。
在斯坦福大學的課程《Convolutional Neural Networks for Visual Recognition》(視覺識別中的卷積神經網路)中,作者特別提醒,要仔細選擇將預訓練模型在多大程度上利用到新模型中。
卷積神經網路的前面幾層提取到的特徵更泛化,後面層提取到的特徵與原始資料集更相關。
——遷移學習,CS231 卷積神經網路視覺識別課程 (http://cs231n.github.io/transfer-learning/)
語言資料中的遷移學習
在以文字作為輸入-輸出的自然語言處理任務中,使用遷移學習是很常見的。
對於這類問題,首先會使用詞向量(Word embedding)將單詞對映到連續的高維空間,在這個高維空間中,意思相近的不同單詞具有相似的向量表徵。
目前已經有學習這些分散詞表徵的高效演算法,並且研究組織經常在大規模文字語料庫上基於許可 license 釋出預訓練模型。
這類例子包括:
谷歌的 word2vec 模型(https://code.google.com/archive/p/word2vec/)
斯坦福的 GloVe 模型(https://nlp.stanford.edu/projects/glove/)
這些分立詞表徵的模型可以在上述地址下載,並且結合使用在將單詞表徵作為輸入或者生成單詞作為輸出的深度語言學習模型中。
Yoav Goldberg 在他的書中提醒道:
..... 你可以下載到這些基於特大數量的文字訓練得到的預訓練詞向量...... 但是,訓練方法和本質語料庫的不同對結果表徵有著嚴重的影響,並且可以獲取的預訓練表徵可能不是你的實際案例中的最佳選擇。
——《Deep Learning for Natural Language Processing》(自然語言處理的深度學習方法),2017,第 135 頁
什麼時候使用遷移學習?
遷移學習是一種優化,是一種節省時間或者得到更好效能的捷徑。
通常而言,在模型經過開發和測試之前,並不能明顯地發現使用遷移學習帶來的效能提升。
Lisa Torrey 和 Jude Shavlik 在他們關於遷移學習的章節中描述了使用遷移學習的時候可能帶來的三種益處:
更高的起點。在微調之前,源模型的初始效能要比不使用遷移學習來的高。
更高的斜率。在訓練的過程中源模型提升的速率要比不使用遷移學習來得快。
更高的漸進。訓練得到的模型的收斂效能要比不使用遷移學習更好。
遷移學習能夠改善學習的三種方式
理想情況下,在一個成功的遷移學習應用中,你會得到上述這三種益處。
如果你能夠發現一個與你的任務有相關性的任務,它具備豐富的資料,並且你也有資源來為它開發模型,那麼,在你的任務中重用這個模型確實是一個好方法,或者(更好的情況),有一個可用的預訓練模型,你可以將它作為你自己模型的訓練初始點。
在一些問題上,你或許沒有那麼多的資料,這時候遷移學習可以讓你開發出相對不使用遷移學習而言具有更高效能的模型。
對源資料和源模型的選擇是一個開放問題,可能需要領域專家或者實際開發經驗。
延伸閱讀
如果你想進一步瞭解相關內容,這一部分給出了更多關於這個主題的學習資源。
書籍
深度學習,2016(http://amzn.to/2fwdoKR)
自然語言處理的神經網路方法,2017(http://amzn.to/2fwTPCn)
論文
遷移學習綜述,2010(https://pdfs.semanticscholar.org/a25f/bcbbae1e8f79c4360d26aa11a3abf1a11972.pdf)
機器學習應用研究手冊,第 11 章:遷移學習(http://amzn.to/2fgeVro)
深度神經網路中的特徵具有怎麼樣的可遷移性?(https://arxiv.org/abs/1411.1792)
預訓練模型
牛津 VGG 模型(http://www.robots.ox.ac.uk/~vgg/research/very_deep/)
谷歌 inception 模型(https://github.com/tensorflow/models/tree/master/inception)
微軟 ResNet 模型(https://github.com/KaimingHe/deep-residual-networks)
谷歌 Word2vec 模型(https://code.google.com/archive/p/word2vec/)
斯坦福 GloVe 模型(https://nlp.stanford.edu/projects/glove/)
Caffe 模型庫 Model Zoo(https://github.com/BVLC/caffe/wiki/Model-Zoo)
文章
遷移學習維基百科(https://en.wikipedia.org/wiki/Transfer_learning)
遷移學習——機器學習的下一個前沿,2017(http://ruder.io/transfer-learning/)
遷移學習(CS231,卷積神經網路視覺識別)(http://cs231n.github.io/transfer-learning/)
Quora 話題:遷移學習是如何起作用的?(https://www.quora.com/How-does-transfer-learning-work)
人工智慧賽博物理作業系統
AI-CPS OS
“人工智慧賽博物理作業系統”(新一代技術+商業作業系統“AI-CPS OS”:雲端計算+大資料+物聯網+區塊鏈+人工智慧)分支用來的今天,企業領導者必須瞭解如何將“技術”全面滲入整個公司、產品等“商業”場景中,利用AI-CPS OS形成數字化+智慧化力量,實現行業的重新佈局、企業的重新構建和自我的煥然新生。
AI-CPS OS的真正價值並不來自構成技術或功能,而是要以一種傳遞獨特競爭優勢的方式將自動化+資訊化、智造+產品+服務和資料+分析一體化,這種整合方式能夠釋放新的業務和運營模式。如果不能實現跨功能的更大規模融合,沒有顛覆現狀的意願,這些將不可能實現。
領導者無法依靠某種單一戰略方法來應對多維度的數字化變革。面對新一代技術+商業作業系統AI-CPS OS顛覆性的數字化+智慧化力量,領導者必須在行業、企業與個人這三個層面都保持領先地位:
重新行業佈局:你的世界觀要怎樣改變才算足夠?你必須對行業典範進行怎樣的反思?
重新構建企業:你的企業需要做出什麼樣的變化?你準備如何重新定義你的公司?
重新打造自己:你需要成為怎樣的人?要重塑自己並在數字化+智慧化時代保有領先地位,你必須如何去做?
AI-CPS OS是數字化智慧化創新平臺,設計思路是將大資料、物聯網、區塊鏈和人工智慧等無縫整合在雲端,可以幫助企業將創新成果融入自身業務體系,實現各個前沿技術在雲端的優勢協同。AI-CPS OS形成的數字化+智慧化力量與行業、企業及個人三個層面的交叉,形成了領導力模式,使數字化融入到領導者所在企業與領導方式的核心位置:
精細:這種力量能夠使人在更加真實、細緻的層面觀察與感知現實世界和數字化世界正在發生的一切,進而理解和更加精細地進行產品個性化控制、微觀業務場景事件和結果控制。
智慧:模型隨著時間(資料)的變化而變化,整個系統就具備了智慧(自學習)的能力。
高效:企業需要建立實時或者準實時的資料採集傳輸、模型預測和響應決策能力,這樣智慧就從批量性、階段性的行為變成一個可以實時觸達的行為。
不確定性:數字化變更顛覆和改變了領導者曾經仰仗的思維方式、結構和實踐經驗,其結果就是形成了複合不確定性這種顛覆性力量。主要的不確定性蘊含於三個領域:技術、文化、制度。
邊界模糊:數字世界與現實世界的不斷融合成CPS不僅讓人們所知行業的核心產品、經濟學定理和可能性都產生了變化,還模糊了不同行業間的界限。這種效應正在向生態系統、企業、客戶、產品快速蔓延。
AI-CPS OS形成的數字化+智慧化力量通過三個方式激發經濟增長:
創造虛擬勞動力,承擔需要適應性和敏捷性的複雜任務,即“智慧自動化”,以區別於傳統的自動化解決方案;
對現有勞動力和實物資產進行有利的補充和提升,提高資本效率;
人工智慧的普及,將推動多行業的相關創新,開闢嶄新的經濟增長空間。
給決策制定者和商業領袖的建議:
超越自動化,開啟新創新模式:利用具有自主學習和自我控制能力的動態機器智慧,為企業創造新商機;
迎接新一代資訊科技,迎接人工智慧:無縫整合人類智慧與機器智慧,重新
評估未來的知識和技能型別;
制定道德規範:切實為人工智慧生態系統制定道德準則,並在智慧機器的開
發過程中確定更加明晰的標準和最佳實踐;
重視再分配效應:對人工智慧可能帶來的衝擊做好準備,制定戰略幫助面臨
較高失業風險的人群;
開發數字化+智慧化企業所需新能力:員工團隊需要積極掌握判斷、溝通及想象力和創造力等人類所特有的重要能力。對於中國企業來說,創造兼具包容性和多樣性的文化也非常重要。
子曰:“君子和而不同,小人同而不和。” 《論語·子路》雲端計算、大資料、物聯網、區塊鏈和 人工智慧,像君子一般融合,一起體現科技就是生產力。
如果說上一次哥倫布地理大發現,拓展的是人類的物理空間。那麼這一次地理大發現,拓展的就是人們的數字空間。在數學空間,建立新的商業文明,從而發現新的創富模式,為人類社會帶來新的財富空間。雲端計算,大資料、物聯網和區塊鏈,是進入這個數字空間的船,而人工智慧就是那船上的帆,哥倫布之帆!
新一代技術+商業的人工智慧賽博物理作業系統AI-CPS OS作為新一輪產業變革的核心驅動力,將進一步釋放歷次科技革命和產業變革積蓄的巨大能量,並創造新的強大引擎。重構生產、分配、交換、消費等經濟活動各環節,形成從巨集觀到微觀各領域的智慧化新需求,催生新技術、新產品、新產業、新業態、新模式。引發經濟結構重大變革,深刻改變人類生產生活方式和思維模式,實現社會生產力的整體躍升。
產業智慧官 AI-CPS
用“人工智慧賽博物理作業系統”(新一代技術+商業作業系統“AI-CPS OS”:雲端計算+大資料+物聯網+區塊鏈+人工智慧),在場景中構建狀態感知-實時分析-自主決策-精準執行-學習提升的認知計算和機器智慧;實現產業轉型升級、DT驅動業務、價值創新創造的產業互聯生態鏈。