目录
代理模型介绍
代理模型(Surrogate Model),也称为元模型或响应面模型,是一种在优化和模拟领域中常用的技术。它通过创建一个近似的、计算成本较低的模型来代替一个复杂且计算成本高昂的模型。通俗的讲,即:将原来的白箱模型*替换为黑箱模型*,以节省算力。(需要注意的是,大多数代理模型相较于原机理模型,精度会有下降,所以在使用代理模型前最好进行评估,使用代理模型后要与原模型进行对比。)
*白箱模型:过程严谨,完全由数学物理公式建立的模型。
*黑箱模型:过程可解释性差,只知道输入和输出,看不到中间过程,如:神经网络。
代理模型的常见类型
- 多项式模型:如多项式回归,适用于连续变量的建模。
- 径向基函数(RBF):一种基于距离的函数,可以非常灵活地拟合复杂的数据模式。
- Kriging模型:一种基于统计的插值方法,常用于空间数据的建模。
- 神经网络:可以处理非线性关系,适用于复杂的数据模式。
- 支持向量机(SVM):一种强大的分类和回归方法,适用于高维数据。
随着人工智能的快速发展,目前科研中常用的代理模型以神经网络为主,本文也将以神经网络为切入点。
使用代理模型优化的步骤
1.选择输入输出数据
由于代理模型是黑箱模型的一种,所以第一步需要选择合适的输入输出参数,来进行训练。以风力发电场的建模任务为例:需要对风力发电场进行建模,输入特征为湿度、真实风速、气象风速、风向、温度、气压,输出特征为风力发电场的功率。所以我们需要获取风力发电场的湿度、真实风速、气象风速、风向、温度、气压数据,以及改数据下,风力发电场的输出功率。
但需要注意的事,获取的输入数据与输出数据的关联性并不是非常强的。比如上述任务中,湿度和发电功率显然没有明显联系,这时候就需要进行特征重要性分析(不同论文中称敏感性分析)。具体方法有:Sobol指数、Monte Carlo模拟、Fourier Amplitude Sensitivity Test (FAST)和SALib等,此处不再赘述。
下图为使用某方法进行特征重要性分析后的结果:
特征重要性分析后,即可选取某几个特征而非全部数据进行代理模型构建。对于关联性不强的任务,该步骤十分重要,不仅是为了提取出有效特征,更是为了排除无用特征的干扰!对于关联性不强的任务,该步骤亦可为文章增色。
2.设计代理模型
从步骤1的结果来看,选择风速、风向、温度和气压四个特征作为输入数据,发电场的发电功率作为输出功率。所以我们需要设计一个有着四个输入,一个输出的神经网络模型。由于本次任务的数据类型为数字型,所需计算量不大,所以选择LSTM作为代理模型的核心部分(同任务类型的可选择BP、GRU、LSTM等)。
*具体参数设置和代码可私信作者交流
3.设计优化方法(可跳过)
优化方法可助力发表高水平文章,但不是必须。常用的用优化方法有遗传算法及其变体、粒子群算法、蚁群算法等,此处不再赘述。
*具体方法和代码和私信作者交流
4.训练代理模型
代理模型的训练和一般的神经网络训练并无太多不同(如果设计了优化算法,要根据优化算法来具体分析)。按照神经网络的训练方法设定超参数和划分数据集即可。
*具体方法和代码和私信作者交流
5.验证模型效果
代理模型训练结束后,需要进行验证。
具体操作为,从原数据集中提取出一部分或者选择新的数据作为测试集,用自己的代理模型进行测试,观察自身的效果能不能满足要求。
之后,设计对比实验。常见的对比实验有:
- 与机理模型进行对比。
- 与其他代理模型或神经网络模型进行对比。
- 与优化前的代理模型进行对比(如果设计了优化方法)。