從 2017 年開始,fast.ai 創(chuàng)始人、數(shù)據(jù)科學(xué)家 Jeremy Howard 以每年一迭代的方式更新“針對編程者的深度學(xué)習(xí)課程”(Practical Deep Learning For Coders)。這場免費的課程可以教大家如何搭建最前沿的模型、了解深度學(xué)習(xí)的基礎(chǔ)知識。直到今年已經(jīng)是第三個年頭了。
1 月 24 日,fast.ai 上線 2019 版深度學(xué)習(xí)新課程。據(jù)介紹,該課程 100% 全新,包括以前從未涵蓋過的深度學(xué)習(xí)入門課程,甚至其中某些技術(shù)成果還尚未發(fā)表學(xué)術(shù)論文。
如以往一樣,Jeremy Howard 公開了本次課程將涵蓋的所有細(xì)節(jié)內(nèi)容。他表示,本次課程共有七節(jié),每節(jié)課大約 2 小時,當(dāng)然,預(yù)計完成課后作業(yè)的時間將有 10 小時。
課程將涉及的應(yīng)用案例
本次課程設(shè)計關(guān)鍵應(yīng)用包括:
計算機視覺(例如按品種分類寵物照片)
圖像分類
圖像定位(分割和激活圖)
圖像關(guān)鍵點
NLP(如電影評論情緒分析)
語言建模
文檔分類
表格數(shù)據(jù)(如銷售預(yù)測)
分類數(shù)據(jù)
連續(xù)數(shù)據(jù)
協(xié)作過濾(如電影推薦)
課程涵蓋的基礎(chǔ)
課程鏈接傳送:https://course.fast.ai
目標(biāo)人群:至少有一年的編程經(jīng)驗,且最好是 Python,fast.ai 還提供了Python 相關(guān)的學(xué)習(xí)資源。
第 1 課:圖像分類
該系列課程第一課,是訓(xùn)練一個能以最高精準(zhǔn)度識別寵物品種的圖像分類器。其中,遷移學(xué)習(xí)的使用時本次課程的基礎(chǔ)。我們將了解如何分析模型,以了解其失效模型,或許還能發(fā)現(xiàn),模型出錯的地方與育種專家犯了相同的錯誤。
訓(xùn)練和分析寵物品種分類器
我們將討論課程的整體方法,這與先理論再實際應(yīng)用的方式不同,課程旨在先進行實際應(yīng)用再深入研究。
我們還將討論如何在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時設(shè)置最重要的超參數(shù):學(xué)習(xí)率(這主要基于 Leslie Smith 的 learning rate finder)。最后,還會介紹“標(biāo)簽”的問題,并了解 fast.ai 所提供的功能,如可以輕松將標(biāo)簽添加到圖像中。
第 2 課:數(shù)據(jù)清洗與構(gòu)建;梯度下降法(SGD)
本節(jié)課程將學(xué)習(xí)如何使用自己的數(shù)據(jù)構(gòu)建圖像分類模型,主要包括以下幾方面:
圖像收集
并行下載
創(chuàng)建驗證集
數(shù)據(jù)清洗,通過模型找到數(shù)據(jù)問題
如下圖所示,我們可以創(chuàng)建一個可區(qū)分泰迪熊和灰熊任務(wù)的模型。
將模型投入生產(chǎn)
課程后半部分,將完整訓(xùn)練一個較為簡單的模型,同時創(chuàng)建一個梯度下降循環(huán)。(注:在此過程中,將學(xué)習(xí)到很多新的術(shù)語,所以請確保做好筆記,因為在整個課程中都會引用這個新術(shù)語。)
第3課:數(shù)據(jù)塊;多標(biāo)簽分類;分割
本節(jié)課開始將主要研究一個有趣的數(shù)據(jù)集,叫做“Planet’s Understanding the Amazon from Space”。為了將這些數(shù)據(jù)轉(zhuǎn)化為模型需要的形式,將使用 fast.ai 工具之一的數(shù)據(jù)塊 API。
Planet 數(shù)據(jù)集的一個重要特征是,它是一個多標(biāo)簽數(shù)據(jù)集。也就是說,每個Planet圖像可包含多個標(biāo)簽,而之前看過的數(shù)據(jù)集,每個圖像只有一個標(biāo)簽。此外,可能還需要對多標(biāo)簽數(shù)據(jù)集進行修改。
圖像分割模型的結(jié)果
接下來的圖像分割,是一個標(biāo)記圖像中每個像素的過程,其中一個類別顯示該像素描繪的對象類型。將使用與早期圖像分類類似的技術(shù),所以不需要太多調(diào)整。
本課程中還會使用到 CamVid 數(shù)據(jù)集,該模型誤差遠(yuǎn)低于在學(xué)術(shù)文獻中找到的任何模型。
假設(shè):如果你的因變量是連續(xù)值而不是類別怎么辦?我們將重點回答這個問題,查看關(guān)鍵點數(shù)據(jù)集,并構(gòu)建一個精準(zhǔn)預(yù)測面部關(guān)鍵點的模型。
第 4 課:NLP;表格數(shù)據(jù);協(xié)同過濾;嵌入(Embeddings)
使用 IMDb 電影評論數(shù)據(jù)集深入研究自然語言處理(NLP)。在這項任務(wù)中,目標(biāo)是預(yù)測電影評論是積極的還是消極的,這稱為“情緒分析”。此前,在 fast.ai 2018 課程里提到的 ULMFit 算法,對 NLP 的發(fā)展起著重要作用。紐約時報曾報道:“新系統(tǒng)開始瓦解自然語言的代碼?!盪LMFiT 被認(rèn)為是當(dāng)今最準(zhǔn)確的情緒分析算法。
基本步驟如下:
(首選)創(chuàng)建(或下載預(yù)訓(xùn)練的)語言模型,該模型在大型語料庫(如維基百科)上訓(xùn)練。(“語言模型”指的是學(xué)習(xí)預(yù)測句子下一個單詞的任意一種模型。)
使用目標(biāo)語料庫(案例為 IMDb 電影評論)微調(diào)該語言模型。
在微調(diào)語言模型中刪除編碼器,并用分類器進行替換。然后對微調(diào)該模型以完成最終分類任務(wù)(情緒分類)。
在學(xué)習(xí) NLP 的過程中,我們將通過覆蓋表格數(shù)據(jù)(如電子表格和數(shù)據(jù)庫表格)以及協(xié)作過濾(推薦系統(tǒng))來完成使用的編碼器深度學(xué)習(xí)的實際應(yīng)用。
對于表格數(shù)據(jù),我們還將看到如何使用分類變量和連續(xù)變量,以及如何使用 fast.ai. tabular 模塊來設(shè)置和訓(xùn)練模型。
在課程中期,我們主要研究了如何在每個關(guān)鍵應(yīng)用領(lǐng)域中構(gòu)建和解釋模型,包括:計算機視覺、NLP、表格數(shù)據(jù)、協(xié)同過濾等。
在課程的后半部分,我們將了解這些模型如何真正起作用、如何從頭開始創(chuàng)建的過程,會涉及以下幾部分:
激活
圖層(仿射和非線性)
損失函數(shù)
第 5 課:反向傳播;加速SGD;構(gòu)建神經(jīng)網(wǎng)絡(luò)
本節(jié)課程中,將所有的訓(xùn)練融合在一起,以便討論反向傳播時準(zhǔn)確理解發(fā)生了什么,并利用這些只是從頭構(gòu)建一個簡單的神經(jīng)網(wǎng)絡(luò)。
在這個過程中,可以看到嵌入層的權(quán)重,以找出模型從分類變量的中學(xué)到了什么。
盡管嵌入在 NLP 的單詞嵌入環(huán)境中最廣為人知,但它們對一般的分類變量也同樣重要,例如表格數(shù)據(jù)或協(xié)同過濾。它們甚至可以與非神經(jīng)模型一起使用并取得巨大成功。
第 6 課:正規(guī)化;卷積;數(shù)據(jù)倫理
本節(jié)課主要討論一些改進訓(xùn)練和避免過度擬合的技術(shù):
Dopout:在訓(xùn)練期間隨機刪除激活,使模型正規(guī)化
數(shù)據(jù)增強:在訓(xùn)練期間修改模型輸入,以便有效增加數(shù)據(jù)大小
批量標(biāo)準(zhǔn)化:調(diào)整模型的參數(shù)化,使損失表面更加平滑
單個圖像的數(shù)據(jù)增強示例
接下來,我們將學(xué)習(xí)有關(guān)卷積的所有內(nèi)容,卷積可被視為矩陣乘法的一種變體,也是現(xiàn)代計算機視覺模型的核心操作基礎(chǔ)。
我們將創(chuàng)建一個類激活圖。這是一個熱圖,顯示圖像的哪些部分在進行與測試時最重要。
卷積如何運作
最后,我們還將提到:數(shù)據(jù)倫理。同學(xué)們將了解到模型出錯的一些方法,尤其是反饋循環(huán),其原因以及如何避免這些問題。我們還將研究數(shù)據(jù)偏差可能導(dǎo)致偏向算法的方式,并討論數(shù)據(jù)科學(xué)家可以而且應(yīng)該提出的問題,以確保他們的工作不會導(dǎo)致意外的負(fù)面結(jié)果。
美國司法系統(tǒng)中算法偏差的例子
第 7 課:構(gòu)建 ResNet、U-Net;生成對抗網(wǎng)絡(luò)
在最后一講中,我們將研究現(xiàn)代架構(gòu)中最重要的技術(shù)之一:跳躍連接(skip connection)。跳躍連接是 ResNet 最重要的應(yīng)用,其主要在課程中用于圖像分類,同樣它還是很多前沿成果的基石。
我們還將研究 U-Net 架構(gòu),使用不同類型的跳躍連接極大改善了分段結(jié)果。
ResNet跳躍連接對損失表面的影響
然后,使用 U-Net 架構(gòu)來訓(xùn)練超分辨率模型。這是一種可以提高低質(zhì)量圖像分辨率的模型,該模型不僅會提高分辨率,還會刪除 jpeg 圖片上偽跡和文本水印。
為了使我們的模型產(chǎn)生高質(zhì)量的結(jié)果,需要創(chuàng)建一個自定義損失函數(shù),其中包含特征損失(也稱為感知損失)以及 gram 損失。這些技術(shù)可用于許多其他類型的 圖像生成模型,例如圖像著色。
使用特征損失和 gram 損失的超分辨率結(jié)果
我們將了解到一種稱為生成性對抗性損失(用于生成性對抗性網(wǎng)絡(luò) GAN)的損失函數(shù),可以在某些情況下以犧牲速度為代價來提高生成模型的質(zhì)量。
例如,上文提到的還未發(fā)表的一些論文中所涉及的應(yīng)用:
利用遷移學(xué)習(xí),更快更可靠地訓(xùn)練 GAN
將架構(gòu)創(chuàng)新和損失函數(shù)方法以前所未有的方式進行結(jié)合
結(jié)果令人驚嘆,只需要幾個短短幾小時便可進行訓(xùn)練(與以前需要幾天的方法相比)。
一個循環(huán)神經(jīng)網(wǎng)絡(luò)
最后,我們還將學(xué)到如何從頭開始創(chuàng)建遞歸神經(jīng)網(wǎng)絡(luò)(RNN)。實際上,RNN 不僅是整套課程中 NLP 應(yīng)用的基礎(chǔ)模型,還被證明是規(guī)則的多層神經(jīng)網(wǎng)絡(luò)的一個簡單重構(gòu)。
課前須知:
1、Google Cloud 和微軟 Azure 作為贊助方,已將課程所需的全部功能集成到基于 GPU 的平臺上,并且提供“一鍵式”平臺服務(wù),如 Crestle 和Gradient 服務(wù)。
2、完成第一堂課后,學(xué)生可以在自己的數(shù)據(jù)上訓(xùn)練圖像分類模型。整個上半部分重點是實用技術(shù),僅展示在實踐中用到的技術(shù)相關(guān)理論知識;課程的后半部分,將深入研究理論。直到最后一節(jié)課,將學(xué)習(xí)構(gòu)建和訓(xùn)練一個 Resnet 的神經(jīng)網(wǎng)絡(luò),以求接近最佳準(zhǔn)確性。
3、 課程使用 PyTorch 庫進行教學(xué),可更輕松訪問推薦的深度學(xué)習(xí)模型最佳實踐,同時也可以直接使用所有底層的 PyTorch 功能。
4、學(xué)習(xí)內(nèi)容同樣適用于 TensorFlow/keras、CNTK、MXnet 或者任何其他深度學(xué)習(xí)庫的任何任務(wù)。
5、電腦需要連接到安裝了 fast.ai 庫的云 GPU 供應(yīng)商服務(wù),或設(shè)置一個適合自己的 GPU。同時,還需要了解運行深度學(xué)習(xí)訓(xùn)練的 Jupyter Notebook 環(huán)境的基礎(chǔ)知識。
6、課程筆記本提供了新的交互式GUI,用于使用模型查找和修復(fù)錯誤標(biāo)記或錯誤收集的圖像。
7、(強烈)建議學(xué)院參加該課程的在線社區(qū)。
-
圖像分類
+關(guān)注
關(guān)注
0文章
93瀏覽量
11945 -
計算機視覺
+關(guān)注
關(guān)注
8文章
1700瀏覽量
46086 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5512瀏覽量
121445
原文標(biāo)題:2019最新實戰(zhàn)!給程序員的7節(jié)深度學(xué)習(xí)必修課,最好還會Python!
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論