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