ZFNet:Visualizing and Understanding Convolutional Networks

继Alexnet后,通过观察卷积神经网络某一层的特征图,系统分析了卷积神经网络处理图片的原理,包括:(1)卷积神经网络自动学习区域相关性;(2)卷积神经网络是学习了关键区域的特征,而不是全局特征;(3)卷积神经网络的特征是多层抽象的;(4)浅层卷积神经网络收敛更快;(5)卷积神经网络具有大小不变性、尺度不变性、旋转不变性

什么是ZFNet?

  • 在AlexNet基础上通过模型微调(fine tuning)提出的大型卷积网络
  • 通过反卷积(deconvolution)的方式可视化各层的输出特征图,进一步解释了卷积操作在大型网络中效果显著的原因

ZFNet的模型结构?

  • ZFNet-20230408141205
  • 输入224x224x3的图像
  • 第一层: 96个7x7的卷积,stride为2,然后是RELU,3x3最大池化和局部对比度归一化
  • 第二层: 256个3x3的卷积,然后是局部对比度归一化
  • 第三、四层: 连续2个384个3x3的卷积
  • 第五层: 256个3x3的卷积,然后是3x3最大池化,stride为2和局部对比度归一化
  • 第六、七层: 4096个密集单元
  • 最后一层: 1000个密集单元
  • ZFNet的网络架构是在AlexNet基础上修改而来,与AlexNet相比,差异在2个地方:(1)第1个卷积层,kernel size从11减小为7,将stride从4减小为2;(2)为了让后续feature map的尺寸保持一致,第2个卷积层的stride从1变为2

ZFNet如何可视化卷积层?

  • ZFNet-20230408141205-1
  • 给定1张输入图像,先前向传播,得到每一层的feature map,如果想可视化第i层学到的特征,保留该层feature map的最大值,将其他位置和其他feature map置0,将其反向映射回原始输入所在的像素空间
  • 对于一般的卷积神经网络,前向传播时不断经历:卷积-》Relu-》最大池化-》,可视化时,则从某一层的feature map开始,依次反向经历:反池化(UnPooling)-》Relu-》反卷积(deconvolution)

ZFNet 上,已知卷积参数如何求反卷积参数?

  • ZFNet 可视化卷积层时需要计算反卷积,但是反卷积是有参数,这个参数是如何得到?
  • 实际上,同一层的卷积与反卷积只是输入通道和输出通道调换顺序,其参数量是一样,ZF 直接将卷积的参数 (kernel,padding,stride)直接复制给反卷积
  • 假设卷积核是 3 x 3,反卷积将每个 1 x 1 区域输出3 x 3,其实就是这个 1 x 1 区域的值乘上卷积核所有位置,如果前向计算的 1 x 1 卷积核够大,那么这 3 x 3 区域就被更加明显激活

ZFNet可视化卷积层时,如何进行“反激活”?

  • ReLU激活函数,前向传播时只将正值原封不动输出,负值置0,“反激活”过程与激活过程没什么分别,直接将来自上层的map通过ReLU

ZFNet 可视化卷积层时,如何进行“反池化”?

  • ZFNet-20230408141207
  • 记录池化时的最大响应位置,通过反池化(UnPooling) 将最大值回填到响应位置

卷积神经网络区域特征关联性分析

  • 卷积神经网络在搭建及训练过程中,没有明确的机制来建立不同图像中特定对象之间的对应关系(例如,面部眼睛或者鼻子所具有的特殊空间结构)。但是深度学习模型可能会隐式的计算这些关系
  • ZFNet-20230408141207-1
  • 随机挑选了5张狗的正面照(第1列),对于第2列~第4列,分别遮挡其右眼、左眼、鼻子。剩余的列则随机进行遮挡,计算原始图像与遮挡图像在各层特征向量的海明(汉明)距离(Hamming Distance) ,海明距离越小,一致性越好
  • ZFNet-20230408141208
  • 浅层Layer5: 眼睛和鼻子的一致性明显好于随机,因此可以说明神经网络确实隐式的计算了共性特征
  • 深层Layer7: 眼睛、鼻子和随机的一致性差别不大,可能是因为浅层着重在识别一类物品或物体所具有的共性特征(例如狗的鼻子和眼睛),而深层则主要在识别一些更复杂和宏观的特征(例如狗的品种等)

卷积神经网络从浅层到深层分别归纳哪些特征

  • ZFNet-20230408141208-1
  • 第一层: 最简单的特征,即图像中的各种频率。 把它想象成学习图像中的线条
  • 第二层: 对各种角落和边缘/颜色组合进行建模。 把它想象成学习图像中的曲线。 曲线由小线形成
  • 第三层: 将其视为学习这些曲线的组合(网格)。 曲线聚集在一起创建网格(想想篮子)
  • 第四层: 特定类别的特征,例如狗脸。 把它想象成把篮子塑造成不同的东西
  • 第五层: 具有一些姿势变化(侧面、正面和其他)的整个对象。 可以把它想象成将所有这些篮子排列成类似不同的物体

卷积神经网络训练过程中,不同网络层的特征收敛快慢比较?

  • 对 Layer1~Layer5中随机选取的6个激活值进行可视化, 每个 block 共有6行,代表着6个激活值,每一行共有8列,代表着训练的不同阶段,分别为 epoch=[1,2,5,10,20,30,40,64]
  • ZFNet-20230408141209
  • 结论:较浅的层学到的特征收敛的更快。而更深的层则需要训练至少40~50个epoch才能看到特征的收敛

卷积神经网络是通过图像整体信息还是关键信息区分图片类别?

  • ZFNet-20230408141209-1
  • 第一列:分别输入的三张图像,真实类别依次为:博美犬(Pomeranian)、车轮(wheel)、阿富汗猎犬(Afghan hound)
  • 第二列:将原图输入网络,确定Layer5的最大激活值所在区域A后,然后将灰色块从图像的左上角一直遍历滑动到右下角的图片输入网络,收集所有结果的区域A激活值,然后将所有的区域A相加得到,其中蓝色部分的激活值大于红色部分
  • 第三列:将区域A的激活值映射回input的结果(黑色方框为本例的可视化结果,其余三个为类似图像的可视化结果),以第一张图像为例,可以看到最大激活值对应的可视化结果是狗的面部特征
  • 第四列:类似于第二列的方式,将灰色块从图像的左上角一直遍历滑动到右下角,以灰色块滑动的第一个位置为例,如果这张左上角被遮挡的图像被分类器预测为“博美犬”,那么该灰色块覆盖的区域我们就记为“博美犬”(即该区域内每个像素点被标记为“博美犬”这个类别),剩余的位置以此类推,最终统计input图像中每个像素点被分类正确的概率。以第一张图像为例,当灰色块遮挡住狗的面部时,类别“博美犬”的概率会大幅下降
  • 第五列:第四列结果的延伸,为input图像每个像素点对应的概率最高的类别。对于第一张图像,大部分位置的预测结果都是“博美犬”(如果使用灰色块遮挡狗的面部但不遮挡球,则预测结果会变为“网球”)。对于第二张图像,虽然Layer5最大激活值的可视化结果是车身上的文字,但是分类器却对车轮更为敏感。对于第三张图像,其包含多个目标(两个人和一只狗),虽然Layer5最大激活值的可视化结果是人脸,但是分类器却对狗更为敏感
  • 综上可知:卷积神经在进行图像分类任务时,根据关键位置的特征做为分类依据

卷积神经网络的aliasing现象?

  • 在数字信号处理中,aliasing是指在采样频率过低时出现的不同信号混淆的现象
  • ZFNet-20230408141210
  • (a):第一层特征,无特征缩放;(b):AlexNet的第1层特征,©:ZFNet的第1层特征,(b)可以看到一些灰色方块,那些是没有激活值的死神经元,这是不好的
  • (d):AlexNet的第2层特征,(e):ZFNet的第2层特征,可以看出ZFNet提取的特征更干净,没有出现伪影
  • ZFNet认为以上问题是第1个卷积层stride过大引起的,为了解决这个问题,可以提高采样频率,所以将stride从4调整为2,与之相应的将kernel size也缩小

训练神经网络时,使用预训练权重还是全新训练效果好?

  • ZFNet使用了两种不同的训练方法:1)固定Layer1~Layer7的结构和参数,只是使用新的数据集重新训练了softmax层;2)使用新的数据集重新训练整个模型
  • ZFNet-20230408141211
  • 使用预训练的ZFNet模型准确率明显高于重新训练的ZFNet模型,说明数据集的大小对模型的性能影响至关重要。

神经网络相比较传统方法的泛化能力?

  • ZFNet-20230408141211-1
  • ZFNet使用更少的数据便可以获得比传统优秀算法更高的准确率,说明同等训练数据情况下,神经网络泛化能力更强

什么是卷积神经网络的平移不变性 (translational invariance)?

  • ZFNet-20230408141212
  • 示例图片 (a1),原图与平移图在 ZFNet 第1、7层输出的欧式距离比较(a2、a3)、每个图片被预测的概率 (a4)
  • 第二、三列说明平移图像经过卷积后,特征保持稳定,甚至在列四的输出层大多数情况下保持稳定, 除了在极端情况下,主要是因为在图像中看不到有问题的物体

什么是卷积神经网络的大小不变性 (size invariance)?

  • ZFNet-20230408141212-1
  • 示例图片 (b1),原图与平移图在 ZFNet 第1、7层输出的欧式距离比较(b2、b3)、每个图片被预测的概率 (b4)
  • 第 3 列受图片越来越大的激活面积导致的,但是我们移动是线性的,增长也是线性的,说明移动是影响第 3 列的唯一因素,但是从最后输出第 4列来看,大多数情况下保持稳定

什么是卷积神经网络的旋转不变性 (rotational invariance)?

  • ZFNet-20230408141213
  • 示例图片 (c1),原图与平移图在 ZFNet 第1、7层输出的欧式距离比较(c2、c3)、每个图片被预测的概率 (c4)
  • 从二、三列来看,旋转对特张图由浅层到深层影响逐渐变大,甚至在第四列看出旋转使得卷积网络犯错,但是这是物体本身特征造成的,和 CNN 无关,比如危险的非洲鳄鱼 (Afican crocodie),它们的图像看起来都是旋转对称的,它们是稳定的。即对于具有旋转对称性的物体,CNN 对旋转具有鲁棒性