GitHub標(biāo)星6000+!Python帶你實(shí)踐機(jī)器學(xué)習(xí)圣經(jīng)PRML
將 Bishop 大神的 PRML 稱為機(jī)器學(xué)習(xí)圣經(jīng)一點(diǎn)也不為過(guò),該書系統(tǒng)地介紹了模式識(shí)別和機(jī)器學(xué)習(xí)領(lǐng)域內(nèi)詳細(xì)的概念與基礎(chǔ)。書中有對(duì)概率論基礎(chǔ)知識(shí)的介紹,也有高階的線性代數(shù)和多元微積分的內(nèi)容,適合高校的研究生以及人工智能相關(guān)的從業(yè)人員學(xué)習(xí)。
知乎上關(guān)于這個(gè)關(guān)于“PRML為何是機(jī)器學(xué)習(xí)的經(jīng)典書籍中的經(jīng)典?”的高贊回答或許會(huì)給大家一些啟發(fā):
Luau Lawrence的回答:
https://www.zhihu.com/question/35992297/answer/67009652
PRML 對(duì)初學(xué)者確實(shí)有一定難度,如果覺(jué)得吃力可以先讀一下知乎上推薦的科普性讀物,掌握了機(jī)器學(xué)習(xí)的基礎(chǔ)概念之后再進(jìn)行后續(xù)的學(xué)習(xí)。
知乎討論地址:
https://www.zhihu.com/question/35992297
首先我們來(lái)看一下 PRML 的主要內(nèi)容:
第一章是引子,用曲線擬合讓讀者對(duì)機(jī)器學(xué)習(xí)有個(gè)大概理解。
第二章主要是介紹了一下基礎(chǔ)的統(tǒng)計(jì)方面的知識(shí),包括期望方差的計(jì)算、高斯分布的參數(shù)估計(jì)與理解、高斯分布的性質(zhì)等。
第三章和第四章主要在講最基礎(chǔ)的線性模型,并且展示了如何將其應(yīng)用在分類和回歸的場(chǎng)景下,貝葉斯方法是整本書的核心。
第五章介紹了神經(jīng)網(wǎng)絡(luò),在線性模型的基礎(chǔ)上引入了多層感知機(jī)模型,即常說(shuō)的 BP 網(wǎng)絡(luò)。
第六章講的是核方法,核是兩個(gè)樣本的內(nèi)積,也可以理解為某個(gè)希爾伯特空間中由內(nèi)積定義的“距離”。主要講了線性模型轉(zhuǎn)成核表達(dá)的方式、核的構(gòu)建以及高斯過(guò)程。
第七章是向量機(jī),向量機(jī)講的是貝葉斯模型如何通過(guò)先驗(yàn)找到一個(gè)稀疏的模型。
第八章是講的圖模型,對(duì)變量的獨(dú)立性、隱變量和參數(shù)的區(qū)別(這個(gè)會(huì)在變分貝葉斯中體現(xiàn))做了很好的闡釋。
第九章講了混合模型和 EM 算法,涉及了隱變量的概念和 EM 算法等。
第十章講的是變分推斷,解決了基于現(xiàn)在的模型的分布假設(shè),推斷參數(shù)難的問(wèn)題。
第十一章講采樣方法,介紹了不同采樣方法的優(yōu)缺點(diǎn),并重點(diǎn)講了MCMC采樣。
第十二章講主成分分析,是考察多個(gè)變量間相關(guān)性一種多元統(tǒng)計(jì)方法,研究如何通過(guò)少數(shù)幾個(gè)主成分來(lái)揭示多個(gè)變量間的內(nèi)部結(jié)構(gòu)。
第十三章講的是序列數(shù)據(jù),序列數(shù)據(jù)的特點(diǎn)及馬爾可夫假設(shè)等。
第十四章講的是 Ensemble,包括適應(yīng)性的 boosting 最著名的 AdaBoost,以及一些其他的融合方法。
看這些理論知識(shí)是非??菰锏?,很多初學(xué)者感覺(jué)學(xué)起來(lái)非常吃力,甚至半途放棄,如果你也有這些困擾,那么下面提到的這個(gè) GitHub 項(xiàng)目也許可以幫你走出困境。
在 notebooks 文件夾下實(shí)現(xiàn)了聚類方法、特征抽取、線性模型、核方法、馬爾科夫模型、概率分布模型、采樣方法和神經(jīng)網(wǎng)絡(luò)方法等內(nèi)容,你可以將目錄切換到
notebooks 下直接打開(kāi)對(duì)應(yīng)的 ipynb 文件進(jìn)行練習(xí)。
該 GitHub 項(xiàng)目所需要的編程語(yǔ)言為 Python 3,其它科學(xué)計(jì)算庫(kù)還需要 NumPy 、SciPy、 Matplotlib、Scikit-learn 等,如果你是 Python 初學(xué)者,那么我們強(qiáng)力推薦你安裝 Annaconda,它集成了所有需要的計(jì)算庫(kù),并且可以在 jupyter notebook 交互式的查看執(zhí)行的結(jié)果。
這么好的資源趕緊學(xué)起來(lái)吧!
GitHub鏈接:
https://github.com/ctgk/PRML