实际工程中复杂产品的实际物理模型往往非常复杂,设计变量与目标性能之间通常不具有显式的函数关系式,且表现为多参数、高维数、强非线性问题。对于这类复杂产品的优化问题,优化过程中一般都需要不断地计算目标性能,然而,要获得目标性能通常需要计算机数值仿真,可能非常耗时。为了能高效、准确地获得优化结果,一个有效的方法就是:在优化迭代过程中求取目标性能时,在不降低精度情况下采用高效的模型来替代实际模型,这类模型也就是代理模型。
代理模型构造的本质内容为函数近似或逼近,这也是数值方法研究中的一项重要内容,即基于已知训练样本数据集构造反映输入变量 x 与输出响应函数 y 之间关系的近似模型,其中拟合与插值(如Lagrange插值,Newton插值和Hermite插值及各种级数拟合方法等)作为两类基本方法得到了深入研究,理论发展已经比较成熟。但是此两类基本数值方法作为工程结构设计领域的代理模型时,只适合对一维或低维的未知函数关系,当输入变量维数超过 3 以后,由这几种方法构造的近似函数因计算复杂度剧增或近似精度剧降而变得不甚理想。实际结构分析问题中的参数空间是多维的,且往往存在高度非线性关系,因此其他更为先进的函数近似技术得到了更多的关注与研究,常用的代理模型有响应面模型、径向基函数、神经网络模型和Kriging模型等,以下对它们作简单的介绍:
多项式响应面(Polynomial Response Surface,PRS)是采用代数多项式作为基函数并通过最小二乘回归来构造近似函数的一种方法,是根据已知的样本点,采用多项式函数形式来建立设计变量与目标性能(响应量)之间的数学模型,它也是所有代理模型方法中最为常用的一种近似技术。由于响应面模型具有简单的显示数学表达式,计算速度快,构建起来比较容易,因此被广泛地应用于工程优化问题中。假如所采用的多项式为二阶多项式,则构造出的代理模型就称为二阶响应面模型,二阶响应面模型可表示如下:
其中, n 是输入变量个数, β 0 、 β i 和 β ij 是未知的多项式系数,共有( n +1)( n +2)/2 个,如果要构建二阶响应面模型,就需要先求出多项式系数,可选用最小二乘法得到,方法如下:
将式(2-3)写成矩阵形式:
其中, y 为已知样本点的目标值向量, β 为未知的多项式系数矩阵, x 为样本点的输入矩阵,表示如下:
其中,
表示样本点
j
的第
i
个变量的值,最小二乘法对式(2-4)中的未知向量
β
进行估计。若矩阵
Z
的行向量之间是线性无关的,则求得估计量
如下:
径向基函数(Radial Basis Function,RBF)代理模型是以径向函数作为基函数,通过对径向函数的线性加权构造出来的模型。而径向函数以未知预测点与训练样本点之间的欧氏距离为自变量的函数,径向基函数在许多领域都有广泛的应用,比如离散数据插值以及图像处理等。径向基函数代理模型是一种灵活性好,结构简单,计算量也相对较少而且效率较高的模型。
径向基函数模型最大的特点:通过欧氏距离,可以把一个多维问题转化为以欧氏距离为自变量的一维问题。
径向基函数模型数学表达式为
其中,‖ x - x i ‖是未知预测点 x 和训练样本点 x i 之间的欧氏距离, φ ( x )是径向基函数, w i 是系数。
常用的径向函数有:
径向基函数代理模型的性能与所采用的径向函数有关。当径向函数采用高斯函数或逆多二次函数时,径向基函数模型更适合回归局部逼近;而采用多二次函数作为径向函数时,在逼近全局优化问题时性能更好。
人工神经网络(Artificial Neural Networks,ANN)是在现代神经生物学和认识科学对人类信息处理研究的基础上提出来的,它通过模拟人脑神经元网络的结构和特征来实现各种复杂信息的处理功能。人工神经网络是由大量功能简单的神经元按照各种不同的拓扑结构相互连接而形成的复杂网络系统,它具有很强的自适用学习功能、非线性映射能力、鲁棒性和容错能力,因此在很多研究领域已经得到了广泛应用。
神经网络模型是将多个神经元按照一定的规则连接在一起构成的网络模型。自 20 世纪 80 年代末期以来,神经网络的研究和应用越来越受到重视,现已成为研究大规模、非线性复杂系统建模和优化的一种有效方法。目前已有数十种类型的神经网络,按连接方式的不同,可分为前向网络、反馈网络和自组织网络。在工程优化中最常用的网络类型就是反馈神经网络(Back Propagation NN,BPNN),BPNN在理论上可以在任意精度内逼近一个连续函数,正是这一优点使其在代理模型中得到广泛应用。
BPNN的结构一般包括输入层、隐层和输出层三层,同层神经元之间互不连接,网络结构如图2-4 所示。
图2-4 BPNN结构示意
BPNN可以看成一个训练样本的输入到响应的高度非线性映射模型,学习过程是通过不断调节权值,使神经网络的实际输出不断逼近期望的输出,由正向传播和反向传播组成,其算法模型表示如下:
式中, x i 为神经元输入; y i 为神经元实际输出; θ 为神经元阈值; w ij 为神经元 i 与 j 的连接权; η 为学习率; T 为期望输出。
BPNN模型也有它的弱点,存在模型结构选取无理论指导、训练速度慢、高维曲面上局部极值点的逃离、算法可能出现不收敛等问题,尤其是后两个问题,可能导致构建的模型无法使用。但是,其BPNN代理模型有效性和广泛的适应性使其在工程优化的应用范围仍得到了较大的扩展。
Kriging模型由南非地质学者Krige和法国学者Matheron提出的,最先是根据已有的统计数据来预测矿产储量分布的模型,该模型采用基于随机过程的统计方法,按照预测模型的方差最小准则而构建的。模型具有局部估计能力,特别在处理强非线性问题时仍能获得较理想的预测效果。近年来,Kriging模型作为一种代理模型逐渐拓宽了它的应用范围,尤其在工程优化领域更是得到了广泛应用,已经嵌入到一些优化软件中。
Kriging模型将输入变量与相应值之间的关系表示为如下形式:
其中, f ( x )是一个确定性部分,全局地逼近输入空间,一般采用多项式形式; β 是回归系数; z ( x )为一个平稳的高斯过程,用来产生局部的偏差,具有如下统计特性:
其中,R为相关矩阵; R ( x (i) , x (j) )是所有训练样本点中任意两个样本点 x (i) 与 x (j) 的变异函数。工程应用中,高斯函数被广泛采用作为变异函数,其数学表达式如下:
其中,
λ
k
是相关性参数,用于协调变异函数在计算中的灵活性;
是
在第
k
个方向上的坐标。
根据Kriging模型满足的无偏最优估计,可以获得在未知预测点 x 处的响应值:
其中,
是Kriging模型多项式系数的估计;
Y
为
n
个样本点的响应,以向量表示。
标准差估计值为如下形式:
利用极大似然估计法,对参数 λ k 的最大估计为
相比于其他代理模型,Kriging模型主要优点:①不是根据所有样本信息对未知点进行预测,而是采用局部样本点的某些信息预测附近未知点,具有局部特性;②它可以根据所有样本点信息分析出未知点的趋势和动态,具有全局的统计特性。但是,Kriging模型计算效率低,特别在对 λ k 的寻优过程中会耗费大量的计算时间,对多维问题显得尤为突出。因此,构造Kriging模型时所用的时间要远远大于其他代理模型,这使得它应用于大型复杂工程问题的优化时将会花费更高的计算成本。另外,对于小样本情况,计算相关矩阵的信息量不足,会使得Kriging模型的预测效果不理想。
支持向量机(Support Vector Machine,SVM)理论源于Vapnik提出的用于解决模式识别问题的支持向量方法,是一种以统计学理论为基础,以结构风险最小化的学习机学习方法。自出现以来,SVM已经展现出了自己独特的分类与回归潜力。尤其是随着其网络结构、过学习与欠学习、局部极小点等问题的解决,SVM迅速发展并不断完善,在解决小样本回归、非线性及高维模式识别问题中表现出许多独特优势,并逐步被推广于未知函数拟合与逼近等其他机器学习问题中。
支持向量机最初由数据分类问题的研究中发展而来。数据分类问题可简单描述为:假设给定 n 个样本点,我们要把这些点正确分类,传统的分类方法(包括神经网络等)是系统随机产生一个分类超平面,通过移动超平面直到样本点中属于不同类的点正好位于超平面的不同侧面,这种处理方法决定了最终得到的超平面将非常靠近训练集中的点,在大多数情况下,它并不是最优超平面,推广能力差。支持向量机的思路:既要找到一个满足分类要求的超平面,同时也使样本点离超平面尽可能远。例如:图2-5 所示的二维情况,“○”型点和“×”型点分别代表两类点,采用分类线方程 ω · x + b =0 把这些点分成两类,我们既要求分类线 H 不但能将两类样本点正确分开,而且也要使 H 1 和 H 2 之间的间隔最大。前者是要保证经验风险最小,后者是使置信范围最小,从而使实际风险最小。
图2-5 最优分类超平面
将分类线方程归一化,满足以下约束条件,必能对所有样本进行正确分类:
而且 H 1 和 H 2 之间的间隔等于 2/‖ ω ‖,因此,满足式(2-16)且使‖ ω ‖最小的分类面就是最优分类线,其数学描述为
由于 H 1 和 H 2 上的训练样本点支持了最优分类线,称作支持向量。
虽然支持向量机是解决分类问题提出的,但它同样可以用来处理回归问题。当应用于回归问题时,称为支持向量回归。
支持向量回归采用的损失函数不是指数函数,而是一种新的损失函数—— ε 不敏感函数,表示如下:
其中:
ε 表示预测值与真值之间的差,其值越小意味着损失越小。
假定已知 n 个训练样本{( x 1 , y 1 ),( x 2 , y 2 )…,( x n , y n )}, x i , y i ∈ R ,我们采用如下的线性回归函数进行拟合:
为使拟合效果好,假设所有训练样本点都可以在精度 ε 下线性拟合,那么,回归估计函数就等价于寻找最小的‖ ω ‖问题,可表示为如下凸优化问题:
考虑允许的拟合误差,引入非负松弛因子 ξ i , ξ i * 。这样函数的拟合问题转化为如下的优化问题:
常数 C >0用来平衡回归函数的平坦程度与偏差大于 ε 的训练样本个数。利用Lagrange乘子法,式(2-22)、式(2-23)的对偶规划问题为
由式(2-24)可得到支持向量回归线性拟合函数为
对于训练样本不能线性拟合情况,需采用非线性拟合,解决思路是:先使用非线性变换把训练数据映射到高维特征空间,然后按前面的方法在高维特征空间进行线性拟合,可获得在原空间非线性拟合的效果。根据泛函理论,映射到高维特征空间的内积运算等价于原低维空间的一个核函数 K ( x , x′ )代换,因此,得到支持向量回归非线性拟合函数为
核函数的种类多,不同的核函数对支持向量回归的回归性能有较大的影响,选取需要一定的先验知识,目前还没有一般性的结论。常用的核函数如下:
在实际应用中进行向量回归机建模时,最优模型的选择是非常关键,模型的好坏直接影响着预测值的计算精度。在模型的优化过程中,先根据训练样本数据的数量、维数,初步确定支持向量回归机模型三个参数的取值范围,然后采用遗传算法对参数进行优化,获得最优的参数组合。利用随机生成的测试样本对该模型进行验证,若模型的回归性能不能达到要求,则随机增加训练样本,重新构建和优化支持向量回归机模型,直至达到要求的精度为止。利用该支持向量回归机模型就可以快速预测辐射缝在任意结构参数情况下的电性能值。
具有参数自适应优化的支持向量回归代理模型构建步骤:
步骤 1:对建模对象作初步分析,确定影响性能的主要因素及各参数的取值范围。
步骤 2:确定试验设计方案。对计算机仿真数据进行回归分析,一般选用拉丁超立方或全因子试验抽样方法安排试验点,试验点应有代表性,且均匀分布,以尽可能少的试验点获得更好的回归性能。
步骤 3:根据试验设计安排,采用实验方式或通过构建数值仿真模型计算,获得建模对象的性能值。
步骤 4:对试验结果进行归一化处理。尤其是对输入参数和对应的性能值进行归一化预处理。归一化处理是指各参数的变化范围有所差异,为统一处理方便而进行的线性变换。设第
i
个结构参数
z
i
的实际变化范围是
,归一化方法为
,同理对性能
y
i
也作归一化处理。归一化后的值
x
i
,
y
i
∈[0,1]组成支持向量回归机的训练样本
D
={(
x
i
,
y
i
)
= 1,2,…,
l
}。其中
x
i
∈
R
n
为
n
维输入参数,
y
i
∈
R
为性能。获得支持向量回归机模型的训练样本数据。
步骤 5:在输入参数范围内产生一组随机数,按步骤 3、步骤 4 的方法,获得支持向量回归机的测试样本。
步骤 6:选择支持向量回归机模型的核函数,设定初始的支持向量回归机模型参数值,用训练样本数据对支持向量回归机进行训练,获得初始的支持向量回归机模型。
步骤 7:验证支持向量回归机模型的有效性性能。采用三个指标来衡量支持向量回归机模型性能的准确性,一个指标是最小均方误差(RMSE),用来衡量模型的全局性能;一个指标是相对最大绝对误差(RMAE),用来衡量模型的局部性能;再一个指标是样本决定系数 R 2 ,用来衡量模型的全局性能;对于一个好性能的支持向量回归机模型而言,RMSE和RMAE都是越小越好。
步骤 8:选用合适的优化方法(如遗传算法等),对支持向量回归机模型的参数进行优化。获取最优的参数组合,使得支持向量回归机预测值与测试样本真值之间的RMSE和RMAE最小。
步骤 9:若支持向量回归机模型性能不满足要求,则采用增加训练样本数量的方法,转向步骤 3。更新支持向量回归机模型和优化模型参数,整个过程自动执行,直至获得理想的代理模型。
整个模型构建流程图如图2-6 所示。
图2-6 支持向量回归模型构建流程
基因表达编程(Gene Expression Programming,GEP)由Ferreira提出,该算法综合了遗传算法和遗传编程两种智能算法,继承了两者的优点并克服两种算法的不足。Ferreira提出GEP算法在求解过程中不依赖于先验知识和问题的具体领域,对问题的种类有很强的鲁棒性,因此被广泛地应用于数据挖掘、参数优化等领域。
Ferreira提出GEP算法基于遗传算法和遗传编程两种智能算法,并继承了两者的优点并克服两种算法的不足,其算法的实现流程和遗传算法有很多相似之处。
GEP算法以染色体组成的种群为对象,染色体由若干个基因组成,基因表达式编程表数学达式通常用表达式树来描述,基因型用K-EXPRESSION描述,以文献中的表达式来具体说明。
已知表达式为:
,那么其表达式树和K-EXPRESSS的表现形式为图2-7:
图2-7 GEP表达的表达式树和K-EXPRESSION
从图2-7 中可以看出,基因主要收三个部分组成 H , T , RNC , H 表示函数集(操作数), T 为终点集(变量、常数等)。基因的头部由函数集( H )和终点集( T )中的元素共同组成,而尾部只含有终点集中的元素,头部的长度 h 与问题的复杂程度相关,若函数集最大操作数为 n ,则基因尾部长度为 e=h × ( n -1) +1。
GEP基本操作主要有 9 类(选择、变异、倒串、插串、根插串、基因变换、单点重组、两点重组、基因重组)。
①选择:通过算法选择适应度最好的作为下一代。
②变异:将染色体某一位进行变异。
③倒串:确定染色体某基因头部中的起点和终点,将起点到终点的顺序变换为终点到起点的顺序。
④插串:选择染色体某基因片段,然后插入头部中非首位指定位置,插入位后的往后顺延(超过头部长度部分被截断)。
⑤根插串:选择染色体某基因片段,然后插入头部中首位位置,插入位后的往后顺延(超过头部长度部分被截断)。
⑥基因变换:是插串的一特殊情况,将整体基因插入头部中首位位置。
⑦单点重组:确定两染色体基因的起点,将起点之后的基因片段进行重组(交换)。
⑧两点重组:确定两染色体基因的起点和终点,将起点和终点之间的基因片段进行重组(交换)。
⑨基因重组:确定染色体的某整段基因,对应整段基因进行重组(交换)。
(3)标准GEP算法流程(见图2-8)
图2-8 标准GEP算法流程