可解释机器学习 Task02 - ZFNet深度学习图像分类算法

可解释机器学习 Task02 - ZFNet深度学习图像分类算法

  • 一、算法简介:
  • 二、ZFNet网络结构与关键技术
    • 1、网络结构
    • 2、可视化的关键技术
      • (1)反池化的操作流程
      • (2)反激活操作流程
      • (3)反卷积操作流程
    • 3、逆向重构(特征的复杂性随着层数的增加而增加)
      • (1)Layer1
      • (2)Layer2(开始逆向重构)
      • (3)Layer3-Layer5(与Layer2相似)
    • 4、不同层训练的异同
    • 5、遮挡测试
      • (1)不同特征
      • (2)相同特征

一、算法简介:

  • ZFNet:2013年ImageNet图像分类竞赛冠军
  • 具体解决问题:
    - 影像中的哪些部分可以促使这个模型判断他是什么东西
    - 网络的不同层到底是在提取一个什么样的特征
    - 每一个神经元、卷积核都对什么,样的特征感兴趣
    - 如果对于图像进行遮挡会不会对于结果造成影响
    - 图像中不同的部位是有相关性的吗
  • 方法概述:通过对每一层卷积核进行可视化来理解每一个卷积层所提取的特征
  • 论文: Visualizing and Understanding Convolutional Networks

二、ZFNet网络结构与关键技术

1、网络结构

可解释机器学习 Task02 - ZFNet深度学习图像分类算法_第1张图片
ZFNet的网络结构是在AlexNet的基础上进行了一定的修改,把第一层卷积层的卷积核的尺寸从11*11变成了7*7,把步长为4变成了步长为2,同时在后面的卷积层也增加了卷积核的个数

2、可视化的关键技术

可视化神经网络中间层的反卷积的技巧:针对特定卷积层,将其逆向重构回原始输入的像素空间,变成我们人类能够看懂的特征

可解释机器学习 Task02 - ZFNet深度学习图像分类算法_第2张图片
正向、逆向操作

逆向运算 正向运算
反卷积 卷积
反激活 激活
反池化 池化

(1)反池化的操作流程

在正向池化的过程中记录每一个最大像素所在的位置,反池化的时候对应每一个池化窗口按照对应的位置派遣回它原来的位置

可解释机器学习 Task02 - ZFNet深度学习图像分类算法_第3张图片

(2)反激活操作流程

仍然使用ReLU激活函数

(3)反卷积操作流程

使用正向卷积的转置

3、逆向重构(特征的复杂性随着层数的增加而增加)

(1)Layer1

特征较为底层,大多为边缘、颜色、轮廓等

可解释机器学习 Task02 - ZFNet深度学习图像分类算法_第4张图片

(2)Layer2(开始逆向重构)

  • 首先从第二层中选出十六个卷积核,找到原图中能够使这十六个卷积核激活最大的图片(每个卷积核挑九张)
  • 将这些图片传入第二层的 feature map,使用反卷积的技巧重构回原始的像素空间(即从右到左)

(3)Layer3-Layer5(与Layer2相似)

  • 其中Layer3、Layer4的卷积核 还具有特征一致性(同一个卷积核能体现相似特征)
  • Layer5的卷积核更为复杂,一些卷积核不具有一致性(可能提取的是语义特征,而非只是简单的长宽高的表面特征

4、不同层训练的异同

训练过程中,不同层的卷积核随着训练次数在发生着演变,从左至右每一列为同一训练次数下的卷积核,训练次数随着向右而增大、每一行表示一个卷积核

  • 底层的卷积核收敛速度较快、高层卷积核较慢
  • 有时会发生如同Layer4中的卷积核的突变,这样的突变表示能够使得卷积核激活最大的图片发生了改变(换了一张图片)

可解释机器学习 Task02 - ZFNet深度学习图像分类算法_第5张图片

不变性:对于图像进行竖直平移、缩放、旋转。横轴为变化程度(不同长度的平移、不同尺度的缩放、不同角度的旋转)纵轴为变换前后连两者特征向量的欧氏距离

  • a2、b2、c2:对于网络底层而言,微小的变化可以带来显著差异。(由于底层注意的是长宽高等基本属性)
  • a3、b3、c3:对于较高层而言(本实验为第7层),微小的变换带来准线性差异。(高层注意的是图片的语义属性)注意纵轴的尺度有别,b3的变化幅度为b2的1/10还要小
  • a4、b4、c4:变换后网络对于正确类别对应的概率(其中旋转具有一定的周期性,每旋转90°有一个尖峰)

5、遮挡测试

(1)不同特征

  • 第二列:灰色挡板在不同位置遮挡时对应的 _feature map_叠加求和
  • 第三列:
    • 黑框里:把不经遮挡的原图放到网络里,找到Layer5激活最大的 feature map,把它重构回原始输入像素空间可视化
    • 其他三张:从原始数据中找到的其他三张能够使同一个 feature map 激活最大的图片。(比如第一张是毛茸茸的特征、第二张是文字的特征、第三张是人脸的特征)
  • 第四列:遮挡不同部位时,网络识别出正确类别的概率
  • 第五列:遮挡不同部位时,网络识别出的类别

可解释机器学习 Task02 - ZFNet深度学习图像分类算法_第6张图片

(2)相同特征

遮挡不同狗的同一部位(左眼、右眼、鼻子、随机)。如果完全不同的狗我们遮住同一部位对于网络的影响是一样的,那么我们可以说深度学习隐式地定义了这个部位对狗这个类别的相关性

训练结果如下,其中的数值理解为遮挡前后对于特定层网络提取的 feature 的影响

  • 遮挡相同部位时,影响的差别较小——对于不同狗的影响是相同的
  • 随机遮挡时,影响的差别较大——对于不同狗的影响是不同的
  • 层数越深,影响的差别越小——层数越深,特征越从表面的形状等转向语义。

可解释机器学习 Task02 - ZFNet深度学习图像分类算法_第7张图片

你可能感兴趣的:(深度学习,分类)