在 Github 上,afshinea 貢獻(xiàn)了一個(gè)備忘錄對(duì)經(jīng)典的斯坦福 CS229 課程進(jìn)行了總結(jié),內(nèi)容包括監(jiān)督學(xué)習(xí)、無(wú)監(jiān)督學(xué)習(xí),以及進(jìn)修所用的概率與統(tǒng)計(jì)、線(xiàn)性代數(shù)與微積分等知識(shí)。機(jī)器之心簡(jiǎn)要介紹了該項(xiàng)目的主要內(nèi)容,讀者可點(diǎn)擊「閱讀原文」下載所有的備忘錄。
項(xiàng)目地址:https://github.com/afshinea/stanford-cs-229-machine-learning
據(jù)項(xiàng)目介紹,該 repository 旨在總結(jié)斯坦福 CS 229 機(jī)器學(xué)習(xí)課程的所有重要概念,包括:
學(xué)習(xí)該課程所需的重要預(yù)備知識(shí),例如概率與統(tǒng)計(jì)、代數(shù)與微積分等進(jìn)修課程。
對(duì)每個(gè)機(jī)器學(xué)習(xí)領(lǐng)域知識(shí)的備忘錄,以及在訓(xùn)練模型時(shí)需要的提示與技巧。
上面所有的元素最終匯編進(jìn)來(lái)一個(gè)備忘錄里。
VIP Cheatsheets
在這一部分中,該項(xiàng)目根據(jù) CS 229 提供了監(jiān)督學(xué)習(xí)、無(wú)監(jiān)督學(xué)習(xí)、深度學(xué)習(xí)、機(jī)器學(xué)習(xí)技巧等重點(diǎn)內(nèi)容。其中監(jiān)督學(xué)習(xí)主要介紹了回歸、分類(lèi)和生成,無(wú)監(jiān)督主要介紹了聚類(lèi)與降維算法,深度學(xué)習(xí)概述了三種神經(jīng)網(wǎng)絡(luò)。
監(jiān)督學(xué)習(xí)
如下所示監(jiān)督學(xué)習(xí)介紹了非常多基礎(chǔ)概念,包括損失函數(shù)、梯度下降和最大似然估計(jì)等。其中損失函數(shù)展示了常用的最小二乘損失函數(shù)、折頁(yè)損失函數(shù)和交叉熵?fù)p失函數(shù)等,每一種損失函數(shù)的圖像、定義和應(yīng)用的算法都展示在其中。
監(jiān)督學(xué)習(xí)部分一共有四頁(yè)備忘錄,除了一般的線(xiàn)性與 Logistic 回歸,還重點(diǎn)介紹了 SVM、樸素貝葉斯和 K 近鄰等其它一些非參模型。這些基本上都是直接給出的定義,因此不會(huì)有過(guò)多的冗余信息,這對(duì)于機(jī)器學(xué)習(xí)開(kāi)發(fā)者與研究者作為參考還是非常有幫助的。
除了標(biāo)準(zhǔn)的定義外,很多重點(diǎn)概念還會(huì)用形象的圖示表達(dá)出來(lái),如下展示了監(jiān)督學(xué)習(xí)中的支持向量機(jī):
上述定義清楚地描述了 SVM 的定義,它希望能根據(jù)「支持向量」最大化分類(lèi)邊界之間的間隔,這樣的分類(lèi)模型將更穩(wěn)定?;旧现环鶊D就講述了 SVM 的基本想法,同時(shí)也展現(xiàn)了分類(lèi)原理,根據(jù)它再「回憶起」合頁(yè)損失函數(shù)也就更容易了。
無(wú)監(jiān)督學(xué)習(xí)
無(wú)監(jiān)督學(xué)習(xí)主要記錄了 EM 算法、聚類(lèi)算法和降維算法等,其中聚類(lèi)又詳細(xì)介紹了 K 均值聚類(lèi)、層級(jí)聚類(lèi)和其他聚類(lèi)距離度量方法等,而降維算法則主要展示了主成分分析法和獨(dú)立成分分析法這兩種。
除了標(biāo)準(zhǔn)的定義,這些算法的原理圖也非常重要,如上所示在 K 均值聚類(lèi)中,四幅圖展示了該算法的具體過(guò)程。首先隨機(jī)初始化均值,然后將離均值近的樣本分配為均值所代表的那一類(lèi),隨后根據(jù)誤差更新均值的位置,并直到模型收斂。主成分分析同樣有非常好的可視化,如下 PCA 會(huì)先歸一化數(shù)據(jù)特征,然后根據(jù)奇異值分解找出主成分,最后再將所有數(shù)據(jù)映射到主成分而實(shí)現(xiàn)降維。
深度學(xué)習(xí)
很多讀者已經(jīng)比較了解深度學(xué)習(xí)了,尤其是全連接網(wǎng)絡(luò)、卷積網(wǎng)絡(luò)和循環(huán)網(wǎng)絡(luò)。這一份備忘錄同樣也展示了這三種網(wǎng)絡(luò)重要的概念與定義,且同時(shí)描述了強(qiáng)化學(xué)習(xí)的一些基本概念,如馬爾可夫決策過(guò)程、貝爾曼方程價(jià)值迭代算法和 Q 學(xué)習(xí)等。
我們認(rèn)為在圖 CNN 中,非常重要的是計(jì)算輸出特征圖大小的公式,即 N = (W-F+2P)/S + 1。其中 W 表示輸入特征圖的長(zhǎng)寬,F(xiàn) 表示卷積核大小,P 表示在每一端填補(bǔ)零值的數(shù)量,S 表示卷積步幅,因此計(jì)算出來(lái)的 N 就表示輸出特征圖的尺寸。這對(duì)于設(shè)計(jì)卷積網(wǎng)絡(luò)非常重要,我們經(jīng)常需要該公式控制網(wǎng)絡(luò)中間的特征圖大小。
機(jī)器學(xué)習(xí)技巧
這一份備忘錄從分類(lèi)、回歸、模型選擇和模型診斷出發(fā)展示了 ML 中的一些技巧。其中分類(lèi)與回歸主要從度量方法的角度探討,也就是說(shuō)到底什么樣的方法才能確定模型的好壞,以及它們的特定屬性。同樣模型選擇與診斷也都希望判斷模型的好壞,只不過(guò)一個(gè)是從交叉驗(yàn)證與正則化的角度考慮,另一個(gè)是從偏差與方差的角度考慮。
VIP Refreshers
這一部分作者提供了進(jìn)修課程的備忘錄,包括對(duì)概率與統(tǒng)計(jì)、代數(shù)與微積分的介紹。
概率與統(tǒng)計(jì)
從排列與組合開(kāi)始,這一部分介紹了概率與統(tǒng)計(jì)的概念定義。包括條件概率、貝葉斯法則、概率密度函數(shù)、概率分布函數(shù)與隨機(jī)變量的均值和方差等。后面的統(tǒng)計(jì)也展示了非常多的定義與規(guī)則,包括分布的 K 階矩、常見(jiàn)的離散型與連續(xù)型隨機(jī)變量分布,以及樣本均值、方差、協(xié)方差等數(shù)據(jù)特征。
最后,該備忘錄同樣記錄了參數(shù)估計(jì),這對(duì)于機(jī)器學(xué)習(xí)來(lái)說(shuō)是最為關(guān)鍵的概念之一,因?yàn)楸举|(zhì)上機(jī)器學(xué)習(xí)就是需要通過(guò)大量樣本對(duì)模型的參數(shù)進(jìn)行估計(jì),或者稱(chēng)為「學(xué)習(xí)」。此外,之所以高斯分布如此重要,最后面的中心極限定理可以給我們答案。也就是說(shuō),如果采樣 n 個(gè)服從獨(dú)立同分布的樣本,那么當(dāng) n 趨近于無(wú)窮大的時(shí)候,這個(gè)未知的分布一定是接近于高斯分布的。
線(xiàn)性代數(shù)與微積分
矩陣運(yùn)算與微分在實(shí)際搭建模型時(shí)非常重要,因?yàn)椴徽撌莻鹘y(tǒng)的機(jī)器學(xué)習(xí)還是深度學(xué)習(xí),我們實(shí)際都是使用矩陣甚至是張量進(jìn)行運(yùn)算,了解它們的法則才能理解模型的實(shí)際過(guò)程。在這一份備忘錄中,作者描述了向量與矩陣的定義、各種常見(jiàn)矩陣運(yùn)算的定義,以及大量的矩陣概念,例如矩陣的跡、矩陣的逆、矩陣的秩、矩陣的正定和特征值與特征向量等。
矩陣微分的基本概念也展示在上面,因?yàn)槲覀冊(cè)诟鶕?jù)反向傳播更新參數(shù)時(shí),基本使用的都是矩陣微分。這也就需要我們了解 Jacobian 矩陣和 Hessian 矩陣。