編者按:今年年初,fast.ai的創(chuàng)始人、數(shù)據(jù)科學(xué)家Jeremy Howard推出了2018版的“針對(duì)編程者的深度學(xué)習(xí)課程”——Practical Deep Learning For Coders, Part 1。這場(chǎng)免費(fèi)的課程可以教大家如何搭建最前沿的模型、了解深度學(xué)習(xí)的基礎(chǔ)知識(shí)。昨天,fast.ai發(fā)布了課程的第二部分“Cutting Edge Deep Learning for Coders”。以下是論智對(duì)課程的大致介紹。
5月7日,fast.ai發(fā)布了2018版的Cutting Edge Deep Learning for Coders的第二部分,這是fast.ai免費(fèi)深度學(xué)習(xí)課程中的一部分。如同本課程的第一部分一樣,參與者只需要有高中數(shù)學(xué)基礎(chǔ)和一年的編程經(jīng)驗(yàn)即可,其余的部分我們會(huì)交給你。這一課程包括了許多新元素,比如NLP分類領(lǐng)域最新的成果(20%都比現(xiàn)有的方法更好),并且教你如何復(fù)制最近ImageNet和CIFAR10的最佳性能。其中主要用到的庫(kù)是PyTorch和fastai。
每節(jié)課程配有兩小時(shí)左右的視頻,以及交互式Jupyter Notebook和fast.ai論壇上詳細(xì)的討論。課程涵蓋了許多話題,包括用SSD和YOLOv3進(jìn)行多目標(biāo)檢測(cè)、如何閱讀學(xué)術(shù)論文、如何定制一個(gè)預(yù)訓(xùn)練模型、進(jìn)行復(fù)雜的數(shù)據(jù)增強(qiáng)(左邊變量、像素分類等等)、NLP遷移學(xué)習(xí)、用新的fast.ai文本庫(kù)處理大型語(yǔ)料庫(kù)、進(jìn)行并研究對(duì)比試驗(yàn)、目前NLP分類的先進(jìn)成果、多模型學(xué)習(xí)、多任務(wù)學(xué)習(xí)、雙向LSTM帶有seq2seq的注意力、神經(jīng)翻譯、定制ResNet架構(gòu)、GANs、WGAN和CycleGAN、數(shù)據(jù)分類、超分辨率、用u-net進(jìn)行圖像分割。
Lesson 8
第8課是本課程第一部分的回顧,并介紹了第二部分的重點(diǎn):先進(jìn)研究。在這里,我們介紹了如何閱讀論文,以及在搭建自己的深度學(xué)習(xí)架構(gòu)時(shí)都要什么。即使你之前從未讀過(guò)一篇學(xué)術(shù)論文,我們也會(huì)從頭開(kāi)始教你,避免你被各種符號(hào)或?qū)懽黠L(fēng)格迷惑。另外,在這節(jié)課中,我們將會(huì)深入了解fastai和PyTorch庫(kù)中的源代碼:我們會(huì)教你如何快速瀏覽并搭建易懂的代碼。另外我們還會(huì)展示如何運(yùn)用Python的調(diào)試器幫助你了解目前的情況以及修復(fù)bug。
本課的主要話題是目標(biāo)檢測(cè),即讓模型在每個(gè)目標(biāo)對(duì)象周圍畫(huà)上邊界框,并正確標(biāo)注。你可能會(huì)很驚訝,我們竟可以用從來(lái)沒(méi)被訓(xùn)練過(guò)的、從ImageNet分類器上的遷移學(xué)習(xí)來(lái)做圖像檢測(cè)!其中有兩個(gè)主要任務(wù):對(duì)目標(biāo)物體定位,同時(shí)給它們分類。我們要用一個(gè)模型同時(shí)完成這兩個(gè)任務(wù)。這種多任務(wù)學(xué)習(xí)總體上比給每個(gè)人物都設(shè)計(jì)不同的模型效率更高。為了利用與訓(xùn)練模型創(chuàng)建自定義網(wǎng)絡(luò),我們將使用fastai的靈活定制的head architecture。
Lesson 9
在這節(jié)課中,我們關(guān)注的重點(diǎn)從單一物體轉(zhuǎn)向了多個(gè)物體檢測(cè)。結(jié)果表明這種改變讓問(wèn)題的難度增加。事實(shí)上,大多學(xué)生覺(jué)得這是整個(gè)課程中最具挑戰(zhàn)性的部分。并不是因?yàn)槟骋徊糠址浅?fù)雜,而是因?yàn)榻M成部分實(shí)在太多了。所以這個(gè)任務(wù)真的很考驗(yàn)?zāi)銓?duì)各種基礎(chǔ)概念的理解。不過(guò)不要擔(dān)心,你可以時(shí)不時(shí)地回看之前的課程,逐漸就會(huì)對(duì)整個(gè)任務(wù)有所把握。
我們的關(guān)注重點(diǎn)是Single Shot Multibox Detector(SSD),同時(shí)還附帶相應(yīng)的YOLOv3檢測(cè)器。這些都是處理多目標(biāo)檢測(cè)任務(wù)的方法,通過(guò)結(jié)合多物體的損失,使用損失函數(shù)。他們同樣還使用定制化的網(wǎng)絡(luò),利用CNN中不同圖層的不同接受域。我們同樣要討論,如何在獨(dú)立變量也需要增強(qiáng)的情況下進(jìn)行數(shù)據(jù)增強(qiáng)。最后,我們討論一個(gè)簡(jiǎn)單但強(qiáng)大的技巧,稱作焦點(diǎn)損失,用于得到該領(lǐng)域的最新成果。
anchor box示例,這是多目標(biāo)檢測(cè)的關(guān)鍵
Lesson 10
大致回顧下關(guān)于目標(biāo)檢測(cè)之所學(xué),在第10課我們會(huì)轉(zhuǎn)向NLP,從介紹新的fast.ai文本庫(kù)開(kāi)始。fast.ai文本庫(kù)是torchtext的替代品,在很多情況下,它比后者更快且更靈活。這節(jié)課可能與第一部分的第4課有些重合,但是本節(jié)課會(huì)教你如何用NLP中的遷移學(xué)習(xí)產(chǎn)生更加精確的結(jié)果。
遷移學(xué)習(xí)在計(jì)算機(jī)視覺(jué)領(lǐng)域做出了許多革命性的成果,但是直到現(xiàn)在卻沒(méi)有在NLP領(lǐng)域有重要的應(yīng)用(在某種程度上可以說(shuō)是被忽略了)。在這節(jié)課上,我們會(huì)展示如何預(yù)訓(xùn)練一個(gè)全語(yǔ)言的模型,能超越此前基于簡(jiǎn)單詞向量的方法。我們將把這一語(yǔ)言模型看作是文本分類的最新成果。
如何完成并理解對(duì)比試驗(yàn)
Lesson 11
本節(jié)課上,我們會(huì)學(xué)習(xí)將法語(yǔ)翻譯成英語(yǔ)!為了達(dá)到這一目標(biāo),我們將學(xué)習(xí)如何在LSTM中添加注意力,以創(chuàng)建一個(gè)seq2seq的模型。但是在做之前,我們需要了解RNN的一些基礎(chǔ)知識(shí),因?yàn)榱私膺@些對(duì)課程的其他部分非常重要。
seq2seq模型的輸入和輸出都是序列,并且長(zhǎng)度不同。翻譯是seq2seq的一個(gè)典型任務(wù)。因?yàn)槊總€(gè)翻譯過(guò)來(lái)的詞語(yǔ)可以對(duì)應(yīng)源句子中一個(gè)或多個(gè)不同位置的詞語(yǔ),我們利用一個(gè)注意力機(jī)制來(lái)確定每個(gè)步驟應(yīng)該關(guān)注哪些詞語(yǔ)。我們同樣學(xué)習(xí)其他的技巧來(lái)改進(jìn)seq2seq的結(jié)果,包括teacher forcing和雙向模型。
課程結(jié)尾,我們討論了DeVISE論文,其中展示了如何用同樣的模型將文本和圖像連接起來(lái)。
簡(jiǎn)單的seq2seq模型
Lesson 12
在本節(jié)課一開(kāi)始,我們就用YOLOv3探究DarkNet的架構(gòu),它還可以幫助我們更好地理解搭建ResNet架構(gòu)時(shí)的各種細(xì)節(jié)和選擇。在這里我們討論的基本方法是贏得過(guò)DAWNBench競(jìng)賽的方法。
然后我們會(huì)學(xué)習(xí)生成對(duì)抗網(wǎng)絡(luò)(GANs)。事實(shí)上這是另一種形式的損失函數(shù)。GANs有一個(gè)生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò),生成模型的目的就是生成現(xiàn)實(shí)度極高的輸出。我們會(huì)重點(diǎn)討論Wasserstein GAN,因?yàn)檫@個(gè)更好訓(xùn)練,同時(shí)對(duì)大量超參數(shù)的穩(wěn)定性更好。
CycleGAN模型
Lesson 13
這節(jié)課我們會(huì)講到CycleGAN,它是GANs領(lǐng)域的突破性思想,可以憑空生成并無(wú)訓(xùn)練過(guò)的圖像。我們可以用它將馬變成斑馬。也許目前你不需要這種應(yīng)用,但是它的基本思想可以轉(zhuǎn)移到很多有價(jià)值的應(yīng)用中。我們其中一位學(xué)生正用它創(chuàng)作新形式的視覺(jué)藝術(shù)。
但是生成模型也會(huì)對(duì)社會(huì)造成傷害。所以我們也要花些時(shí)間討論數(shù)據(jù)的規(guī)范。這個(gè)話題需要在整個(gè)課程中被關(guān)注,但是由于時(shí)間關(guān)系不能列出所有細(xì)節(jié),希望我們能講出其中重要的問(wèn)題。
在課程結(jié)尾,我們會(huì)研究風(fēng)格遷移問(wèn)題,這個(gè)技術(shù)能將圖像改變成自己喜歡的風(fēng)格。這種方法需要我們優(yōu)化像素(而不是權(quán)重),所以是優(yōu)化問(wèn)題的一個(gè)有趣方面。
偏差是目前數(shù)據(jù)規(guī)范中一個(gè)重要問(wèn)題
Lesson 14
在最后一節(jié)課中,我們會(huì)深入研究超分辨率,這種神奇的技術(shù)能讓我們基于卷積神經(jīng)網(wǎng)絡(luò),將圖片的分辨率恢復(fù)得非常高。在這一過(guò)程中,我們正研究一些能更快、更可靠的訓(xùn)練卷積網(wǎng)絡(luò)的方法。
最后,我們要講的是圖像分割,尤其是利用U-net架構(gòu),這種技術(shù)贏得了多次Kaggle競(jìng)賽,并在行業(yè)內(nèi)廣泛使用。圖像分割模型能讓我們精準(zhǔn)分辨圖像的每個(gè)位置,精確至像素級(jí)別。
目標(biāo)物體分割的示例
-
圖像分割
+關(guān)注
關(guān)注
4文章
182瀏覽量
18341 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5561瀏覽量
122796 -
cnn
+關(guān)注
關(guān)注
3文章
354瀏覽量
22742
原文標(biāo)題:fast.ai發(fā)布針對(duì)編程者的深度學(xué)習(xí)教程
文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
軍事應(yīng)用中深度學(xué)習(xí)的挑戰(zhàn)與機(jī)遇
BP神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)的關(guān)系
《HarmonyOS第一課》煥新升級(jí),賦能開(kāi)發(fā)者快速掌握鴻蒙應(yīng)用開(kāi)發(fā)
Triton編譯器支持的編程語(yǔ)言
NPU在深度學(xué)習(xí)中的應(yīng)用
系統(tǒng)化EMC課程,打好專業(yè)基礎(chǔ)

評(píng)論