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