电竞比分网-中国电竞赛事及体育赛事平台

分享

深度學習應用不再舉步維艱,遷移學習成最大功臣

 taotao_2016 2020-02-21


在不久之前,一個數據科學家團隊要想有效地使用深度學習,需要滿足以下幾個條件:
  • 設計一種新穎的模型架構,并且該架構可能需要在模型內部設計
  • 可使用大型或專有的數據集
  • 用于大型模型訓練的硬件或資金
這就給深度學習帶來了瓶頸,并將它局限在能夠滿足這些條件的少數項目中。
然而,在過去幾年間,情況發(fā)生了變化。
在Cortex這一平臺上,有不少用戶發(fā)布了基于深度學習的新一代產品,并且與之前不同的是,這些產品并非都是使用獨一無二的模型架構創(chuàng)建的。
這一進展背后的最大功臣便是遷移學習。

一、遷移學習

從廣義上來看,遷移學習是一種在為特定任務而訓練的模型中積累知識的思想,比如說,一個模型在識別圖像中的花的任務中積累的知識,可以遷移到另一個模型上來幫助另一個不同但是相關的任務(例如識別某個人的皮膚上的皮膚上的黑素瘤)做預測。
如果想要深入了解遷移學習,可參考Sebastian Ruder 曾為遷移學習寫過的一篇綜述性的文章:https:///transfer-learning/
做遷移學習的方法有很多,而其中微調的方法尤其被廣泛采用。
在該方法下,研究者采用一個預訓練模型并去除或重新訓練模型最后的幾層,來完成一個新的相關任務。
AI Dungeon 是一款開放世界的文字冒險游戲,根據 AI 生成的故事有多令人信服向前推進:

圖源:AI Dungeon
值得一提的是,AI Dungeon 這款游戲并非誕生于谷歌的研究實驗室,而是由一位工程師創(chuàng)建的黑客競技項目。
這位工程師名叫 Nick Walton,不過他并沒有從頭開始為AI Dungeon 設計模型,而是采用了當前性能最佳的 NLP 模型——OpenAI 的GPT-2,并基于玩家自身選擇的冒險文本來對模型進行微調。
這款AI 游戲的工作原理是:在神經網絡中,前面的層專注于簡單、一般的特征,而后面的層則更多地聚焦于特定任務的分類和回歸。
吳恩達通過設想一個圖像識別模型,對這些層和它們的相對獨特度進行了可視化處理:
圖源:Stanford
結果顯示,基礎層的通用知識往往能夠很好地遷移到其他任務上。在AI Dungeon這一游戲示例中,GPT-2 在理解通用英文上已經實現了最佳性能,僅僅需要對模型后面的層稍微重新訓練下,玩家就能夠在自己選擇的冒險題材的文本游戲中獲得出色的表現。
通過這種處理方法,一位工程師在幾天時間內,就能夠獨自將實現了最佳結果的模型部署到新的領域中。

二、為什么遷移學習是下一代 ML 賦能軟件的關鍵所在

正如作者在開頭提到的,深度學習要想得到有效地應用,需要具備三個支撐條件:大規(guī)模、干凈的數據集、設計出高效模型的能力以及模型訓練的方法。
這也就意味著在默認情況下,在某些領域或沒有某些資源的項目中,深度學習很難得到很好的應用。
而現在,隨著遷移學習的廣泛應用,這些瓶頸都不再是瓶頸:
1、小數據集不再是“攔路虎” 
深度學習通常需要大量的標注數據,然而很多領域目前甚至都還沒有這類標注數據。遷移學習則能夠解決這一問題。
例如,哈佛醫(yī)學院麾下的一個研究團隊最近就部署了一個能夠“能夠根據胸片預測包括非癌癥死亡在內的死亡率”的模型:
圖源:JAMA Network
有了超過 50000張標注圖片的數據集后,他們并沒有使用這些數據從頭開始訓練 CNN(卷積神經網絡),而是采用了經過預訓練的Inception-v4 模型(在有 1400萬張ImageNet 數據集上訓練),并且使用遷移學習和輕微的架構調整方法來使其模型適應新的數據集。 
最終,他們訓練的CNN 模型僅僅使用了每個病人的一張胸部圖像,就能夠生成與病人的實際死亡率對應相關的風險評分,應用得非常成功。 
2、模型可以在幾分鐘訓練完,而不需要數天
在海量數據上訓練模型,不僅面臨需要獲得大規(guī)模數據集的問題,還面臨著資源和時間消耗這一問題。
例如,谷歌在開發(fā)最前最先進的圖像分類模型Xception時,訓練了兩個版本:一個是在ImageNet數據集(有 1400萬張圖像)上訓練,另一個在JFT 數據集(有3.5億張圖像)上訓練。
采用各種優(yōu)化器在60 個NVIDIA 的K80 GPU上訓練,前一個版本花了3天時間,而后一個版本則花了一個多月的時間。 
而使用其發(fā)布的預訓練 Xception模型。谷歌研究團隊能夠更快地對上述兩個版本的模型進行微調。 
另外一個案例是,伊利諾伊大學和美國阿貢國家實驗室的聯(lián)合團隊最近訓練了一個模型,來將星系的圖像分類為螺旋狀還是橢圓狀:
圖源:阿貢實驗室
雖然只有一個擁有 35000 張標注圖片的數據集,他們使用NVIDIA的 GPU,在僅僅8分鐘內就完成了對Xception模型的微調。
最終的模型能夠9.8%的正確率對星系進行分類,并且還在速度上超越了人類,每分鐘能分類20000多個星系。 
3、 訓練模型不再需要承擔投資風險
谷歌可能并不是很在乎他們每次都用 60 塊 GPU 數月地訓練Xception 模型所需要花費的成本。然而,其他的多數團隊并不具有像谷歌一樣的財力支持,模型訓練的成本是一個非常實際的問題。
例如, OpenAI在首次公開GPT-2的結果時,一同發(fā)布了模型架構,但是由于擔心被誤用而沒有發(fā)布完整的預訓練模型。
隨后,布朗大學的一個研究團隊根據模型架構和論文中描述的訓練步驟復現了 GPT-2,他們將這一模型稱之為 OpenGPT-2。整個訓練花費了超過 50000美元,然而表現卻遠不如 GPT-2。
花了50000美元來訓練模型,結果性能卻低于當前的最佳性能,對于在沒有大量資金支持下開發(fā)應用型生產軟件的團隊而言,都是一個巨大的風險。
而值得慶幸的是,遷移學習能夠極大地降低這種成本。
例如Nick Walton 就采用對GPT-2進行微調的方法開發(fā)出了 AI Dungeon。OpenAI 已經投入了大約 27118520 頁文本和數千美元來訓練GPT-2模型,所以 Walton 不需要重新創(chuàng)建。
相反地,他使用了從 chooseyourstory.com 上截取的一組小得多的文本,并在完全免費的 Google Colab 中對模型進行了微調。

三、機器學習工程正在變成一個真正的生態(tài)系統(tǒng)

如果將軟件工程視作一個并行的操作,我們往往會看到這一生態(tài)系統(tǒng)正在以相當標準的模式「成熟」。
一種新的編程語言誕生往往伴隨著一些令人興奮的特性,人們將把它應用于特定的用例、研究項目和游戲。在這一階段,任何使用它的人都必須從頭開始構建所有基本的實用程序。
接著,再由社區(qū)中的研究者開發(fā)能夠抽象出公共實用程序的庫和項目,直到這些工具足夠穩(wěn)定地用于生產。
在該階段,使用它來開發(fā)軟件的工程師并不在意發(fā)送 HTTP 請求到數據庫或者與數據庫連接,畢竟所有這些都是抽象出來的。而工程師們基本上只聚焦于構建他們的產品。
換句話說,Facebook 開發(fā) React,谷歌開發(fā) Angular,而工程師則使用它們來開發(fā)產品。隨著遷移學習的發(fā)展,機器學習工程也正邁著這樣的步伐向前發(fā)展。
隨著 OpenAI、谷歌、Facebook 等科技巨頭先后發(fā)布強大的開源模型,機器學習工程師的「工具」也變得越來越強大和穩(wěn)定。
機器學習工程師們不再需要把時間花在使用 PyTorch 或 TensorFlow 從頭開始創(chuàng)建模型,而是使用開源模型和遷移學習來開發(fā)產品,這意味著全新一代的機器學習賦能的軟件即將到來。
而現在,機器學習工程師只需要關心:如何將這些模型投入生產。
via:  https:///deep-learning-isnt-hard-anymore-26db0d4749d7?gi=f918c0f5f26f

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多