DeepEyes: 用于深度神经网络设计的递进式可视分析系统 (DeepEyes: Progressive Visual Analytics for Designing Deep Neural Networks)

深度神经网络,在模式识别问题上,取得非常不错的效果。但设计一个性能好的神经网络,需要反复尝试,是个非常耗时的过程。这个工作[1]实现了用于深度神经网络设计的可视分析系统,DeepEyes。该系统可以在DNNs训练过程中,提取数据,从网络整体效果,神经层和神经元角度,分析神经网络运行状态,进而协助用户更新DNNs。

DeepEyes系统主要关注以下5种任务:

  1. 识别稳定层。在DNNs训练过程中,用户可以选择稳定的神经层,进行细节分析。
  2. 识别退化的神经元。当某个神经元对所有样本的反应都一样时,认为该神经元不能提供额外的信息,已经退化了,可以剔除。
  3. 识别未检测到的特征。如果某些特征未被检测到,表明当前网络需要更多的神经元和神经层。
  4. 识别过大的神经层。当某个神经层内存在许多退化的神经元,表明这个神经层内的神经元数目太多,可以减少。
  5. 识别神经网络中的神经层数目是否合适。

基于这些任务,他们设计实现了可视分析系统DeepEyes (图1)。

图1 DeepEyes系统架构

DeepEyes系统的输入数据是,感知区域的实例(instances of receptive fields)以及神经元对其的激励(activation)。感知区域的实例通过采样获得,采样率为50%。系统主要包括5个视图。

训练视图(Training Overview), 采用折线图形式实时展示DNNs训练过程中的失误度和准确度(loss and accuracy)。该视图结合困惑度直方图(perplexity histogram),可以帮助用户识别某个神经层是否处于稳定状态。

困惑度直方图,用于分析某个神经层的稳定程度。困惑度,常用来度量概率分布或概率模型的预测结果与样本的契合程度。困惑度越低,契合度越好。困惑度直方图的计算流程如图2所示:

图2 困惑度直方图的构建流程。(a)采样获得的感知区域实例;(b)针对每个感知区域实例,该层神经元的激励,颜色映射了激励值的大小;(c)将该层一系列神经元的激励转化为概率分布;(d)计算该神经层对每个实例响应的困惑度;(e)将连续的困惑度离散化,构建直方图。

在系统中,困惑度直方图如图3所示,红色的条柱表示困惑度处于该区间的实例在减少;绿色表示其数量在增加;高度与具体数值成正相关。

图3 困惑度直方图分析样例。上图描述某个神经网络第一个卷积层在不同迭代次数下的稳定状况;下图描述该神经网络第二个卷积层在不同迭代次数下的稳定状况。

当某个神经层处于稳定状态时,系统支持用户进行更为细节的探索。如图1所示,细节探索主要包括三个视图。

激励热力图(activation heatmap)(图4,5),帮助用户发现退化的神经元。在最大激励值热力图中(图4),如果矩形块的颜色偏深绿色,表示该神经元的最大激励值很小。说明该神经元已经退化,甚至死去(dead filters),在特征识别中,不能提供格外的信息,可以剔除。

图4 最大激励值的热力图。每个矩形块表示一个神经元,颜色与该神经元在一系列输入实例中,最大的激励值相对应。

频率热力图中(图5),如果矩形块的颜色偏深蓝色,表示该神经元几乎在所有的输入实例上,都是活跃的。说明该神经元在特征识别中,不能提供额外的信息,可以剔除。

图5 频率热力图。每个矩形块表示一个神经元,颜色与该神经元成功激励实例的概率相关。

输入图(input map)(图6),用神经元对实例的激励,描述每个实例;采用降维的方法,在二维平面上,分析描述实例的激励向量之间的关系。在图6中,如果两个节点很相近,说明这两个实例的激励向量很相似的,进一步可以推测,在该神经层,神经元认为这两个实例是相似的。

图6, 输入图。每个节点表示感知区域的实例,颜色表示该实例的标签。

神经元视图(filter map)(图7),展示神经元在激励实例上的相似程度。

图7 神经元视图。每个节点表示神经元;颜色表示神经元主要激励的实例对应的标签;大小表示该神经元与该标签的紧密程度,越大,表示越紧密。

在DeepEyes系统, 当用户在热力图或神经元视图中,选择某个神经元,输入图将展现出该神经元激励的实例(图8)。

图8 左图,某个神经元激励的实例;右图,退化的神经元几乎不能激励实例。

接下来,我将通过一个例子MNIST 网络,介绍DeepEyes的使用。在这个例子中,数据是7万张手写的阿拉伯数字图片,其中有1万张是带标签的数据。训练网络包括两个卷积层,每层的神经元数量分别是20和50;两个全连接层,每层的神经元数量是500和10。

MNIST网络的分析如图9所示。第一个卷积层的输入图(图9(a))非常混乱,不存在明显的聚类。表明该层只能识别比较基本的特征,不能对输入图象进行分类;从最大激励值热力图,我们可以发现一些退化的神经元 。说明该层神经元数量可以减少一点。观察第二个卷积层的输入图(图9(b))。其输入图相比图9(a),具有比较好的聚类特征,但依旧不够明显。但在第一个全连接层(图9(c)),我们发现输入图具有非常明显的聚类特点。每个类别内,节点的颜色一致,说明该层具备较强的分类识别能力。但类别之间存在一些模糊区域,查看实例,我们发现这是一些比较难识别的数字,比如7和9。但在第二个全连接图的输入图(图9(d)),我们发现聚类之间的距离比较大,说明该层的识别分类能力好。同时,在神经元视图中,我们发现每个神经元识别的标签是不一样的,且相互之间的距离比较大。

通过这个分析,发现MINST网络,可以减少第一个卷积层和第一个全连接层中神经元的数量。最后,他们将第一个卷积层神经元数量从20减少到10,将第一个全连接层神经元数量从500减少到100。经过2000次迭代后,网络的准确率达到98.2%。

图9 MNIST网络分析图。从左至右,依次是第一个卷积层,第二个卷积层,第一个全连接层,第二个全连接层。

总的来说,DeepEyes是一个用于设计深度神经网络的可视分析系统。该系统支持用户从稳定的神经层入手,分析输入实例获得的激励向量之间的相似性和神经元激励行为的相似程度,帮助用户分析神经网络状况,比如神经层数量是否不够,神经层内神经元的数量是否太多等。

 

参考文献:

[1] Pezzotti, N., Höllt, T., van Gemert, J., Lelieveldt, B. P., Eisemann, E., & Vilanova, A. DeepEyes: Progressive Visual Analytics for Designing Deep Neural Networks. VAST 2017.

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>