深度学习!是一门科学还是一门技术?
量化解释Explanations → Trustiness & diagnosis
怎么样使人类开始相信计算机呢?
案例1
计算机:我们必须对你的头做手术
人类:我为什么要相信你,让你砍掉我的头
计算机:这是因为:
1)过滤器检测到了器官A的病变;
2)过滤器检测到了器官B的病变。
案例2
有一场意外发生了
人类:告诉我交通事故前道路规划的原因?
计算机:因为:
1)过滤器1检测到一棵树;
2)过滤器2检测到人;
3)过滤器3检测到道路;
4)过滤器4检测到另一条道路…
人类:我发现过滤器4将河流视为一条道路
在CNN中修改表示缺陷
神经网络的可视化
过滤器编码的外观可视化
最终预测输出相关的像素
通过上面的案例,我们可以知道只可视化显著性信息,现在关键问题是要解释网络中的大部分信息(例如70%-90%信息)。
现在还是回归开始的问题,深度学习是一门科学呢还是一门技术呢?
深度神经网络→一种分段的线性模型→无法解释→我们永远无法得到100%的神经网络信息的精确解释
解释中间层的特征
语义上的
量化的
什么模式学习?比如,给定一个图像,哪些模式被触发。例如:90%的信息是可解释的,其中83%表示目标部件,7%表示纹理,10%不能被解释。
如何使用语义图形模型来表示CNN?
如何学习中间层的解耦、可解释的特性?
如何在不损害区分能力的情况下提高可解释性?
如何学习具有功能可解释结构的网络?
今天我们先说说第一条:如何使用语义图形模型来表示CNN?
学习CNN的解释性图
假设CNN是预训练的用于目标分类。
CNN的卷积过滤器记忆了多少类型的视觉模式呢?
特征图中激活的分布
哪些模式被共同激活来描述一个部分?
中间是不同卷积层的特征图,这些过滤器在某些区域被共同激活,以表示马的头部。
两种模式之间的空间关系是什么?
该图形具有多层 → CNN的多个conv层
每个节点 → 一个目标的模式
过滤器可以编码多个模式(节点) → 从滤波器的特征映射中分离出一个混合模式
每个边缘 → 共激活关系和两个模式之间的空间关系
输入 & 输出
输 入
输入是一个预先训练的CNN:主要为分类、分割或其他用途,主要有关的网络有AlexNet、VGG-16、ResNet-50、ResNet-152等近期较流行的网络框架。没有任何部件或纹理的注释。
输 出
最终的输出就是解释性图。
其中:
上面就像GMM一样,我们使用混合模式来拟合特征映射的激活分布。一个过滤器的特征映射 → “激活实体”的分布。挖掘解释性图:
解释图中部分模式之间的空间和协同激活关系。高层模式滤除噪音和解耦低层图案。从另一个角度来看,我们可以将低层模式视为高层模式的组成部分。
如上图所示,滤波器的特征映射通常可以由不同位置的不同目标部件激活。假设特征映射被N个峰激活,有些峰值表示目标的公共部分,我们称之为激活峰部分模式。然而,其他峰值可能对应于背景噪声。
我们的任务是从滤波器的特征图中发现有噪声的部分模式的激活峰。假设,如果一个峰值对应于一个目标部分,那么必须在类似的映射位置激活其他过滤器的一些模式;反之亦然。这些模式代表同一部分的子区域,并保持一定的空间关系。因此,在解释图中,将一个低层中的每个模式与相邻的上一卷积层中的一些模式连接起来,我们一层一层地挖掘部件图案,给定从上卷积层挖掘出来的模式,我们选择激活峰作为当前卷积层中的部分模式,与不同图像之间的特定上卷积层模式保持稳定的空间关系。
学习节点连接,学习节点间的空间关系。
挖掘多个聚类:一个具有多个父节点的节点V,它在不同的图像之间保持一定的空间关系。
使用解释性图中的每个节点进行部件定位:
我们从每个过滤器的特征映射中分离出每个模式分量。部件语义的纯粹性。我们在解释性图中绘制对应于每个节点的图像区域,并绘制与其他方法学习的每个模式相对应的图像区域(我们在右边显示了一些示例)。
知识转移→单/多部件定位
每个节点中的部件模式是使用大量图像复杂学习的。检索到的节点不与标记部分重叠,而是表示所有图像中常见的形状。
构造与或图的语义层次结构
输入:1)解释图,2)每个语义部分输出很少(1-3)注释;输出:AOG作为语义部分定位的可解释模型。将挖掘的模式与目标的语义部分关联起来,感谢张拳石老师工作。
End
如果想加入我们“计算机视觉战队”,请扫二维码加入学习群。计算机视觉战队主要涉及机器学习、深度学习等领域,由来自于各校的硕博研究生组成的团队,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。