相关文章推荐
道上混的沙发  ·  贝力行·  11 月前    · 
帅呆的长颈鹿  ·  如何删除在SQL Server ...·  1 年前    · 

简介:Kriging模型是一种通过已知试验点信息来预测未知试验点上响应的无偏估计模型,其最早是由南非矿业工程师D.G.Krige于1951年提出。20世纪70年代,法国的数学家G.Matheron对D.G.Krige的研宄成果进行了进一步的系统化、理论化,并将其命名为Kriging模型。1989年Sacks等将Kriging模型推广至试验设计领域,形成了基于计算机仿真和Kriging模型的计算机试验设计与分析方法。
本文将从原理部分,解析Kriging模型的推导过程。本次克里金模型的推导的参考文献为:
A Taxonomy of Global Optimization Methods Based on Response Surfaces

克里金模型在应用时有如下假设条件:
(1)、克里金法假设所有数据之间都服从n维的正态分布。
(2)、无偏。

3、基础知识

在推导克里金模型之前,先来回顾一些统计学的基础知识,各位功底深厚的看客老爷可以直接跳过。

3.1、方差的理解

概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。机器学习中方差又可以理解为不确定性的一种,即方差越大,不确定性越大。

3.2、概率密度函数

在数学中,连续型随机变量的概率密度函数是描述这个随机变量的输出值,在某个确定的取值点附近的可能性的函数。而随机变量的取值落在某个区域之内的概率则为概率密度函数在这个区域上的积分。当概率密度函数存在的时候,累积分布函数是概率密度函数的积分。

3.3、多元正态分布

平常我们见的最多的正态分布大多是是 一维 的,其的概率密度函数(Probability density function,PDF)如下:
在这里插入图片描述
其中,μ为均值,σ 2 为方差。也就是说,在均值和方差确定的条件下,上式f(x)也就确定了,这样我们就可以知道在该分布下,随机变量x的可能性大小。
同样,当拓展到 二维 正态分布时,相当于添加了一个维度,这是均值仍然为每个维度上的均值组合到一起,而方差则变为了协方差,因为要考虑这两个维度之间的关系。此时的均值和协方差变为:
在这里插入图片描述
此时二元正态分布的概率密度函数(pdf)为:
在这里插入图片描述
其中ρ为相关系数,是由这两个维度上的方差计算得到的,如下图所示:x是第一维度上的随机变量,在该维度上,x服从正态分布,同样的,y是第二维度上的随机变量,在该维度上,同样服从正态分布。z就是随机变量x和y取某一个确定值的可能性大小。
在这里插入图片描述
以上为二元正态分布,多元正态分布也是类似,在增加维度即可,不过当维度超过2时,就无法可视化,但并不妨碍我们理解。
多元正态分布的均值向量为:
在这里插入图片描述
多元正态分布的协方差矩阵为:
在这里插入图片描述
其分布函数为:
在这里插入图片描述
也就是说,如果多元正态分布的均值确定了,协方差确定了,那么其分布函数(pdf)就可以确定,我们就可以在这个分布函数上搞点儿事情。比如进一步的进行最大似然估计。

4、理论推导

4.1 模型建立

已知给定了一些标记过的数据集 X = { x 1 ,x 2 ,…,x n } ,其对应的目标函数值为 y = { y 1 ,y 2 ,…,y n } ,注意,其中的 x 1 是一个长度为 n 的向量, y 1 = Y(x 1 ) 。我们的目标就是想通过这些已知的点,来实现对未知点的预测。
首先 ,克里金模型假设所有数据服从均值为μ方差为σ 2 的n元的正态分布,也就是说这个n元正态分布函数的均值可以认为是在[ μ-3σ, μ+3σ ]的范围内变化(论文原话,实际上刻画的是不确定性)。现在我们考虑两个点 x i 和 x j ,在我们采样之前,是不确定这两个点的目标函数值的,然而,我们假设建模所用的函数是连续的,当距离 || xi-xj || 比较小时,y(xi)和y(xj)也倾向于高度相关。我们可以通过下面的式子来衡量相关性:
在这里插入图片描述
上面是论文中的描述,初学者可能会比较蒙,下面我简单解释一下:
既然克里金模型假设了所有数据服从n维正态分布,那么对于n维的正态分布,如果想要刻画其pdf,最重要的就是均值和协方差了了,由于是n维,均值为各个维度的均值的组合,为nx1的矩阵,而协方差矩阵里面,非对角线上的元素就是两两随机变量之间的协方差,对角线上的元素就是各个随机变量的方差,(如下图示例,cov(z,x)刻画的是变量z和变量x之间的相关性)。论文中的式(5),就是一个刻画随机变量Y(xi)和变量Y(xj)之间的相关性的函数,属于协方差矩阵中的一员。我们令i=j,那么corr[Y(xi),Y(xj)]就为1.
在这里插入图片描述
紧接着 ,由于Y是服从n元正态分布,我们将n个已知点放到一起,就变成了:
在这里插入图片描述
Y的均值为 l μ,其中 l 是nx1的矩阵。其协方差如下:

在这里插入图片描述
注意:文献中得 R 乘以了方差,文献作者应该是想表示协方差矩阵对角线上的值,不过不妨碍我们理解,这里我补充出Cov(Y)的表达式,见下图:
\begin{pmatrix} Corr[Y(X1,X1)]&...&Corr[Y(X1,Xn)]\\ ...&...&...\\ Corr[Y(Xn,X1)]&...&Corr[Y(Xn,Xn)]\\ \end{pmatrix} C o r r [ Y ( X 1 , X 1 ) ] . . . C o r r [ Y ( X n , X 1 ) ] . . . . . . . . . C o r r [ Y ( X 1 , X n ) ] . . . C o r r [ Y ( X n , X n ) ]
上式中的对角线上的值就是向量各自的方差。
这里的 R 的大小为n x n的矩阵,该矩阵中的每个值都是由公式(5)得到的,i和j都是从1取到n。对角线上i=j,所以 R 为1,那么协方差 Cov(Y) 的对角线就是方差。
由上公式可知超参数有μ、σ 2 ,θ l 和p l (l=1,2,3…d),我们用观测数据
y
进行最大化似然来估计这些超参数,观测数据 y 如下所示:
在这里插入图片描述
由于服从多维正态分布,最大似然的式子可以写为:
在这里插入图片描述
为了方便运算,取对数:
在这里插入图片描述

下面分别对均值μ、和方差σ 2 求偏导,即可得到使似然函数最大的均值和方差了,得到结果如下:
在这里插入图片描述
最后,将公式(11)和(12)带入到式(10)中得到log最大似然为:
在这里插入图片描述
由式13可知,log最大似然仅和R有关,而R中有参数θ,因此超参数的调节就是选取合适的θ使得log似然最大,可以用遗传算法或多初始点算法求得。

4.2 模型预测

在4.1中,我们对已知得数据点进行了最大似然估计,得到一些先验超参数,预测就是利用4.1得到得超参数来对未知数据点进行预测。这里考虑一个点 Kriging模型理论推导1、前言2、条件3、基础知识3.1、方差的理解3.2、概率密度函数3.3、多元正态分布4、理论推导4.1 模型建立1、前言简介:Kriging模型是一种通过已知试验点信息来预测未知试验点上响应的无偏估计模型,其最早是由南非矿业工程师D.G.Krige于1951年提出。20世纪70年代,法国的数学家G.Matheron对D.G.Krige的研宄成果进行了进一步的系统化、理论化,并将其命名为Kriging模型。1989年Sacks等将Kriging模型推广至试验设计领域,形成了基于

%%% 案例:Y = G(X,t) = -30 + x1^2*x2 - 5*x1*t + ( x2 + 1)*e^(t^2) %%% x1~N(3.5,0.3^2), x2~N(3.5, 0.3^2), t:[0,0.5] %%% 本程序可以无偿使用,但不对实际结果做保证。 %%% 2020.08
确定变量空间 在进行实验设计前需要确定变量空间,如果变量是正太分布,那么理论上变量空间是[-∞\infty∞,+∞\infty∞],很明显不能做到,因此研究人员提出了很多确定方法,例如根据预估失效概率的大小1、使用MCS法。 一般情况...     Dace工具箱内dacefit函数自带theta 优化,只需在初始设置 theta0、lob 和upb即可。    猜测初始值theta0的选取,不影响最终结果。但是影响计算效率和加点数。      Dace工具箱手册内给的算例为:     theta=[10 10]; lob=[1e-1 1e-1]; upb=[20 20];     [dmodel,... MATLAB是一个功能强大的数学软件,可以用于许多科学和工程应用,其中包括地理空间插值技术中的 克里金 模型 。 要使用MATLAB编写 克里金 模型 ,您需要使用 kri gin g函数。该函数需要输入一组数据点和一组采样点,并使用 克里金 插值来计算采样点的值。 具体的步骤可以参考下面的代码示例: 1. 导入数据: data = load('data.mat'); 2. 定义采样点: [x,y] = meshgrid(0:0.1:10,0:0.1:10); sample_points = [x(:) y(:)]; 3. 定义 克里金 模型 : model = fitc kri gin g(data(:,1:2),data(:,3),' Kri gin gMethod','linear','Trend','constant'); 4. 计算采样点的值: [~,~,sample_values] = predict(model,sample_points); 5. 可视化结果: surf(x,y,reshape(sample_values,size(x))); 这是一个简单的示例,您可以根据实际情况进行调整。希望这可以帮助到您。