與最小復(fù)現(xiàn)單元)
簡(jiǎn)介《模式識(shí)別和機(jī)器學(xué)習(xí)》中文版俗稱(chēng)「花書(shū)」是機(jī)器學(xué)習(xí)領(lǐng)域的經(jīng)典教材由Chris Bishop撰寫(xiě)面向具備高等數(shù)學(xué)與概率統(tǒng)計(jì)基礎(chǔ)的初學(xué)者、研究生及科研人員幫助讀者跨越英文閱讀門(mén)檻系統(tǒng)掌握機(jī)器學(xué)習(xí)的主流理論。這本PDF深入淺出地講解了多項(xiàng)式曲線(xiàn)擬合、概率密度、期望與協(xié)方差、貝葉斯概率與曲線(xiàn)擬合、高斯分布、模型選擇、維度災(zāi)難、決策論、信息論等核心主題各章配有公式推導(dǎo)、示例和練習(xí)目錄結(jié)構(gòu)完整既適合從頭通讀也方便按章節(jié)查閱。資源為單個(gè)PDF文件大小11.56MB內(nèi)含完整中文譯本目前已有349人學(xué)習(xí)下載。從前兩章內(nèi)容看章節(jié)從緒論中的曲線(xiàn)擬合與貝葉斯視角延伸到概率分布中的高斯推斷、學(xué)生t分布、混合高斯模型等進(jìn)階內(nèi)容讀者可借此快速搭建機(jī)器學(xué)習(xí)的概率理論框架深入理解貝葉斯方法、模型選擇與信息論等關(guān)鍵概念為后續(xù)算法學(xué)習(xí)與科研打下堅(jiān)實(shí)基礎(chǔ)。1. PRML 中文版值得讀嗎先看清這份資源的邊界與用法做機(jī)器學(xué)習(xí)到一定階段都會(huì)碰到同一個(gè)坎模型調(diào)得動(dòng)公式推不動(dòng)。PRML 全稱(chēng) Pattern Recognition and Machine Learning是模式識(shí)別與機(jī)器學(xué)習(xí)領(lǐng)域公認(rèn)的經(jīng)典教材這份中文翻譯版把原版核心章節(jié)按原文結(jié)構(gòu)完整保留了下來(lái)從多項(xiàng)式曲線(xiàn)擬合一路推到混合模型和 EM中間覆蓋概率論、線(xiàn)性模型、神經(jīng)網(wǎng)絡(luò)、核方法、圖模型這些主線(xiàn)。它的價(jià)值不在「教你調(diào)包」而在于把算法為什么這樣設(shè)計(jì)講透尤其適合已經(jīng)會(huì)用 scikit-learn、但一讀論文就被貝葉斯公式勸退的從業(yè)者。需要先說(shuō)清一個(gè)邊界民間常把這本書(shū)也叫「花書(shū)」但它和另一本封面上印著花的深度學(xué)習(xí)教材不是同一本別下錯(cuò)資源。這本書(shū)寫(xiě)于深度學(xué)習(xí)爆發(fā)之前不覆蓋 Transformer、Attention但核方法、高斯過(guò)程、圖模型、EM 這些內(nèi)容至今沒(méi)有過(guò)時(shí)反而是現(xiàn)在很多論文里繞不開(kāi)的數(shù)學(xué)底座。中文版對(duì)英文閱讀有壓力的人是剛需不過(guò)翻譯版本流傳多年個(gè)別術(shù)語(yǔ)需要對(duì)照原文理解這個(gè)坑后面第五章會(huì)專(zhuān)門(mén)展開(kāi)。2. 從目錄反推學(xué)習(xí)路線(xiàn)四條主線(xiàn)把全書(shū)串起來(lái)這本書(shū)不適合從頭到尾線(xiàn)性讀。原版正文加練習(xí)接近 800 頁(yè)中文版目錄也保留了完整的章節(jié)結(jié)構(gòu)如果抱著「逐頁(yè)翻完」的心態(tài)大概率在第二章高斯分布那里就擱置了。我一般建議拿到這份資源之后先干一件事不看正文只看目錄把章節(jié)按依賴(lài)關(guān)系重新分組。書(shū)里的章節(jié)順序是按照知識(shí)邏輯排的但人的學(xué)習(xí)路徑可以跳著走。2.1 主線(xiàn)一概率語(yǔ)言與貝葉斯視角第一、二章第一條主線(xiàn)是全書(shū)的地基也是最勸退的部分。第一章從多項(xiàng)式曲線(xiàn)擬合開(kāi)篇用一個(gè)小例子把誤差函數(shù)、過(guò)擬合、正則化、模型選擇、概率視角全部串起來(lái)1.2 節(jié)的概率論和貝葉斯定理看起來(lái)是復(fù)習(xí)實(shí)際上是后面所有推導(dǎo)的公共語(yǔ)言。如果你讀完第一章只覺(jué)得「哦曲線(xiàn)擬合我懂了」那說(shuō)明還沒(méi)抓到重點(diǎn)——重點(diǎn)是 1.2.3 貝葉斯概率和 1.2.4 高斯分布這兩個(gè)小節(jié)在后文出現(xiàn)頻率極高。第二章是整本書(shū)最「硬」的章節(jié)幾乎沒(méi)有一處可以快進(jìn)。2.1 二元變量和二項(xiàng)分布還算友好2.2 多項(xiàng)式變量引入狄利克雷分布也還能跟住真正的分水嶺是 2.3 高斯分布。條件高斯分布、邊緣高斯分布、高斯變量的貝葉斯定理、最大似然估計(jì)、貝葉斯推斷、學(xué)生 t 分布、混合高斯模型這一小節(jié)的內(nèi)容幾乎是后面第三、四、六、九章的公共依賴(lài)。我個(gè)人的建議是第二章的 2.3 必須精讀2.4 指數(shù)族分布可以先混個(gè)臉熟2.5 非參數(shù)方法也可以留到以后再看不影響主線(xiàn)推進(jìn)。主線(xiàn)覆蓋章節(jié)必讀小節(jié)優(yōu)先級(jí)概率與貝葉斯第一、二章1.1、1.2、1.3、2.3高線(xiàn)性模型第三、四章3.1、3.2、4.2、4.3高神經(jīng)網(wǎng)絡(luò)與核方法第五、六、七章5.1、5.3、6.1、6.4中圖模型與 EM第八、九章8.1、8.2、9.1、9.2中2.2 主線(xiàn)二線(xiàn)性模型從回歸到分類(lèi)第三、四章第三條主線(xiàn)是線(xiàn)性模型這部分是實(shí)際工作中最常打交道的算法族。第三章回歸的線(xiàn)性模型里3.1 節(jié)最大似然與最小平方的等價(jià)性是個(gè)值得停下來(lái)推導(dǎo)的結(jié)論——它告訴你平時(shí)用的最小二乘其實(shí)是在高斯噪聲假設(shè)下的最大似然解這對(duì)理解損失函數(shù)的設(shè)計(jì)動(dòng)機(jī)很關(guān)鍵。3.2 偏置-方差分解解釋了為什么模型不能太復(fù)雜也不能太簡(jiǎn)單3.3 貝葉斯線(xiàn)性回歸則把第一、二章的概率語(yǔ)言落到回歸問(wèn)題上。第四章分類(lèi)的線(xiàn)性模型重點(diǎn)看 4.2 概率生成式模型和 4.3 概率判別式模型的對(duì)比。生成式模型先建模類(lèi)條件概率再算后驗(yàn)判別式模型直接建模后驗(yàn)這個(gè)區(qū)別在面試?yán)锝?jīng)常被問(wèn)到也是理解 logistic 回歸本質(zhì)的入口。4.1 里的感知器算法現(xiàn)在用得少但「線(xiàn)性可分時(shí)感知器必然收斂」這個(gè)結(jié)論值得記住它和第七章支持向量機(jī)的最大邊緣思想是接續(xù)的。4.3.3 迭代重加權(quán)最小平方法IRLS建議慢讀一遍這是后面拉普拉斯近似的基礎(chǔ)。2.3 主線(xiàn)三神經(jīng)網(wǎng)絡(luò)與核方法的兩條升級(jí)路徑第五、六、七章第三條主線(xiàn)分兩條路徑一條從神經(jīng)網(wǎng)絡(luò)走一條從核方法走。第五章神經(jīng)網(wǎng)絡(luò)寫(xiě)于二十多年前但骨架完全沒(méi)變前饋網(wǎng)絡(luò)、誤差反向傳播、正則化、早停、卷積神經(jīng)網(wǎng)絡(luò)的雛形都在。讀這一章時(shí)最好和一個(gè)現(xiàn)代框架的自動(dòng)求導(dǎo)對(duì)照著看你會(huì)發(fā)現(xiàn)反向傳播本質(zhì)就是鏈?zhǔn)椒▌t的工程化。5.5.6 卷積神經(jīng)網(wǎng)絡(luò)只有一小節(jié)篇幅很短不需要深究知道「共享權(quán)值 局部連接」是當(dāng)年的核心思想就夠了。第六章核方法和第七章稀疏核機(jī)是另一條路徑。6.1 對(duì)偶表示是個(gè)數(shù)學(xué)上的巧妙轉(zhuǎn)換把線(xiàn)性模型從「特征的線(xiàn)性組合」變成「訓(xùn)練樣本的線(xiàn)性組合」計(jì)算復(fù)雜度從特征維度轉(zhuǎn)移到樣本數(shù)量這就是核技巧的起點(diǎn)。6.4 高斯過(guò)程是貝葉斯線(xiàn)性回歸的等價(jià)視角今天的超參數(shù)優(yōu)化、貝葉斯優(yōu)化里大量使用值得作為精讀對(duì)象。第七章支持向量機(jī)部分現(xiàn)在基本靠庫(kù)實(shí)現(xiàn)但「最大邊緣」的幾何直覺(jué)仍然值得從 7.1 里獲得相關(guān)向量機(jī)RVM只需要知道它和 SVM 的定位差異即可。2.4 主線(xiàn)四圖模型與 EM 把結(jié)構(gòu)畫(huà)出來(lái)第八、九章第四條主線(xiàn)是圖模型和 EM這是全書(shū)中抽象程度最高、也最接近現(xiàn)代概率編程思想的部分。第八章貝葉斯網(wǎng)絡(luò)和馬爾科夫隨機(jī)場(chǎng)核心不是公式而是把變量之間的條件依賴(lài)關(guān)系畫(huà)成圖。我自己的體會(huì)是先學(xué)會(huì)看圖說(shuō)話(huà)再回頭理解 d-劃分和條件獨(dú)立難度會(huì)降一半。8.4 節(jié)的加和-乘積算法是圖模型推斷的核心建議配合一個(gè)簡(jiǎn)單的鏈狀圖手工推一遍不要只盯符號(hào)看。第九章混合模型和 EM 是很多人口中的「勸退章」但它其實(shí)不難難在沒(méi)找到抓手。9.1 K 均值聚類(lèi)是最簡(jiǎn)單的硬分配 EM9.2 混合高斯是軟分配版本9.3 才是 EM 的一般形式。按這個(gè)順序讀E 步和 M 步就不難理解了E 步是補(bǔ)全隱變量的期望M 步是在補(bǔ)全后的完整數(shù)據(jù)上最大化似然。這一章讀完后很多遺留問(wèn)題就解開(kāi)了比如為什么某些模型迭代時(shí)損失會(huì)先降后升、為什么聚類(lèi)對(duì)初始值敏感。3. 先跑通最小復(fù)現(xiàn)單元多項(xiàng)式擬合的推導(dǎo)與驗(yàn)證拿到這本中文版資源我最不建議的用法是「從頭開(kāi)始背公式」。我自己習(xí)慣的做法是每一章挑一個(gè)最小可復(fù)現(xiàn)的例子用代碼把書(shū)里的結(jié)論重新驗(yàn)證一遍。整個(gè)書(shū)里最小的復(fù)現(xiàn)單元就是第一章那個(gè)多項(xiàng)式曲線(xiàn)擬合它把誤差函數(shù)、過(guò)擬合、正則化全部濃縮在一個(gè)一維回歸問(wèn)題里十分鐘就能跑完。3.1 為什么多項(xiàng)式擬合是全書(shū)最小復(fù)現(xiàn)單元多項(xiàng)式擬合的目標(biāo)函數(shù)很簡(jiǎn)單用 sin(2πx) 生成一組帶噪聲的樣本然后用 M 階多項(xiàng)式去擬合。問(wèn)題看似平凡但當(dāng)你改變 M 的值時(shí)模型行為會(huì)發(fā)生幾個(gè)明顯的階段變化M 太小欠擬合M 適中擬合良好M 太大則精確穿過(guò)所有樣本點(diǎn)卻在區(qū)間外劇烈振蕩。這幾個(gè)階段對(duì)應(yīng)著機(jī)器學(xué)習(xí)最核心的張力——模型容量與泛化能力之間的權(quán)衡。書(shū)里用這個(gè)例子引出誤差函數(shù)、正則化、概率視角和貝葉斯曲線(xiàn)擬合一整章的邏輯閉環(huán)都掛在這一個(gè)例子上。所以我建議拿到資源后先別急著往下翻花半小時(shí)把這個(gè)例子在本地跑通一次。這比通讀十頁(yè)公式有用得多。3.2 設(shè)計(jì)矩陣與閉式解的驗(yàn)證步驟驗(yàn)證過(guò)程分三步先構(gòu)造帶噪聲的訓(xùn)練樣本再設(shè)計(jì)多項(xiàng)式基函數(shù)構(gòu)成設(shè)計(jì)矩陣最后用閉式解求出權(quán)向量。下面是一段可以直接運(yùn)行的 numpy 實(shí)現(xiàn)M 是多項(xiàng)式階數(shù)N 是樣本數(shù)量。import numpy as np # 生成 10 個(gè)帶噪聲的訓(xùn)練樣本目標(biāo)函數(shù)是 sin(2*pi*x) rng np.random.default_rng(0) N 10 x np.linspace(0, 1, N) t np.sin(2 * np.pi * x) 0.3 * rng.standard_normal(N) def design_matrix(x, M): # 每一行是 [1, x, x^2, ..., x^M]M 是多項(xiàng)式階數(shù) return np.vander(x, M 1, increasingTrue) def fit_polynomial(x, t, M): Phi design_matrix(x, M) # 閉式解 w (Phi^T Phi)^-1 Phi^T t用 solve 避免顯式求逆 w np.linalg.solve(Phi.T Phi, Phi.T t) return w for M in [0, 1, 3, 9]: w fit_polynomial(x, t, M) print(fM{M}, w{np.round(w, 3)})這段代碼里np.vander構(gòu)造的是范德蒙矩陣increasingTrue讓列按升冪排列這樣第 j 列正好對(duì)應(yīng) x^j。np.linalg.solve直接解線(xiàn)性方程組比手寫(xiě)inv(Phi.T Phi) Phi.T t數(shù)值上更穩(wěn)在 M 偏大時(shí)能少踩一些矩陣病態(tài)的坑。M9 時(shí)10 個(gè)樣本配 10 個(gè)參數(shù)模型會(huì)精確穿過(guò)每個(gè)數(shù)據(jù)點(diǎn)但相鄰點(diǎn)之間的曲線(xiàn)會(huì)劇烈起伏——這就是過(guò)擬合的典型面貌。3.3 訓(xùn)練誤差與測(cè)試誤差的配合觀(guān)察只看擬合曲線(xiàn)還不夠更有效的驗(yàn)證是同時(shí)觀(guān)察訓(xùn)練誤差和測(cè)試誤差。做法是額外生成一組無(wú)噪聲的密集測(cè)試樣本分別計(jì)算各 M 值下的均方根誤差畫(huà)成兩條曲線(xiàn)對(duì)比。訓(xùn)練誤差會(huì)隨 M 增大單調(diào)下降而測(cè)試誤差通常呈 U 形先降后升。測(cè)試誤差最低點(diǎn)對(duì)應(yīng)的 M就是平衡點(diǎn)。多項(xiàng)式階數(shù) M訓(xùn)練誤差測(cè)試誤差模型行為0很高很高欠擬合近似一條水平線(xiàn)1中中欠擬合只能捕捉線(xiàn)性趨勢(shì)3低低擬合良好接近真實(shí)目標(biāo)函數(shù)9幾乎為 0很高過(guò)擬合震蕩劇烈這個(gè)觀(guān)察結(jié)果直接對(duì)應(yīng)第一章 1.3 節(jié)模型選擇的動(dòng)機(jī)模型復(fù)雜度是一個(gè)需要顯式控制的量不能單看訓(xùn)練集表現(xiàn)。順著這個(gè)例子再往深處想維度災(zāi)難的直覺(jué)也在這里埋下了伏筆——特征維度增加時(shí)參數(shù)空間體積以指數(shù)級(jí)膨脹需要的數(shù)據(jù)量也隨之暴漲這就是 1.4 節(jié)的核心。3.4 正則化項(xiàng)的引入與參數(shù)選擇過(guò)擬合出現(xiàn)后書(shū)里順勢(shì)引入正則化項(xiàng)把誤差函數(shù)改成平方誤差加 λ 倍的權(quán)向量范數(shù)平方。固定 M9然后在一組對(duì)數(shù)刻度上掃描 λ你會(huì)看到一個(gè)很有意思的現(xiàn)象λ 從 0 增大時(shí)擬合曲線(xiàn)逐漸從劇烈振蕩變回平滑權(quán)向量 w 的幅值大幅收縮但 λ 大到一定程度曲線(xiàn)又退化成近似直線(xiàn)變成欠擬合。λ 的選擇通常用交叉驗(yàn)證確定常見(jiàn)做法是在 10^-6 到 10^2 之間按對(duì)數(shù)間隔掃一輪選驗(yàn)證集誤差最小的那個(gè)點(diǎn)。這個(gè)正則化項(xiàng)不是拍腦袋加的它對(duì)應(yīng)著第三章 3.3 貝葉斯線(xiàn)性回歸里高斯先驗(yàn)的精度參數(shù)。換句話(huà)說(shuō)正則化在頻率視角下是「懲罰大權(quán)值」在貝葉斯視角下是「給權(quán)值一個(gè)先驗(yàn)分布」兩種說(shuō)法最終落到同一個(gè)公式。建議跑完代碼后再回去讀 1.2.5 和 1.2.6 這兩節(jié)你會(huì)理解書(shū)里為什么反復(fù)強(qiáng)調(diào)「從概率角度看曲線(xiàn)擬合」——因?yàn)檫@個(gè)例子從頭到尾都在為貝葉斯方法做鋪墊。4. 進(jìn)階章節(jié)的讀法核方法、圖模型與 EM 的取舍現(xiàn)代從業(yè)者讀這本書(shū)最常問(wèn)的問(wèn)題是里邊的數(shù)學(xué)要推到什么程度我的判斷是分三檔工作中正在用的算法要能獨(dú)立推導(dǎo)核心公式只用庫(kù)的算法可以只保留幾何直覺(jué)純理論擴(kuò)展可以瀏覽結(jié)論。用這個(gè)標(biāo)準(zhǔn)去切中間幾章會(huì)省下大量時(shí)間。4.1 模型選擇與維度災(zāi)難什么時(shí)候該停下來(lái)第一章里模型選擇這節(jié)書(shū)里同時(shí)給了交叉驗(yàn)證和貝葉斯模型比較兩種思路。交叉驗(yàn)證是頻率視角下的實(shí)用主義方案——把數(shù)據(jù)切幾份循環(huán)做訓(xùn)練和驗(yàn)證選泛化誤差最小的模型貝葉斯模型比較則要給每個(gè)模型算邊緣似然計(jì)算成本高而且對(duì)先驗(yàn)選擇敏感。我的建議是實(shí)踐里用好交叉驗(yàn)證和信息準(zhǔn)則就夠了貝葉斯模型比較能看懂思想即可不必死磕邊緣似然的歸一化系數(shù)推導(dǎo)。維度災(zāi)難要關(guān)注的不是高維空間本身而是「高維讓數(shù)據(jù)變稀疏」帶來(lái)的連鎖反應(yīng)密度估計(jì)需要海量樣本、距離度量失真、K 近鄰在高維幾乎失去意義。書(shū)里給的解決方向同樣值得記降維、流形假設(shè)、核技巧本質(zhì)都是在對(duì)抗維度災(zāi)難這條線(xiàn)索會(huì)一直貫穿到第八、九章。4.2 核方法與高斯過(guò)程要不要手推第六章核方法經(jīng)常被高估難度其實(shí)核心就三個(gè)點(diǎn)對(duì)偶表示解決的是「參數(shù)數(shù)量隨樣本數(shù)量增長(zhǎng)」的計(jì)算問(wèn)題核函數(shù)隱式定義了特征空間的相似度高斯過(guò)程把核從「相似度函數(shù)」升級(jí)成「協(xié)方差函數(shù)」。其中高斯過(guò)程值得認(rèn)真對(duì)待因?yàn)樗诂F(xiàn)代機(jī)器學(xué)習(xí)里仍然活躍——超參數(shù)優(yōu)化、貝葉斯優(yōu)化、少量樣本回歸任務(wù)里經(jīng)常用它做代理模型。讀 6.4 高斯過(guò)程時(shí)我的建議是把它和第三章貝葉斯線(xiàn)性回歸放在一起對(duì)照貝葉斯線(xiàn)性回歸是先固定基函數(shù)再推斷參數(shù)高斯過(guò)程是直接用核定義函數(shù)分布。兩者在數(shù)學(xué)上殊途同歸但高斯過(guò)程繞開(kāi)了「基函數(shù)怎么選」這個(gè)老大難問(wèn)題。4.2 這一節(jié)跳過(guò) 6.3 的 Nadaraya-Watson 模型細(xì)節(jié)也問(wèn)題不大重點(diǎn)抓住 6.1 對(duì)偶表示的推導(dǎo)邏輯以及 6.4 里超參數(shù)優(yōu)化的目標(biāo)函數(shù)長(zhǎng)什么樣。4.3 圖模型與 EM畫(huà)圖優(yōu)先于寫(xiě)公式讀第八章圖模型有一個(gè)很實(shí)用的技巧遇到一段概率公式先別急著展開(kāi)把它對(duì)應(yīng)的圖結(jié)構(gòu)畫(huà)在紙上觀(guān)察哪些變量之間有邊、哪些沒(méi)有邊。條件獨(dú)立性質(zhì)、d-劃分這些抽象概念一旦落到圖上就變得非常直觀(guān)。8.4 節(jié)的加和-乘積算法可以用一個(gè)簡(jiǎn)單的鏈狀圖手推一遍算完你就會(huì)明白「消息傳遞」這個(gè)詞從哪來(lái)。EM 算法放到第九章章節(jié)標(biāo)題是混合模型和 EM但實(shí)際可以拆成三段K 均值是最直觀(guān)的硬聚類(lèi)混合高斯把 K 均值的硬分配換成軟分配每個(gè)點(diǎn)分屬于多個(gè)簇是有概率權(quán)重的一般形式的 EM 才把方法論抽象出來(lái)。讀的時(shí)候只需要盯住一個(gè)問(wèn)題E 步是在補(bǔ)全隱變量的期望M 步是在補(bǔ)全后的完整數(shù)據(jù)上做最大似然估計(jì)。這個(gè)循環(huán)每迭代一次似然函數(shù)只會(huì)上升不會(huì)下降理解了這個(gè)單調(diào)性保證很多工程上的調(diào)試直覺(jué)就通了。章節(jié)主題必讀內(nèi)容可以先跳過(guò)核方法6.1 對(duì)偶表示、6.4 高斯過(guò)程6.3 RBF 網(wǎng)絡(luò)細(xì)節(jié)稀疏核機(jī)7.1 最大邊緣思想7.2 RVM 稀疏性分析圖模型8.1 貝葉斯網(wǎng)絡(luò)、8.2 d-劃分8.4.6 一般圖精確推斷EM9.1 到 9.3 的順序推導(dǎo)9.3 之后的擴(kuò)展應(yīng)用5. 避坑讀中文版 PRML 的五個(gè)常見(jiàn)問(wèn)題這本書(shū)的中文翻譯版解決了不少人的英文閱讀問(wèn)題但實(shí)際讀起來(lái)依然有幾個(gè)高頻坑。以下問(wèn)題都是我自己和身邊同行對(duì)照教材踩過(guò)的按「現(xiàn)象 → 原因 → 解決」逐條拆開(kāi)能幫你省下不少自查時(shí)間。5.1 數(shù)學(xué)符號(hào)體系和框架文檔對(duì)不上現(xiàn)象讀第三章回歸時(shí)看到 w、Φ、E(w) 這些符號(hào)覺(jué)得很抽象翻譯成代碼或者讀框架源碼時(shí)不知道怎么對(duì)應(yīng)。原因這本書(shū)使用的記號(hào)是傳統(tǒng)統(tǒng)計(jì)學(xué)語(yǔ)法比如用 Φ 表示基函數(shù)矩陣用 E(w) 表示誤差函數(shù)和現(xiàn)在 PyTorch 里的nn.Parameter、loss_fn完全不是一個(gè)命名體系。符號(hào)是歷史的不代表理論是舊的。解決拿到書(shū)之后第一遍先花十分鐘建一張自己的符號(hào)對(duì)照表把書(shū)里的符號(hào)對(duì)應(yīng)到 numpy 變量或 PyTorch 張量上。比如 w 對(duì)應(yīng)weightΦ 對(duì)應(yīng)design_matrixE(w) 對(duì)應(yīng)loss。做到「看到一個(gè)符號(hào)腦子里立刻浮現(xiàn)出數(shù)組形狀」后面推導(dǎo)就不會(huì)被符號(hào)繞暈。5.2 中文術(shù)語(yǔ)與主流教材的譯法不一致現(xiàn)象書(shū)里某個(gè)術(shù)語(yǔ)的譯法和你在網(wǎng)上看到的文章說(shuō)法對(duì)不上查資料時(shí)產(chǎn)生混淆。比如判別式模型、生成式模型在部分章節(jié)的譯名表述和現(xiàn)在中文技術(shù)社區(qū)的習(xí)慣叫法存在差異likelihood 這個(gè)詞在不同版本里可能被譯為「似然性」或「似然」英文原詞是同一個(gè)。原因中文翻譯版流傳時(shí)間較長(zhǎng)早期翻譯的術(shù)語(yǔ)體系還沒(méi)有完全和后來(lái)社區(qū)的主流譯法統(tǒng)一。翻譯本身沒(méi)有問(wèn)題只是存在版本差異。解決讀的時(shí)候手邊開(kāi)一個(gè)英文原版目錄或術(shù)語(yǔ)索引遇到不確定的中文詞先翻英文原詞再繼續(xù)。特別是貝葉斯相關(guān)章節(jié)建議直接記住英文術(shù)語(yǔ)中文翻譯只作為輔助理解。5.3 跳過(guò)概率章節(jié)直接讀線(xiàn)性模型現(xiàn)象覺(jué)得自己概率論學(xué)過(guò)直接從第三章開(kāi)始讀結(jié)果貝葉斯線(xiàn)性回歸那里完全跟不上證據(jù)近似那節(jié)更是天書(shū)。原因第三章 3.3 貝葉斯線(xiàn)性回歸默認(rèn)你已經(jīng)掌握了第一章的貝葉斯概率、高斯分布、第三章前面的最大似然估計(jì)。概率論的「學(xué)過(guò)」和這本書(shū)要求的「能推導(dǎo)」不是一個(gè)量級(jí)尤其是條件高斯和邊緣高斯那幾小節(jié)是后面幾乎所有推導(dǎo)的公共依賴(lài)。解決至少把 1.2 節(jié)和 2.3 節(jié)過(guò)一遍不求所有習(xí)題做完但要求能自己寫(xiě)出「給定均值方差的高斯分布表達(dá)式」和「貝葉斯定理的后驗(yàn)形式」。這兩個(gè)公式熟到能默寫(xiě)再進(jìn)行到第三章。5.4 把「花書(shū)」當(dāng)成深度學(xué)習(xí)新書(shū)現(xiàn)象沖著「花書(shū)」這個(gè)名字、沖著現(xiàn)代深度學(xué)習(xí)的名頭下載打開(kāi)一看發(fā)現(xiàn)沒(méi)有 Transformer 沒(méi)有注意力機(jī)制覺(jué)得資源過(guò)時(shí)了。原因民間俗稱(chēng)撞名。PRML 這本「花書(shū)」出版年份很早它的定位是機(jī)器學(xué)習(xí)經(jīng)典教材不是深度學(xué)習(xí)前沿讀物。它的內(nèi)容覆蓋概率模型、圖模型、核方法這些「?jìng)鹘y(tǒng)但有用」的方向而另一本深度學(xué)習(xí)教材才是以神經(jīng)網(wǎng)絡(luò)為主的花書(shū)。解決下載前先對(duì)照目錄確認(rèn)內(nèi)容。如果目標(biāo)是 Transformer、大模型這份資源確實(shí)不是首選如果目標(biāo)是補(bǔ)概率圖模型、貝葉斯推斷、EM 的數(shù)學(xué)底子它就是合適的。兩本花書(shū)包里的東西完全不同看目錄即可。5.5 只看推導(dǎo)不做習(xí)題現(xiàn)象讀的時(shí)候覺(jué)得自己全看懂了公式都能順下來(lái)但合上書(shū)一周后回憶發(fā)現(xiàn)腦子里只剩幾個(gè)名詞。原因看推導(dǎo)是輸入型學(xué)習(xí)大腦會(huì)把「眼睛看過(guò)」誤判為「自己會(huì)推」。書(shū)里練習(xí)題的難度設(shè)定很講究每一道題都對(duì)應(yīng)正文里一個(gè)重要推導(dǎo)不做題就把最有效的記憶鞏固環(huán)節(jié)跳過(guò)了。解決每章挑兩三道練習(xí)題不要求全做完。做法是先把公式用筆推一遍再拿 numpy 寫(xiě)一小段代碼驗(yàn)證數(shù)值正確性。第五章會(huì)有具體示例這個(gè)「習(xí)題當(dāng)測(cè)試用例」的習(xí)慣一旦養(yǎng)成讀這類(lèi)數(shù)學(xué)書(shū)的效果會(huì)翻倍。6. 一個(gè)鞏固公式的小技巧把習(xí)題當(dāng)測(cè)試用例這套方法聽(tīng)起來(lái)簡(jiǎn)單執(zhí)行起來(lái)需要一點(diǎn)紀(jì)律。我的習(xí)慣是每讀完一章挑兩三個(gè)習(xí)題不直接算而是先去習(xí)題所在的正文小節(jié)里找它對(duì)應(yīng)的公式然后開(kāi)一個(gè) Jupyter notebook把公式翻譯成 numpy 運(yùn)算。比如第一章練習(xí) 1.1 問(wèn)的是正則化最小二乘的權(quán)向量形式它和第三章 3.1 里的閉式解本質(zhì)上是同一個(gè)公式區(qū)別只在于誤差函數(shù)里多了一項(xiàng) λ 乘權(quán)向量?jī)?nèi)積。用代碼驗(yàn)證時(shí)關(guān)鍵點(diǎn)是檢查矩陣形狀和維度是否對(duì)齊。閉式解里如果設(shè)計(jì)矩陣 Φ 的形狀是 N×(M1)那么 Φ?Φ 一定是 (M1)×(M1)Φ?t 一定是 (M1)×1解出來(lái)的 w 也是一樣。每次驗(yàn)證時(shí)先在代碼里打印出各矩陣的形狀再對(duì)結(jié)果做數(shù)值斷言這比靠眼睛判斷可靠得多。# 習(xí)題式驗(yàn)證檢查設(shè)計(jì)矩陣和閉式解的維度是否對(duì)齊 Phi design_matrix(x, 9) # 形狀應(yīng)為 (N, 10) w np.linalg.solve(Phi.T Phi, Phi.T t) assert Phi.shape (N, 10) assert w.shape (10,)為什么這樣做有效因?yàn)樽鲱}時(shí)手算能容忍小幅失誤但代碼不會(huì)——寫(xiě)錯(cuò)一個(gè)下標(biāo)就報(bào)錯(cuò)一個(gè)減號(hào)漏掉擬合曲線(xiàn)就崩。當(dāng)公式翻譯成可運(yùn)行代碼并通過(guò)斷言的那一刻才是真正把書(shū)里的推導(dǎo)變成了自己的直覺(jué)。我第一次讀這本書(shū)時(shí)翻車(chē)得很徹底就是在習(xí)題上卡了兩天才發(fā)現(xiàn)是矩陣維度寫(xiě)錯(cuò)從那以后我每次讀完一節(jié)都強(qiáng)制自己把核心公式用 numpy 重寫(xiě)一遍順手補(bǔ)上形狀斷言。順序是先推筆頭再跑代碼最后回看書(shū)里那句話(huà)。希望幫到你也祝這份資源能真正變成你案頭常翻的工具書(shū)。本文還有配套的精品資源點(diǎn)擊獲取