識高斯過程回歸)
直觀易懂的開源教程Gaussian-Process-Regression-Tutorial一文帶你全面認(rèn)識高斯過程回歸【免費(fèi)下載鏈接】Gaussian-Process-Regression-TutorialAn Intuitive Tutorial to Gaussian Processes Regression項(xiàng)目地址: https://gitcode.com/gh_mirrors/ga/Gaussian-Process-Regression-Tutorial高斯過程回歸Gaussian Process Regression簡稱 GPR是機(jī)器學(xué)習(xí)中最優(yōu)雅的回歸算法之一它不僅能給出預(yù)測值還能給出預(yù)測的不確定性。開源教程 Gaussian-Process-Regression-Tutorial 由研究者 Jie Wang 編寫以直覺優(yōu)先的方式通過大量可視化圖例和可運(yùn)行的 Notebook 代碼帶零基礎(chǔ)讀者一步步理解高斯過程回歸的原理、數(shù)學(xué)公式與 Python 實(shí)現(xiàn)。什么是高斯過程回歸為什么它值得學(xué)回歸Regression是機(jī)器學(xué)習(xí)中最常見的任務(wù)給定一些觀測數(shù)據(jù)點(diǎn)找到一條最能代表這些數(shù)據(jù)的函數(shù)并用它在新數(shù)據(jù)點(diǎn)上做預(yù)測。傳統(tǒng)回歸方法如多項(xiàng)式擬合只給出一個(gè)最佳函數(shù)但能擬合同一組觀測數(shù)據(jù)的函數(shù)往往不止一個(gè)。更重要的是我們不僅想要預(yù)測值還想知道預(yù)測有多可靠。高斯過程回歸正是為解決這個(gè)問題而生——它給出的不是單一函數(shù)而是所有可能函數(shù)的概率分布用概率分布的均值作為預(yù)測函數(shù)用概率分布的方差量化預(yù)測的不確定性在數(shù)據(jù)稀疏的區(qū)域模型會誠實(shí)地告訴你這里我不確定。這種不確定性量化能力在貝葉斯優(yōu)化、主動學(xué)習(xí)、機(jī)器人學(xué)習(xí)等場景中極其寶貴——系統(tǒng)應(yīng)當(dāng)優(yōu)先探索那些最不確定的區(qū)域。高斯過程回歸的核心原理從高斯分布到核函數(shù)要真正理解高斯過程回歸需要掌握三個(gè)基礎(chǔ)概念高斯分布、多元高斯分布和核函數(shù)。教程的 gpr_tutorial.ipynb 正是按這條路徑循序漸進(jìn)。高斯分布一切的基礎(chǔ)高斯分布正態(tài)分布由均值 μ 和方差 σ2 兩個(gè)參數(shù)完全決定。教程用 1000 個(gè)隨機(jī)采樣點(diǎn)直觀展示了樣本如何逼近高斯鐘形曲線并引出均值與方差的估計(jì)公式多元高斯分布描述變量間的相關(guān)性真實(shí)數(shù)據(jù)往往由多個(gè)相關(guān)變量描述比如監(jiān)控一個(gè)數(shù)據(jù)中心需要同時(shí)看 CPU 負(fù)載和內(nèi)存使用率。二維高斯分布可以看成一座 3D 鐘形山其等高線呈橢圓形多元高斯分布由均值向量 μ 和協(xié)方差矩陣 Σ 描述。協(xié)方差矩陣的對角線是各變量的方差非對角線刻畫變量之間的相關(guān)性其概率密度公式如下條件分布高斯過程預(yù)測的關(guān)鍵在 3D 鐘形山上切一刀得到的截面就是一個(gè)條件概率分布。下圖直觀展示了已知 x? 時(shí) x? 的條件分布——它依然是高斯分布這正是高斯過程回歸能做出預(yù)測并給出置信區(qū)間的數(shù)學(xué)基礎(chǔ)核函數(shù)讓函數(shù)變平滑的魔法如果只是連接多個(gè)獨(dú)立高斯分布的采樣點(diǎn)得到的函數(shù)會非常毛躁無法用于回歸。為了讓輸入點(diǎn)相近時(shí)函數(shù)值也相近即函數(shù)平滑需要引入核函數(shù)協(xié)方差函數(shù)其中最常用的是平方指數(shù)核RBF / 高斯核。用 RBF 核作為協(xié)方差矩陣采樣 200 維高斯就能得到一條條平滑的函數(shù)曲線當(dāng)維度趨于無窮時(shí)任意輸入點(diǎn)都有一個(gè)對應(yīng)的函數(shù)值——這就是高斯過程它是定義在函數(shù)空間上的概率分布。高斯過程回歸的數(shù)學(xué)推導(dǎo)與預(yù)測公式高斯過程的先驗(yàn)可以寫成 f(x) ~ GP(m(x), k(x, x′))其中 m(x) 是均值函數(shù)通常設(shè)為 0k(x, x′) 是核函數(shù)。當(dāng)觀測到訓(xùn)練數(shù)據(jù)后通過多元高斯的條件分布公式可以推導(dǎo)出預(yù)測位置的均值與方差。算法核心步驟如下用核函數(shù)計(jì)算訓(xùn)練數(shù)據(jù)間的協(xié)方差矩陣 K并加入噪聲項(xiàng)對 K 做 Cholesky 分解高效求解線性方程組計(jì)算測試點(diǎn)處的預(yù)測均值 μ* k*? (K σ2I)?1 y計(jì)算預(yù)測方差得到置信區(qū)間。高斯過程回歸 Python 代碼實(shí)現(xiàn)解析教程第四部分用不到 40 行 Python 代碼僅依賴 NumPy完整實(shí)現(xiàn)了高斯過程回歸從 [-5, 5] 區(qū)間采樣 20 個(gè)觀測點(diǎn)用 RBF 核構(gòu)建協(xié)方差矩陣通過 Cholesky 分解求出預(yù)測均值與方差最后畫出帶 2 倍標(biāo)準(zhǔn)差陰影的預(yù)測曲線。核心代碼如下# 定義 RBF 核函數(shù) def kernel(a, b): sqdist np.sum(a**2,axis1).reshape(-1,1) np.sum(b**2,1) - 2*np.dot(a, b.T) return np.exp(-.5 * sqdist) # 核心預(yù)測步驟 K kernel(X, X) L np.linalg.cholesky(K s*np.eye(N)) # Cholesky 分解 Lk np.linalg.solve(L, kernel(X, Xtest)) mu np.dot(Lk.T, np.linalg.solve(L, y)) # 預(yù)測均值 s2 np.diag(K_) - np.sum(Lk**2, axis0) # 預(yù)測方差 s np.sqrt(s2)最終結(jié)果中黑色十字是觀測點(diǎn)紅色虛線是預(yù)測均值函數(shù)灰色陰影是 ±2 倍標(biāo)準(zhǔn)差的置信區(qū)間還可以從后驗(yàn)分布中采樣 40 條函數(shù)曲線可以看到所有后驗(yàn)函數(shù)都在觀測點(diǎn)處收斂高斯過程回歸超參數(shù)怎么調(diào)RBF 核有兩個(gè)超參數(shù)垂直尺度 σ控制函數(shù)縱向波動幅度和水平尺度 l控制函數(shù)平滑程度。l 越大函數(shù)越平滑l 越小函數(shù)越鋸齒狀。教程用一組對比圖直觀展示了不同 l 取值下預(yù)測效果的差異超參數(shù)可以通過最大化邊際似然自動學(xué)習(xí)這也是高斯過程能自適應(yīng)數(shù)據(jù)特征的原因。常用高斯過程回歸庫推薦教程還貼心地對比了 Python 生態(tài)中主流的高斯過程回歸庫scikit-learn的 gaussian_process 模塊輕量、上手快適合快速實(shí)現(xiàn)GPy基于 NumPy文檔完善、功能成熟適合中小規(guī)模任務(wù)GPflow源自 GPy以 TensorFlow 為后端支持 GPU 加速GPyTorch基于 PyTorch算法最新支持自動微分和深度核學(xué)習(xí)。大規(guī)模數(shù)據(jù)或高維場景下GPU 加速的 GPflow、GPyTorch 是更優(yōu)的選擇。如何快速上手這份開源教程一鍵獲取源碼git clone https://gitcode.com/gh_mirrors/ga/Gaussian-Process-Regression-Tutorial推薦學(xué)習(xí)路徑先讀 README.md了解教程的整體框架跟著 gpr_tutorial.ipynb 逐節(jié)運(yùn)行代碼邊看可視化邊理解概念數(shù)學(xué)部分若想深挖可參考 latex/arXiv 中的論文手稿動手調(diào)整 RBF 核的超參數(shù)觀察預(yù)測曲線的變化。總結(jié)Gaussian-Process-Regression-Tutorial 是一份真正面向新手的高斯過程回歸教程它沒有一上來堆公式而是用大量可視化圖例幫你建立直覺再逐步過渡到數(shù)學(xué)推導(dǎo)與代碼實(shí)現(xiàn)。學(xué)完它你不僅能理解高斯過程回歸是什么更能親手寫出一段可運(yùn)行的 GPR 代碼為后續(xù)學(xué)習(xí)貝葉斯優(yōu)化、主動學(xué)習(xí)等高級主題打下堅(jiān)實(shí)基礎(chǔ)?!久赓M(fèi)下載鏈接】Gaussian-Process-Regression-TutorialAn Intuitive Tutorial to Gaussian Processes Regression項(xiàng)目地址: https://gitcode.com/gh_mirrors/ga/Gaussian-Process-Regression-Tutorial創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考