逸香閣居士麗人 / 權謀智慧 / 天若有情天亦老

0 0

   

天若有情天亦老

2020-02-24  逸香閣居...

通常情況下,機器學習尤其是深度學習的使用往往需要具備相當的有利條件,包括一個大型的數據集,設計有效的模型,而且還需要訓練的方法——但現在,利用遷移學習就可以消除掉這些瓶頸。

作者 |Caleb Kaiser

譯者 | 彎月,責編 | 郭芮

出品 | CSDN(ID:CSDNnews)

以下為譯文:

在不久之前,為了有效地使用深度學習,數據科學團隊需要:

一種新穎的模型架構,很可能需要自己設計;

大型數據集,很可能需要自己收集;

大規模訓練模型的硬件或資金。

這些條件和設施成為了限制深度學習的瓶頸,只有少數滿足這些條件項目才能應用深度學習。

然而,在過去的幾年中,情況發生了變化。

我們看到用戶開始試用基于深度學習的新一代產品,而且與以往不同的是,這些產品使用的是以前沒有出現過的任何一種模型架構。

這種增長背后的驅動力是遷移學習(transfer learning)。

什么是遷移學習?

從廣義上講,遷移學習的思想是專注于存儲已有問題的解決模型(例如識別照片中的花朵),并將其利用在其他不同但相關問題上(例如識別皮膚中的黑素瘤)。

遷移學習有多種方法,但其中一種方法——微調法(finetuning)得到了廣泛采用。

在這種方法中,團隊采用預先訓練好的模型,然后通過刪除或重新訓練模型的最后一層,將其用于新的相關任務。例如,AI Dungeon是一款開放世界的文字冒險游戲,因其AI生成的生動形象的故事而廣為傳播:

注意,AI Dungeon不是Google研究實驗室開發的項目,只是一名工程師構建的黑客馬拉松項目。

AI Dungeon的創建者Nick Walton并沒有從零開始設計模型,而是采用了最新的NLP模型(OpenAI GPT-2),然后對其進行微調來設置自己的冒險文字。

這種方法完全可行的原因是,在神經網絡中,最初幾層主要負責簡單、通用的特征,而最后幾層主要負責與任務有關的分類/回歸。Andrew Ng 用一個圖像識別模型的例子,以可視化的方式介紹了各層與任務本身的相關性:

事實證明,基礎層學習的通用知識通常可以很好地遷移到其他任務上、。在AI Dungeon的示例中,GPT-2對通用英語有良好的理解,只需要對最后幾層進行一些重新訓練,即可在冒險游戲中給出優異的表現。

每位工程師都可以通過這種流程,在幾天之內部署一個模型,以在新的領域實現最新的結果。

為什么遷移學習是下一代機器學習軟件的關鍵?

本文開頭我提到了使用機器學習(尤其是深度學習)需要具備的有利條件。你需要一個大型的數據集,需要設計有效的模型,而且還需要訓練的方法。

這意味著一般而言,某些領域的項目或缺乏某些資源的項目就無法開展。

如今,我們可以利用遷移學習消除這些瓶頸:

1、小型數據集不再是問題

通常,深度學習需要大量帶標簽的數據,但在許多領域中,這些數據根本不存在。然而,遷移學習可以解決這個問題。

例如,哈佛醫學院附屬團隊最近部署了一個模型,該模型可以“根據胸部X光片,預測長期的死亡率,包括非癌性死亡”。

他們只有5萬張帶標簽圖像的數據集,不足以從頭開始訓練CNN(卷積神經網絡)。于是,他們采用了預先訓練好的的Inception-v4模型(該模型在擁有超過1400萬張圖像的ImageNet數據集上進行了訓練),并使用遷移學習和輕微的架構調整,讓模型適應了他們的數據集。

最終,他們的CNN成功地使用每位患者的一張胸部圖像,生成了與患者的實際死亡率相關的風險評分。

2、模型可在幾分鐘訓練完成

在大量數據上訓練模型面臨的難題不僅僅是獲取大型數據集,還有資源和時間的問題。

例如,當Google開發最尖端的圖像分類模型Xception時,他們訓練了兩個版本:一個在ImageNet數據集(1400萬張圖像)上,另一個在JFT數據集(3.5億張圖像)上。

即使他們在訓練中采用了60個NVIDIA K80 GPU,并進行了各種優化,但每次ImageNet實驗的運行都需要3天的時間。而JFT實驗耗時一個多月。

如今,經過預訓練的Xception模型已經發布了,各個團隊可以通過微調更快地實現自己的模型。

例如,伊利諾伊大學和阿貢國家實驗室的一個團隊最近訓練了一個模型,將星系的圖像分類為螺旋形或橢圓形:

盡管只有3萬5千張帶標簽的圖像數據集,但他們仍能夠使用NVIDIA GPU,在短短8分鐘內對Xception進行微調。

這樣得到模型在GPU上運行時,能夠以每分鐘超過2萬個星系的驚人速度,并以99.8%的成功率對星系進行分類。

3、不再需要風險資本來訓練模型

當初Google花費數月在60個GPU上訓練一次Xception模型時,可能他們并不在乎成本。但是,對于沒有那么多預算的團隊來說,訓練模型是非常現實的問題。

例如,當OpenAI首次公布GPT-2的結果時,由于擔心濫用,他們只發布了模型架構,卻未發布完整的預訓練模型。

之后,布朗大學的一個團隊按照論文陳述的架構和訓練過程試圖重現GPT-2,并命名為OpenGPT-2。他們花了大約5萬美金進行了訓練,但性能仍不及GPT-2。

5萬美金的投入卻未能訓練出性能過關的模型,對于沒有充裕資金的生產軟件團隊來說都是巨大的風險。

幸運的是,遷移學習可以顯著降低成本。

當初Nick Walton構建AI Dungeon時,他對GPT-2進行了微調。OpenAI已經投入了大約27,118,520頁文本和數千美元來訓練模型,所以Walton坐享其成就可以了。

他使用了一個非常小的來自choiceyourstory.com的文本集,并對Google Colab的模型(該模型完全免費)進行了微調。

機器學習工程的生態系統正在建設中

回顧軟件工程,我們會發現生態系統的“成熟”過程通常都有極其相似的模式。

首先是一門新語言的出現,而且還擁有令人興奮的功能,然后人們將這門語言用于某些特別的場景,或者用于研究項目和業余愛好。在這個階段,任何使用這門語言的人都必須從零開始構建所有的基礎實用程序。

接下來,社區會開發庫和項目,將常見的實用程序抽象化,直到這些工具的功能足夠強大,足夠穩定,能用于生產。

在這個階段,使用這門語言來構建軟件的工程師不必再擔心發送HTTP請求或連接到數據庫等問題(所有這些都已被抽象化),只需專心構建產品即可。

換句話說,Facebook構建React,Google構建Angular,而工程師們則可以利用這些框架來構建產品。而這一過程在機器學習中就是遷移學習。

隨著OpenAI、Google、Facebook和其他科技巨頭發布強大的開源模型,面向機器學習工程師的“工具”會越來越強大,越來越穩定。

機器學習工程師不再需要花時間使用PyTorch或TensorFlow從頭開始構建模型,他們可以利用開源模型并通過遷移學習來構建產品。

機器學習軟件的新時代即將到來。如今,機器學習工程師只需專心思考如何將這些模型投入生產。

原文:https://towardsdatascience.com/deep-learning-isnt-hard-anymore-26db0d4749d7

作者:Caleb Kaiser,創始團隊成員@Cortex Labs。

本文為 CSDN 翻譯,轉載請注明來源出處。

【End】

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。如發現有害或侵權內容,請點擊這里 或 撥打24小時舉報電話:4000070609 與我們聯系。

    猜你喜歡

    0條評論

    發表

    請遵守用戶 評論公約

    類似文章 更多
    喜歡該文的人也喜歡 更多

    马丁飞狼一码一尾中特