grad-cam从头开始使用pytorch钩

动手观察可解释的AI(XAI)技术,该技术有助于揭示为什么卷积神经网络(CNN)做出了一个特定的决定,该决定首先是朝向数据科学的Pytorch挂钩后的Grad-CAM。

来源:走向数据科学

汽车突然停止。令人担忧的是,看不见没有停止签名。工程师只能猜测为什么汽车的神经网络变得困惑。这可能是街上滚动的滚滚滚动,一辆汽车从另一个车道上驶下来,或者是背景中的红色广告牌。为了找到真正的原因,他们转向Grad-CAM [1]。

grad-cam

Grad-CAM是一种可解释的AI(XAI)技术,有助于揭示为什么卷积神经网络(CNN)做出特殊决定的原因。该方法产生了一个热图,该热图突出了图像中最重要的图像中最重要的区域。对于我们的自动驾驶汽车示例,这可以表明杂草,汽车或广告牌的像素是否导致汽车停止。

可解释的AI(XAI) 为什么 heatmap

现在,Grad-CAM是用于计算机视觉的众多XAI方法之一。由于其速度,灵活性和可靠性,它已迅速成为最受欢迎的产品之一。它还启发了许多相关方法。因此,如果您对XAI感兴趣,则值得确切了解此方法的工作原理。为此,我们将使用Python从头开始实现Grad-CAM。

计算机视觉的XAI方法

具体来说,我们将依靠Pytorch钩子。如您所见,这些使我们能够在向后和向后通过网络中动态提取梯度和激活。这些是实用技能,不仅可以使您实施Grad-CAM,还可以实现任何基于梯度的XAI方法。请参阅Github上的完整项目。

pytorch钩 渐变 激活 github

Grad-CAM背后的理论

在获得代码之前,值得谈到Grad-CAM背后的理论。如果您想深入潜水,请查看下面的视频。如果您想了解其他方法,请参阅此免费的XAI以获取计算机视觉课程。

XAI用于计算机视觉课程
视频
功能地图 ($ a^k $) vgg16 512特征地图 图1 $ a^k $ $ y_c $ $ a_k^c $ 元素求和
图1:CNN中最后一个卷积层的加权特征图的元素总和(来源:作者)