关于代理模型的一些理解
Posted 来包番茄沙司
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于代理模型的一些理解相关的知识,希望对你有一定的参考价值。
为什么要使用代理模型?
在实际问题中,优化问题的解空间一般规模较大且复杂,导致求解过程也非常复杂。优化问题逐渐向复杂的高维、非线性、多极值的昂贵优化问题发展,这类问题的计算时间成本十分昂贵。
比如:使用进化算法来搜索某实际问题最优解时,每一代进化都需要大量真实值适应度评估,这会大大消耗求解的时间。
构建代理模型的步骤
构建代理模型以下三步:
(1)选择适当的实验设计方法用于获取构建代理模型的初始样本点
(2)选择合适的一个或多个代理模型用于近似表达数据
(3)运用所构建的一个或多个代理模型
1.选择适当的实验设计方法用于获取构建代理模型的初始样本点
代理模型的性能与样本点在建模空间的分布和样本点的数量有极大关系,合适数量且分布均匀的样本点能够很好地反应真实模型在空间的变化趋势与信息,从而能够保证在使用代理模型时其提供的信息有较高的精度与可信度。
相反,如果样本点选取不当会导致代理模型的构建成本过高且拟合精度较差以致提供错误的信息,甚至代理模型无法成功建立。
因此,采样方法(试验设计方法)很重要,根据采样的时间和是否存在自适应,分为一次性采样和序列采样。
(1)一次性采样
一次性采样是指一次性采取足够数量的样本点并基于这些样本点构建代理模型。
常用的一次性采样包括:拉丁超立方实验设计(LHD)、全因子实验设计(FFD)、正交试验设计(OD)、均匀实验设计(UD)等。
拉丁超立方实验设计是一种在全局范围内,满足一定约束条件下随机生成均匀样本点的试验设计方法。
如上图是2维3采样点情况下LHD采样结果。
全因子实验设计是在所有水平上对每一个因素的所有组合进行实验的一种试验设计方法。
正交试验设计是一种基于正交拉丁方理论和群论、选择具有代表性的样本点进行实验、用实验部分代替全部实验的一种试验方法。
(2)序列采样
序列采样指先采取一部分样本点建立代理模型然后根据代理模型提供的信息自适应的决定下一个采样点,直到满足预定的迭代结束要求。
2.选择合适的一个或多个代理模型用于近似表达数据(代理模型建模方法)
目前,常用的代理模型主要有克里金(Kriging)模型、人工神经网络(Artificial NeuralNetwork,ANN)、径向基函数(Radial Basis Functions,RBF)、支持向量回归模型(SupportVector Machine,SVM)以及多项式回归模型(Polynomial Regression,PRG)等。
(1)Kriging模型
Kriging模型,又称为高斯过程(Guass Process),由一个基于全局的回归模型和一个基于局部误差的非参数高斯随机过程之和构成。
Kriging模型本质上是对待预测点附近一定范围内已知点的信息进行线性加权组合来估计该点的未知信息。Kriging模型通过具有良好连续性和可导性的相关函数的作用表现出良好的局部估计能力,而且对非线性复杂问题有较好的近似效果。
(2)多项式回归模型
多项式回归模型是一种利用一组数据集来拟合非线性系统的线性回归模型。
具有良好的全局逼近性能,形式简单,透明性好(能够显示表达输入变量与输出变量之间的数学关系);但是,当设计变量较多时,抗干扰能力和局部拟合能力差;主要用在低维、非线性程度较低的问题中。
(3)径向基函数
径向基函数是一种通过简单函数的加权和插值来复杂的设计空间。RBF模型对响应特性无要求,能够较好地拟合任何种类的函数,包括非线性程度较高的函数,鲁棒性和适应性都较强,同时收敛速度较快,计算成本较低,得到了广泛的运用。
(4)支持向量机回归模型
支持向量机回归模型是支持向量机的一种具体实现,当处于非线性支持向量机回归时,需要通过一个非线性映射将低维数据映射到高维空间中(主要由核函数实现),在高维空间中实现线性支持向量机回归。
3.运用所构建的一个或多个代理模型
将所建立的代理模型运用到实际过程中,例如基于代理模型的进化算法遵循适者生存的原则来模拟自然进化的过程,在此过程中部分个体运用代理模型评价近似结果并筛选出较好的个体,这个预测的近似结果和预筛个体的过程能够在一定程度上减少原仿真模型的仿真或实验次数。
代理模型的局限性
随着问题维度的上升,代理模型构建所花费的样本点数和时间会大幅度地增加,而且也会在一定程度上降低代理模型的精度从而影响其提供信息的可信度,从而会导致代理模型的辅助能力下降。因此,可将目前运用较为广泛的降维技术与代理模型所使用的算法相结合进一步提高在求解高维问题时的效果。
以上是关于关于代理模型的一些理解的主要内容,如果未能解决你的问题,请参考以下文章
机器学习是什么?深度学习DeepLeaning现实一些该怎么学?
学习笔记Spark—— Spark MLlib应用—— 机器学习简介Spark MLlib简介