白给的神经过程Neural Processes笔记

前言

神经过程neural processes, NP 是2018年ICML会议上提出的一种新的神经网络范式,总的来说是将高斯过程Gaussian Processes, GP 网络化,从而降低GP对计算量的要求。GP的好处是天然地能够对预测的结果给出一个置信度的评分,即uncertainty or confidence, 而且GP模型是non parametric的,会根据输入样例自动抽取规律,不断更新自己的预测信息。相比之下,一般的神经网络在训练结束后,模型参数将被固定,无法一直学习。下文首先介绍GP的基础知识,然后过渡到NP模型,中间会插入一些toy example,即小的例子,来更深入地理解GP和NP模型的特点。讲解的过程中会有很多个人的观点且需要有一点点概率论和信号估计理论的基础知识,如有错误欢迎指正和讨论。

1. Gaussian Process (GP)

Gaussian Process的定义:如果对于任意的子集 { x 1 ,   x 2 , ⋯   , x n } ⊂ X \{x_1,~x_2,\cdots,x_n\}\subset\mathcal{X} {x1, x2,,xn}X, 采样一个 X → R \mathcal{X}\rightarrow\mathbb{R} XR的映射函数 f ∼ p ( f ) f\sim p(f) fp(f), 记 f = ( f ( x 1 ) ,   f ( x 2 ) , ⋯   ,   f ( x n ) ) ∈ R n \mathbf{f}=\left(f(x_1),~f(x_2),\cdots,~f(x_n)\right)\in\mathbb{R}^n f=(f(x1), f(x2),, f(xn))Rn, 都有 f ∼ N ( ⋅ ,   ⋅ ) \mathbf{f}\sim\mathcal{N}(\cdot,~\cdot) fN(, ), 即 p ( f ) p(f) p(f)服从多元高斯分布(multivariate Gaussiandistribution)。那么称 p ( f ) p(f) p(f)是高斯过程Gaussian Process

上面的定义应该怎么理解呢?最后一句表明, 高斯过程是一个概率分布 p ( f ) p(f) p(f),而这个概率分布对应的随机变量是一个函数 f f f。这是高斯过程相对于其他机器学习模型最大的不同点,我们所熟知的机器学习模型都是先假设模型能够完全拟合输入输出数据,然后训练或迭代模型参数,这种学习范式对应的函数 f f f是确定的,通过样本数据学习模型的参数,优化目标是由先验知识确定的模型的参数。一种另辟蹊径的方法是将拟合输入输出数据的函数作为优化目标,这个目标是函数本身也就是模型本身,是数学上的泛函问题。然而这个函数的候选者数量是无限的,函数形式是未知的。高斯过程模型则是将这种一般化的思路,加入了前提和假设,使得构造的问题能够被求解出来。高斯过程以概率为框架,将输入 x x x输出 y y y的回归问题转化为寻找这个未知的函数 f f f,其中 y = f ( x ) y=f(x) y=f(x),的概率分布问题,然后以假定观测值 y y y经过 f f f映射后组成的随机序列满足多元高斯分布。基于此利用贝叶斯定理和多元高斯函数的边缘分布marginalizatiion distribution和条件分布conditioning distribution求解问题。下面我们将对整个求解过程逐一展开。(PS: 从名字上理解,高斯过程和随机过程,这里的过程应该是抽样这个动作的意思,随机过程的定义是在一个变量集合里面随机采样出一个变量的过程; 所以对应地高斯过程可以理解为在一组由无限个可能的均值 μ \mu μ 和无限个可能的方差 Σ \Sigma Σ 组合成的多元高斯函数集合中采样出一个符合给定输入样例的函数的过程。)

1.0 预备知识

预备知识可以参考这条有趣的链接:https://jgoertler.com/visual-exploration-gaussian-processes/

  • 多元高斯函数(multi-variate Gaussian function)的数学描述
    x = [ x 1 x 2 ⋯ x n ] T ∼ N x ( μ ,   Σ ) \mathbf{x}=\left[ \begin{array}{cccc} x_1&x_2& \cdots &x_n \end{array} \right]^T\sim\mathcal{N}_\mathbf{x}(\mu,~\Sigma) x=[x1x2xn]TNx(μ, Σ)
    多元高斯函数也叫多元正态分布函数,其中
    N x ( μ ,   Σ ) = 1 ( 2 π ) n / 2 ∣ Σ ∣ 1 / 2 e x p ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) \mathcal{N}_\mathbf{x}(\mu,~\Sigma) = \frac{1}{(2\pi)^{n/2}|\Sigma|^{1/2}}exp\left(-\frac{1}{2}(\mathbf{x}-\mu)^T\Sigma^{-1}(\mathbf{x}-\mu)\right) Nx(μ, Σ)=(2π)n/2∣Σ1/21exp(21(xμ)TΣ1(xμ))
    ∣ Σ ∣ |\Sigma| ∣Σ∣ 表示计算 Σ \Sigma Σ 矩阵的行列式(determination), μ = E [ x ] \mu=\mathbb{E}[\mathbf{x}] μ=E[x] 是随机变量 x \mathbf{x} x 的期望(expectation),在高斯函数中也叫均值。这里我们可以类比联想两个随机变量的协方差矩阵Covariance matrix,计算的是两个随机变量各个维度两两之间的相关程度:
    C o v ( x ,   y ) = E [ ( x − E [ x ] ) ( y − E [ y ] ) ] = E [ x y ] − E [ x ] E [ y ] Cov(\mathbf{x},~\mathbf{y})=\mathbb{E}\left[(\mathbf{x}-\mathbb{E}[\mathbf{x}])(\mathbf{y}-\mathbb{E}[\mathbf{y}])\right] = \mathbb{E}[\mathbf{x}\mathbf{y}]-\mathbb{E}[\mathbf{x}]\mathbb{E}[\mathbf{y}] Cov(x, y)=E[(xE[x])(yE[y])]=E[xy]E[x]E[y]
    Σ = C o v ( x ,   x ) = E [ ( x − μ ) ( x − μ ) T ] = E [ x x T ] − μ μ T \Sigma=Cov(\mathbf{x},~\mathbf{x})=\mathbb{E}\left[(\mathbf{x}-\mu)(\mathbf{x}-\mu)^T\right]=\mathbb{E}[\mathbf{x}\mathbf{x}^T]-\mu\mu^T Σ=Cov(x, x)=E[(xμ)(xμ)T]=E[xxT]μμT 为协方差,计算的是一个自相关矩阵,是一个对称的正定矩阵,对于任意的一个随机向量的协方差矩阵,它都是半正定矩阵。
  • 多元高斯函数的边缘分布
    假设随机变量拆分为两部分 x \mathbf{x} x y \mathbf{y} y,那么多元高斯函数的数学描述形式可以改写如下:
    [ x y ] ∼ N ( [ μ x μ y ] ,   [ Σ x x Σ x y Σ y x Σ y y ] ) \left[ \begin{array}{c}\mathbf{x}\\\mathbf{y}\end{array} \right]\sim\mathcal{N}\left( \left[ \begin{array}{c}\mu_\mathbf{x}\\\mu_\mathbf{y}\end{array} \right],~\left[ \begin{array}{cc}\Sigma_{\mathbf{x}\mathbf{x}} & \Sigma_{\mathbf{x}\mathbf{y}} \\ \Sigma_{\mathbf{y}\mathbf{x}} & \Sigma_{\mathbf{y}\mathbf{y}} \end{array} \right] \right) [xy]N([μxμy], [ΣxxΣyxΣxyΣyy])
    x x x y y y 分别为随机变量 x \mathbf{x} x y \mathbf{y} y 采样后的具体值,realization sample。假设随机变量序列 x \mathbf{x} x y \mathbf{y} y(或说样本)之间独立同分布(identity independent distribution, iid.),则有 p x y ( x ,   y ) = p y ∣ x ( y ∣ x ) p x ( x ) = p x ∣ y ( x ∣ y ) p y ( y ) p_{\mathbf{x}\mathbf{y}}(x,~y)=p_{\mathbf{y}|\mathbf{x}}(y|x)p_\mathbf{x}(x)=p_{\mathbf{x}|\mathbf{y}}(x|y)p_\mathbf{y}(y) pxy(x, y)=pyx(yx)px(x)=pxy(xy)py(y)
    p x ( x ) = ∫ y p x y ( x ,   y ) d y = ∫ y p x ∣ y ( x ∣ y ) p y ( y ) d y p_\mathbf{x} (x) =\int_yp_{\mathbf{x}\mathbf{y}}(x,~y) dy = \int_yp_{\mathbf{x}|\mathbf{y}}(x|y)p_\mathbf{y}(y) dy px(x)=ypxy(x, y)dy=ypxy(xy)py(y)dy
    其中, p x y ( x ,   y ) p_{\mathbf{x}\mathbf{y}}(x,~y) pxy(x, y) 表示两个随机变量的联合概率分布, p x ∣ y ( x ∣ y ) p_{\mathbf{x}|\mathbf{y}}(x|y) pxy(xy) 表示给定 y y y 的情况下随机变量 x \mathbf{x} x 的条件概率分布 (conditioned on y \mathbf{y} y),而 p x ( x ) p_\mathbf{x}(x) px(x) p y ( y ) p_\mathbf{y}(y) py(y) 分别表示随机变量 x \mathbf{x} x y \mathbf{y} y 相对于联合概率分布的边缘概率分布。
  • 多元高斯函数的条件分布
    利用贝叶斯条件概率公式和高斯函数运算的一些基本法则:
    p ( x ∣ y ) = p ( x ,   y ) p ( y ) = p ( y ∣ x ) p ( x ) p ( y ) p(x|y)=\frac{p(x,~y)}{p(y)}=\frac{p(y|x)p(x)}{p(y)} p(xy)=p(y)p(x, y)=p(y)p(yx)p(x)
    经过整理可以得到条件概率的计算结果如下:
    x ∣ y ∼ N ( μ x + Σ x y Σ y y − 1 ( y − μ y ) ,   Σ x x − Σ x y Σ y y − 1 Σ y x ) y ∣ x ∼ N ( μ y + Σ y x Σ x x − 1 ( x − μ x ) ,   Σ y y − Σ y x Σ x x − 1 Σ x y ) \begin{aligned} \mathbf{x}|\mathbf{y}&\sim\mathcal{N}\left(\mu_\mathbf{x}+\Sigma_{\mathbf{xy}}\Sigma_\mathbf{yy}^{-1}(\mathbf{y}-\mu_\mathbf{y}),~\Sigma_\mathbf{xx}-\Sigma_\mathbf{xy}\Sigma_\mathbf{yy}^{-1}\Sigma_\mathbf{yx}\right) \\ \mathbf{y}|\mathbf{x}&\sim\mathcal{N}\left(\mu_\mathbf{y}+\Sigma_{\mathbf{yx}}\Sigma_\mathbf{xx}^{-1}(\mathbf{x}-\mu_\mathbf{x}),~\Sigma_\mathbf{yy}-\Sigma_\mathbf{yx}\Sigma_\mathbf{xx}^{-1}\Sigma_\mathbf{xy}\right) \end{aligned} xyyxN(μx+ΣxyΣyy1(yμy), ΣxxΣxyΣyy1Σyx)N(μy+ΣyxΣxx1(xμx), ΣyyΣyxΣxx1Σxy)
    上面的整理结果将会在高斯过程回归(Gaussian process regression, GPR)中经常使用。

1.1 问题描述

为了更好地理解高斯过程,我们首先从实际用例出发现构建一个回归问题:

给定一组输入输出样例数据 { ( x 1 ,   y 1 ) ,   ( x 2 ,   y 2 ) ,   ⋯   ,   ( x n ,   y n ) } \{(x_1,~y_1), ~(x_2,~y_2),~\cdots,~(x_n,~y_n)\} {(x1, y1), (x2, y2), , (xn, yn)},其中 x i x_i xi为输入, y i y_i yi为输出,现给定新的输入 x ′ x^\prime x,预测 y ′ y^\prime y

这是典型的回归问题,问题的核心在于通过数据驱动的方式拟合出输入输出的映射关系 f f f,使得 y ′ = f ( x ′ ) y^\prime=f(x^\prime) y=f(x) 。记 y = ( y 1 ,   y 2 ,   ⋯   ,   y n ) \mathbf{y}=(y_1,~y_2,~\cdots,~y_n) y=(y1, y2, , yn), $\mathbf{x}=(x_1,x_2,\cdots,~x_n); G P ( ⋅ ∣ μ ( x ) , Σ ( x ) ) \mathcal{GP}(\cdot|\mu(\mathbf{x}), \Sigma(\mathbf{x})) GP(μ(x),Σ(x)) 为一个以输入 x \mathbf{x} x 为条件的多元高斯函数集合。高斯过程首先假设输出序列 y \mathbf{y} y 服从多元高斯分布(现实世界中往往不完全符合,但是为了求解问题,当我们决定使用GP这种方法的时候就已经默认 y \mathbf{y} y 是近似服从多元高斯分布)。

TBD 。。。

你可能感兴趣的:(深度学习,模式识别,机器学习,人工智能)