編者按:幾天前,有人統(tǒng)計(jì)了歷年ICLR論文錄用者使用的深度學(xué)習(xí)框架,發(fā)現(xiàn)雖然TensorFlow還高居榜首,但PyTorch近一年來(lái)的使用數(shù)據(jù)已經(jīng)翻了3倍,可以和TF比肩。這是個(gè)令人驚訝的消息,也讓不少?gòu)臉I(yè)者開(kāi)始正視這一發(fā)展趨勢(shì),籌備“雙修”事宜。在下文中,論智給讀者帶來(lái)的是fast.ai發(fā)布的一個(gè)簡(jiǎn)便、好用的PyTorch庫(kù)——對(duì)PyTorch感興趣的讀者不妨先從這個(gè)庫(kù)開(kāi)始試手。
隨著互聯(lián)網(wǎng)和知識(shí)傳播的深度結(jié)合,現(xiàn)在在線(xiàn)課程對(duì)許多人來(lái)說(shuō)已經(jīng)不是新鮮事物。在深度學(xué)習(xí)領(lǐng)域,最受學(xué)生歡迎的MOOC課程平臺(tái)有三個(gè):Fast.ai、deeplearning.ai /Coursera和Udacity。其中,因?yàn)镴eremy Howard化繁為簡(jiǎn)、實(shí)戰(zhàn)為上的獨(dú)特授課風(fēng)格,F(xiàn)ast.ai給人的印象一直很“接地氣”:
研究如何快速、可靠地把最先進(jìn)的深度學(xué)習(xí)應(yīng)用于實(shí)際問(wèn)題。
提供Fast.ai庫(kù),它不僅是讓新手快速構(gòu)建深度學(xué)習(xí)實(shí)現(xiàn)的工具包,也是提供最佳實(shí)踐的一個(gè)強(qiáng)大而便捷的資源。
課程內(nèi)容簡(jiǎn)潔易懂,以便盡可能多的人從研究成果和軟件中收益。
國(guó)慶期間,F(xiàn)ast.ai發(fā)布一個(gè)新的、面向深度學(xué)習(xí)的免費(fèi)開(kāi)源庫(kù)——fastai。這是個(gè)PyTorch庫(kù),雖然還是預(yù)覽版,但它目前已經(jīng)為最重要的深度學(xué)習(xí)應(yīng)用程序和數(shù)據(jù)類(lèi)型提供了一致的API,且相比其他深度學(xué)習(xí)庫(kù),它在準(zhǔn)確性和速度上有顯著提高,同時(shí)所需的代碼大大減少。
感興趣的開(kāi)發(fā)者可以訪(fǎng)問(wèn)fastai的GitHub進(jìn)行安裝:github.com/fastai/fastai/
fastai庫(kù)
從去年宣布開(kāi)發(fā)開(kāi)始,歷時(shí)18個(gè)月,fastai深度學(xué)習(xí)庫(kù)v1.0終于和大家見(jiàn)面了。在項(xiàng)目啟動(dòng)之初,開(kāi)發(fā)人員就曾介紹過(guò)PyTorch作為一個(gè)平臺(tái)的優(yōu)勢(shì):可以利用常規(guī)python代碼的靈活性和各種函數(shù)構(gòu)建、訓(xùn)練神經(jīng)網(wǎng)絡(luò),可以解決更廣泛的問(wèn)題……
現(xiàn)在,經(jīng)過(guò)Fast.ai團(tuán)隊(duì)和PyTorch團(tuán)隊(duì)的共同努力,我們迎來(lái)了一個(gè)為計(jì)算機(jī)視覺(jué)、文本、表格數(shù)據(jù)、時(shí)間序列、協(xié)同過(guò)濾等常見(jiàn)深度學(xué)習(xí)應(yīng)用提供單一一致界面的深度學(xué)習(xí)庫(kù)。這意味著,如果你已經(jīng)學(xué)會(huì)用fastai創(chuàng)建實(shí)用的計(jì)算機(jī)視覺(jué)(CV)模型,那你就可以用同樣的方法創(chuàng)建自然語(yǔ)言處理(NLP)模型,或是軟件支持的其他模型。
早期用戶(hù)使用反饋
GitHub上的語(yǔ)義代碼搜索
Fast.ai的課程是GitHub的數(shù)據(jù)科學(xué)家和高管(包括CEO在內(nèi))提高數(shù)據(jù)素養(yǎng)的一個(gè)重要途徑,其中,Github的高級(jí)機(jī)器學(xué)習(xí)科學(xué)家Hithl Husain在過(guò)去兩年中一直通過(guò)Fast.ai學(xué)習(xí)深度學(xué)習(xí),他認(rèn)為這些MOOC課程開(kāi)啟了Github的數(shù)據(jù)新時(shí)代,使數(shù)據(jù)科學(xué)家們更有信心解決機(jī)器學(xué)習(xí)中的最新問(wèn)題。
作為fastai的第一批使用者,Hithl Husain和他的同事Ho-Hsiang Wu最近發(fā)布了一個(gè)實(shí)驗(yàn)版工具“語(yǔ)義代碼搜索”,允許開(kāi)發(fā)者直接通過(guò)意義而不是關(guān)鍵詞匹配來(lái)查找代碼,這意味著最佳搜索結(jié)果不一定包含你搜索的單詞。在官方博客文章中,他們介紹了自己棄用Tensorflow Hub轉(zhuǎn)而投向fastai的原因,稱(chēng)后者能更輕松地訪(fǎng)問(wèn)最先進(jìn)的架構(gòu)(如AWD LSTMs)和技術(shù)(如隨機(jī)重啟循環(huán)學(xué)習(xí)率)。
語(yǔ)義代碼搜索
在過(guò)去的12個(gè)月里,Husain一直在體驗(yàn)預(yù)發(fā)布版本的fastai庫(kù)。他表示:
我之所以選擇fast.ai,是因?yàn)樗茉诒WC相同性能的情況下,用模塊化、高級(jí)API實(shí)現(xiàn)最先進(jìn)的技術(shù)和創(chuàng)新,同時(shí)減少計(jì)算量。語(yǔ)義代碼搜索只是冰山一角,銷(xiāo)售、營(yíng)銷(xiāo)、反欺詐,人們能用fastai為各行各業(yè)帶去革命性的變化。
生成音樂(lè)
Christine McLeavey Payne是從上一期Fast.ai深度學(xué)習(xí)課程中脫穎而出的一名學(xué)生。她的人生經(jīng)歷非常豐富:從舊金山交響樂(lè)團(tuán)的古典鋼琴師,到金融領(lǐng)域的HPC專(zhuān)家,再到斯坦福大學(xué)的神經(jīng)科學(xué)和醫(yī)學(xué)研究員?,F(xiàn)在,她已經(jīng)在OpenAI開(kāi)啟了又一段人生旅途,而在近期的OpenAI項(xiàng)目中,她用fastai創(chuàng)建了一個(gè)能生成鋼琴曲和室內(nèi)音樂(lè)的LSTM——Clara。
fastai是一個(gè)了不起的資源,即便是我這樣剛接觸深度學(xué)習(xí)的新手,也能用短短幾行代碼就得到fastai模型。我不完全知道這些先進(jìn)技術(shù)背后的原理,但我的模型能運(yùn)行,而且訓(xùn)練用時(shí)更短,性能也更好。
她的音樂(lè)生成模型基于上課期間她構(gòu)建的一個(gè)語(yǔ)言模型,利用fastai庫(kù)對(duì)NLP最新技術(shù)的支持,她在短短兩周內(nèi)就完成了這個(gè)音樂(lè)生成項(xiàng)目,并取得了很好的初步成果。這是fastai庫(kù)實(shí)用性的一個(gè)典例,只需少量修改,開(kāi)發(fā)者就能把文本分類(lèi)模型改成音樂(lè)生成模型,這在實(shí)踐中能節(jié)省大量時(shí)間和精力。
IBM Watson高級(jí)研究員對(duì)音樂(lè)生成器Clara的評(píng)價(jià)
藝術(shù)創(chuàng)作
建筑師、投資者M(jìn)iguel Pérez Michaus一直在用預(yù)發(fā)布版本的fastai進(jìn)行他的“Style Reversion(風(fēng)格還原)”實(shí)驗(yàn)。所謂“風(fēng)格還原”,就是把風(fēng)格遷移后的圖像恢復(fù)成原本的樣子,如下圖所示:
風(fēng)格還原
他表示:“我喜歡用fastai創(chuàng)作,因?yàn)樗軐?shí)現(xiàn)Keras不能實(shí)現(xiàn)的東西,比如生成‘不標(biāo)準(zhǔn)’的東西。”作為早期用戶(hù),他在過(guò)去12個(gè)月中目睹了fastai的更新迭代:
我很幸運(yùn)地體驗(yàn)了fastai的A測(cè)版本,雖然只是Alpha版,但它充分展示了自己的實(shí)用性和靈活性,而且允許我這樣具有領(lǐng)域知識(shí)但沒(méi)有正式計(jì)算機(jī)科學(xué)背景的人上手操作。fastai會(huì)變得越來(lái)越好。對(duì)于深度學(xué)習(xí)的未來(lái),我個(gè)人有一點(diǎn)粗淺的認(rèn)識(shí),就是我們必須要詳細(xì)掌握黑盒背后的真實(shí)技術(shù)原理,在這種情況下,我認(rèn)為fastai會(huì)廣受歡迎。
學(xué)術(shù)研究
在NLP領(lǐng)域,波蘭語(yǔ)一直是一個(gè)挑戰(zhàn),因?yàn)樗且环N形態(tài)豐富的語(yǔ)言,如波蘭語(yǔ)形容詞會(huì)根據(jù)名詞的數(shù)和性而變化。企業(yè)家Piotr Czapla和Marcin Kardas是深度學(xué)習(xí)咨詢(xún)公司n-wave的聯(lián)合創(chuàng)始人,基于Cutting Edge Deep Learning For Coders這門(mén)課程中顯示的思路,他們用fastai開(kāi)發(fā)了一種新的波蘭語(yǔ)文本分類(lèi)算法,并在波蘭頂級(jí)NLP學(xué)術(shù)競(jìng)賽中獲得一等獎(jiǎng),有關(guān)這項(xiàng)新研究的論文即將發(fā)布。
根據(jù)Czapla的說(shuō)法,fastai庫(kù)對(duì)他們的成功至關(guān)重要:
fastai適合那些沒(méi)有上百臺(tái)服務(wù)器的普通人,這是我很喜歡它的一點(diǎn)。它支持快速開(kāi)發(fā)和原型設(shè)計(jì),并融入了所有最好的深度學(xué)習(xí)實(shí)踐。同時(shí),F(xiàn)ast.ai課程是我開(kāi)始學(xué)習(xí)深度學(xué)習(xí)的指路明燈,從上課的那天起,我才開(kāi)始思考深度學(xué)習(xí)能做什么。
示例:計(jì)算機(jī)視覺(jué)領(lǐng)域的遷移學(xué)習(xí)
Kaggle上有一個(gè)非常受歡迎的競(jìng)賽項(xiàng)目:Dogs vs Cats。參賽者需要編寫(xiě)一個(gè)算法來(lái)分類(lèi)圖像是包含狗還是貓。這也是Fast.ai課程中經(jīng)常涉及的一個(gè)競(jìng)賽,因?yàn)樗砹艘活?lèi)重要問(wèn)題:基于預(yù)訓(xùn)練模型的遷移學(xué)習(xí)。
我們將以此為例,從所需代碼量、準(zhǔn)確性和速度三個(gè)指標(biāo)上比較Keras和fastai的差異。以下是用fastai進(jìn)行2-stage微調(diào)時(shí)的所有代碼——不僅要編寫(xiě)的代碼非常少,設(shè)置的參數(shù)也非常少:
data = data_from_imagefolder(Path('data/dogscats'),
ds_tfms=get_transforms(), tfms=imagenet_norm, size=224)
learn = ConvLearner(data, tvm.resnet34, metrics=accuracy)
learn.fit_one_cycle(6)
learn.unfreeze()
learn.fit_one_cycle(4, slice(1e-5,3e-4))
下表是兩個(gè)深度學(xué)習(xí)庫(kù)的差異對(duì)比:
Keras是現(xiàn)在最流行的訓(xùn)練神經(jīng)網(wǎng)絡(luò)的方法之一,以上數(shù)據(jù)雖然是片面的,但fastai的改進(jìn)能從側(cè)面說(shuō)明Keras并不完美,它還有很大的改善空間。而無(wú)論是Keras還是其他深度學(xué)習(xí)庫(kù),要完成同樣的任務(wù),它們所需的代碼量都遠(yuǎn)遠(yuǎn)超過(guò)fastai,相應(yīng)的,它們的訓(xùn)練時(shí)間會(huì)更長(zhǎng),且模型性能不一定會(huì)更好。
此外,fastai在NLP任務(wù)上也有強(qiáng)勁表現(xiàn)。下表是ULMFiT論文中的一幅截圖,顯示了文本分類(lèi)算法ULMFiT與IMDb數(shù)據(jù)集中排名靠前的算法的相對(duì)誤差:
文本分類(lèi)性能總結(jié)
fastai是目前唯一提供此算法的庫(kù),由于該算法是內(nèi)置的,你可以直接參考上面的Dogs vs Cats代碼復(fù)現(xiàn)論文結(jié)果。以下是訓(xùn)練ULMFiT語(yǔ)言模型的方法:
data = data_from_textcsv(LM_PATH, Tokenizer(), data_func=lm_data)
learn = RNNLearner.language_model(data, drop_mult=0.3,
pretrained_fnames=['lstm_wt103', 'itos_wt103'])
learn.freeze()
learn.fit_one_cycle(1, 1e-2, moms=(0.8,0.7))
learn.unfreeze()
learn.fit_one_cycle(10, 1e-3, moms=(0.8,0.7), pct_start=0.25)
小結(jié)
在之后的幾個(gè)月中,F(xiàn)ast.ai會(huì)陸續(xù)發(fā)布有關(guān)這個(gè)深度學(xué)習(xí)庫(kù)的學(xué)術(shù)論文和博客文章,包括開(kāi)一門(mén)新課。我們會(huì)繼續(xù)關(guān)注開(kāi)發(fā)團(tuán)隊(duì)的進(jìn)展,讀者在玩轉(zhuǎn)TensorFlow之余,也可以多多了解一下潛力無(wú)窮的PyTorch,體驗(yàn)不一樣的“風(fēng)景”。
-
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5463瀏覽量
120890 -
pytorch
+關(guān)注
關(guān)注
2文章
802瀏覽量
13115
原文標(biāo)題:超越Keras:深度學(xué)習(xí)新庫(kù)fastai“落戶(hù)”P(pán)yTorch
文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論