今天,數(shù)據(jù)科學(xué)家Jeremy Howard發(fā)布了fast.ai最新的(也是最全面的)課程:Introduction to Machine Learning for Coders。這門課程在舊金山大學(xué)中錄制,是數(shù)據(jù)科學(xué)研究生課程的一部分,涵蓋了目前機器學(xué)習(xí)中最重要的使用基礎(chǔ)。其中共有12節(jié)課,每節(jié)課大約2小時。課程要求你有至少一年的編程經(jīng)驗,以及高中數(shù)學(xué)基礎(chǔ)。以下是論智對課程內(nèi)容的大致編譯:
現(xiàn)在網(wǎng)上有很多優(yōu)秀的機器學(xué)習(xí)課程了,最出名的Andrew Ng的Coursera課程。但是由于課程推出的時間較早,有些過時,因為其中用到的是Matlab。而我們這次的新課程使用的是現(xiàn)在流行的工具和庫,例如Python、pandas、scikit-learn和PyTorch。與很多領(lǐng)域中的教育資料不同,我們的方法是“編程為先”而不是“數(shù)學(xué)為先”。這很適合每天編寫代碼的人,但可能不會過多地練習(xí)數(shù)學(xué)知識(我們會在必要的時候穿插講解數(shù)學(xué))。更重要的是,這項課程非?!皞€性化”,我們并不會講到各種類型的模型,只是關(guān)注在實踐中真正有用的東西。
在課程中,我們會講到兩種主要類型的模型:基于決策樹的模型(尤其是經(jīng)過bagging的決策數(shù)森林),以及基于梯度下降的模型(邏輯回歸和它的變體)。決策樹模型搭建的結(jié)構(gòu)如下圖所示(實際工作中你可能會用到比這更大的樹):
Terence Parr教授和Prince Grover關(guān)于決策樹可視化技術(shù)的研究,利用了他最新的animl可視化庫
決策樹方法非常靈活易用,用bagging和boosting結(jié)合后,可以在很多實用任務(wù)上運用。但是,當(dāng)它們用到訓(xùn)練之外的數(shù)據(jù)上時,可能有些困難,而且在圖像、音頻、自然語言等類型的數(shù)據(jù)上會表現(xiàn)得不太精確。這些問題通常都能用梯度下降的方法解決,這些會在我們課程的下半部分講到,然后簡單地講些深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的知識作為結(jié)尾。(如果你曾經(jīng)上過我們的Practical Deep Learning for Coders的課程,可能會覺得有些地方概念有重合,但是我們教授的方法是不同的)
你將學(xué)會如何從零開始創(chuàng)建完整的決策樹森林,并編寫自己的深度學(xué)習(xí)模型,從零開始訓(xùn)練。在這一過程中,你會學(xué)到很多有關(guān)數(shù)據(jù)處理、模型測試和產(chǎn)品開發(fā)的技巧(包括有關(guān)數(shù)據(jù)產(chǎn)品的道德問題)。
下面是對每節(jié)課程的簡要介紹。
Lesson 1—Introduction to Random Forests
第一課將向同學(xué)們展示如何創(chuàng)建一個隨機森林,隨機森林也許是應(yīng)用最廣泛的機器學(xué)習(xí)模型了,其中會以Kaggle競賽中的Bull Book for Bulldozers項目為例,用隨機森林創(chuàng)造出解決方案,結(jié)果可以達到Kaggle排行榜的前25%。你將學(xué)到如何用Jupyter Notebook創(chuàng)建并分析模型,如何下載數(shù)據(jù),以及其他可能在實踐中用到的機器學(xué)習(xí)基礎(chǔ)技巧。
Lesson 2—Random Forest Deep Dive
這節(jié)課我們將學(xué)習(xí)尺度(metrics)、損失函數(shù)和過度擬合(這可能是最重要的機器學(xué)習(xí)概念)。我們會討論如何用驗證集和測試集幫助我們衡量過度擬合。
之后,我們講學(xué)習(xí)隨機森林是如何運行的。首先,觀察組成森林的每個決策樹,然后學(xué)習(xí)“bagging”。之后,我們會學(xué)習(xí)一些能讓隨機森林更快更精確的有用的技術(shù)。
Lesson 3—Performance,Validation and Model Interpretation
這節(jié)課我們會講到如何讀取更大的數(shù)據(jù)集,這個數(shù)據(jù)集可能都無法在你機器上的RAM中讀取。之后,我們還會學(xué)習(xí)如何從該數(shù)據(jù)集中創(chuàng)建一個隨機森林。之后,還會講到軟件工程中的“profiling”的概念,學(xué)習(xí)如何加速代碼,尤其是在處理大型數(shù)據(jù)集時。
接著,我們會進一步研究驗證集,講解如何創(chuàng)建好的驗證集,之后會從新的數(shù)據(jù)集中按此標(biāo)準(zhǔn)選擇好的驗證集。
在這節(jié)課的后半部分,我們會講到“模型的可解釋性”——這是用模型理解數(shù)據(jù)的重要技巧。這里研究可解釋性主要是看“特征重要性曲線”,這是該話題下重要的技術(shù)。
Lesson 4—Feature Importance,Tree Interpreter
這節(jié)課,我們會深入講解特征重要性,其中會講到如何才能讓重要性曲線含有更豐富信息的多種方法,如何用它們?nèi)バ拚愕奶卣骺臻g,以及用樹狀圖理解特征關(guān)系。
在本節(jié)課的后半部分,我們會學(xué)到兩種重要的解釋技術(shù):部分依賴圖和樹形解釋圖。
Lesson 5—Extrapolation and RF from Scratch
這節(jié)課會學(xué)習(xí)“樹解釋器(tree interpreter)”,包括用“瀑布圖”分析輸出。下一步,我們會解釋外推法(extrapolation)的重要概念,這是隨機森林的一個弱點,它無法預(yù)測輸入數(shù)據(jù)范圍之外的值。我們研究了如何能確定這一問題的方法,以及如何應(yīng)對。
在這節(jié)課的后半部分,我們會開始編寫自己的隨機森林。
Lesson 6—Data Products
在課程的前半部分,我們會學(xué)習(xí)如何用機器學(xué)習(xí)模型創(chuàng)建數(shù)據(jù)產(chǎn)品(data products),基于“The Drivetrain Method”。
接下來,我們會更深入地探究外推問題,順便會學(xué)習(xí)幾個numpy技巧。
Lesson 7—Introduction to Random Forest
這時我們就要結(jié)束對隨機森林的介紹了,同時我們還會簡單介紹“cython”庫,用它對Python代碼稍加改造,就能得到和C代碼一樣的速度。
之后,我們會進入到下一階段——基于梯度下降的方法,例如神經(jīng)網(wǎng)絡(luò)和邏輯回歸。
Lesson 8—Gradient Descent and Logistic Regression
繼續(xù)梯度下降的課程,首先我們會用PyTorch幫助我們從零開始應(yīng)用邏輯回歸,我們會建立一個針對經(jīng)典手寫數(shù)字的MNIST數(shù)據(jù)集的模型。
Lesson 9—Regularization,Learning Rates and NLP
這節(jié)課繼續(xù)建立邏輯回歸模型,并且我們在其中增加了重要的特征:正則化。這里會學(xué)習(xí)L1和L2正則化,以及如何運用它們。同時,我們還會講到學(xué)習(xí)率的問題,如何為你的問題選擇學(xué)習(xí)率。
在本節(jié)課的后半部分,我們會討論自然語言的處理。我們會對流行的IMDb文本數(shù)據(jù)集建立詞袋表示,用稀疏矩陣保證良好的性能和內(nèi)存使用。從中我們建立了多個模型,包括樸素貝葉斯和邏輯回歸,同時還會向其中添加ngram特征提高性能。
Lesson 10—More NLP,and Columnar Data
這節(jié)課程會繼續(xù)創(chuàng)建NLP模型,其中結(jié)合了樸素貝葉斯和邏輯回歸,得出混合的“NB-SVM”模型,它是文本分類的最強基準(zhǔn)模型。為了完成這項任務(wù),我們在PyTorch中創(chuàng)建了一個新的類別:nn.Module。
在這節(jié)課的后半部分,我們開始用深度學(xué)習(xí)研究表格和關(guān)系數(shù)據(jù),借助Kaggle競賽中的Rossmann數(shù)據(jù)集。并且開始在這個數(shù)據(jù)集上研究特征工程。我們會學(xué)習(xí)連續(xù)變量和分分類變量,以及那種特征工程可以完成這些變量。
Lesson 11—Embeddings
首先我們會講解樸素貝葉斯背后的數(shù)學(xué)原理,然后深入研究嵌入,二者都是用于分類變量和表格數(shù)據(jù),也可以用于NLP中的文字。
Lesson 12—Complete Rossmann,Ethical Issues
在課程的前半部分,我們會把所學(xué)到的所有內(nèi)容進行結(jié)合,創(chuàng)造一個針對Rossmann數(shù)據(jù)集的全面模型,包括分類特征和連續(xù)特征,以及各種類別的特征工程。
下半部分,我們會提到在機器學(xué)習(xí)模型的運用過程中可能出現(xiàn)的一些道德問題,以及為什么機器學(xué)習(xí)從業(yè)者應(yīng)該有所警覺,如何解決他們。很多學(xué)生表示,這是這次課程最重要的部分!
-
機器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8422瀏覽量
132720 -
決策樹
+關(guān)注
關(guān)注
3文章
96瀏覽量
13559
原文標(biāo)題:新課上線:fast.ai推出針對程序員的機器學(xué)習(xí)課程
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論