卷积神经网络CNN的可视化

▼魔方 西西 提交于 2019-12-27 03:21:14

通常我们认为深度学习模型是“黑盒”的,即模型学到的表示很难用人类可以理解的方式来提取和呈现。然而对于卷积神经网络来说却不是这样的。CNN学到的表示非常适合可视化,因为CNN本身就是视觉概念的表示

CNN可视化和解释:【本文给出3个层面的可视化】

1)可视化卷积神经网络的中间输出(中间激活)

有助于理解卷积网络神经连续的层如何对输入进行变换,也有助于初步了解卷积神经网络每个过滤器的含义。

2)可视化卷积神经网络的过滤器

有助于精确理解卷积神经网络中每个过滤器容易接受的视觉模式或视觉概念。

3)可视化图像中类激活的热力图

有助于理解图像的哪个部分被识别为属于某个类别,从而可以定位图像中的物体。

一、可视化中间激活

        可视化中间激活,是指对于给定输入,展示网络中各个卷积层和池化层输出的特征图(层的输出通常被称为该层的激活,即激活函数的输出)。

        可视化中间激活,可以看到输入如何被分解为网络学到的不同过滤器。

        从三个维度对特征图进行可视化:宽度、高度和深度(通道)。每个通道都对应相对独立的特征,所以讲这些特征图可视化的正确方法是将每个通道的内容分别绘制成二维图像。

原图如下:

第一层卷积层第4通道可视化结果:

第一层卷积层第7通道可视化结果:

第5个卷积层第5个通道可视化:

第5个卷积层的第30通道可视化:

上例中揭示了DL学到的表示存在一个重要普遍特征:随着层数的加深,层所提取的特征变得越来越抽象。更高层激活包含关于特定输入的信息越来越少,而关于目标的信息越来越多。

深度神经网络可以有效地作为信息蒸馏管道,输入原始数据,反复对其进行变换,将无关信息过滤掉(比如图像的具体外观),并放大和细化有用的信息(比如图像的类别)。

注意:

1)第一层是各种边缘探测器的集合。在这个阶段,激活几乎保留了原始图像中的所有信息。

2)随着层数的加深,激活变得越来越抽象,并且越来越难以直观地理解。它们开始表示更高层次的概念,比如“猫耳朵”和“猫眼睛”。层数越深,其表示中关于图像视觉内容的信息就越少,而关于类别的信息就越多。

3)激活的稀疏程度(sparsity)随着层数的加深而增大。在第一层里,所有过滤器都被输入图像激活,但在后面的层里,越来越多的过滤器是空白的。即,输入图像中找不到这些过滤器所编码的模式。

二、可视化卷积神经网络过滤器

        可视化卷积神经网络的过滤器,可以通过显示每个过滤器所响应的视觉模式。这可以通过在输入空间中进行梯度上升来实现:从空白输入图开始,将梯度应用于卷积神经网络输入图像的值,其目的是让某个过滤器的响应最大化。得到的输入图像是选定过滤器具有最大响应的图像。

过程:

        构建一个损失函数,其目的是让某个卷积层的某个过滤器的值最大化;然后,使用随机梯度下降来调节输入图像的值,以便让这个激活值最大化。

以VGG16为例,看一下block3_conv1第0个通道过滤器的可视化结果:

block1_conv1层过滤器模式:

block2_conv1层过滤器模式:

block3_conv1层过滤器模式:

block4_conv1层过滤器模式:

过滤器可视化包含卷积神经网络的如何观察世界的很多信息:卷积神经网络中每一个层都学习一组过滤器,以便将其输入表示为过滤器的组合。随着层数的加深,卷积神经网络中的过滤器变得越来越复杂,越来越精细。

1)模型第一层(block1_conv1)的过滤器对应简单的方向边缘和颜色(还有一些是彩色边缘)。

2)block2_conv1层的过滤器对应边缘和颜色组合而成的简单纹理。

3)更高层的过滤器类似于自然图像中的纹理:羽毛、眼睛、树叶等。

三、可视化类激活的热力图

        可视化类激活热力图有助于了解一张图像的哪一部分让卷积神经网络做出了最终的分类决策。这有助于对卷积神经网络的决策过程进行调试,特别是出现分类错误的情况下。这种方法还可以定位图像中的特定目标。

        实现可视化类激活热力图的通用技术:类激活图(CAM,class activation map)可视化,对输入图像生成类激活的热力图。

        类激活热力图是与特定输出类别相关的二维分数网络,对任何输入图像的每个位置都要进行计算,它表示每个位置对该类别的重要程度。

        举例说明:对于输入到猫狗分类卷积神经网络的一张图像,CAM可视化可以生成类别“猫”的热力图,表示图像的各个部分与“猫”的相似程度,CAM可视化也会生成类别“狗”的热力图,表示图像的各个部分与“狗”的相似程度。

        CAM方法具体实现方式:给定一张输入图像,对于一个卷积层的输出特征图,用类别相对于通道的梯度对这个特征图中的每个通道进行加权。直观上来看,理解这个技巧的一种方法是:用“每个通道对类别的重要程度”对“输入图像对不同通道的激活强度”的空间图进行加权,从而得到了“输入图像对类别的激活强度”的空间图。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!