从高斯回归到贝叶斯回归

1 协方差矩阵1

n维随机变量 X = ( X 1 , X 2 , . . . , X n ) \boldsymbol{X}=(X_1,X_2,...,X_n)' ,若每个分量的数学期望都存在,则n维随机变量X的数学期望为:
E ( X ) = ( E ( X 1 ) , E ( X 2 ) , . . . , E ( X n ) ) E(\boldsymbol{X})=(E(X_1),E(X_2),...,E(X_n))'
协方差矩阵为:
E [ ( X E ( X ) , ( X E ( X ) ) ] E[(X-E(\boldsymbol{X}),(X-E(\boldsymbol{X}))']
= ( V a r ( X 1 ) C o v ( X 1 , X 2 ) . . . C o v ( X 1 , X n ) C o v ( X 2 , X 1 ) V a r ( X 2 ) . . . C o v ( X 2 , X n ) . . . . . . . . . . . . C o v ( X n , X 1 ) C o v ( X n , X 2 ) . . . V a r ( X n ) ) =\begin{pmatrix}Var(X_1)&Cov(X_1,X_2)&...&Cov(X_1,X_n) \\Cov(X_2,X_1)&Var(X_2)&...&Cov(X_2,X_n)\\...&...&...&...\\Cov(X_n,X_1)&Cov(X_n,X_2)&...&Var(X_n)\end{pmatrix} \quad
对角线上的元素是方差,非对角线元素为协方差.

2 n维高斯分布

一元高斯分布: X N ( μ , σ ) X\sim N(\mu,\sigma)
二元高斯分布: ( X , Y ) N ( μ 1 , μ 2 , σ 1 , σ 2 , ρ ) (X,Y)\sim N(\mu_1,\mu_2,\sigma_1,\sigma_2,\rho)
由此可得,n元高斯分布为:
( X 1 , X 2 , . . . , X n ) N ( μ 1 , μ 2 , . . . μ n , σ 1 , σ 2 , . . . , σ n , ρ ) (X_1,X_2,...,X_n)\sim N(\mu_1,\mu_2,...\mu_n,\sigma_1,\sigma_2,...,\sigma_n,\rho)

3 高斯过程

机器学习的常见做法是把函数参数化,然后用产生的参数建模来规避分布表示(如线性回归的权重)。但GP不同,它直接对函数建模生成非参数模型。由此产生的一个突出优势就是它不仅能模拟任何黑盒函数,还能模拟不确定性。这种对不确定性的量化是十分重要的,如当我们被允许请求更多数据时,依靠高斯过程,我们能探索最不可能实现高效训练的数据区域。这也是贝叶斯优化背后的主要思想。

GP背后的关键思想是可以使用无限维多变量高斯分布来对函数进行建模。换句话说,输入空间中的每个点都与一个随机变量相关联,而它们的联合分布可以被作为多元高斯分布建模。

高斯过程定义2

对给定集合S,则S上的高斯过程 Z t : t S Z_t:t\in S 满足 n N , t 1 , t 2 , . . . t n S \forall n \in N,\forall t_1,t_2,...t_n\in S ( Z t 1 , . . . , Z t n ) (Z_{t_1},...,Z_{t_n}) 是高斯分布.

给定集合S中的任意个自变量 S i , S j , . . . , S k S_i,S_j,...,S_k ,满足 z ( S i ) , z ( S j ) , . . . , z ( S k ) z(S_i),z(S_j),...,z(S_k) 是高斯随机变量,且 z ( S i ) , z ( S j ) , . . . , z ( S k ) z(S_i),z(S_j),...,z(S_k) 是多维高斯函数(可以有任意多个),记为Z,此时称随机变量集合Z为S上的高斯过程.

高斯过程存在性定理
对任意集合S中的单个元素都存在某个均值函数,以及对任意集合S中的2个元素都存在某个核函数(即协方差函数),则在S上一定存在一个高斯过程 Z ( t ) Z(t)
E ( Z t ) = μ ( t ) E(Z_t)=\mu(t)

C o v ( Z s . Z t ) = k ( s , t ) , s , t S Cov(Z_s.Z_t)=k(s,t),\forall s,t\in S

所以在给定集合S后,我们只需要给出一个一元的均值函数,一个二元的核函数表达式,就可以构造出一个高斯过程。

高斯过程是一种随机过程,是一系列服从正态分布的随机变量在一指数集内的组合,高斯过程中任意随机变量的线性组合都服从正态分布,每个有限维分布都是联合正态分布.高斯过程可以看做是多维高斯分布向无限维的拓展。

高斯过程由其数学期望和协方差函数完全决定:
f ( x ) G P ( m ( x ) , k ( x , x ) ) f(x) \sim GP(m(x),k(x,x'))
m ( x ) = E ( f ( x ) ) m(x)=E(f(x))
k ( x , x ) = E ( ( f ( x ) m ( x ) ( f ( x ) m ( x ) ) T ) k(x,x')=E((f(x)-m(x)(f(x')-m(x'))^T)

4 高斯过程回归

基于核函数的非参数概率模型

假设一个函数 f : R R f:R\rightarrow R ,对于自变量 x 1 , x 2 , x 3 x_1,x_2,x_3 有对应的函数值 f 1 , f 2 , f 3 f_1,f_2,f_3 ,假设 f 1 , f 2 , f 3 f_1,f_2,f_3 服从联合正态分布,即:
[ f 1 f 2 f 3 ] N [ ( μ 1 μ 2 μ 3 ) , ( k 11 k 12 k 13 k 21 k 22 k 23 k 31 k 32 k 33 ) ] \begin{bmatrix}f_1\\f_2\\f_3\end{bmatrix} \quad\sim N\Bigg[\begin{pmatrix}\mu_1\\\mu_2\\\mu_3\end{pmatrix} \quad,\begin{pmatrix}k_{11}&k_{12}&k_{13} \\k_{21}&k_{22}&k_{23}\\k_{31}&k_{32}&k_{33}\end{pmatrix} \quad\Bigg]
回归分析:对于新的点 x x^* ,求对应的 f f^*
假设 f 1 , f 2 , f 3 , f f_1,f_2,f_3,f^* 服从联合正态分布,则有:
[ f 1 f 2 f 3 f ] N ( [ μ 1 μ 2 μ 3 μ ] , [ k 11 k 12 k 13 k 1 k 21 k 22 k 23 k 2 k 31 k 32 k 33 k 3 k 1 k 2 k 3 k ] ) \begin{bmatrix}f_1\\f_2\\f_3\\f_*\end{bmatrix} \quad \sim N\Bigg(\begin{bmatrix}\mu_1\\\mu_2\\\mu_3\\\mu_*\end{bmatrix} \quad,\begin{bmatrix}k_{11}&k_{12}&k_{13} &k_{1*}\\k_{21}&k_{22}&k_{23}&k_{2*}\\k_{31}&k_{32}&k_{33}&k_{3*}\\k_{*1}&k_{*2}&k_{*3}&k_{**}\end{bmatrix} \quad\Bigg)
可以整理为3

[ f f ] N ( [ μ μ ] , [ K k k T k ] ) \begin{bmatrix}\boldsymbol{f}\\f_*\end{bmatrix} \quad \sim N\Bigg(\begin{bmatrix}\mu\\\mu_*\end{bmatrix} \quad,\begin{bmatrix}\boldsymbol{K}&\boldsymbol{k}\\\boldsymbol{k^T}&k_{**}\end{bmatrix} \quad\Bigg)
其中 f = ( f 1 , f 2 , f 3 ) T , k = ( k 1 , k 2 , k 3 ) T \boldsymbol{f}=(f_1,f_2,f_3)^T,\boldsymbol{k}=(k_{1*},k_{2*},k_{3*})^T , K = ( k 11 k 12 k 13 k 21 k 22 k 23 k 31 k 32 k 33 ) \boldsymbol{K}=\begin{pmatrix}k_{11}&k_{12}&k_{13} \\k_{21}&k_{22}&k_{23}\\k_{31}&k_{32}&k_{33}\end{pmatrix} \quad
接下来的问题即在知道 f 1 , f 2 , f 3 , f f_1,f_2,f_3,f^* 联合分布的情况下,求解 f f^* 的分布

根据贝叶斯回归,计算 f f^* 的后验分布为:
P ( f x , x , f ) = N ( μ , σ ) P(f^*|x^*,\boldsymbol{x},\boldsymbol{f})=N(\mu^*,\sigma^*)

μ = k T K 1 f \mu^*=\boldsymbol{k^T}\boldsymbol{K^{-1}}\boldsymbol{f}
σ = k k T K 1 k \sigma^*=k_{**}-\boldsymbol{k^T}\boldsymbol{K^{-1}}\boldsymbol{k}

训练集: { ( x i , y i ) ; i = 1 , 2 , . . . , n } \{(x_i,y_i);i=1,2,...,n\} 其中 x i R d y i R x_i\in R^d,y_i\in R
给定新输入的向量 x n e w x_{new} 以及训练数据,预测一个回复变量的值 y n e w y_{new}

考虑模型 h ( x ) T β + f ( x ) h(x)^T\beta+f(x)
其中 f ( x ) G P ( 0 , k ( x , x ) ) f(x)\sim GP(0,k(x,x'))
基函数 h ( x ) R d R p h(x):R^d\rightarrow R^p ,将输入 x x 投影到p维空间中
系数向量 β R p × 1 \beta \in R_{p\times1}
瞬时相应 y i y_i 可建模为:
P ( y i f ( x i ) , x i ) N ( y i h ( x i ) T β + f ( x i ) , σ 2 ) P(y_i|f(x_i),x_i)\sim N(y_i|h(x_i)^T\beta+f(x_i),\sigma^2)

高斯过程回归是概率模型,每个观察值 x i x_i 都会引入一个潜在变量 f ( x i ) f(x_i) ,使GPR为非参数模型
向量形式为:
P ( y f , x ) N ( y i H β + f , σ 2 I ) P(y|f,x)\sim N(y_i|H\beta+f,\sigma^2I)
潜在变量 f ( x 1 ) , f ( x 2 ) , . . . , f ( x n ) f(x_1),f(x_2),...,f(x_n) 的联合分布为:
p ( f x ) N ( f 0 , k ( x , x ) ) p(f|x)\sim N(f|0,k(x,x))

5 贝叶斯回归

= 后验概率=\frac{先验概率*似然}{证据因子}

样本集合D
P ( θ D n 1 ) P(\theta|D_{n-1}) :训练集的后验概率,即新集合的先验概率
P ( x n θ ) P(x_n|\theta) :新数据 x n x_n 的似然

P ( θ D n 1 ) a n d P ( x n θ ) P ( θ D n ) P(\theta|D_{n-1}) and P(x_n|\theta) \Rightarrow P(\theta|D_n)

贝叶斯回归的过程是一个样本点逐步增加到学习器的过程,前一个样本点的后验会被下一次估计当作先验,贝叶斯学习在逐步的更新先验,先验的更新实际上是通过更新极大似然估计参数和样本点来进行迭代的,而非改变初始先验的形式。
所谓的后验概率是结果出现之后对概率的修正,从贝叶斯的视角看待整个数据集,我们会把样本的每个点进行增量计算,对于初始点,我们假设先验和似然,计算出它的后验,然后将初始点的后验估计当作下一次(两个样本点)估计的先验,如此反复,直到计算完毕整个数据集,随着样本的增加,我们的估计会越来越准确。

贝叶斯线性回归不仅可以解决极大似然估计中存在的过拟合的问题,而且,它对数据样本的利用率是100%,仅仅使用训练样本就可以有效而准确的确定模型的复杂度。

6 Matlab fitrgp函数

拟合高斯过程回归模型

1 使用方法

  1. gprMdl = fitrgp(Tbl,ResponseVarName)
    Tbl:训练数据
    ResponseVarName:标识Tbl中的响应变量
    gprMdl:返回一个高斯过程回归模型
  2. gprMdl = fitrgp(Tbl,formula)
    formula:定义预测变量和响应变量
  3. gprMdl = fitrgp(Tbl,y)
    y:连续响应变量
  4. gprMdl =fitrgp(X,y)
    x:预测变量
    y:连续响应变量
  5. gprMdl = fitrgp(___,Name,Value)
    Name,Value:对参数指定

2 示例程序

gprMdl = fitrgp(tbl,‘NoShellRings’,‘KernelFunction’,‘ardsquaredexponential’,…
‘FitMethod’,‘sr’,‘PredictMethod’,‘fic’,‘Standardize’,1)

参数 含义
tbl 训练数据
‘NoShellRings’ 标识输出响应变量
‘KernelFunction’,‘ardsquaredexponential’ 标识核函数为平方指数
‘FitMethod’,‘sr’ 设置估计参数的方法为回归子近似
‘PredictMethod’,‘fic’ 设置预测方法为完全独立的条件逼近
‘Standardize’,1

示例程序输出:

         ResponseName: 'Y'       //响应变量
CategoricalPredictors: []         //分类预测变量列表
    ResponseTransform: 'none'		//响应转换
      NumObservations: 60		//训练值的数量
       KernelFunction: 'ARDSquaredExponential'		//核函数
    KernelInformation: [1×1 struct]		//核信息
        BasisFunction: 'Constant'		//基函数
                 Beta: 57.6167
                Sigma: 2.5039
    PredictorLocation: [2×1 double]		
       PredictorScale: [2×1 double]
                Alpha: [60×1 double]
     ActiveSetVectors: [60×2 double]
        PredictMethod: 'FIC'		//预测方法
        ActiveSetSize: 60
            FitMethod: 'SR'		//估计参数的方法
      ActiveSetMethod: 'Random'
    IsActiveSetVector: [60×1 logical]
        LogLikelihood: -140.2083		//似然估计
     ActiveSetHistory: [1×1 struct]
       BCDInformation: []

3 基函数

可选参数:
‘constant’ (default) | ‘none’ | ‘linear’ | ‘pureQuadratic’ | function handle
对应的基矩阵分别为全1矩阵、空矩阵、线性、纯二次,最后的是自定义函数

示例:

‘Basis’,‘pureQuadratic’

4 CategoricalPredictors

分类预测变量列表,指定为由逗号分隔的一对,由’CategoricalPredictors’表中的值和组成 。

描述
Vector of positive integers 正整数向量,向量中的每个条目都是一个索引值,对应于包含分类变量的预测数据(X或Tbl)的列。
Logical vector 逻辑向量,true条目表示预测的数据(的对应列X或Tbl)是一种分类变量。
Character matrix 字符矩阵 ,矩阵的每一行都是预测变量的名称。名称必须与中的条目匹配PredictorNames。用多余的空格填充名称,以便字符矩阵的每一行都具有相同的长度.
String array or cell array of character vectors 字符向量的字符串数组或单元格数组,数组中的每个元素都是预测变量的名称。名称必须与中的条目匹配PredictorNames。
‘all’ 所有预测变量都是分类的。

默认情况下,如果预测变量数据在表(Tbl)中,则fitrgp 假定变量是逻辑向量,分类向量,字符数组,字符串数组或字符向量的单元格数组,则该变量为类别变量。如果预测变量数据是矩阵(X),则fitrgp假定所有预测变量都是连续的。要将任何其他预测变量识别为分类预测变量。

5 KernelFunction

在高斯过程回归里,常见的Kernel就是SVM里面著名的高斯核函数(但是为了让命名不是那么混淆,文献中一般把这个Kernel称作squared exponential kernel)

高斯核函数4
k ( x i , x j ) = e x p ( x i x j 2 2 σ 2 ) k(x_i,x_j)=exp(-\frac{||x_i-x_j||^2}{2\sigma^2})

Function Description
‘exponential’ Exponential kernel.
‘squaredexponential’ (default) Squared exponential kernel.
‘matern32’ Matern kernel with parameter 3/2.
‘matern52’ Matern kernel with parameter 5/2.
‘rationalquadratic’ Rational quadratic kernel.
‘ardexponential’ Exponential kernel with a separate length scale per predictor.
‘ardsquaredexponential’ Squared exponential kernel with a separate length scale per predictor.
‘ardmatern32’ Matern kernel with parameter 3/2 and a separate length scale per predictor.
‘ardmatern52’ Matern kernel with parameter 5/2 and a separate length scale per predictor.
‘ardrationalquadratic’ Rational quadratic kernel with a separate length scale per predictor.
Function handle A function handle that can be called like this:Kmn = kfcn(Xm,Xn,theta)where Xm is an m-by-d matrix, Xn is an n-by-d matrix and Kmn is an m-by-n matrix of kernel products such that Kmn(i,j) is the kernel product between Xm(i,:) and Xn(j,:).theta is the r-by-1 unconstrained parameter vector for kfcn.

7 参考文档:

fitrgp函数的官方解释文档
落脚到RMPL第155页的图:
【机器学习】贝叶斯线性回归(最大后验估计+高斯先验)
贝叶斯线性回归(Bayesian Linear Regression)
贝叶斯线性回归

说说高斯过程回归
基于贝叶斯推断的回归模型(理论篇)
高斯过程回归GPR
高斯过程回归(GPR)—— 数学推导 :手写版 权重空间角度和函数空间角度

高斯过程(GP)5
机器学习&数据挖掘笔记_10(高斯过程简单理解)5
机器学习&数据挖掘笔记_11(高斯过程回归)5

Introduction to Gaussian Processes - Part I


  1. 摘录自茆诗松《概率论与数理统计教程》第二版 ↩︎

  2. 有限个随机变量均具有联合高斯分布的集合
    连续域上,无限个高维随机变量(高斯分布)组成的随机过程。 ↩︎

  3. k k_{**} 恒为1 ↩︎

  4. 本来想用指数的形式写公式,但是在Markdown编辑器下指数部分特别小遂用exp ↩︎

  5. 参考YouTube视频:http://www.youtube.com/playlist?list=PLD0Z06AA0D2E8ZZBA ↩︎ ↩︎ ↩︎

发布了15 篇原创文章 · 获赞 0 · 访问量 1246

猜你喜欢

转载自blog.csdn.net/qq_45632433/article/details/104570967