从黑箱到白箱:BP神经网络 + SHAP可解释性 + NSGA-II多目标优化的完整技术方案
当工业场景中需要同时优化多个相互冲突的目标时,传统的单目标优化方法已捉襟见肘。本文将分享一套完整的"代理模型—可解释性分析—多目标寻优"技术方案,代码实现可直接复现。
一、研究背景
在工程设计与工艺优化中,经常面临这样的困境:真实物理实验或高保真仿真成本极高,每次尝试都耗费大量时间与资源。代理模型(Surrogate Model)的思路由此诞生——用数据驱动的方法建立一个计算成本低廉的近似模型,替代昂贵的真实评估,在此之上进行优化搜索。BP 神经网络因其强大的非线性拟合能力,是最常用的代理模型之一。
然而,传统 BP 神经网络作为"黑箱模型",其内部决策逻辑不可见,工程人员难以信任其预测结果。2024年以来,SHAP(SHapley Additive exPlanations)作为模型无关的可解释性框架,开始广泛应用于深度学习模型的特征归因分析。与此同时,多目标优化领域经典的NSGA-II(非支配排序遗传算法)擅长在多个冲突目标之间找到 Pareto 最优解集。
本方案将三者有机结合:BP 网络作为代理模型快速评估候选方案,SHAP 分析揭示输入-输出间的内在规律,NSGA-II 在代理模型基础上搜索四维 Pareto 前沿,最终输出一组兼顾各个目标的非支配解。
二、主要功能
| 模块 | 核心能力 |
|---|---|
| BP 代理模型 | 5输入→4输出的多变量回归预测,R² > 0.999 |
| SHAP 可解释性 | 特征重要性排序、蜂群图、依赖图,全局+局部解释 |
| PDP 部分依赖图 | 单特征与双特征交互效应可视化 |
| 置信度评估 | 95% 置信区间、逐样本置信度评分 |
| 决策路径可视化 | 逐层激活追踪,定位最佳/最差预测样本 |
| NSGA-II 优化 | 四目标 Pareto 前沿搜索,max y1 + min y2 + min y3 + min y4 |
三、技术路线
整体流程分为两个阶段:
数据预处理 → BP神经网络训练 → 模型评估(R²/MAE/RMSE/MAPE) ↓ SHAP可解释性分析(特征重要性+依赖关系) PDP部分依赖图(交互效应) 置信度评估(残差分布+置信区间) 决策路径可视化(逐层激活) ↓ 已训练的BP网络作为适应度函数(costfunction) ↓ NSGA-II多目标优化 → Pareto前沿阶段一(main1_BPNM.m):建立 BP 神经网络代理模型,完成训练与评估,并进行完整的可解释性分析。
阶段二(main2_NSGAII.m):将训练好的 BP 网络作为适应度评估函数,运行 NSGA-II 算法搜索满足四目标的 Pareto 最优解集。
四、算法步骤
4.1 BP 神经网络建模
- 加载数据,按 7:3 比例随机划分训练集与测试集
- 对输入和输出分别进行 min-max 归一化到 [0,1] 区间
- 构建单隐层 BP 网络:输入层 5 节点,隐含层 20 节点(tansig 激活),输出层 4 节点
- 采用 Levenberg-Marquardt(trainlm)算法训练,迭代上限 1000 次,目标误差 1e-4,学习率 0.01
- 反归一化后计算五项评价指标:R²、MAE、MBE、MAPE、RMSE
4.2 SHAP 可解释性分析
- 以训练集均值作为基线参考值
- 对每个测试样本遍历所有特征子集组合,计算各特征的边际贡献
- 按 Shapley 权重公式加权求和,得到每个样本上每个特征的 SHAP 值
- 汇总生成:蜂群图(Summary Plot)、条形图(特征重要性排序)、特征依赖图(Dependence Plot)
4.3 PDP 部分依赖图
- 对每个目标特征,在归一化空间等距采样 50 个点
- 固定该特征为采样值,其余特征保持原值,计算所有测试样本上的平均预测
- 对 SHAP 重要性最高的两个特征,额外生成双特征交互 PDP 曲面图
4.4 NSGA-II 多目标优化
- 初始化:在约束范围内生成 50 个个体的种群,调用 BP 网络计算适应度(目标函数值)
- 非支配排序:将种群划分为多个 Pareto 前沿层级
- 拥挤距离计算:在同级前沿内保持解的多样性
- 竞标赛选择 + 交叉(概率 0.85)+ 变异(概率 0.2)生成子代
- 合并父子种群,重新排序筛选前 50 个最优个体进入下一代
- 迭代 100 代后,输出第一层级(F1)Pareto 前沿解集
五、公式原理
5.1 BP 神经网络前向传播
隐含层输出:
Hj=tansig(∑i=1nWji(1)xi+bj(1))H_j = \text{tansig}\left(\sum_{i=1}^{n} W_{ji}^{(1)} x_i + b_j^{(1)}\right)Hj=tansig(i=1∑nWji(1)xi+bj(1))
输出层:
y^k=∑j=1hWkj(2)Hj+bk(2)\hat{y}_k = \sum_{j=1}^{h} W_{kj}^{(2)} H_j + b_k^{(2)}y^k=j=1∑hWkj(2)Hj+bk(2)
其中 tansig 激活函数为:
tansig(z)=21+e−2z−1\text{tansig}(z) = \frac{2}{1 + e^{-2z}} - 1tansig(z)=1+e−2z2−1
5.2 SHAP 值计算(Shapley 值博弈论框架)
ϕj(f,x)=∑S⊆N∖{j}∣S∣!(∣N∣−∣S∣−1)!∣N∣![fx(S∪{j})−fx(S)]\phi_j(f, x) = \sum_{S \subseteq N \setminus \{j\}} \frac{|S|! (|N| - |S| - 1)!}{|N|!} \left[ f_x(S \cup \{j\}) - f_x(S) \right]ϕj(f,x)=S⊆N∖{j}∑∣N∣!∣S∣!(∣N∣−∣S∣−1)![fx(S∪{j})−fx(S)]
其中 N 为全体特征集合,S 为不包含特征 j 的任意子集,f_x(S) 为仅使用 S 中特征时的模型预测值。核心思想:将模型对某样本的预测值公平地"分配"到各个输入特征上,衡量每个特征的边际贡献。
5.3 NSGA-II 拥挤距离
对于同一 Pareto 前沿层级的个体 k:
dk=∑m=1M∣fm(k+1)−fm(k−1)∣∣fmmax−fmmin∣d_k = \sum_{m=1}^{M} \frac{|f_m(k+1) - f_m(k-1)|}{|f_m^{\max} - f_m^{\min}|}dk=m=1∑M∣fmmax−fmmin∣∣fm(k+1)−fm(k−1)∣
边界个体赋予无穷大拥挤距离,保证极端解被保留。拥挤距离越大,说明该个体邻域内的解越稀疏,越值得保留以维持种群多样性。
5.4 帕累托支配关系
解 A 支配解 B 的条件(对于最小化问题):
∀i:fi(A)≤fi(B)∧∃j:fj(A)<fj(B)\forall i: f_i(A) \leq f_i(B) \quad \land \quad \exists j: f_j(A) < f_j(B)∀i:fi(A)≤fi(B)∧∃j:fj(A)<fj(B)
即 A 在所有目标上不劣于 B,且至少在一个目标上严格更优。
六、参数设定
BP 神经网络参数
| 参数 | 设定值 | 说明 |
|---|---|---|
| 隐含层神经元数 | 20 | 单隐层 BP |
| 训练函数 | trainlm | Levenberg-Marquardt |
| 最大迭代次数 | 1000 | epochs |
| 误差目标 | 1e-4 | 均方误差阈值 |
| 学习率 | 0.01 | 固定学习率 |
| 训练集比例 | 70% | 随机抽样 |
| 输出维度 | 4 | 四目标 |
NSGA-II 参数
| 参数 | 设定值 |
|---|---|
| 种群大小 (npop) | 50 |
| 最大迭代代数 (maxit) | 100 |
| 交叉概率 (pc) | 0.85 |
| 变异概率 (mu) | 0.2 |
| 目标函数数 (nobj) | 4 |
| 决策变量数 (nvar) | 5 |
决策变量约束(经步长离散化)
| 变量 | 下界 | 上界 | 步长 | 离散取值数 |
|---|---|---|---|---|
| x1 | 1 | 13 | 1.0 | 13 |
| x2 | 0 | 2.8 | 0.1 | 29 |
| x3 | 3 | 21 | 0.5 | 37 |
| x4 | 0.6 | 1.6 | 0.05 | 21 |
| x5 | 6 | 41 | 1.0 | 36 |
七、模型性能(实测结果)
BP 代理模型在四个输出目标上均表现出极高的预测精度:
| 输出 | 训练集 R² | 测试集 R² | 测试集 RMSE | 测试集 MAE |
|---|---|---|---|---|
| y1 | 0.99979 | 0.99933 | 0.097 | 0.069 |
| y2 | 0.99988 | 0.99984 | 3.352 | 2.115 |
| y3 | 0.99988 | 0.99972 | 9065.11 | 5170.71 |
| y4 | 0.99983 | 0.99976 | 0.177 | 0.114 |
SHAP 特征重要性排名揭示了关键驱动因素:特征2对 y1 和 y2 影响最大(|SHAP|均值 0.135/0.162),特征1对 y3 和 y4 影响最大(0.081/0.228),而特征3在所有输出上的贡献均微弱,可考虑后续降维。
置信度评估显示四个输出的平均置信度评分均 > 0.76,其中 best-case 预测误差接近零(如输出1最佳样本 #45 预测值与真实值分别为 -10.9855 和 -10.9863)。
八、运行环境
| 环境项 | 要求 |
|---|---|
| 操作系统 | Windows 10 / 11 |
| MATLAB 版本 | R2019b 及以上 |
| 必需工具箱 | Neural Network Toolbox、Statistics and Machine Learning Toolbox |
| 输入数据 | Excel 格式(data.xlsx),5个特征列 + 4个目标列,无表头 |
| 项目文件结构 | 主脚本 +NSGAII/子目录(含8个算子函数)+ SHAP可视化函数 |
快速运行:
- 将数据以
data.xlsx存放于项目根目录 - 依次运行
main1_BPNM.m完成 BP 训练与可解释性分析 - 运行
main2_NSGAII.m进行四目标 Pareto 寻优 - 训练好的网络参数自动保存为
net.mat,供第二阶段复用
九、应用场景
工艺参数优化:在材料加工、化工反应等场景中,工艺参数(温度、压力、配比、时间等)与多项质量指标之间存在复杂的非线性关系。通过实验数据训练 BP 代理模型,再利用 NSGA-II 搜索兼顾多个质量目标的最优参数组合,可大幅减少试错成本。
工程结构设计:桥梁、风电叶片等结构的轻量化与强度之间存在矛盾目标。SHAP 分析能揭示哪些设计变量对某项性能指标贡献最大,指导工程师聚焦关键参数。
药物配方筛选:多种辅料配比对溶出度、稳定性、生物利用度等指标的影响可通过本方案建模分析,SHAP 解释辅料-指标间的非线性依赖关系,NSGA-II 给出多目标平衡的配方候选。
工业生产调度:在产能、能耗、交付周期、设备利用率之间寻找 Pareto 最优调度方案。
十、总结
本方案的核心创新在于将模型可解释性嵌入到优化流程中。传统"黑箱代理模型 + 遗传算法"的方案虽然在数学上是自洽的,但工程人员难以建立对优化结果的信任。通过引入 SHAP 分析,我们可以清楚地回答三个问题:
- 哪些输入特征对输出影响最大?(全局特征重要性排序)
- 某个样本的预测值是由哪些特征驱动的?(局部 SHAP 分解)
- 特征如何非线性地影响输出?(SHAP 依赖图 + PDP 交互曲面)
在具备可解释性保障的前提下,NSGA-II 给出的 Pareto 前沿解集才具有实际工程参考价值。四目标的 R² 均超过 0.999,证明 BP 代理模型的精度足以支撑后续优化搜索。
完整代码已实现,欢迎交流讨论。