
每个做预测性维护的团队早晚都会撞上同一堵墙新产线没有数据。我自己的经历是这样的。前年我们在一条包装产线上做轴承故障检测数据攒了八个月模型调到准确率不错老板很高兴大手一挥厂里还有六条产线都推过去然后现实就给了我一巴掌——那六条产线要么是不同厂家的设备要么转速、载荷不一样传感器装的位置也不同。新产线的数据积累得从零开始等八个月黄花菜都凉了。这就是迁移学习要解决的问题把A产线学到的故障知识搬运到B产线。为什么不能直接拿去用有人会问故障模式不是差不多吗轴承内圈故障、外圈故障、齿轮断齿物理机理一样模型直接用不行吗不行或者说不完全行。原因在于模型学的从来不是纯物理机理而是机理数据分布的混合体。换个产线转速从1200rpm变成1800rpm故障特征频率全变了传感器从轴承座正上方挪到了侧面传递路径不同幅值和相位都漂移负载谱不同正常状态的振动基线就不在一个水平上。模型见过的正常和新的正常对不上输出的故障概率基本是随机数。我们直接搬过去试过A产线95%准确率的模型到B产线直接掉到50%多——还不如掷硬币。迁移学习怎么搬实践中我用过的路子按见效快慢排序路子一特征对齐域自适应。核心思想是让两个产线的特征分布尽量对齐。经典方法如DANN域对抗神经网络特征提取器后面挂两个头一个做故障分类一个做这个样本来自哪条产线的域判别训练时故意让域判别分不出来——逼着特征提取器学到产线无关的故障特征。# 域对抗的核心损失伪代码PyTorch风格 loss loss_cls(pred, label) \ - loss_domain(domain_pred, domain_label) * 0.3 # 分类损失要降域判别损失要升梯度反转实现 # 效果特征里保留是不是故障抹掉是哪条产线路子二只迁冻结部分微调末端。更朴素的办法把A产线模型的前几层学通用特征的卷积层冻住只重新训练最后几层。B产线只需要少量标注数据——几百个样本往往就够。上线快风险低我的第一推荐。路子三物理量归一化。严格说这不算机器学习意义的迁移但特别实用把所有振动信号按转速做阶次归一化按载荷做幅值归一化让不同产线的特征落在同一坐标系里。做了这一步迁移的难度直接降一半。这个步骤便宜到没理由不做。实际效果和坑去年那六条产线我们最终是物理归一化冻结迁移末端微调的组合拳。每条产线只人工标注了大概两周的数据模型收敛后准确率能到88%-91%。跟从零训练的八个月比这个性价比没法拒绝。坑也有三个都是钱换来的经验负迁移。如果两条产线设备原理差异太大比如滚珠轴承换成滑动轴承硬迁移反而把模型带偏。判断标准很简单微调后的效果还不如B产线从零训练的小模型就是负迁移果断放弃迁移路线标签体系要统一。A产线的轻微磨损和B产线的轻微磨损标准可能不是一回事迁移前先把标签定义对齐不然学的是错的别指望一劳永逸。迁移过去的模型照样会漂移在线监控和定期重训一个都不能少。写在最后我现在越来越觉得预测性维护项目的瓶颈早就不是算法了是数据冷启动。迁移学习配合少样本标注是打破每条产线重干一遍这个魔咒的最现实路径。如果你正在被新产线没数据折磨建议从路子三路子二开始成本最低两周内能看到结果。你们厂几条产线是各自为战还是统一建模搬过模型的朋友评论区交流下战果。