高斯过程回归中后验概率的简单推导

2023-05-16

最近几天在整理高斯过程回归(Gaussian Process Regression, GPR)部分的知识,虽然还有很多问题没有搞懂,但是有一点进展还是决定总结下来,防止遗忘。

在整理之前,先列出我参考的几个资料吧,一方面方便大家参考,另一方面也防止自己以后找不到了。

  1. 哔哩哔哩视频:https://space.bilibili.com/97068901/video。里面有很多推导,其中一个就是GPR,个人感觉推导的很详细,弹幕也都这么说,哈哈。
  2. 是一本书:《PRML:模式识别与机器学习(中文版)》,当然看英文的更好啦。
  3. 也是一本书:《Gaussian Processes for Machine Learning》,这个就直接是英文的了。

GPR部分一共有两种理解角度:权重空间(Weight-Space View)与函数空间(Function-Space View)。这里先说Weight-Space View。先描述一下问题,现有一个未知的模型,可以确性的信息是:这个模型是线性的,并且输出端还带有零均值且服从高斯分布的噪声。通过数据采集得到了一些输入-输出数据,现在需要做的是利用GPR部分的原理,求出原线性模型中的未知参数的概率分布,并且这个概率分布要使用高斯分布去描述。下边将用公式表示以上文字:

现有N组可以被视为独立同分布的训练数据:Data=\{x_{1}, x_{2}, \cdots , x_{n} ; y_{1}, y_{2}, \cdots , y_{n}\}。其中,x_{i}\in \mathbb{R}^{p}, i=1, 2, \cdots , n为列向量,y_{i}\in \mathbb{R}, i=1,2,\cdots ,n为一实数。现该线性模型可以被如下表示:

                                                          \left\{\begin{matrix} f(x)=x^{T}\omega \\ y=f(x)+\varepsilon \\ \varepsilon \sim N(0, \sigma ^{2}) \end{matrix}\right.

其中,\omega \in \mathbb{R}^{p}为列向量,\varepsilon服从零均值高斯分布。为表示方便,将输入数据和输出数据分别用一个符号表示:

                                                 \left\{\begin{matrix} X=\begin{bmatrix} x_{1} & x_{2} & \cdots & x_{n} \end{bmatrix}_{p\times n}\\ Y=\begin{bmatrix} y_{1} & y_{2} & \cdots & y_{n} \end{bmatrix}_{n\times 1} \end{matrix}\right.

贝叶斯估计就是求出在已知训练数据时,参数\omega的概率分布。即“最大后验概率”。不严格地,也可以理解为中学阶段的“条件概率”。这里需要引入一个概念:贝叶斯学派与频率学派。

经典的频率学派认为:一个随机事件发生的概率是固定的,属于这个事件本身的属性,并不会随着采集样本的变化而发生改变。因此,频率学派的“估计”指的是,在已知概率分布参数的条件下,去计算我们采集的样本是如何分布。是一种“这个参数的数值就是不变的,我们看看这个随机事件的样本该如何分布吧!”的感觉。

但是贝叶学派正好与之相反,贝叶斯学派认为随机事件发生的概率是一个非常主观的数值,并且这个数值还会随着采集样本的不同而发生改变。因此,贝叶斯学派的“估计”指的是,在样本已知的条件下,反推这个随机事件的参数是如何分布的。有一种“随着认知的深入,我们对事物的评价就更加准确啦!”的感觉。

言归正传,求参数\omega的后验概率就是在求表达式p(\omega |X,Y)的表达形式。这里简单推导一下:

                       \left\{\begin{matrix} p(\omega ,X,Y) = p(\omega |X,Y)\times p(X,Y) = p(\omega |X,Y)\times p(Y|X)\times p(X)\\ p(\omega ,X,Y) =p(Y|\omega ,X)\times p(X,\omega ) = p(Y|\omega ,X)\times p(X|\omega ) \times p(\omega ) \end{matrix}\right.

利用两个等式最右端彼此相等可以得到:

                       p(\omega |X,Y) = \frac{p(Y|\omega ,X) \times p(X|\omega ) \times p(\omega )}{p(Y|X)\times p(X)}=\frac{p(Y|\omega ,X) \times p(\omega )}{\int _{\omega }p(Y|\omega ,X) \times p(\omega )d\omega }

这里个人理解是:贝叶斯理论认为采样数据是客观存在的,并不会因为\omega如何如何就发生改变,因此p(X|\omega )=p(X)。得到这个式子之后,就可以用本科和硕士研究生阶段学习的概率论和引用数理统计的知识了。其中p(Y|\omega ,X)被称为似然函数(likelihood),p(\omega )被称为\omega的先验概率(prior),\small $\int _{\omega }p(Y\left|\omega ,X) \times p(\omega )d\omega$被称为边缘化似然函数(marginal likelihood)。上式的分布是一个与\omega无关的常数,因此,后验概率也可以如下表示:

                                                  p(\omega |X,Y) \propto p(Y|\omega ,X) \times p(\omega )

似然函数可以表示为n个独立同分布的乘积形式:$ p(Y\left| \omega ,X) = \prod _{i=1}^{n}p(y_{i} \left| \omega ,x_{i})$。根据文章前边的线性模型的表达式和中学阶段学过的正态分布的性质可以知道,每一个输出样本的概率分布均为:\small $ y_{i}\sim N(x_{i}^{T}, \sigma ^{2}) $。因此,可以推导出似然函数的表达式:

                   p(Y|\omega ,X) = \prod _{i=1}^{n}\frac{1}{\sqrt{2\pi\sigma ^{2}}}\exp [-\frac{(y_{i}-x_{i}^{T}\omega )^{2}}{2\sigma ^{2}}] = \frac{1}{(2\pi\sigma^{2})^{n/2}}\exp[-\frac{1}{2\sigma^{2}}A]

其中,$A=\sum _{i=1}^{n}(y_{i}-x_{i}^{T}\omega )^{2}$为一个数量。A的化简如下:

                            \small \small A=\begin{bmatrix} y_{1}-x_{1}^{T}\omega & y_{2}-x_{2}^{T}\omega & \cdots & y_{n}-x_{n}^{T}\omega \end{bmatrix}\times \begin{bmatrix} y_{1}-x_{1}^{T}\omega\\ y_{2}-x_{2}^{T}\omega\\ \vdots \\ y_{n}-x_{n}^{T}\omega \end{bmatrix}\\ =\begin{bmatrix} Y^{T}-\omega ^{T}X \end{bmatrix}\times \begin{bmatrix} Y-X^{T}\omega \end{bmatrix}\\ =\begin{bmatrix} Y-X^{T}\omega \end{bmatrix}^{T}\times \begin{bmatrix} Y-X^{T}\omega \end{bmatrix}

因此,似然函数就可以被表达成如下形式:

                                   p(Y|\omega ,X)=\frac{1}{(2\pi\sigma)^{n/2}}\exp[-\frac{1}{2\sigma ^{2}}\begin{Vmatrix} Y-X^{T}\omega \end{Vmatrix}^{2}]

对比多元高斯分布的标准公式,我们可以看出这个服从高斯分布的似然函数可以被如下表示:

                                                p(Y|\omega ,X) = N(X^{T}\omega , \sigma ^{2}I)

根据\omega的后验概率正比于似然函数和先验概率的乘积这一事实。在这里我们假设\omega的先验分布已知:

                                                        p(\omega) = N(0,\Sigma_{p})

因此,将两个表达式代入,可以得到:

                         p(\omega|X,Y) \propto N(X^{T}\omega , \sigma ^{2}I)\times N(0, \Sigma_{p})\sim N(\mu_{\omega}, \Sigma_{\omega})

根据高斯分布的特征参数可以直接从指数项中提炼出来,而不需要看前边增益系数的特点,我们可以对上式进行化简:

                p(\omega|X,Y) \propto \exp[-\frac{1}{2\sigma^{2}}(Y-X^{T}\omega)^{T}(Y-X^{T}\omega)]\times \exp[-\frac{1}{2}\omega ^{T}\Sigma_{p}^{-1}\omega]\\ =\exp[-\frac{1}{2}(Y-X^{T}\omega)^{T}\sigma ^{-2}I(Y-X^{T}\omega)-\frac{1}{2}\omega ^{T}\Sigma_{p}^{-1}\omega]\\ =\exp[-\frac{1}{2\sigma ^{2}}(Y^{T}Y-2Y^{T}X^{T}\omega +\omega ^{T}XX^{T}\omega)-\frac{1}{2}\omega ^{T}\Sigma_{p}^{-1}\omega]\\ =\exp\{ -\frac{1}{2}[\omega ^{T}(\Sigma _{p}^{-1}+\sigma ^{-2}XX^{T})\omega -2\sigma ^{-2}Y^{T}X^{T}\omega +\sigma ^{-2}Y^{T}Y]\}

乍一看这个公式没有规律可言。我们先整理一下标准的多元高斯分布的概率密度表达式:

                            \small p(x)=N(\mu ,\Sigma )\propto \exp[-\frac{1}{2}(x-\mu)^{T}\Sigma^{-1}(x-\mu)]\\ =\exp[-\frac{1}{2}(x^{T}\Sigma^{-1} x-2\mu\Sigma^{-1}x+\mu^{T}\Sigma^{-1}\mu)]

从这个公式,我们可以看到。多元高斯分布的概率密度表达式的指数项中有二次项、一次项和常数项。我们只需要将相同项的系数对应起来即可。通过观察,可以发现:

                                                   \left\{\begin{matrix} \Sigma_{\omega}^{-1}=\Sigma_{p}^{-1}+\sigma^{-2}XX^{T}\\ \mu_{\omega}^{T}\Sigma_{\omega}^{-1}=\sigma^{-2}Y^{T}X^{T} \end{matrix}\right.

进一步地,可以求出参数\omega的后验概率分布为(\Sigma_{\omega}为对称矩阵):

                                                      \left\{\begin{matrix} \Sigma_{\omega}^{-1}=\Sigma_{p}^{-1}+\sigma^{-2}XX^{T}\\ \mu_{\omega}=\sigma^{-2}A^{-1}XY\\ A=\Sigma_{\omega}^{-1} \end{matrix}\right.

至此,参数\omega的后验概率求解完成。利用得到的参数分布去估计在测试点x*时的y值,只需要将模型代入即可:

                                       \left\{\begin{matrix} f(x^{*})=x^{*^{T}}\omega \sim N(x^{*^{T}}\mu_{\omega}, x^{*^{T}}\Sigma_{\omega}x^{*})\\ y=f(x^{*})+\varepsilon \sim N(x^{*^{T}}\mu_{\omega}, x^{*^{T}}\Sigma_{\omega}x^{*} + \sigma ^{2}) \end{matrix}\right.

本文只是GPR部分的推导,并不涉及GPR在具体问题中应该如何设计程序和迭代。个人感觉还是理解不够深入,如果哪里有错误还烦请各位指导纠正!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

高斯过程回归中后验概率的简单推导 的相关文章

  • 化繁为简,一张图看懂梯度、散度、旋度、Jacobian、Hessian和Laplacian

    点击上方 计算机视觉工坊 xff0c 选择 星标 干货第一时间送达 作者 xff5c 王赟 Maigo 64 知乎 xff08 已授权 xff09 来源 xff5c https zhuanlan zhihu com p 35323714 编
  • 一文详解PnP算法原理

    PnP Perspective n Point 问题的几何结构如图1所示 xff0c 给定3D点的坐标 对应2D点坐标以及内参矩阵 xff0c 求解相机的位姿 数学语言描述如下 xff1a 图1 PnP几何结构 1 直接线性变换法 Dire
  • 多传感器数据标定融合完整教程:时间同步+空间同步(Camera+Lidar+IMU+Radar)

    多传感器融合是一项结合多传感器数据的综合性前沿内容 xff0c 主要包括Camera 激光雷达 IMU 毫米波雷达等传感器的融合 xff0c 在自动驾驶 移动机器人的感知和定位领域中占有非常重要的地位 xff1b 随着AI技术的大规模落地
  • 机器人抓取—— 相机参数与标定 camera_calibration

    点击上方 计算机视觉工坊 xff0c 选择 星标 干货第一时间送达 整理丨古月居 相机的参数 参考 xff1a https blog csdn net weixin 43206570 article details 84797361 摄像机
  • ROS下面调用自定义的头文件和.cpp/.so文件(亲测有效)

    前言 ROS下面使用已经编译好的ROS package是很方便的 xff0c 但是大多数我们可能自己定义了一些头文件 xff0c 想去直接引用 xff0c 那么如何在ROS下面调用自己的定义的函数呢 xff1f ROS下调用自定义的头文件
  • catkin_make和cmake

    catkin make是ROS下面的一种编译方式 xff0c 基于cmake xff0c 但是又不同于cmake cmake只能编译指定的package xff0c 但是不同package之间的关系没办法链接 xff0c 而且cmake只能
  • UNIX date命令简介

    date 命令 参数含义 xff1a a xff1a 显示星期简写 Sun Sat A xff1a 显示完整星期 Sunday Saturday b xff1a 显示月份简写 Jan Dec B xff1a 显示完整月份 January D
  • NVIDIA JETSON XAVIER NX烧录(emmc版本)

    目录 0 前言 1 安装虚拟机 2 安装SDKManager 3 使用SDK Manager开始烧录 4 配置系统 5 开发环境的安装 xff08 CUDA xff09 6 遇到问题记录 xff08 如果有其它问题可以留言我补充 xff09
  • NVIDIA JETSON XAVIER NX烧录(sd版本)

    0 前言 本文主要补充上文提到的sd卡版本烧录Jetson Xavier Nx系统的 xff0c 需要准备的东西 一张空白SD卡balenaEtcher工具 JETSON XAVIER NX 开发者套件的SD镜像 xff08 官网下载 xf
  • NVIDIA JETSON XAVIER NX 从SSD盘启动

    0 前言 本文主要补充上文提到的Jetson Xavier Nx系统从ssd盘启动 xff0c 需要准备的东西 xff1a 提前把ssd卡装上Jetson Xavier Nx套件上 xff0c 如下图 1 格式化为GPT 打开ubuntu的
  • 在linux虚拟机上安装docker

    1 简介 Docker是一个开源的应用容器引擎 xff1b 是一个轻量级容器技术 xff1b Docker支持将软件编译成一个镜像 xff1b 然后在镜像中各种软件做好配置 xff0c 将镜像发布出去 xff0c 其他使用者可以直接使用这个
  • win11虚拟机如何安装 Windows11虚拟机安装步骤教程

    想要体验下最新的win11系统 但是又不想在实体机上安装 担心出现系统故障问题怎么办 我们可以通过虚拟机安装win11系统实现 下面小编就教下大家虚拟机如何安装win11系统 更多Windows11系统教程可以参考小白一键网 1 下载安装好
  • Win11如何开启移动热点?Win11开启移动热点的方法

    在Win10系统之后就有了一个移动热点功能 xff0c 这在Win11系统也不例外 xff0c 不过很多小伙伴并不清楚Win11系统中的移动热点功能如何开启 xff0c 那么下面就和小编一起来看看Win11开启移动热点的方法 xff0c 有
  • 交换机组建局域网

    说来惭愧 xff0c 今天才搞明白用交换机组建局域网的原理 xff0c 这里介绍方法 xff1a 平时使用的路由器有交换机的功能 xff0c 单纯使用交换机还是第一次 xff1a 1 将所有电bai脑连到同一台交换机上 xff0c du即将
  • mavros 使用经验记录

    我用的飞控硬件板是pixhawk xff0c 用missionplanner刷的fight stack是apm的最新版本3 4 amp对mavros支持不是特别好 xff0c 如果合适还是用px4的flight stack 比较好 xff0
  • ros catkin_make 出现add_custom_target cannot create target 错误

    今天用catkin make编译ros包出现如下错误 CMake Error at home liwei work catkin ws land build mycommbase cmake mycommbase genmsg cmake
  • mavros使用经验记录二

    项目是一个无人机视觉追踪功能 xff0c 无人机上的协从计算机通过串口连接到飞控的tel2 接收mavlink消息流 xff0c 协计算机将此mavlink流进行udp转发到地面站 xff0c 同时协计算机实时的进行图像处理 xff0c 将
  • Unix Shell中单引号、双引号字符、反斜杠、反引号的使用

    在执行shell脚本的时候 xff0c shell将会对脚本中的行进行解释 xff0c 然后执行 xff1b 对于一些特殊处理的句子 xff0c 我们可以使用引号或者反斜线来避免shell解释执行之 如下 xff0c 当在命令行中输入 xf
  • TX2 Ubuntu 系统默认root用户登录 (永久权限)

    操作简单 xff0c 亲测可行 xff0c 不需要写啥脚本 https jingyan baidu com article 6181c3e0780131152ef153ff html

随机推荐