实验设计之拉丁超立方抽样
在本系列的前几篇文章中我们已经介绍过遗传算法在结构设计中的应用。在生成初代种群或构建代理模型来加速遗传算法的时候我们往往需要从整体设计空间中抽取一定量具有代表性的样本点,本文将介绍一种优秀的抽样方法——拉丁超立方抽样。
1.实验设计(DOE)
做优化的同学一定对代理模型不陌生,代理模型的本质是利用实验设计(DOE)中样本点的响应值来预测设计空间中未知点的响应值,从而建立输入-输出参数的近似关系。而作为构建代理模型的基础,实验设计是以概率论和数理统计为理论基础,在没有先验知识的情况下研究如何能高效合理地开展实验以及如何有效地分析处理实验设计结果的技术。实验设计中样本数量的多少和质量高低直接影响到代理模型对真实解的逼近程度:样本数量过少或不具代表性,便不能反映出代理模型与真实解间的映射规律;而如果样本数量过多,则又会使模型进入过拟合状态,甚至无法建立正确的映射关系。实验设计的思想最早由 Fisher于上世纪二十年代提出,后又涌现出更多的实验设计方法,如全因素水平设计(Full Factorial Design, FFD)、正交数组法(Orthogonal Array, OA)、拉丁超立方法(Latin Hypercube Sampling, LHS)等,可用于构建代理模型、进行敏度分析、主效应分析、交互效应分析等。
FFD 法是一种效率最低的实验设计方法,该方法将所有可能的因素水平组合都取作样本点。假设有 m 个变量,每个变量的取值为ni (i = 1, 2,…, m),则样本点总数为N = n1 × n2 × ⋅ ⋅ ⋅× nm 。可以看出,FFD 法仅适用于实验因素和水平较少的实验设计中。OA 法是从均匀分散角度出发按照正交表进行的多实验水平、多实验因素的设计方法。正交表是利用组合数学理论构造的一种规格化表格,可记为Lk (nm ),其中 k 是实验设计总次数(表行数),m 是变量的数量(表列数),n 是每个实验因素的水平数。OA 法可以用较少的实验次数获得基本能反映全面实验情况的较多信息。
2.拉丁超立方抽样(LHS)
LHS由 McKay于 1979 年提出,由于可以将样本点均匀地分布到设计空间中,同时有效避免样本点在小邻域内的重叠问题而得到广泛的使用。LHS是将整体设计空间分层后再进行抽样的一种修正的蒙特卡罗方法。
LHS抽样的过程简单来讲,对于一个具有m个变量的问题,如果我们想从整体设计空间抽10个样本点,就要在将每一个变量在其取值范围内分为10个概率相等,互不重叠的层(子区间)。每个变量按均匀分布的概率地从每个子区间随机抽取一个值,这样每个变量都会抽到 10 个值(学术的讲叫做10个实验水平值)接下来对变量组合为m维的向量作为样本点。组合的时候保证每个变量的每个实验水平只出现一次。
因为二维问题比较容易可视化,这里以一个二维问题(x,y)为例(m=2):x的取值范围是(0,10),y的取值范围是(0,100),LHS抽样之后10个样本点的分布是这样子的:
肉眼看起来抽样的结果貌似是不错的,看起来很均匀,也好像充满了整个设计空间,但是由于抽样过程还是充满了随机性,传统的LHS是很不稳定的,比如再运行一次会得到下图的结果,明显可以看到在中间部分就有一些样本点聚集的现象。
在二维甚至三维问题我们还可以通过观察来定性的判断取样是否均匀,然而我们面临的问题往往是很高维的问题,无法通过观察来判断抽样样的质量,如何保证抽样的结果可以最大程度反映整体的特征呢?space-filling 是描述样本点在整体设计空间中的均匀性和对整体设计空间的代表性。好的抽样不应该出现明显的聚集,要让样本点在整体设计空间中尽可能散开。评判取样质量的指标函数大多是基于范数的,较简单的比如:
当t=2的时候就是两个样本点之间的欧氏距离。既然有了表达式,那么优化也不远了,一个简单的目标函数是:让上式中两个样本点的距离最小值最大,也就是让下面这个公式最大(可以理解为尽可能让样本点散开):
当然还有其他的目标函数,但是大同小异,都是希望样本点之间的(广义)距离更大,让样本点充分散落在整体设计空间中。Isight中是有多种实验设计方法,其中就包括就包括拉丁超立方抽样和改进的拉丁超立方抽样(OLHS),学者们所用的优化方法与目标函数也是多种多样。考虑到数据限制与使用方便,笔者用python复现了论文中的ESE算法(收敛速度快于模拟退火算法)对取样过程进行优化。
优化的过程可视化之后是这样的,这里为了看起来明显一些样本点的数量设定为30个。
优化过程
初始抽样结果
优化后的样本点分布
可以明显看到样本点逐渐扩散到整个空间,值得一提的是,在整个优化过程中x,y的取值并没有改变,而是采用不同的组合方式,改变样本点的分布。在高维问题上采用矩阵运算可以显著提加快整个优化过程,同时算法的阈值等参数已经有成熟的理论和实验结果,详见参考文献。
参考文献
[1] McKay M D, Beckman R J, Conover W J. Comparison of three methods for selecting values of
input variables in the analysis of output from a computer code[J]. Technometrics, 1979, 21(2):
239-245.
[2] Sacks J, Welch W J, Mitchell T J, et al. Design and analysis of computer experiments[J].
Statistical science, 1989, 4(4): 409-423.
[3] Fang, K.T., Ma, C.X., Winker, P., 2002. Centered L2-discrepancy of random sampling and Latin hypercube design and construction of uniform designs. Math. Comput. 71, 275–296.
[4] Jin, R., 2004. Enhancements of metamodeling techniques in engineering design, Ph.D Thesis, University of Illinois at Chicago.
相关阅读
当结构设计遇到遗传算法(四)– Bayesian Optimization
当结构设计遇到遗传算法-应用ANSYS和MATLAB联合优化设计探索(一)
当结构设计遇到遗传算法-应用ANSYS和MATLAB联合优化设计探索(二)
“转自:非解构-公众号”