卷积神经网络可视化的直观解析

2020-06-11 10:30:31 浏览数 (1)

最早的卷积神经网络是Alexander Waibel在1987[5]年提出的延时神经网络(TDNN)。TDNN是一种应用于语音识别问题的卷积神经网络。它使用FFT预处理的语音信号作为输入,它的隐藏层由两个一维卷积核组成,用于提取频域中不变的平移特征[6]。在TDNN出现之前,人工智能领域在BP神经网络(back-propagation)的研究方面取得了突破性进展[7],因此TDNN能够使用BP框架进行学习。在最初作者的对比实验中,在相同条件下,TDNN的性能优于隐马尔可夫模型(HMM),后者是80年代语音识别的主流算法[6]。

1988年,张炜提出了第一种二维卷积神经网络-不变的平移神经网络(SIANN),并将其应用于医学图像的检测[1]。与张炜(1988)不同的是,Yann LeCun在1989年也为计算机视觉问题构造了卷积神经网络,这是LeNet[2]的原始版本。LeNet包含两个卷积层,两个完整的连接层,共有60000个学习因子,其规模远远超过TDNN和SIANN,其结构与现代卷积神经网络非常接近[4]。1989年[2],LeCun利用随机下降变化率(SGD)研究随机初始化后的权重值,这一方法后来被深度学习研究保留下来了。此外,LeCun(1989)在论述其网络结构时首次使用卷积一词[2],并据此命名卷积神经网络。

对于一个深卷积神经网络,经过多重卷积和合并整理后,它最新的卷积层包含了最丰富的特征和语义信息。每个卷积神经网络中的卷积单元实际上扮演着目标检测的角色,这个角色本身具有定位对象的能力,只是其中包含的信息人类很难理解,也很难用一种可视的方式来显示。

在本文中,我们将回顾类激活映射(CAM),CAM借鉴了著名论文Network in Network中的思想,用全局平均池(GAP)完全代替连接层。

所提出的CNN网络具有很强的图像处理和分类能力,同时还可以探测图像的关键部分。

卷积层

卷积神经网络(CNN)主要是通过单个滤波器,从局部特征到整体特征,不断提取特征,从而实现图像识别等功能。假设我们需要处理一个大小为6x6像素的单通道灰度图像,并将其转换为二维矩阵,如下所示:

图片中的数字表示该位置的像素值,像素值越大,颜色越亮。图片中间两种颜色的分界线是我们要检测的边界。

我们可以设计一个滤波器(也称为内核)来检测这个边界。那么,我们将此滤波器与输入图片卷积以提取边缘信息,对图片的卷积操作可以简化为以下动画:

我们使用这个滤波器来覆盖我们的图片,覆盖一个和滤波器一样大的区域,乘以位置相对应的元素,然后求和。计算完一个区域后,移动到其他区域,然后计算,直到覆盖原始图片的所有角点。

输出矩阵被称为特征图,它中间有较浅的颜色,两边有较深的颜色,这反映了原始图像中间的边界。

卷积层主要包括两部分:滤波器和特征图,它是数据流经CNN网络的第一层神经网络,CNN的滤波器矩阵在尽可能多的使用滤波器的过程中,能自动调整,提取更多的特征。

通常我们需要设置的高级参数包括滤波器的数目、大小和步长。

池化层

池化层也称为特征池或子采样。其主要功能是提取某一区域的主要特征,减少参数个数,防止模型过度耦合。

这里我们不需要学习太多的参数。需要具体明确的参数包括池化层的类型,常用的池化层包括最大值池化层和平均池化层,以及窗口大小和步长。通常我们更习惯使用最大值池化层,一般取一个大小为(2,2)、步长为2的滤波器,这样在池化之后,输入的长度和宽度会减少2倍,通道不会改变,如下图所示:

在池化层中获取最大值,并在特征矩阵图上按顺序池化,生成新矩阵。用同样的方式,我们也可以使用求平均值或求和的方法。但在正常情况下,使用最大值法得到的效果相对较好。

经过多次卷积和合并,我们最终将多维数据扁平化成一维数组,然后将它们连接到完全连接层。

它的主要功能是根据卷积层和池化层提取的特征集对处理后的图像进行分类

全卷积神经网络(如GoogleNet),避免使用全连接层,而是使用全局平均池(GAP)。这样不仅可以减少参数以避免过度耦合,还可以创建类别关联的特征图。

全局平均值池化

长期以来,全连接网络一直是CNN分类网络的标准结构。一般情况下,全连接后会有用于分类的激活功能。但全连接层的参数数量非常大,这会降低训练速度,容易过度耦合。

在Network-In-Network[9]部分,提出了全局平均池的概念来代替完全连接层。

全局平均池化和局部平均池化的区别在于池化的窗口。局部平均池包括取特征图中某个子区域的平均值,而全局平均池是取整个特征图的平均值。

使用全局平均池化层而不是完全连接层,可以大大减少参数的数量。

类激活图

当使用全局平均池时,最后一个卷积层强制生成与我们目标类别的数量相同的特征图,这将给每个特征图一个非常明确的含义,称为类别可信度图[11]。

从图中可以看出,通过GAP我们得到最后一个卷积层的每个特征图的平均值,并通过加权求和得到输出。对于每个类别C,每个特征图k的平均值具有相应的权重w。

在训练CNN模型之后,我们可以得到一个热图来解释分类结果。例如,如果我们想解释C类的分类结果,我们就取C类对应的所有权重,并求出它们对应的特征图的加权和。由于此结果的大小与特征图一致,我们需要对其进行过度采样并将其覆盖在原始图像上,如下所示:

通过这样的方式,CAM以热图的形式告诉我们:模型根据哪些像素来确定图片属于c类。

结论

CAM的可解释性一直很好,但它有一个缺点,即需要修改原模型的结构,导致需要对模型进行重新训练,这大大限制了其使用场景。如果这种模式已经使用,或者训练成本很高,我们几乎不可能再训练。

0 人点赞