动漫制作技术专业文科佛山网站优化运营
2026/2/16 17:33:38 网站建设 项目流程
动漫制作技术专业文科,佛山网站优化运营,网站建设答辩内容,网站建设账户搭建高斯过程回归#xff08;GPR#xff09;小白入门教程 0. 引言#xff1a;为什么需要高斯过程回归#xff1f; 在机器学习中#xff0c;回归任务的目标是用已知数据拟合一个函数#xff0c;预测新输入的输出。传统方法#xff08;如线性回归、多项式回归#xff09;存在…高斯过程回归GPR小白入门教程0. 引言为什么需要高斯过程回归在机器学习中回归任务的目标是用已知数据拟合一个函数预测新输入的输出。传统方法如线性回归、多项式回归存在明显局限线性回归假设输入输出是线性关系无法拟合非线性数据多项式回归需要手动选择次数次数过高易过拟合、过低易欠拟合大多数方法只能给出点估计如y^\hat{y}y^​无法量化预测的不确定性比如“预测值y^5\hat{y}5y^​5但有95%的概率在[3,7]之间”。高斯过程回归Gaussian Process Regression, GPR是一种非参数概率模型完美解决了上述问题天生支持非线性拟合无需手动设计特征输出概率分布均值方差直接给出不确定性基于贝叶斯框架能结合先验知识通过核函数。本文将从基础概念出发一步步讲解GPR的原理与应用。1. 背景溯源从“确定函数”到“随机过程”在传统回归中我们认为“函数是确定的”——给定xf(x)是一个固定值。但现实中很多现象存在随机性比如测量误差、未观测到的变量因此更合理的假设是每个x对应一个随机变量f(x)整个函数f(·)是这些随机变量的集合。高斯过程Gaussian Process, GP是这类“函数随机过程”的典型代表它假设任意有限个x对应的f(x)都服从联合高斯分布。换句话说GPR用高斯分布描述“函数的不确定性”通过观测到的训练数据带噪声的f(x)用条件高斯分布预测新x的输出分布。2. 前置知识高斯分布的“联合-条件”变换GPR的核心是条件高斯分布需先掌握单变量、联合、条件高斯的基本公式。2.1 单变量高斯分布若随机变量z∼N(μ,σ2)z \sim \mathcal{N}(\mu, \sigma^2)z∼N(μ,σ2)则其概率密度函数PDF为p(z)12πσ2exp⁡(−(z−μ)22σ2) p(z) \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(z-\mu)^2}{2\sigma^2}\right)p(z)2πσ2​1​exp(−2σ2(z−μ)2​)其中μ\muμ是均值中心位置σ2\sigma^2σ2是方差离散程度。2.2 联合高斯分布若两个随机变量z1,z2z_1, z_2z1​,z2​服从联合高斯分布记为[z1z2]∼N([μ1μ2],[Σ11Σ12Σ21Σ22]) \begin{bmatrix} z_1 \\ z_2 \end{bmatrix} \sim \mathcal{N}\left( \begin{bmatrix} \mu_1 \\ \mu_2 \end{bmatrix}, \begin{bmatrix} \Sigma_{11} \Sigma_{12} \\ \Sigma_{21} \Sigma_{22} \end{bmatrix} \right)[z1​z2​​]∼N([μ1​μ2​​],[Σ11​Σ21​​Σ12​Σ22​​])其中μ[μ1,μ2]T\mu [\mu_1, \mu_2]^Tμ[μ1​,μ2​]T是均值向量z1z_1z1​的均值是μ1\mu_1μ1​z2z_2z2​的均值是μ2\mu_2μ2​Σ\SigmaΣ是协方差矩阵Σ11Var(z1)\Sigma_{11} \text{Var}(z_1)Σ11​Var(z1​)Σ22Var(z2)\Sigma_{22} \text{Var}(z_2)Σ22​Var(z2​)Σ12Cov(z1,z2)E[(z1−μ1)(z2−μ2)]\Sigma_{12} \text{Cov}(z_1,z_2) \mathbb{E}[(z_1-\mu_1)(z_2-\mu_2)]Σ12​Cov(z1​,z2​)E[(z1​−μ1​)(z2​−μ2​)]协方差矩阵满足对称性Σ12Σ21\Sigma_{12} \Sigma_{21}Σ12​Σ21​和半正定性保证PDF非负。2.3 条件高斯分布关键若已知z2z_2z2​的观测值z2az_2 az2​a求z1z_1z1​的条件分布z1∣z2az_1 | z_2az1​∣z2​a。根据高斯分布的性质条件分布仍为高斯分布公式为z1∣z2a∼N(μ1∣2,Σ1∣2) z_1 | z_2a \sim \mathcal{N}\left( \mu_{1|2}, \Sigma_{1|2} \right)z1​∣z2​a∼N(μ1∣2​,Σ1∣2​)其中条件均值μ1∣2μ1Σ12Σ22−1(a−μ2)\mu_{1|2} \mu_1 \Sigma_{12} \Sigma_{22}^{-1} (a - \mu_2)μ1∣2​μ1​Σ12​Σ22−1​(a−μ2​)用z2z_2z2​的观测值修正z1z_1z1​的先验均值条件方差Σ1∣2Σ11−Σ12Σ22−1Σ21\Sigma_{1|2} \Sigma_{11} - \Sigma_{12} \Sigma_{22}^{-1} \Sigma_{21}Σ1∣2​Σ11​−Σ12​Σ22−1​Σ21​观测z2z_2z2​后z1z_1z1​的不确定性降低记住这个公式GPR的预测就是用训练数据对应z2z_2z2​修正预测点对应z1z_1z1​的分布。3. 高斯过程的数学定义有了高斯分布的基础我们可以正式定义高斯过程3.1 定义一个随机过程{f(x)∣x∈X}\{f(x) | x \in \mathcal{X}\}{f(x)∣x∈X}X\mathcal{X}X是输入空间如Rd\mathbb{R}^dRd是高斯过程当且仅当对任意有限个输入x1,x2,...,xn∈Xx_1, x_2, ..., x_n \in \mathcal{X}x1​,x2​,...,xn​∈X对应的随机向量[f(x1),f(x2),...,f(xn)]T[f(x_1), f(x_2), ..., f(x_n)]^T[f(x1​),f(x2​),...,f(xn​)]T服从n维联合高斯分布。高斯过程可简记为f(x)∼GP(m(x),k(x,x′)) f(x) \sim \mathcal{GP}\left( m(x), k(x, x) \right)f(x)∼GP(m(x),k(x,x′))其中m(x)E[f(x)]m(x) \mathbb{E}[f(x)]m(x)E[f(x)]均值函数每个x对应f(x)的先验均值k(x,x′)Cov[f(x),f(x′)]E[(f(x)−m(x))(f(x′)−m(x′))]k(x, x) \text{Cov}[f(x), f(x)] \mathbb{E}[(f(x)-m(x))(f(x)-m(x))]k(x,x′)Cov[f(x),f(x′)]E[(f(x)−m(x))(f(x′)−m(x′))]协方差函数也叫核函数描述两个输入x,x′x, xx,x′对应的f(x)、f(x’)的相关性。3.2 核心结论均值核函数高斯过程高斯过程的所有性质都由均值函数和核函数完全决定因为任意n个输入的联合均值向量是[m(x1),m(x2),...,m(xn)]T[m(x_1), m(x_2), ..., m(x_n)]^T[m(x1​),m(x2​),...,m(xn​)]T联合协方差矩阵是Kn×nK_{n \times n}Kn×n​其中Kijk(xi,xj)K_{ij} k(x_i, x_j)Kij​k(xi​,xj​)第i行j列是xix_ixi​与xjx_jxj​的协方差。3.3 常用核函数协方差函数核函数是GPR的“灵魂”它决定了函数f(x)的光滑性、周期性、局部性等性质。以下是最常用的核函数1平方指数SE核光滑函数首选kSE(x,x′)σf2exp⁡(−∥x−x′∥22l2) k_{\text{SE}}(x, x) \sigma_f^2 \exp\left( -\frac{\|x - x\|^2}{2l^2} \right)kSE​(x,x′)σf2​exp(−2l2∥x−x′∥2​)参数解释σf2\sigma_f^2σf2​信号方差控制f(x)的波动幅度σf2\sigma_f^2σf2​越大函数越“起伏”lll长度尺度控制f(x)的“局部性”lll越小函数越“敏感”于输入变化lll越大函数越“平坦”∥x−x′∥\|x - x\|∥x−x′∥输入xxx与x′xx′的欧氏距离衡量相似度。SE核的特点当xx′x xxx′时k(x,x′)σf2k(x,x) \sigma_f^2k(x,x′)σf2​f(x)自身的方差当xxx与x′xx′距离增大时k(x,x′)k(x,x)k(x,x′)指数衰减输入越相似f(x)与f(x’)的相关性越高对应光滑函数因为协方差函数的光滑性等价于f(x)的光滑性。2其他常用核Matérn核控制函数的光滑度如Matérn 3/2对应一次可导Matérn 5/2对应二次可导周期核用于拟合周期性数据如正弦曲线线性核对应线性函数退化为线性回归ARD核每个输入维度有独立的长度尺度处理高维数据。3.4 核函数的性质所有核函数必须满足对称性k(x,x′)k(x′,x)k(x, x) k(x, x)k(x,x′)k(x′,x)协方差矩阵对称半正定性对任意输入x1,...,xnx_1,...,x_nx1​,...,xn​协方差矩阵Kijk(xi,xj)K_{ij}k(x_i,x_j)Kij​k(xi​,xj​)是半正定的保证联合高斯分布合法。4. 高斯过程回归的完整推导现在进入核心用高斯过程解决带噪声的回归问题。4.1 问题设定我们有训练数据D{(xi,yi)}i1n\mathcal{D} \{(x_i, y_i)\}_{i1}^nD{(xi​,yi​)}i1n​其中xix_ixi​d维输入如“温度”“湿度”yiy_iyi​观测输出如“销量”“血压”噪声假设yif(xi)ϵiy_i f(x_i) \epsilon_iyi​f(xi​)ϵi​其中ϵi∼N(0,σn2)\epsilon_i \sim \mathcal{N}(0, \sigma_n^2)ϵi​∼N(0,σn2​)独立同分布的高斯噪声σn2\sigma_n^2σn2​是噪声方差先验假设f(x)∼GP(m(x),k(x,x′))f(x) \sim \mathcal{GP}(m(x), k(x, x))f(x)∼GP(m(x),k(x,x′))f(x)服从高斯过程。我们的目标是给定新输入x∗x^*x∗预测对应的输出y∗f(x∗)ϵ∗y^* f(x^*) \epsilon^*y∗f(x∗)ϵ∗的概率分布ϵ∗\epsilon^*ϵ∗是新噪声与ϵi\epsilon_iϵi​独立。4.2 关键联合分布首先考虑训练数据的f向量f[f(x1),f(x2),...,f(xn)]Tf [f(x_1), f(x_2), ..., f(x_n)]^Tf[f(x1​),f(x2​),...,f(xn​)]T和预测点的f值f∗f(x∗)f^* f(x^*)f∗f(x∗)。根据高斯过程的定义它们的联合分布是高斯的[ff∗]∼N([mm∗],[KK∗K∗Tk∗∗]) \begin{bmatrix} f \\ f^* \end{bmatrix} \sim \mathcal{N}\left( \begin{bmatrix} m \\ m^* \end{bmatrix}, \begin{bmatrix} K K_* \\ K_*^T k_{**} \end{bmatrix} \right)[ff∗​]∼N([mm∗​],[KK∗T​​K∗​k∗∗​​])符号解释m[m(x1),m(x2),...,m(xn)]Tm [m(x_1), m(x_2), ..., m(x_n)]^Tm[m(x1​),m(x2​),...,m(xn​)]T训练点的先验均值向量m∗m(x∗)m^* m(x^*)m∗m(x∗)预测点的先验均值KKK训练点的协方差矩阵Kijk(xi,xj)K_{ij} k(x_i, x_j)Kij​k(xi​,xj​)n×nn \times nn×nK∗K_*K∗​训练点与预测点的协方差向量K∗[k(x1,x∗),k(x2,x∗),...,k(xn,x∗)]TK_* [k(x_1, x^*), k(x_2, x^*), ..., k(x_n, x^*)]^TK∗​[k(x1​,x∗),k(x2​,x∗),...,k(xn​,x∗)]Tn×1n \times 1n×1k∗∗k(x∗,x∗)k_{**} k(x^*, x^*)k∗∗​k(x∗,x∗)预测点的自协方差f∗f^*f∗的先验方差。4.3 观测值y的分布由于yfϵy f \epsilonyfϵϵ[ϵ1,...,ϵn]T\epsilon [\epsilon_1, ..., \epsilon_n]^Tϵ[ϵ1​,...,ϵn​]T且ϵ∼N(0,σn2I)\epsilon \sim \mathcal{N}(0, \sigma_n^2 I)ϵ∼N(0,σn2​I)III是n阶单位矩阵因此y的联合分布为y∼N(m,Kσn2I) y \sim \mathcal{N}\left( m, K \sigma_n^2 I \right)y∼N(m,Kσn2​I)推导均值E[y]E[fϵ]E[f]m\mathbb{E}[y] \mathbb{E}[f \epsilon] \mathbb{E}[f] mE[y]E[fϵ]E[f]m噪声均值为0方差Var(y)Var(f)Var(ϵ)Kσn2I\text{Var}(y) \text{Var}(f) \text{Var}(\epsilon) K \sigma_n^2 IVar(y)Var(f)Var(ϵ)Kσn2​If与ϵ\epsilonϵ独立方差相加。4.4 预测分布推导核心步骤我们需要求*预测点的f*和y的分布即f∗∣D,x∗f^* | \mathcal{D}, x^*f∗∣D,x∗和y∗∣D,x∗y^* | \mathcal{D}, x^*y∗∣D,x∗。步骤1构造y与f^*的联合分布由于yfϵy f \epsilonyfϵ且fff与f∗f^*f∗联合高斯因此yyy与f∗f^*f∗的联合分布也是高斯的[yf∗]∼N([mm∗],[Kσn2IK∗K∗Tk∗∗]) \begin{bmatrix} y \\ f^* \end{bmatrix} \sim \mathcal{N}\left( \begin{bmatrix} m \\ m^* \end{bmatrix}, \begin{bmatrix} K \sigma_n^2 I K_* \\ K_*^T k_{**} \end{bmatrix} \right)[yf∗​]∼N([mm∗​],[Kσn2​IK∗T​​K∗​k∗∗​​])推导均值E[y]m\mathbb{E}[y] mE[y]mE[f∗]m∗\mathbb{E}[f^*] m^*E[f∗]m∗不变协方差Cov(y,f∗)Cov(fϵ,f∗)Cov(f,f∗)K∗\text{Cov}(y, f^*) \text{Cov}(f \epsilon, f^*) \text{Cov}(f, f^*) K_*Cov(y,f∗)Cov(fϵ,f∗)Cov(f,f∗)K∗​ϵ\epsilonϵ与f∗f^*f∗独立协方差为0Var(y)Kσn2I\text{Var}(y) K \sigma_n^2 IVar(y)Kσn2​I已推导Var(f∗)k∗∗\text{Var}(f^*) k_{**}Var(f∗)k∗∗​不变。步骤2求f^*的条件分布用条件高斯公式根据2.3节的条件高斯公式将yyy视为“观测变量”对应z2z_2z2​f∗f^*f∗视为“待预测变量”对应z1z_1z1​则f∗∣D,x∗∼N(μ∗,Var∗) f^* | \mathcal{D}, x^* \sim \mathcal{N}\left( \mu^*, \text{Var}^* \right)f∗∣D,x∗∼N(μ∗,Var∗)其中预测均值后验均值μ∗m∗K∗T(Kσn2I)−1(y−m)\mu^* m^* K_*^T \left( K \sigma_n^2 I \right)^{-1} (y - m)μ∗m∗K∗T​(Kσn2​I)−1(y−m)用训练数据yyy修正预测点的先验均值m∗m^*m∗预测方差后验方差Var∗k∗∗−K∗T(Kσn2I)−1K∗\text{Var}^* k_{**} - K_*^T \left( K \sigma_n^2 I \right)^{-1} K_*Var∗k∗∗​−K∗T​(Kσn2​I)−1K∗​观测训练数据后f^*的不确定性降低。步骤3求y^*的分布带噪声由于y∗f∗ϵ∗y^* f^* \epsilon^*y∗f∗ϵ∗ϵ∗∼N(0,σn2)\epsilon^* \sim \mathcal{N}(0, \sigma_n^2)ϵ∗∼N(0,σn2​)与ϵi\epsilon_iϵi​独立因此y∗y^*y∗的分布是f∗f^*f∗的分布加噪声y∗∣D,x∗∼N(μ∗,Var∗σn2) y^* | \mathcal{D}, x^* \sim \mathcal{N}\left( \mu^*, \text{Var}^* \sigma_n^2 \right)y∗∣D,x∗∼N(μ∗,Var∗σn2​)推导均值E[y∗]E[f∗]E[ϵ∗]μ∗\mathbb{E}[y^*] \mathbb{E}[f^*] \mathbb{E}[\epsilon^*] \mu^*E[y∗]E[f∗]E[ϵ∗]μ∗噪声均值为0方差Var(y∗)Var(f∗)Var(ϵ∗)Var∗σn2\text{Var}(y^*) \text{Var}(f^*) \text{Var}(\epsilon^*) \text{Var}^* \sigma_n^2Var(y∗)Var(f∗)Var(ϵ∗)Var∗σn2​独立变量方差相加。4.5 简化零均值假设通常我们会假设先验均值函数m(x)0m(x) 0m(x)0理由核函数已能捕捉函数的主要形状且数据可通过中心化消除均值偏移。此时预测公式简化为预测均值μ∗K∗T(Kσn2I)−1y\mu^* K_*^T \left( K \sigma_n^2 I \right)^{-1} yμ∗K∗T​(Kσn2​I)−1y预测方差Var∗k∗∗−K∗T(Kσn2I)−1K∗\text{Var}^* k_{**} - K_*^T \left( K \sigma_n^2 I \right)^{-1} K_*Var∗k∗∗​−K∗T​(Kσn2​I)−1K∗​y^*的分布N(μ∗,Var∗σn2)\mathcal{N}(\mu^*, \text{Var}^* \sigma_n^2)N(μ∗,Var∗σn2​)。4.6 直观解释预测均值μ∗\mu^*μ∗可视为“训练数据的加权平均”权重由核函数决定——离x∗x^*x∗越近的训练点权重越高因为K∗K_*K∗​中的元素越大预测方差Var∗\text{Var}^*Var∗反映预测的不确定性——当x∗x^*x∗离训练数据越远K∗K_*K∗​中的元素越小Var∗\text{Var}^*Var∗越大不确定性越高当x∗x^*x∗与某训练点重合时Var∗k∗∗−k∗∗0\text{Var}^* k_{**} - k_{**} 0Var∗k∗∗​−k∗∗​0但加上噪声后Var∗σn2σn2\text{Var}^* \sigma_n^2 \sigma_n^2Var∗σn2​σn2​符合观测噪声的假设。5. 高斯过程回归的完整求解步骤现在将推导转化为可操作的步骤小白可按此流程实现GPR无需代码理解逻辑即可步骤1数据准备输入训练数据D{(xi,yi)}i1n\mathcal{D} \{(x_i, y_i)\}_{i1}^nD{(xi​,yi​)}i1n​测试点x∗x^*x∗预处理对输入xix_ixi​和输出yiy_iyi​进行标准化均值0、方差1避免核函数的超参数因尺度差异难以优化。步骤2选择先验函数均值函数通常选m(x)0m(x) 0m(x)0简化问题协方差函数根据数据特性选择如光滑数据选SE核周期性数据选周期核。步骤3计算核心矩阵/向量根据选择的核函数计算训练点协方差矩阵KKKn×nn \times nn×nKijk(xi,xj)K_{ij} k(x_i, x_j)Kij​k(xi​,xj​)训练点-预测点协方差向量K∗K_*K∗​n×1n \times 1n×1KaTeX parse error: Double subscript at position 4: K_*_̲i k(x_i, x^*)预测点自协方差k∗∗k_{**}k∗∗​k∗∗k(x∗,x∗)k_{**} k(x^*, x^*)k∗∗​k(x∗,x∗)。步骤4计算预测分布初始用零均值假设下的公式计算预测均值μ∗K∗T(Kσn2I)−1y\mu^* K_*^T (K \sigma_n^2 I)^{-1} yμ∗K∗T​(Kσn2​I)−1y预测方差Var∗k∗∗−K∗T(Kσn2I)−1K∗\text{Var}^* k_{**} - K_*^T (K \sigma_n^2 I)^{-1} K_*Var∗k∗∗​−K∗T​(Kσn2​I)−1K∗​y^*的分布N(μ∗,Var∗σn2)\mathcal{N}(\mu^*, \text{Var}^* \sigma_n^2)N(μ∗,Var∗σn2​)。步骤5超参数优化关键核函数和噪声的参数如SE核的σf2,l\sigma_f^2, lσf2​,l噪声方差σn2\sigma_n^2σn2​称为超参数需通过**极大似然估计MLE**优化。1边际似然函数超参数θ\thetaθ如θ[σf2,l,σn2]\theta [\sigma_f^2, l, \sigma_n^2]θ[σf2​,l,σn2​]的优化目标是最大化边际似然p(y∣X,θ)p(y | X, \theta)p(y∣X,θ)积分掉隐变量f后的似然即“观测数据y在超参数θ\thetaθ下的概率”。根据y的分布y∼N(0,Kσn2I)y \sim \mathcal{N}(0, K \sigma_n^2 I)y∼N(0,Kσn2​I)零均值假设边际似然的对数形式更易计算为log⁡p(y∣X,θ)−12yT(Kσn2I)−1y−12log⁡∣Kσn2I∣−n2log⁡(2π) \log p(y | X, \theta) -\frac{1}{2} y^T (K \sigma_n^2 I)^{-1} y - \frac{1}{2} \log |K \sigma_n^2 I| - \frac{n}{2} \log(2\pi)logp(y∣X,θ)−21​yT(Kσn2​I)−1y−21​log∣Kσn2​I∣−2n​log(2π)项解释第一项拟合度y与模型预测的偏差越小越好第二项模型复杂度协方差矩阵的行列式越大表示模型越复杂需惩罚第三项常数项不影响优化。2优化方法超参数θ\thetaθ的优化是非线性无约束优化边际似然函数非凸常用方法梯度下降需计算边际似然对θ\thetaθ的梯度L-BFGS拟牛顿法适合中小规模数据贝叶斯优化针对黑箱函数适合超参数多的情况。步骤6最终预测用优化后的超参数θ∗\theta^*θ∗重新计算K,K∗,k∗∗K, K_*, k_{**}K,K∗​,k∗∗​再用步骤4的公式得到最终预测分布点估计取预测均值μ∗\mu^*μ∗对应“最可能的输出”不确定性用预测方差Var∗σn2\text{Var}^* \sigma_n^2Var∗σn2​如95%置信区间为μ∗±1.96Var∗σn2\mu^* \pm 1.96\sqrt{\text{Var}^* \sigma_n^2}μ∗±1.96Var∗σn2​​。6. 高斯过程回归的适用边界与局限性GPR是强大的工具但并非万能需明确其适用场景和局限性6.1 适用场景需要不确定性估计如医疗诊断预测病情的风险、金融预测股票收益的波动、机器人学路径规划中的避障非线性小样本数据GPR的计算复杂度为O(n3)O(n^3)O(n3)协方差矩阵的逆小样本n1000n 1000n1000时高效且能拟合非线性关系光滑函数拟合SE核等光滑核适合拟合连续、光滑的曲线先验知识融入通过选择核函数如周期核或调整超参数可将领域知识如“数据有周期性”融入模型。6.2 局限性计算复杂度高当n1000n 1000n1000时O(n3)O(n^3)O(n3)的时间复杂度和O(n2)O(n^2)O(n2)的空间复杂度会导致计算崩溃需用稀疏GP、变分GP等近似方法高维输入困境当输入维度d20d 20d20时“维度灾难”会导致核函数的长度尺度参数失效输入空间的距离变得无意义需用ARD核或降维如PCA核函数选择敏感GPR的性能高度依赖核函数的选择若核函数与数据特性不匹配如用SE核拟合阶跃数据模型会严重欠拟合非平稳数据挑战SE核等平稳核仅依赖输入差x−x′x - xx−x′无法处理非平稳数据如趋势性数据需用非平稳核如多项式核。7. 示例用GPR拟合正弦曲线为帮助理解我们用GPR拟合一个简单的正弦曲线1数据生成真实函数f(x)sin⁡(x)f(x) \sin(x)f(x)sin(x)x∈[0,4π]x \in [0, 4\pi]x∈[0,4π]训练数据随机选5个点添加噪声yisin⁡(xi)0.1ϵiy_i \sin(x_i) 0.1\epsilon_iyi​sin(xi​)0.1ϵi​ϵi∼N(0,1)\epsilon_i \sim \mathcal{N}(0,1)ϵi​∼N(0,1)核函数SE核k(x,x′)1⋅exp⁡(−(x−x′)22⋅12)k(x,x) 1 \cdot \exp(-\frac{(x-x)^2}{2 \cdot 1^2})k(x,x′)1⋅exp(−2⋅12(x−x′)2​)σf21\sigma_f^21σf2​1l1l1l1噪声方差σn20.01\sigma_n^2 0.01σn2​0.01。2预测结果均值曲线μ∗(x)\mu^*(x)μ∗(x)会贴合训练数据且在训练点附近与sin⁡(x)\sin(x)sin(x)几乎重合置信区间在训练点附近方差小置信区间窄在训练点之间或远离训练数据的区域方差大置信区间宽不确定性直观当xxx接近4π4\pi4π训练数据未覆盖的区域方差急剧增大说明模型对未观测区域的预测不确定性高。8. 总结高斯过程回归是概率性、非参数、非线性的回归方法核心是用高斯分布描述函数的不确定性通过条件高斯分布实现预测。其优势在于自然输出不确定性估计无需手动设计特征结合先验知识灵活。小白入门的关键是掌握高斯分布的“联合-条件”变换理解均值函数和核函数的作用记住预测分布的推导逻辑明确超参数优化的重要性。若想深入可进一步学习稀疏高斯过程处理大数据变分高斯过程近似推断深度高斯过程结合神经网络。希望本教程能帮助小白迈出GPR的第一步案例介绍模拟温度随时间变化数据输入为时间点0到1小时间隔0.05小时输出为带噪声的正弦曲线模拟温度值真实温度为sin(2πx)添加方差为0.01的高斯噪声。使用高斯过程回归拟合数据并输出预测值与95%置信区间。Python代码importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.linalgimportinv# 导入矩阵求逆函数# 自定义RBF协方差函数defrbf_cov(x1,x2,sigma_f1.0,l0.1): RBF(平方指数)协方差函数 参数: x1: 输入向量1形状为(n, 1) x2: 输入向量2形状为(m, 1) sigma_f: 振幅参数控制函数波动范围 l: 长度尺度控制函数光滑度 返回: 协方差矩阵形状为(n, m) # 计算欧氏距离的平方dist_sqnp.sum(x1**2,1).reshape(-1,1)np.sum(x2**2,1)-2*np.dot(x1,x2.T)# RBF协方差函数公式returnsigma_f**2*np.exp(-0.5*dist_sq/l**2)# 高斯过程回归预测函数defgp_regression(x_train,y_train,x_test,sigma_f1.0,l0.1,sigma_n0.1): 高斯过程回归预测 参数: x_train: 训练输入数据形状为(n, 1) y_train: 训练输出数据形状为(n, 1) x_test: 测试输入数据形状为(m, 1) sigma_f: RBF协方差函数的振幅参数 l: RBF协方差函数的长度尺度 sigma_n: 观测噪声的标准差 返回: mu: 测试输出的后验均值形状为(m, 1) sigma: 测试输出的后验标准差形状为(m, 1) # 计算训练数据的协方差矩阵KKrbf_cov(x_train,x_train,sigma_f,l)# 加入观测噪声的协方差矩阵K_noiseK_noiseKsigma_n**2*np.eye(len(x_train))# 计算训练与测试数据的协方差矩阵K_*K_starrbf_cov(x_train,x_test,sigma_f,l)# 计算测试数据的协方差矩阵K_**K_star_starrbf_cov(x_test,x_test,sigma_f,l)# 计算后验均值mu# 步骤: K_* 乘以 K_noise的逆 乘以 y_trainmunp.dot(np.dot(K_star.T,inv(K_noise)),y_train)# 计算后验协方差Sigma# 步骤: K_** 减去 K_* 乘以 K_noise的逆 乘以 K_*的转置SigmaK_star_star-np.dot(np.dot(K_star.T,inv(K_noise)),K_star)# 提取对角线元素得到每个测试点的方差再开方得到标准差sigmanp.sqrt(np.diag(Sigma)).reshape(-1,1)returnmu,sigma# 主程序if__name____main__:# 1. 生成模拟数据# 训练数据: 生成20个随机时间点(0到1小时)np.random.seed(42)# 设置随机种子以确保结果可复现x_trainnp.random.rand(20,1)# 20个训练输入点形状(20,1)# 真实温度为sin(2πx)添加方差0.01的高斯噪声y_trainnp.sin(2*np.pi*x_train)0.1*np.random.randn(20,1)# 测试数据: 生成100个均匀分布的时间点(0到1小时间隔0.01)x_testnp.linspace(0,1,100).reshape(-1,1)# 形状(100,1)# 2. 进行高斯过程回归预测# 设置超参数: sigma_f1.0, l0.1, sigma_n0.1mu_pred,sigma_predgp_regression(x_train,y_train,x_test,sigma_f1.0,l0.1,sigma_n0.1)# 3. 可视化结果plt.figure(figsize(10,6))# 绘制训练数据点plt.scatter(x_train,y_train,labelTraining Data,colorred)# 绘制预测均值曲线plt.plot(x_test,mu_pred,labelGP Prediction Mean,colorblue,linewidth2)# 绘制95%置信区间(均值±2倍标准差)plt.fill_between(x_test.flatten(),(mu_pred-2*sigma_pred).flatten(),(mu_pred2*sigma_pred).flatten(),alpha0.3,label95% Confidence Interval,colorlightblue)# 添加标题和坐标轴标签plt.title(Gaussian Process Regression - Temperature Prediction)plt.xlabel(Time (hour))plt.ylabel(Temperature (°C))# 显示图例plt.legend()# 显示网格线plt.grid(True)# 保存或显示图像plt.savefig(gp_regression_temperature.png)plt.show()代码深度解析高斯过程回归GP温度预测一、代码整体框架与数学背景这段代码实现了高斯过程回归Gaussian Process Regression, GPR在模拟温度数据上的应用。高斯过程是一种强大的非参数回归方法核心是通过核函数协方差函数捕捉数据的相关性并给出预测值及其不确定性区间。二、模块导入与功能说明importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.linalgimportinv# 导入矩阵求逆函数numpy用于数值计算矩阵运算、随机数生成matplotlib用于结果可视化scipy.linalg.inv用于计算矩阵逆GP后验推导的核心运算三、RBF平方指数协方差函数实现数学背景RBF核是最常用的协方差函数用于描述“越近的点相关性越强”的光滑过程公式为k(x1,x2)σf2exp⁡(−∣∣x1−x2∣∣22l2) k(x_1, x_2) \sigma_f^2 \exp\left( -\frac{||x_1 - x_2||^2}{2l^2} \right)k(x1​,x2​)σf2​exp(−2l2∣∣x1​−x2​∣∣2​)其中σf\sigma_fσf​为振幅控制函数波动范围lll为长度尺度控制函数光滑度lll越小函数越“崎岖”lll越大函数越“平滑”。defrbf_cov(x1,x2,sigma_f1.0,l0.1): RBF(平方指数)协方差函数 参数: x1: 输入向量1形状为(n, 1) x2: 输入向量2形状为(m, 1) sigma_f: 振幅参数控制函数波动范围 l: 长度尺度控制函数光滑度 返回: 协方差矩阵形状为(n, m) # 计算欧氏距离的平方广播技巧优化dist_sqnp.sum(x1**2,1).reshape(-1,1)np.sum(x2**2,1)-2*np.dot(x1,x2.T)# RBF协方差函数公式实现returnsigma_f**2*np.exp(-0.5*dist_sq/l**2)关键代码解析欧氏距离平方的计算利用矩阵运算和广播优化效率避免双重循环。公式推导∣∣x1[i]−x2[j]∣∣2∣∣x1[i]∣∣2∣∣x2[j]∣∣2−2x1[i]Tx2[j] ||x1[i] - x2[j]||^2 ||x1[i]||^2 ||x2[j]||^2 - 2x1[i]^T x2[j]∣∣x1[i]−x2[j]∣∣2∣∣x1[i]∣∣2∣∣x2[j]∣∣2−2x1[i]Tx2[j]np.sum(x1**2, 1).reshape(-1, 1)计算x1每个样本的平方和结果为(n, 1)的列向量np.sum(x2**2, 1)计算x2每个样本的平方和结果为(1, m)的行向量2 * np.dot(x1, x2.T)计算x1与x2的内积矩阵形状为(n, m)三者通过广播相加最终得到所有样本对的欧氏距离平方矩阵dist_sq形状(n, m)。RBF核值计算将dist_sq代入RBF公式返回(n, m)的协方差矩阵描述x1和x2的样本间相关性。四、高斯过程回归预测函数数学背景GP回归的核心是求解后验分布。给定训练数据(xtrain,ytrain)(x_{\text{train}}, y_{\text{train}})(xtrain​,ytrain​)测试数据xtestx_{\text{test}}xtest​的后验分布为fpost(xtest)∼N(μpost,Σpost) f_{\text{post}}(x_{\text{test}}) \sim \mathcal{N}( \mu_{\text{post}}, \Sigma_{\text{post}} )fpost​(xtest​)∼N(μpost​,Σpost​)其中后验均值μpostK∗T(Kσn2I)−1ytrain\mu_{\text{post}} K_{*}^T (K \sigma_n^2 I)^{-1} y_{\text{train}}μpost​K∗T​(Kσn2​I)−1ytrain​后验协方差ΣpostK∗∗−K∗T(Kσn2I)−1K∗\Sigma_{\text{post}} K_{**} - K_{*}^T (K \sigma_n^2 I)^{-1} K_{*}Σpost​K∗∗​−K∗T​(Kσn2​I)−1K∗​参数说明Kk(xtrain,xtrain)K k(x_{\text{train}}, x_{\text{train}})Kk(xtrain​,xtrain​)训练数据的协方差矩阵K∗k(xtrain,xtest)K_{*} k(x_{\text{train}}, x_{\text{test}})K∗​k(xtrain​,xtest​)训练与测试数据的协方差矩阵K∗∗k(xtest,xtest)K_{**} k(x_{\text{test}}, x_{\text{test}})K∗∗​k(xtest​,xtest​)测试数据的协方差矩阵σn2I\sigma_n^2 Iσn2​I观测噪声的协方差矩阵假设噪声服从N(0,σn2)\mathcal{N}(0, \sigma_n^2)N(0,σn2​)defgp_regression(x_train,y_train,x_test,sigma_f1.0,l0.1,sigma_n0.1): 高斯过程回归预测 参数: x_train: 训练输入数据形状为(n, 1) y_train: 训练输出数据形状为(n, 1) x_test: 测试输入数据形状为(m, 1) sigma_f: RBF协方差函数的振幅参数 l: RBF协方差函数的长度尺度 sigma_n: 观测噪声的标准差 返回: mu: 测试输出的后验均值形状为(m, 1) sigma: 测试输出的后验标准差形状为(m, 1) # 计算训练数据的协方差矩阵KKrbf_cov(x_train,x_train,sigma_f,l)# 加入观测噪声的协方差矩阵K_noiseK σₙ²IK_noiseKsigma_n**2*np.eye(len(x_train))# 计算训练与测试数据的协方差矩阵K_*K_starrbf_cov(x_train,x_test,sigma_f,l)# 计算测试数据的协方差矩阵K_**K_star_starrbf_cov(x_test,x_test,sigma_f,l)# 计算后验均值mumunp.dot(np.dot(K_star.T,inv(K_noise)),y_train)# 计算后验协方差SigmaSigmaK_star_star-np.dot(np.dot(K_star.T,inv(K_noise)),K_star)# 提取对角线元素得到每个测试点的方差开方为标准差sigmanp.sqrt(np.diag(Sigma)).reshape(-1,1)returnmu,sigma关键代码解析协方差矩阵计算K训练数据的自协方差矩阵n×nK_noise加入噪声后的协方差矩阵n×n确保矩阵可逆K_star训练与测试的交叉协方差矩阵n×mK_star_star测试数据的自协方差矩阵m×m后验均值与协方差计算后验均值通过矩阵乘法直接实现数学公式inv(K_noise)为噪声协方差矩阵的逆后验协方差Sigma是(m×m)矩阵描述测试样本间的相关性标准差提取Sigma的对角线元素单个测试点的方差开方后得到每个测试点的预测不确定性。五、主程序数据生成、预测与可视化if__name____main__:# 1. 生成模拟数据np.random.seed(42)# 设置随机种子确保结果可复现x_trainnp.random.rand(20,1)# 20个随机训练输入点0~1小时形状(20,1)y_trainnp.sin(2*np.pi*x_train)0.1*np.random.randn(20,1)# 带噪声的正弦曲线真实温度高斯噪声# 2. 生成测试数据100个均匀分布的时间点0~1小时间隔0.01x_testnp.linspace(0,1,100).reshape(-1,1)# 形状(100,1)# 3. 进行高斯过程回归预测mu_pred,sigma_predgp_regression(x_train,y_train,x_test,sigma_f1.0,l0.1,sigma_n0.1)# 4. 可视化结果plt.figure(figsize(10,6))plt.scatter(x_train,y_train,labelTraining Data,colorred)# 训练数据点plt.plot(x_test,mu_pred,labelGP Prediction Mean,colorblue,linewidth2)# 预测均值曲线# 绘制95%置信区间均值±2倍标准差高斯分布的95%置信范围plt.fill_between(x_test.flatten(),(mu_pred-2*sigma_pred).flatten(),(mu_pred2*sigma_pred).flatten(),alpha0.3,label95% Confidence Interval,colorlightblue)# 图表装饰plt.title(Gaussian Process Regression - Temperature Prediction)plt.xlabel(Time (hour))plt.ylabel(Temperature (°C))plt.legend()plt.grid(True)plt.savefig(gp_regression_temperature.png)# 保存图像plt.show()# 显示图像关键代码解析模拟数据生成np.random.rand(20, 1)生成20个0~1之间的随机训练时间点np.sin(2*np.pi*x_train)真实温度曲线周期为1小时的正弦曲线0.1*np.random.randn(20,1)添加方差为0.01的高斯噪声因为randn的标准差为1乘以0.1后标准差为0.1方差0.1²0.01测试数据生成np.linspace(0, 1, 100)生成100个均匀分布的测试时间点覆盖0~1小时的完整范围用于绘制连续的预测曲线。可视化plt.scatter绘制训练数据点红色plt.plot绘制GP预测的均值曲线蓝色plt.fill_between绘制95%置信区间均值±2σα0.3表示半透明反映预测的不确定性靠近训练数据的区域置信区间窄不确定性小远离训练数据的区域置信区间宽不确定性大六、数学建模思考核函数选择RBF核适合平滑过程如温度随时间的连续变化若数据有周期性可考虑周期性核如Exponential Sinusoidal Kernel。超参数优化代码中sigma_f、l、sigma_n是手动设置的实际建模中应通过极大似然估计或交叉验证优化以提升预测精度。结果解读GP的优势在于同时给出预测值和不确定性估计这对数学建模中的“风险评估”如预测温度异常的置信度非常重要。通过以上解析结合数学公式与代码实现的对应关系可清晰理解高斯过程回归的核心逻辑及代码细节。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询