CANN残差诊断算子

📅 2026/7/4 5:31:25 👁️ 阅读次数 📝 编程学习
CANN残差诊断算子

PidResidualDiagnostics

【免费下载链接】mat-chem-sim-pred面向工业领域,聚焦计算仿真、预测两大核心场景,构建面向流程工业"机理+数据"双轮驱动的领域计算层,推动AI for Science在材料化学领域的深度应用。项目地址: https://gitcode.com/cann/mat-chem-sim-pred

功能说明

PidResidualDiagnostics面向 PID 模型辨识后的模型有效性检查。算子对actual[B, N]predicted[B, N]计算残差基础指标、多 lag 自相关和 Ljung-Box 风格白噪声统计量:

residual = actual - predicted metrics[B, 8], autocorr[B, max_lag]

该方向服务于“模型是否足够可信、残差是否仍有结构性动态”的工程问题。相比闭环递推,它主要是批量归约和相关性扫描,适合作为 NPU 侧模型辨识/评分流水线的后处理。

残差和误差的关系

在本算子里,残差采用固定符号约定:

residual[i] = actual[i] - predicted[i]

其中actual是实测过程输出,predicted是辨识模型给出的预测输出。工程上常说的“误差”可以泛指实测值和预测值之间的差异;“残差”则特指在已经完成模型拟合之后,样本点上的actual - predicted。因此残差可以看作模型辨识场景下的一种预测误差。

这个符号约定会影响mean_residual的解释:如果mean_residual > 0,说明实测值整体高于预测值,模型平均预测偏低;如果mean_residual < 0,说明模型平均预测偏高。maermsemax_abs_residual使用绝对值或平方,不受符号方向影响。

输入输出

名称类型Shape说明
actualfloat32[B, N]实测输出
predictedfloat32[B, N]模型预测输出
metricsfloat32[B, 8]残差诊断指标
autocorrfloat32[B, max_lag]residual autocorrelation lag 1..max_lag

metrics顺序:

0 mean_residual 1 std_residual 2 mae 3 rmse 4 max_abs_residual 5 fit_percent 6 durbin_watson 7 ljung_box_q

指标含义:

指标含义工程解释
mean_residual残差均值越接近 0 越好;明显偏正/偏负表示模型存在系统偏差
std_residual残差标准差描述残差波动大小,越小表示预测误差越稳定
mae平均绝对误差平均每个采样点偏差多少,直观且对尖峰不如 RMSE 敏感
rmse均方根误差对大误差更敏感;若明显大于 MAE,通常说明存在尖峰误差
max_abs_residual最大绝对残差最坏采样点偏差,用于发现局部异常或突变
fit_percent拟合优度百分比越高越好;接近 100 表示模型解释了大部分实际变化,低于 0 表示比均值预测还差
durbin_watson一阶残差自相关诊断接近 2 通常较好;小于 2 多表示正自相关,残差连续同向,模型可能漏掉慢动态或滞后
ljung_box_q多 lag 白噪声统计量越小越好;过大说明残差仍有结构性相关,模型没有解释干净

常见使用方式是先看fit_percent/rmse判断误差总量,再看mean_residual判断偏差方向,最后结合durbin_watsonljung_box_qautocorr判断残差是否还存在可预测的动态结构。若残差诊断不通过,可以拒绝该辨识结果、扩大候选网格、切换 FOPDT/IPDT/SOPDT 模型族、重选数据窗口,或把后续 PID 参数整定降级为人工审核/保守策略。

当前定位

该算子是本次正式提交的模型诊断算子,用于 FOPDT/IPDT/SOPDT 模型辨识后的 device-side 残差质量检查。它与 fit 算子中的 SSE 不重复:SSE 只用于候选模型的最小二乘选优,残差诊断进一步判断误差是否有偏、是否自相关、是否接近白噪声,从而决定模型是否可直接用于后续 PID 整定。

node202 验证结论

当前版本已在 node202 / Ascend910B3 上完成 CANN 编译、ACLNN smoke 和 benchmark。中大规模下 kernel-only 与 e2e 均相对 CPU 64 线程有稳定收益,适合作为 NPU resident 模型辨识流水线的后处理。

代表性结果:

BNmax_lagCPU 64T msNPU kernel msNPU e2e mse2e/CPU64T
1281024160.4689490.0920590.4426511.06x
2561024321.399990.05525260.3597823.89x
5122048322.333110.0757710.9575732.44x
10242048648.628030.06830551.851334.66x

详细记录见 benchmark 报告。

文档

  • 算法说明
  • API 说明
  • benchmark 报告

【免费下载链接】mat-chem-sim-pred面向工业领域,聚焦计算仿真、预测两大核心场景,构建面向流程工业"机理+数据"双轮驱动的领域计算层,推动AI for Science在材料化学领域的深度应用。项目地址: https://gitcode.com/cann/mat-chem-sim-pred

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考