目录

  • 背景描述
  • 任务一:场景分类任务的分析
    • 数据集与模型
    • 网络分析方法
    • 实验结果
      • 实验结果分析
      • 实验结果验证
  • 任务二:场景生成任务的分析

背景描述

大量的实验证明,深度神经网络擅于找到大型数据集上的分层表示(hierarchical representations),但人类难以理解这些分层表达,于是研究人员针对图像问题,通过可视化方式对网络进行了探究。

最初的最经典的ZFNet发现层数越靠后,其学习到的内容越抽象,然后逐渐引出了两个常见的可视化手段:可视化特征图,可视化滤波器;

本篇内容来自论文 “Understanding the Role of Individual Units in a Deep Neural Network”,论文提出了一种分析卷积神经网络中单元(Unit,即filter)的方法,并在分类任务和对抗生成任务中验证了其效果。

任务一:场景分类任务的分析

数据集与模型

数据集为Place365,这是一个场景分类的数据集,将图像分类为365个场景类别:

模型使用VGG-16,模型结构如下:

VGG-16包括13个卷积层,5个pooling层,3个全连接层,由于只有卷积层和全连接层有可学习参数,故得名VGG-16(13+3=16);

网络分析方法

首先,为卷积层中的每个单元uuu定义操作au(x,p)a_{u}(x,p)au​(x,p),这是一个激活函数,它不同于平时深度学习所见的激活函数,该函数反应了卷积层中某个单元uuu对图像xxx的位置ppp输出的一个信号值。再次说明,单元即卷积网络中的filter,每个卷积层由多个filter构成,每个filter用于检测一种特征;


一个卷积层包含多个filter,每个filter的kernel数量等于输入张量的通道数,输出张量的通道数量就是filter的个数,一个filter中的各个kernel是不同的;
可以理解为不同的filter提取不同的局部特征,filter内的kernel不同是为了获取输入张量上不同通道的局部信息,最后加和得到该filter对应的局部特征相似度;


下一步,我们取对于所有图像的au(x,p)a_{u}(x,p)au​(x,p)值的前1%,具体如下:定义Px,p[⋅]P_{x,p}[\cdot]Px,p​[⋅]表示一个事件遍历所有图像中的所有位置后,其为真的可能性,所以可以得到阈值tut_{u}tu​:tu=maxtPx,p[au(x,p)>t]≥0.01t_{u}=max_{t}P_{x,p}[a_{u}(x,p)>t]\geq 0.01tu​=maxt​Px,p​[au​(x,p)>t]≥0.01注意遍历对象是所有图片的所有位置,根据阈值,我们对所有图像做操作,让大于该阈值的区域高亮,(注意上面的操作只是针对某个卷积中的单元Unit而做的),对于下图,显示了在某一个图像里,对于不同Unit做了高亮操作,可看出各个对象被激活的情况:

然后,论文借助了一个额外的工具,这是一个来自旷视科技的语义分割模型 “Unified Perceptual Parsing for Scene Understanding”,旷视科技提出一种称之为统一感知解析(Unified Perceptual Parsing/UPP)的新任务,要求机器视觉系统从一张图像中识别出尽可能多的视觉概念。同时,多任务框架 UPerNet 被提出,训练策略被开发以学习混杂标注(heterogeneous annotations)。旷视科技在 UPP 上对 UPerNet 做了基准测试,结果表明其可有效分割大量的图像概念。这一已训练网络进一步用于发现自然场景中的视觉知识。


人类视觉系统一眼即可从一张图像中提取大量语义信息。人类不仅可以立即解析其中的物体,还能识别细节属性,比如其部分、纹理和材质。如下图所示,这是一间起居室,有着很多不同物体,比如一张咖啡桌,一幅画,以及墙面。同时,我们还看到,这是一张四腿咖啡桌,桌面之上有一块桌垫,以及桌子是木质的,沙发表层是针织的。可见,从材质、纹理的视觉感知到物体及其部分的语义感知,我们对这一视觉场景的描述是多层次的;

该语义分割模型可以获得目标对象,以及部件,材料,颜色,纹理等视觉概念信息。

语义分割模型记作sc(x,p)→{0,1}s_{c}(x,p)\rightarrow\left\{0,1\right\}sc​(x,p)→{0,1},对视觉概念ccc,模型为图像xxx中的每个位置ppp输出0或1,表示该像素是否属于该视觉概念。


论文使用 “Unified Perceptual Parsing for Scene Understanding” 中的语义分割模型获取到图像中的视觉概念,这些视觉概念可概括为:对象类别(objec),部件类别(part),材料(material),颜色(color)

然后用IoU量化视觉概念ccc与单元uuu之间的一致性:IoUu,c=Px,p(sc(x,p)∩(au(x,p)>tu))Px,p(sc(x,p)∪(au(x,p)>tu))IoU_{u,c}=\frac{P_{x,p}(s_{c}(x,p)\cap(a_{u}(x,p)>t_{u}))}{P_{x,p}(s_{c}(x,p)\cup(a_{u}(x,p)>t_{u}))}IoUu,c​=Px,p​(sc​(x,p)∪(au​(x,p)>tu​))Px,p​(sc​(x,p)∩(au​(x,p)>tu​))​这个IoU是在验证集上计算的,每个单元都要与1825个视觉概念进行评分,根据IoU的结果,用得分最高的视觉概念ccc标记单元uuu;

实验结果

实验结果分析

实验结果如下:

A图:展示了VGG16的架构;

B图:在输入的某张图像上可视化了conv5_3的单元10的激活(高亮部分为超过其前1%分位数的区域),可以看出该区域对应的人的头部;

C图:显示了几个具有视觉概念检测功能的单元(conv5_3的单元150,208,141),以及它们对应的激活可视化图像,它们分别用于检测飞机,人头,毛发;

D图:显示了conv5_3中的512个filter(单元)匹配到的视觉概念统计情况,一共匹配到51个object,22个part,12个material,8个color,有的视觉概念匹配到多个单元,比如plant匹配到接近8个单元,这说明有些滤波器的工作是重复的,或许可以作为网络化简的依据

E图:比较了VGG-16中13个卷积层匹配到视觉概念的统计情况,在不同层中,最后一个层检测到的object数量明显更多;

F图:将conv5_3的单元150作为飞机的检测器,用ImageNet中的图像进行实验,F图显示了飞机和非飞机对象的样本通过单元150输出的激活统计,在jitter图上,横轴代表通过单元150后输出的得分(激活程度),jitter图上面的是概率密度图,体现了样本的概率分布;可以看出单元150确实能很清晰地将飞机样本与非飞机样本划分开(单元150对于飞机样本输出地平均激活值为88.1,对于非飞机样本输出地平均激活值为0.8


jitter图

一维散点图对于小数据集是足够描述的。 然而,当某个对象发生不止一次时,相应的数据点就会在对应位置相互重叠,这使得它们无法区分开来。一种解决办法是将每个点从原始位置向其他维度移动一个小的随机数,这种技术称为抖动,并且所得到的图是抖动图(jitter图)


实验结果验证

通过移除一些单元,从而验证这些单元在场景分类中的作用,我们强制让指定的单元输出0(神经元失活),确保网络其余部分完好,并且没有再训练。得到以下结果:

A图:当移除了类别 ski resort 最重要的conv5_3的4个单元:snow,mountain,house,tree top后, ski resort 的分类准确率显著下降;

B图:分别移除对 ski resort 分类的4个最重要的,20个最重要的,492个不重要的unit,查看分类准确率的变化情况;

C图:统计移除不同数量的重要的单元和不重要单元后,对应的准确率分布,发现一个有趣的现象,移除掉一些不重要单元后反而可以提高准确率;

D图:对365个场景类的每一类都分别做重复实验,不移除任何一个单元,去除20个最重要的,去除492个不重要的单元,对分类的影响,横坐标代表单个类别的分类准确率;

E图:表明最可解释的uint是对许多场景类别判断都很重要的单元;

任务二:场景生成任务的分析

在生成网络中,上采样操作包括反卷积,反卷积包括卷积运算,所以用同样的分析方法研究反卷积中的单元,结果如下:

图 A:PGGAN 的模型结构图;

图 B:unit 381 激活区域的可视化;

图 C:对网络中每一层进行了网络解剖;同分类网络不同,生成网络的概念单元都集中在网络的中间,第 5 层出现匹配最多的概念单元;

图D:将 layer5 匹配的概念单元跳出,匹配到 14 个 object、33 个 part、1 个 material、6 个 color,同分类网络不同,匹配的 part 多于 object;

图 E:可以看到高亮区域是针对特定概念的不同外观,如不同风格的烤箱、不同颜色和形状的凳子;

图F:将 314 unit 作为区分生成图像是否有大窗子的图像分类器,从图像可以看出,有大窗子的图像和没有大窗子的图像阈值有很大的差距;

图G:当 314 unit 不激活时,也有大窗子出现,这表明,其他单元也有生成大窗子的作用;


将生成对抗网络中的某些隐藏单元激活或停用,观察生成样式的变化:

图 A 和 B:移除跟生成tree相关的unit,移除 Tree 的 unit 越多,树的数量越少;

图 C:强制让 20 个最相关的 door unit 激活后的效果,会根据位置产生不同的门,或根本没有门;

图 D:测试 10, 000 张图片,在每个 feature map 位置都测试,door 被添加的区域情况,门可以添加到合理的位置,如窗户,但不能添加到异常位置,如树上或天空;

上面是一个应用实例:理解对抗性攻击 (understanding adversarial attacks)

图 A:正确分类的 ski resort (滑雪胜地) 被分类为 bedroom (卧室);

图 B:显示了与 ski resort 和 bedroom 最相关的 4 个重要单元的激活值变化,发现同 ski resort 相关的单元 activation 值下降,同 bedroom 相关的单元 activation 值上升;

图 C:当被攻击时,超过 1000 幅图像被错位分类为不正确的 target 类别,其中,activation 值变化最多的是 source 和 target 最相关的 4 个单元;

另一个应用是语义图像编辑 (semantic image editing),对一些对象概念进行编辑,每个概念与 20 个 unit 相关联,当用户想添加或去除一个概念时,与概念对应的 20个 unit 被激活或被置 0

单个神经元在深度网络中的作用相关推荐

  1. PNAS | 理解单个神经元在深度神经网络中的作用

    本次报道论文为发表于PNAS的Understanding the role of individual units in a deep neural network.众所周知,深度神经网络擅长查找可解 ...

  2. 交换机链路聚合在网络中的作用

    交换机链路聚合在网络中的作用  分类: 系统运维 链路聚合有成端口聚合,断口捆绑,英文名port trunking.功能是将交换机的多个低带宽端口捆绑成一条高带宽链路,可以实现链路负载平衡.避免链路出 ...

  3. 卷积在深度学习中的作用(转自http://timdettmers.com/2015/03/26/convolution-deep-learning/)...

    卷积可能是现在深入学习中最重要的概念.卷积网络和卷积网络将深度学习推向了几乎所有机器学习任务的最前沿.但是,卷积如此强大呢?它是如何工作的?在这篇博客文章中,我将解释卷积并将其与其他概念联系起来,以帮 ...

  4. 卷积在深度学习中的作用

    转自  http://www.mamicode.com/info-detail-2340306.html 卷积可能是现在深入学习中最重要的概念.卷积网络和卷积网络将深度学习推向了几乎所有机器学习任务的 ...

  5. 关于深度网络中的Normalization:BN/RBN/WN/LN的记录

    深度前馈网络中前层输入的变化往往会引起后面层的变化,后面的层需要不断地调整自己的参数去适应前层的输入变化,这被称为internal covariance shift.这不仅会使网络训练变得缓慢,同时会 ...

  6. 深度网络中的上采样总结

    一.上采样概述 在深度学习中,上采样是一种使图像分辨率变高的方法/技术. 目前有以下几种基本的上采样方法: 1. UpSample + Conv 1X1 2. ConvTransposed 3. Co ...

  7. Gear 在 Polkadot 网络中的作用是什么?

    Polkadot 是什么? Polkadot 是一个先进的区块链,它将多个不同的区块链整合成一个统一的.可扩展的网络.这意味着 Polkadot 本质上允许不同的区块链网络能够相互通信,这也被称为互操 ...

  8. iRegNet3D:疾病相关SNP位点在三维调控网络中的作用

    欢迎关注"生信修炼手册"! iRegNet3D将疾病相关的SNP位点与染色质互作联系起来,以此来探究SNP在疾病中的具体功能机制,对应文章的链接如下 https://genomeb ...

  9. 阿贡国家实验室:量子中继器及其在量子网络中的作用

    很多人小时候都玩过传声筒游戏:A将消息小声告诉B,然后B将他听到的内容小声告诉C,依此类推,玩过的人都知道,最后传达到的信息往往和真实消息完全不同. 从某种意义上说,这和中继器技术的重要性强相关.中继 ...

最新文章

  1. 中文NER任务简析与深度算法模型总结和实战展示 转 作者原创的不错,很有水平,需要研读
  2. InputStream、OutputStream、String的相互转换(转)
  3. MPLS、SD-WAN孰优孰劣?
  4. 机器视觉资料汇总(2)
  5. TCP/IP的初步理解,TCP和UDP的区别
  6. 如何在Cocos2D游戏中实现A*寻路算法(三)
  7. SOA安全性解决方案
  8. 联想重装系统去掉保护_解决方法:联想硬盘保护系统EDU7.0安装方法
  9. python ocr文字识别竖排繁体_古籍族谱繁体竖排中文识别图文攻略-千百OCR
  10. Amos中介效应检验
  11. 项目方案及推进项目的基本流程思路
  12. Golang观察者设计模式(十九)
  13. 情人节相关的公众号图文这样排版,看过的都说美!
  14. 【架构实践】分布式环境脑裂与Lease机制具体是什么?
  15. 解读《领域驱动设计 软件核心复杂性应对之道》(一)
  16. 固态硬盘能提高服务器内存吗,内存涨疯了!固态硬盘能替代内存吗?
  17. IPVS(也叫LVS)的源码分析之persistent参数
  18. [大数据技术与应用省赛学习记录一]——软件准备
  19. 使用MATLAB求图像的形心、外接矩形顶点坐标并标记
  20. 【PHP + MySQL】【分享】搭建网站自动回复机器人

热门文章

  1. 之前遇到一位老面试官,问我的问题真的有点东西
  2. JVM的架构和执行过程
  3. 熬夜精心整理的一线大厂大数据、人工智能全套教程下载(含视频+源码)!!...
  4. 使用Hadoop和ELK进行业务代码分析!分分钟捉到Bug!
  5. 国内外最顶级的8款OKR管理工具盘点
  6. [JLOI2011]飞行路线
  7. 控制-超前校正-C语言实现
  8. ubuntu软件安装(个人PC)
  9. c++多线程并发执行
  10. 操作系统安全加固的作用