适用于多元时间序列的 Grad-CAM

Ket*_*hup 6 python time-series heatmap deep-learning conv-neural-network

我想使用 grad-CAM 在多个多元时间序列上为我的模型训练添加可解释性。

这个想法是有这样的东西:

在此输入图像描述

我发现有几篇论文做到了这一点(用于多元时间序列预测的可解释深度神经网络XCM:用于多元时间序列分类的可解释卷积神经网络),但他们没有解释他们如何使用grad-CAM keras

有谁知道如何使 grad-CAM 用于时间序列?

Vic*_*and 4

1. 简明扼要的回答

XCM 对于分类 + GRAD-CAM 效果很好,但请考虑将 GRAD-CAM 与TSInterpret库中的 TSR 结合使用,以获得更可靠的结果。

2. 长而完整的答案

我将扩大 MTS 分类的可解释性的答案。GRAD-CAM 特定于 CNN,而且相当小众:可能有更好的解决方案可以满足您的需求。我目前无法帮助您进行回归,但我认为一些信息将适用。

首先,你应该知道 MTS 分类是一个相当困难的问题。它经常从图像分类或对象检测中汲取灵感。此外,XAI 是一个相对较新的研究分支,尚未十分成熟。例如,对于可解释性没有确切的定义,也没有可解释性方法的良好评估指标。将这两者结合起来是一个尚未在文献中得到很好研究的问题。

在你做任何事情之前,尝试缩小特征的数量,或者至少确保最小化相关性,这使得可解释性更加可靠。

特征归因:更简单的路径

如果特征归因是您主要关心的问题,我建议您从 MTS 中​​提取表格信息,例如使用Python 中的tsfresh库。这使得分类变得更加容易,但是您失去了任何与时间相关的可解释性。那么,最好从最简单且最可解释的(这两个齐头并进)算法开始,例如 sklearn 库中的岭分类器。如果那个方法不起作用,您可以按照此图表从可解释到不可解释。XGBoost 过去对我来说非常有效。对于复杂的算法,您可以考虑相当完整的OmniXAI Python 库,它在通用接口中实现了常见的可解释性方法,例如 SHAP 和 LIME。

时间归因或两者归因:更艰难的道路

如果时间归因或两者归因是您主要关心的问题,那么转换为表格格式将不起作用。白盒 MTS 分类器很少,因此最好的办法是使用sktime库中的非神经算法或tsai中的神经算法。请注意,在这种情况下,可解释性方法几乎总是事后且与模型无关,这使得它们不太准确。

人们已经做出了一些努力来创建专门关注可解释性的算法。XCM 就是其中之一(在 tsai 中实现),它使用 GRAD-CAM 为您提供两个维度的归因。来自同一作者,我使用 XEM 算法得到了非常好的结果(但尝试使用 XGBoost 而不是他们的 LCE 分类器,因为你不能在 LCE 上使用 XAI 方法)。您可以使用的另一个最新库是dCAM,它采用了 MTSC 的 SotA 方法,例如 InceptionTime 或 ResNet,使其成为 2D 可解释的。

除了上述算法之外,您还可以使用所有其他不是专门为 XAI 设计的算法。您可以训练和测试它们,然后应用所选的 XAI 方法。我一直在使用 InceptionTime、ResNet 和 TST。但您应该记住,事实证明,常规 XAI 方法(例如 SHAP、LIME 或 Grad-CAM)在结合时间维度和多个通道时效果不佳。TSInterpret库致力于解决这个问题,请查看。它与 tsai 的 CNN 和 Transformer 算法配合良好,但我认为 COMTE 反事实可解释性算法也适用于 sktime。

如需更多见解,请考虑阅读论文《可解释的人工智能时间序列分类:回顾、分类和研究方向》

另外三点见解:

  • LSTM 对时间序列的可解释性似乎不太好,因此首先考虑其他算法。
  • 不要使用 Rocket 或 MiniRocket:它工作得很好,但无法解释。编辑:当您使用分类器进行管道转换时,它可能会起作用,但我还没有测试过它。
  • 尝试一系列不同的算法 + XAI 方法的组合,看看什么可以满足您的需求。