用迁移学习加速CAE——故障排查指南
更详细的内容请访问 transfer-learning-cae.html。
CAE中迁移学习的全貌与易碎之处
迁移学习是把在数据充裕的"源"问题上训练好的模型,挪用到数据稀少的"目标"问题上的技术。放到CAE代理模型的语境里,典型有三种模式:①把形状与工况相近的过往项目的模型迁到新产品上;②先用大量粗网格(低保真)数据预训练,再用少量高保真数据微调;③把公开数据集或通用预训练模型适配到自家问题上。做得好时,所需的昂贵数据(FOM执行次数)能减到几分之一乃至一个数量级;而这项技术可怕的地方在于,一旦"以为相似的问题其实并不相似",它会悄无声息地失败。本页就按症状逐个把这些失败摁下去。
把旧型号的代理模型迁到新型号上,精度反而比从零训练还差。迁移学习不是应该有效吗……
那叫负迁移(negative transfer),是迁移学习最有代表性的失败。在源上学到的特征,到目标上变成了有害的先验知识;"只要把模型继承过来就一定赚"这种想当然,正是第一个敌人。迁移能奏效的条件,是源与目标在输入分布、物理、输入输出关系这三点上真的接近。不做这项检查就迁移,好比把另一座桥的设计计算书原样搬来不加改动——先测"到底像不像",才是出发点。
症状1:迁移之后反而不如从零训练(负迁移)
| 检查项 | 对策 |
|---|---|
| 有没有度量分布之间的距离 | 比较源与目标在输入·输出上的统计量(均值·方差·取值范围)。目标若落在源的分布之外,迁移的前提就已经不成立 |
| 物理区制是否相同 | 层流→湍流、弹性→塑性这类跨区制,会改变特征的含义。非跨不可时,就把迁移对象限定在底层(通用特征) |
| 学习率是否过高 | 微调要从源训练的1/10~1/100的学习率起步。高学习率会先毁掉预训练带来的好处、再开始过拟合,是最糟的路线 |
| 有没有取基线 | 与用同一批目标数据从零训练的学习曲线作对比。迁移的收益,永远要用这个差值来定量 |
症状2:微调数据太少导致过拟合
目标数据只有几十件的处境,恰恰是迁移学习该上场的场合;但若老老实实地重训全部层,立刻就会过拟合。定式是让所更新的自由度与数据量相称。
- 只重训输出层(冻结特征提取部分)——数据几十件时的首选
- 逐级解冻——看着验证误差,从输出侧一个模块一个模块地解冻。改善停止就收手
- 加强正则化——不用冻结,而是对"与源权重的距离"施加惩罚(L2-SP),同样有效
- 数据增强——利用问题的对称性(旋转·镜像)与参数扰动,实质上扩大数据量
无论哪种情形,都不能省掉留出验证(数据太少就用交叉验证)。在小数据环境下,训练误差不携带任何信息。
症状3:迁移后的模型连数量级都不对
比起精度问题,输出本身就坏掉的情况,元凶几乎都是预处理流水线的不一致。①归一化常数(是否用源的均值·方差去归一化目标输入——在目标上重算会与已训练权重不自洽的情形,和本就应该重算的情形都存在,须遵照预训练时的设计);②输入通道的顺序与单位制;③网格分辨率与插值方法;④坐标系与无量纲化的定义。原则是不只搬运模型权重,而要把预处理·后处理代码整套当作"模型的一部分"一起搬运;疏忽了这一点的迁移,必定在这里坏掉。
症状4:粗网格预训练→细网格微调后仍残留偏置
用低保真数据预训练是有效的策略,但模型可能把粗网格特有的系统误差(峰值被抹平、边界层未解析)当成"正确答案"学进去,而少量高保真数据又矫正不过来。对策是改变迁移的设计:①差值学习——用小模型去学高保真与低保真之"差"(多保真度构成,与co-Kriging同一思路);②把低保真预测作为输入特征加进去;③把高保真数据集中布置在误差大的区域(峰值附近)。迁移并不只有"同一网络的权重继承"这一种形态,在这个领域,用构成去吸收保真度之差往往更对路。
症状5:根本判断不了该不该迁移
动手之前做个轻量诊断,迁移的胜算就能读出个大概。
- 零样本评估——把源模型原样套到目标数据上测误差。若明显好于从零训练的初始误差,就是存在共享结构的证据
- 特征的线性探针——固定源模型的中间特征,只用线性回归去预测目标。这条走得通,说明特征提取层的迁移价值高
- 小预算的学习曲线对比——在数据10/20/40件上比较"有迁移/无迁移"的验证误差。在小数据一侧差距拉开,才是健康迁移的样子
这三项都是几个小时就能做完的实验,而且还能成为正式微调策略(冻结到哪一层)的依据。
症状6:报告了效果,却被说"是不是碰巧"
迁移学习的效果报告有其固有的规矩。①同一数据预算下的对比——"迁移+高保真20件"对"从零+高保真20件"(预训练数据的成本另行写明)。②多个随机种子的均值与方差——小数据训练对初值极敏感,只比一次毫无意义。③用学习曲线来呈现——横轴取数据量,让迁移的收益以"在小数据一侧提前兑现"的形态被看见。④分布外的行为——确认目标分布边缘处的劣化。这四件套齐了,对"碰巧"的反驳就完成了。
迁移学习项目的检查清单
- 有没有定量确认源与目标在分布·物理区制上的接近程度
- 有没有做零样本·线性探针这类事前诊断
- 有没有把预处理流水线整套与模型一同搬运
- 冻结策略是否与数据量相称,微调是否从低学习率起步
- 有没有与从零训练的基线、在多个随机种子下作对比
- 保真度之差,有没有考虑差值学习·多保真度构成,而不只是继承网络
要检查的项目这么多,挺费劲的……迁移学习到底值不值得做呢?
条件对上了,价值就很大。CAE代理模型最大的成本是训练数据的生成(FOM执行),而迁移是为数不多能直接削掉它的手段。最容易奏效的典型是"产品系列的世代演进"——形状和物理每一代都只变一点点,于是每一代代理模型的构建成本随世代递减。这是一种让模型资产在组织内不断沉淀的结构,比起单次分析的提效,战略价值更高。反过来,一次性的分析没必要硬把迁移塞进去。"有没有可以资产化的重复结构"——这才是导入判断的本质。
相关文章:降阶模型(ROM)、Kriging代理模型(多保真度)、Fourier神经算子。
帮助
更多
错误