“深度學(xué)習(xí)一點也不難!”

“深度學(xué)習(xí)一點也不難!”

通常情況下,機器學(xué)習(xí)尤其是深度學(xué)習(xí)的使用往往需要具備相當?shù)挠欣麠l件,包括一個大型的數(shù)據(jù)集,設(shè)計有效的模型,而且還需要訓(xùn)練的方法——但現(xiàn)在,利用遷移學(xué)習(xí)就可以消除掉這些瓶頸。

作者 | Caleb Kaiser

以下為譯文:

在不久之前,為了有效地使用深度學(xué)習(xí),數(shù)據(jù)科學(xué)團隊需要:

· 一種新穎的模型架構(gòu),很可能需要自己設(shè)計;

· 大型數(shù)據(jù)集,很可能需要自己收集;

· 大規(guī)模訓(xùn)練模型的硬件或資金。

這些條件和設(shè)施成為了限制深度學(xué)習(xí)的瓶頸,只有少數(shù)滿足這些條件項目才能應(yīng)用深度學(xué)習(xí)。

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

我們看到用戶開始試用基于深度學(xué)習(xí)的新一代產(chǎn)品,而且與以往不同的是,這些產(chǎn)品使用的是以前沒有出現(xiàn)過的任何一種模型架構(gòu)。

這種增長背后的驅(qū)動力是遷移學(xué)習(xí)(transfer learning)。

什么是遷移學(xué)習(xí)?

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

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

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

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

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

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

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

每位工程師都可以通過這種流程,在幾天之內(nèi)部署一個模型,以在新的領(lǐng)域?qū)崿F(xiàn)最新的結(jié)果。

為什么遷移學(xué)習(xí)是下一代機器學(xué)習(xí)軟件的關(guān)鍵?

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

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

如今,我們可以利用遷移學(xué)習(xí)消除這些瓶頸:

1、小型數(shù)據(jù)集不再是問題

通常,深度學(xué)習(xí)需要大量帶標簽的數(shù)據(jù),但在許多領(lǐng)域中,這些數(shù)據(jù)根本不存在。然而,遷移學(xué)習(xí)可以解決這個問題。

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

他們只有5萬張帶標簽圖像的數(shù)據(jù)集,不足以從頭開始訓(xùn)練CNN(卷積神經(jīng)網(wǎng)絡(luò))。于是,他們采用了預(yù)先訓(xùn)練好的的Inception-v4模型(該模型在擁有超過1400萬張圖像的ImageNet數(shù)據(jù)集上進行了訓(xùn)練),并使用遷移學(xué)習(xí)和輕微的架構(gòu)調(diào)整,讓模型適應(yīng)了他們的數(shù)據(jù)集。

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

2、模型可在幾分鐘訓(xùn)練完成

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

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

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

如今,經(jīng)過預(yù)訓(xùn)練的Xception模型已經(jīng)發(fā)布了,各個團隊可以通過微調(diào)更快地實現(xiàn)自己的模型。

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

盡管只有3萬5千張帶標簽的圖像數(shù)據(jù)集,但他們?nèi)阅軌蚴褂肗VIDIA GPU,在短短8分鐘內(nèi)對Xception進行微調(diào)。

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

3、不再需要風(fēng)險資本來訓(xùn)練模型

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

例如,當OpenAI首次公布GPT-2的結(jié)果時,由于擔(dān)心濫用,他們只發(fā)布了模型架構(gòu),卻未發(fā)布完整的預(yù)訓(xùn)練模型。

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

5萬美金的投入?yún)s未能訓(xùn)練出性能過關(guān)的模型,對于沒有充裕資金的生產(chǎn)軟件團隊來說都是巨大的風(fēng)險。

幸運的是,遷移學(xué)習(xí)可以顯著降低成本。

當初Nick Walton構(gòu)建AI Dungeon時,他對GPT-2進行了微調(diào)。OpenAI已經(jīng)投入了大約27,118,520頁文本和數(shù)千美元來訓(xùn)練模型,所以Walton坐享其成就可以了。

機器學(xué)習(xí)工程的生態(tài)系統(tǒng)正在建設(shè)中

回顧軟件工程,我們會發(fā)現(xiàn)生態(tài)系統(tǒng)的“成熟”過程通常都有極其相似的模式。

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

接下來,社區(qū)會開發(fā)庫和項目,將常見的實用程序抽象化,直到這些工具的功能足夠強大,足夠穩(wěn)定,能用于生產(chǎn)。

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

換句話說,F(xiàn)acebook構(gòu)建React,Google構(gòu)建Angular,而工程師們則可以利用這些框架來構(gòu)建產(chǎn)品。而這一過程在機器學(xué)習(xí)中就是遷移學(xué)習(xí)。

隨著OpenAI、Google、Facebook和其他科技巨頭發(fā)布強大的開源模型,面向機器學(xué)習(xí)工程師的“工具”會越來越強大,越來越穩(wěn)定。

機器學(xué)習(xí)工程師不再需要花時間使用PyTorch或TensorFlow從頭開始構(gòu)建模型,他們可以利用開源模型并通過遷移學(xué)習(xí)來構(gòu)建產(chǎn)品。

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

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

作者:Caleb Kaiser,創(chuàng)始團隊成員@Cortex Labs。

登錄后免費查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項目客服
  • 培訓(xùn)客服
  • 平臺客服

TOP

3
2
1