使用批量归一化和 Leaky ReLU 时的神经网络可解释性

时间:2021-04-21 12:25:18

标签: tensorflow neural-network batch-normalization shap

我最近了解了一个名为 Shapley Values 的神经网络可解释工具。 对于想知道的人,我训练了一个密集的神经网络(尽管也可以用 CNN 和 LSTM 来完成),然后使用以下几行:

background = X[np.random.choice(X.shape[0], 10000, replace=False)]
e = shap.DeepExplainer(model_trained, background)
shap_values = e.shap_values(background)
shap.summary_plot(shap_values[0], background, feature_names=cols_of_X, plot_type='dot',show=False)

问题是这仅适用于不包括批量归一化和leaky relus的模型。

我知道我可以使用 tf.keras.Model(inputs = model_trained.layers[0].input,outputs=model_trained.layers[1].output) 而不是 model_trained 但我只会看到第一层如何受输入特征的影响,而不是输出如何受输入特征的影响。

有没有办法克服这个问题,或者只是使用 Shapley 以外的其他东西?

谢谢!

0 个答案:

没有答案
相关问题