解释卷积神经网络(CNN)的结果。
https://speakerdeck.com/tanujjain/demystifying-the-neural-network-black-box
这个项目仓库包含了我们的演讲《解密神经网络黑匣子》的代码。 你可以在 Speaker Deck 上查看PPT。
当涉及计算机视觉任务(例如图像识别和对象检测)时,卷积神经网络(CNN)是最先进的。 但是,由于架构的高度复杂性,我们通常很难解释这些网络所做出的决策。幸运的是,有几种技术可以增强我们对CNN决策的理解。 这些技术通常分为归因和可视化方法。
在 idealo 的一个图像分类项目中,我们希望能够识别图像中所描述的酒店区域属性。在一些案例中,描述游泳池区域的图片被错误地归类为浴室区域。这些图像的例子如下:
使用称为梯度类激活图(Grad-CAM)的归因技术,我们能够绘制热图,表示不同图像区域在进行分类决策时的相对重要性。 以上图片的热图如下:
这帮助我们发现了一种偏见,即使用金属栏杆作为一种手段,将图像错误地分类为浴室区域。
另一方面,可视化技术可以帮助我们理解CNN中不同层的神经元可能正在学习的模式。适用于我们数据的特定MobileNet架构层的一些可视化效果图如下所示:
随着向CNN的输出层推进,这些模式通常变得越来越复杂。
在此存储库中,已经在Google Colab笔记本中演示了几种解释技术。因此无需克隆此存储库,只需单击下面相应部分中的“在Colab中打开”图标,即可在浏览器中启动用于归因和可视化方法的Google Colab笔记本。 此外,Colab笔记本的“硬件加速器”选项应设置为“GPU”,以便更快地运行代码。 有关Colab笔记本的快速教程,请查看此博客文章。
本项目基于MIT Licence发布,具体可见 LICENSE