神经网络与代理模型

JUMU实名认证 发表于 2026-06-26 07:56 | 显示全部楼层 | 复制链接分享      上一主题  翻页  下一主题
神经网络是一种模拟人脑神经元连接的机器学习模型,具有很强的非线性拟合能力。代理模型,也叫元模型、替代模型,是用一个简单的模型来近似代替复杂的高精度模型,比如有限元模型。神经网络因为拟合能力强,特别适合用来做代理模型,尤其是高维、强非线性的问题。在工程仿真中,用神经网络做代理模型可以大大提高计算效率,原来要算几个小时的有限元,代理模型几毫秒就算完了。本文将介绍神经网络的基本概念、常用的神经网络类型、神经网络代理模型的构建方法、应用场景和注意事项,帮助大家入门这门实用的技术。


一、神经网络与代理模型概述

1. 什么是神经网络
神经网络的基本概念。

什么是神经网络:
- 是一种模拟人脑神经元连接的机器学习模型
- 由大量的神经元按层连接组成
- 可以用来拟合复杂的非线性关系
- 也叫人工神经网络,Artificial Neural Network,简称ANN
- 是机器学习和深度学习的基础

神经网络的特点:
- 非线性拟合能力特别强
- 可以逼近任意连续函数
- 适合处理高维问题
- 但需要足够的训练数据
- 有一定的黑箱性,解释性不太好

2. 什么是代理模型
代理模型的概念。

什么是代理模型:
- 也叫元模型、替代模型、响应面模型
- 用一个简单的模型来近似代替复杂的高精度模型
- 比如用代理模型代替有限元模型
- 英文是Surrogate Model 或者 Metamodel

为什么需要代理模型:
- 高精度模型计算太慢了,比如有限元算一次要几个小时
- 优化、不确定性分析这些需要算成千上万次
- 直接用高精度模型根本算不动
- 代理模型算一次几毫秒,快多了
- 用少量的高精度样本训练代理模型,然后用代理模型快速计算

常用的代理模型类型:
- 多项式响应面:最简单,适合低维弱非线性
- 克里金Kriging:插值型的,精度不错,工程上常用
- 径向基函数RBF:也是插值型的
- 支持向量机SVM:统计学习方法
- 神经网络:拟合能力强,适合高维强非线性
- 等等,各有各的特点

3. 神经网络做代理模型的优势
为什么选神经网络。

优势:
- 非线性拟合能力强,什么复杂关系都能试试
- 高维问题表现好,维度增加性能下降不多
- 可以处理多输入多输出
- 训练好之后预测特别快
- 有很多成熟的工具和库

缺点:
- 需要的训练样本比较多
- 容易过拟合
- 有一定的黑箱性,解释性差
- 调参需要一定经验
- 训练可能比较耗时

适用场景:
- 高维问题,变量很多
- 强非线性问题
- 多输出的问题
- 计算量大的仿真模型
- 优化、不确定性分析等需要大量计算的场景

二、神经网络基础

1. 神经元和激活函数
最基本的单元。

什么是神经元:
- 也叫感知机
- 是神经网络的基本单元
- 接收输入,加权求和,加偏置,然后过激活函数
- 输出一个值

数学表示:
y = f(w1*x1 + w2*x2 + ... + wn*xn + b)
- x是输入
- w是权重
- b是偏置
- f是激活函数
- y是输出

什么是激活函数:
- 给神经网络引入非线性
- 没有激活函数的话,多层和一层没区别
- 是神经网络能拟合非线性的关键

常用的激活函数:
- Sigmoid:把值压缩到0到1之间,以前常用,现在少了
- Tanh:双曲正切,压缩到-1到1之间
- ReLU:线性整流函数,现在最常用,计算快,缓解梯度消失
- Leaky ReLU:ReLU的改进,负值也有小的斜率
- Softmax:多分类输出层用,输出概率和为1
- 还有很多其他的激活函数

2. 神经网络的结构
层的组成。

常见的层:
- 输入层:接收输入数据
- 隐藏层:中间的层,可以有很多层
- 输出层:输出结果

按层数分类:
- 浅层神经网络:隐藏层少,比如1-2层
- 深度神经网络:隐藏层很多,就是深度学习
- 代理模型一般用浅层的就够了,不用太深

全连接神经网络:
- 也叫多层感知机MLP
- 相邻层的每个神经元都互相连接
- 是最基础最常用的神经网络
- 做代理模型一般用全连接就够了

3. 神经网络的训练
怎么学习。

什么是训练:
- 就是找最优的权重和偏置
- 让神经网络的输出尽量接近真实值
- 也就是最小化预测误差

训练的过程:
- 前向传播:输入数据,算出预测值
- 计算损失:预测值和真实值的差距
- 反向传播:从后往前算梯度
- 更新参数:用梯度下降等方法更新权重和偏置
- 重复迭代,直到误差足够小

损失函数:
- 也叫代价函数
- 衡量预测值和真实值的差距
- 回归问题常用均方误差MSE
- 分类问题常用交叉熵
- 也可以自定义损失函数

优化算法:
- 用来更新参数的算法
- 最基础的是梯度下降
- 常用的有SGD、Adam、RMSprop等
- Adam现在比较常用,效果不错

过拟合和欠拟合:
- 欠拟合:模型太简单,连训练数据都拟合不好
- 过拟合:模型太复杂,训练数据拟合得很好,但新数据不行
- 好的模型要在两者之间平衡

防止过拟合的方法:
- 增加训练数据
- 正则化,比如L1、L2正则
- Dropout:训练的时候随机丢掉一些神经元
- 早停:验证集误差开始上升就停
- 简化网络结构
- 等等

三、常用的神经网络类型

1. 全连接神经网络
最基础最常用的。

什么是全连接网络:
- 也叫多层感知机MLP
- 相邻层的每个神经元都互相连接
- 结构简单,容易实现
- 是最基础的神经网络

特点:
- 结构简单
- 通用的函数逼近器
- 适合处理表格数据
- 做代理模型最常用

适用场景:
- 输入是向量的情况
- 函数逼近和回归
- 分类问题
- 代理模型
- 等等,应用很广

2. 卷积神经网络CNN
处理网格数据的。

什么是卷积神经网络:
- 用卷积层代替部分全连接层
- 可以提取局部特征
- 参数共享,参数少
- 适合处理网格结构的数据,比如图像

特点:
- 适合图像、网格数据
- 能提取空间特征
- 参数效率高
- 是深度学习的主力

适用场景:
- 图像识别和分类
- 目标检测
- 图像分割
- 也可以用于一些有空间结构的工程问题
- 等等

3. 循环神经网络RNN
处理序列数据的。

什么是循环神经网络:
- 有循环连接,有记忆功能
- 适合处理序列数据
- 比如时间序列、文本

特点:
- 适合序列数据
- 有记忆能力
- 可以处理变长的输入输出
- 但训练比较难,容易梯度消失或爆炸

常用的变种:
- LSTM:长短期记忆网络,解决了长序列的梯度问题
- GRU:门控循环单元,比LSTM简单一点
- 等等

适用场景:
- 时间序列预测
- 自然语言处理
- 语音识别
- 序列到序列的问题
- 等等

4. 其他神经网络
还有很多其他类型。

比如:
- 自编码器:无监督学习,用来降维或者特征提取
- 生成对抗网络GAN:用来生成数据
- 图神经网络GNN:处理图结构数据
- Transformer:注意力机制,现在NLP和CV都在用
- 等等,非常多

做代理模型的话:
- 一般全连接神经网络就够用了
- 特殊问题可以考虑其他类型
- 不要盲目用复杂的模型
- 简单的能解决就用简单的

四、神经网络代理模型的构建步骤

1. 问题定义和数据准备
第一步。

明确问题:
- 输入是什么,有几个变量
- 输出是什么,有几个输出
- 变量的范围是多少
- 精度要求多高
- 用来做什么,优化还是不确定性分析

数据收集:
- 需要训练数据,也就是输入输出对
- 一般用高精度模型计算,比如有限元
- 样本点怎么选很重要,要用试验设计
- 样本数量要足够,神经网络需要的数据比较多

试验设计选样本:
- 怎么选样本点很重要
- 常用的有拉丁超立方抽样LHS
- 最优拉丁超立方
- 全因子、正交设计等
- 样本要尽量均匀覆盖设计空间

数据预处理:
- 数据归一化或者标准化
- 输入输出都要处理
- 一般缩放到0到1或者-1到1之间
- 可以加快训练,提高精度

数据划分:
- 分成训练集、验证集、测试集
- 训练集用来训练模型
- 验证集用来调参和早停
- 测试集用来最终评估
- 比例一般比如7:2:1

2. 网络结构设计
怎么搭网络。

输入层:
- 神经元数量等于输入变量的个数
- 很简单,不用选

输出层:
- 神经元数量等于输出变量的个数
- 激活函数根据问题来选
- 回归问题一般不用激活函数,或者用线性的
- 输出范围有限的话可以用sigmoid等

隐藏层:
- 几层隐藏层
- 每层多少个神经元
- 这是网络结构的关键

怎么选隐藏层:
- 代理模型一般1-3层隐藏层就够了
- 不用太深
- 每层的神经元数根据问题复杂度来
- 可以从少的开始,慢慢加
- 也可以用一些自动调参的方法

激活函数的选择:
- 隐藏层现在一般用ReLU
- 计算快,效果也不错
- 也可以试试Leaky ReLU、ELU等
- 输出层根据问题来选

3. 训练设置
怎么训练。

损失函数的选择:
- 回归问题一般用均方误差MSE
- 也可以用平均绝对误差MAE
- 或者自定义损失函数
- 根据问题来选

优化器的选择:
- Adam现在比较常用,效果不错
- 也可以用SGD、RMSprop等
- 一般Adam就够用了

学习率:
- 很重要的一个参数
- 太大了训练不稳定,容易发散
- 太小了训练太慢
- 一般从0.001开始试
- 也可以用学习率衰减

批次大小:
- 每次训练用多少样本
- 大的话训练稳,但慢
- 小的话快,但有噪声
- 根据数据量来选

迭代次数:
- 训练多少轮
- 太少了没收敛
- 太多了可能过拟合
- 一般配合早停用

正则化:
- 防止过拟合
- L2正则比较常用
- Dropout也可以用
- 根据情况来加

4. 模型训练
开始训练。

训练过程:
- 初始化网络参数
- 前向传播算预测值
- 算损失
- 反向传播算梯度
- 更新参数
- 一轮一轮重复
- 直到满足终止条件

注意事项:
- 监控训练集和验证集的误差
- 验证集误差一直不降就可以停了
- 注意过拟合
- 训练过程可以可视化,方便看

5. 模型评估
模型好不好。

怎么评估:
- 用测试集来评估
- 看预测误差
- 常用的指标有均方误差MSE、均方根误差RMSE、平均绝对误差MAE、决定系数R²等
- 还要看预测速度

常用的评估指标:
- R²决定系数:越接近1越好,一般0.9以上算不错
- RMSE均方根误差:绝对误差,要看量纲
- MAE平均绝对误差:更鲁棒
- 相对误差:百分比的,更直观

验证方法:
- 留出法:直接分训练测试集
- 交叉验证:比如k折交叉验证,数据少的时候用
- 留一法:极端的交叉验证
- 等等

6. 模型优化和迭代
不好就改。

如果精度不够怎么办:
- 增加训练样本
- 调整网络结构,加层加神经元
- 调整训练参数
- 换激活函数或者优化器
- 加正则化或者去掉正则化
- 数据预处理有没有问题
- 等等

如果过拟合怎么办:
- 增加训练数据
- 简化网络结构
- 加正则化
- 加Dropout
- 早停
- 数据增强
- 等等

迭代优化:
- 建模是一个迭代的过程
- 一般要试很多次
- 慢慢调整参数和结构
- 直到满足精度要求

7. 模型部署和使用
最后用起来。

怎么用:
- 训练好的模型保存下来
- 需要的时候加载模型
- 输入参数,直接算输出
- 特别快,几毫秒就完了

注意事项:
- 注意输入的范围,不要外推太多
- 代理模型在训练范围内才准
- 超出范围的话精度没法保证
- 重要的结果最好用高精度模型验证一下

五、神经网络代理模型在有限元中的应用

1. 快速优化设计
最常见的应用。

怎么用:
- 先用试验设计选一些样本点
- 每个样本点算一次有限元
- 用这些样本训练神经网络代理模型
- 然后在代理模型上做优化
- 最后用有限元验证最优解

好处:
- 比直接用有限元优化快太多了
- 可以用更高级的优化算法
- 可以做全局优化
- 大大缩短设计周期

注意事项:
- 代理模型的精度要够
- 最优解最好验证一下
- 不要外推太多
- 样本点要覆盖优化的范围

2. 不确定性量化和可靠性分析
另一个大应用。

怎么用:
- 同样先建代理模型
- 然后用代理模型做蒙特卡洛模拟
- 或者其他不确定性分析方法
- 算失效概率、可靠度这些

好处:
- 原来直接用有限元做蒙特卡洛根本算不动
- 有了代理模型就快多了
- 可以做大量的抽样
- 结果更准确

注意事项:
- 小概率事件要注意精度
- 尾部的拟合很重要
- 可以用重要性抽样等方法配合
- 结果最好验证一下

3. 参数辨识和模型校准
反问题。

怎么用:
- 有试验数据,要校准模型参数
- 用代理模型代替有限元
- 然后做优化或者贝叶斯推断
- 找最优的参数

好处:
- 反问题一般要算很多次正问题
- 有代理模型效率高很多
- 可以用更高级的参数辨识方法
- 结果更可靠

4. 多尺度和多保真建模
更复杂的应用。

多尺度:
- 不同尺度的模型结合
- 细尺度模型准但慢
- 粗尺度模型快但不准
- 用神经网络做尺度之间的映射

多保真:
- 有不同精度的模型
- 高精度的准但少
- 低精度的多但不准
- 用神经网络把它们结合起来
- 用少量高精度和大量低精度建代理模型

5. 实时仿真和数字孪生
新兴的应用。

实时仿真:
- 有些场景需要实时计算
- 有限元肯定算不了那么快
- 用代理模型就可以
- 输入参数马上出结果

数字孪生:
- 数字孪生需要实时更新
- 代理模型是重要的技术
- 可以快速预测系统的状态
- 结合传感器数据更新

6. 其他应用
还有很多其他应用。

比如:
- 疲劳寿命快速预测
- 材料参数的反演
- 损伤识别
- 传感器优化布置
- 等等,应用非常广泛

六、常用的工具和库

1. Python相关的库
现在最流行的。

深度学习框架:
- TensorFlow:谷歌的,很流行
- PyTorch:脸书的,现在学术界用得很多
- Keras:高层API,可以跑在TensorFlow上面,简单易用
- 等等,很多选择

代理模型相关的库:
- scikit-learn:机器学习库,也有神经网络
- SMT:Surrogate Modeling Toolbox,专门做代理模型的
- OpenTURNS:不确定性和可靠性分析的,也有代理模型
- 等等

2. MATLAB相关
工程界常用。

MATLAB的工具:
- Deep Learning Toolbox:深度学习工具箱
- Statistics and Machine Learning Toolbox:统计和机器学习
- 神经网络工具箱
- 等等
- 工程界很多人用MATLAB

3. ANSYS中的功能
ANSYS里也有。

ANSYS里的:
- DesignXplorer里有响应面
- 也有用神经网络的
- 可以做参数分析和优化
- 和有限元结合得很好

4. 其他工具
还有很多其他的。

比如:
- 各种商业软件
- 开源的工具
- 自己写代码实现
- 等等

七、总结

神经网络因为强大的非线性拟合能力,特别适合用来做代理模型,尤其是高维、强非线性的问题。在工程仿真中,用神经网络代理模型代替有限元模型可以大大提高计算效率,在优化设计、不确定性分析、参数辨识等方面都有重要的应用。构建神经网络代理模型需要经过数据准备、网络设计、训练、评估、优化等步骤,需要一定的经验和技巧,但效果也是很显著的。

神经网络与代理模型的要点总结:
- 神经网络拟合能力强,适合做代理模型,尤其是高维强非线性问题
- 神经网络由神经元和层组成,通过训练学习权重和偏置
- 常用的神经网络有全连接、卷积、循环等,代理模型一般用全连接就够了
- 构建步骤:问题定义、数据准备、网络设计、训练、评估、优化、部署
- 在有限元中用于快速优化、不确定性分析、参数辨识、多尺度、数字孪生等
- 有很多成熟的工具和库,比如TensorFlow、PyTorch、MATLAB等

给初学者的建议:
- 先理解基本概念,知道神经网络和代理模型是怎么回事
- 从简单的全连接网络开始,不要一上来就搞深度学习
- 数据很重要,样本点的选择和数量直接影响精度
- 数据预处理不要忘了,归一化标准化很重要
- 网络结构不要太复杂,代理模型一般浅层的就够了
- 注意过拟合,训练的时候要监控验证集
- 评估模型要全面,不能只看训练误差
- 代理模型不要外推太多,超出训练范围精度没保证
- 重要的结果最好用高精度模型验证一下
- 多做实际案例,在实践中积累经验
- 可以先用简单的工具试试,比如MATLAB或者scikit-learn
- 有兴趣再深入学深度学习

神经网络代理模型是一个很强大也很实用的工具,掌握了之后可以大大提高工程仿真的效率,解决很多以前算不动的问题。虽然有一定的学习曲线,但入门并不难,从简单的开始,慢慢积累经验就好。希望本文能帮助大家入门神经网络与代理模型。如果有相关的经验或者问题,欢迎在评论区交流讨论。

  距米网  

找到您想要的设计

工程师、学生在线交流学习平台
关注我们

手机版- JMCAD苏ICP备18040927号-1

©2017-2026 常州居居米智能技术有限公司 苏公网安备32041102000587号