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