想必大部分深度学习工作者对于应用前沿深度框架已经驾轻就熟,然而,有多少人有想过,在越来越复杂的网络框架和越来越多的神经元数量中,每个神经元本身所起到的作用?这不,MIT朱俊彦团队以及港中文周博磊的力作——《Understanding the role of individual units in a deep neural network》就深入讨论了这个问题,并且已经成功被PNAS(Proceedings of the National Academy of Sciences of the United States of America,美国科学院报)接收。在这篇文章中,作者不仅详尽展现了团队成员这些年在此领域所做的探索和努力的成果,还启发性地提出了此项研究的两个潜在应用,接下来,我们一起来深入详细了解一下此项有趣的伟大工程吧:深度网络中独立隐藏单元可以教会我们神经网络是如何解决复杂问题吗?在最前沿的深度神经网络研究中, 研究者们已经观察到,许多独立的神经单元可以对应一些人类可以理解的具体概念,而这些概念是训练之初人们并没有主动交给网络去学习的,比如:物体(对象),区域(部分),性别,语境,结构,事态,感情等等。而找到这些具有实际意义的抽象概念,是深度学习的主要目的之一,然而,至今,每个具有明确涵义的单元的出现,以及在网络中扮演的角色并不能被非常好的理解。因此,本篇文章就开始了灵魂发问:“我们可以量化单个概念单元的出现吗?哪种具体概念可以被对应到呢?它们又服务于哪个函数呢?”当一个神经网络包括一个激活树的生成单元的时候,我们希望去知道这到底是虚假的关联,抑或是因为某些逻辑上的原因,使得网络在高层次上对树这一对象进行建模的过程得以显露。为了研究以上问题,朱俊彦&周博磊团队引入了网络解剖模型,此模型主要对深度卷积神经网络(CNN)的语义概念进行了系统的映射。在此类网络中,基本的计算单元是一个学习过的卷积过滤器,而这是解决一系列计算机视觉领域中广泛的判别和生成任务的最新结构。通过将每个神经元的活动和对于人类的可解释模式匹配任务(比如物体类别检测)进行对比,神经网络解剖可以定义,可视化和量化独立神经元的具体角色。和前人研究不同的是,本文直接对网络内部的计算进行了解释,而不是训练一个辅助解释模型。在本文的处理中,研究人员主要将在两种不同任务上训练的模型进行了解剖,这两个任务分别是图像分类和图像生成。研究人员发现,一个训练好的网络包含和高层次视觉概念相对应的神经单元,而这些并没有在训练数据中标记出来。举个例子,当模型被训练用来分类或者生成自然风光图片的时候,两种网络都出现了和“树”的概念相对应的独立神经元,即使在训练过程中,研究人员从来没有教给神经网络“树”的概念。而这一工作,可以促使研究人员利用激活或者关闭神经元的方法,进一步测试网络行为的推理结构。下面是对两种网络的探索的简单概括:
首先,在景色分类任务训练时,研究人员对物体检测器对应的单元进行了定义。具体来说,研究者对VGG-16结构的CNN网络进行了分析,而分类任务则使用了从MIT计算机科学和人工智能实验室风景识别数据库中提取的Places365数据集,将图像分为365个风景类别。研究人员分析了13个卷积层中所包含的所有单元,并将高于阈值(对应于单元u的激活函数的top1%值)的激活区域进行高亮,结果如图下所示:通过上图,我们可以看出,此区域对应于人类的头部。接着,为了定义对应于语义概念的过滤器,研究人员使用了图像分割模型来去衡量每个过滤器和视觉概念c的一致关系,该分割模型可以预测图像x位置p的视觉概念c的存在。为了量化概念c和单元u的对应关系,研究人员使用了IoU(Intersection Over Union)比率:研究人员在支持验证图像集上计算了IoU比率。在验证集上,针对1825个分割概念c(包括物体类别,物体的一部分,材料和颜色),每个单元都有自己的得分。接着,研究人员根据最高得分的匹配概念对单元进行了标注。下面几张图展示了在具有最高单元激活函数值的五张图片中部分具有标签的概念检测单元:飞机(物体):人类头部(物体部分):材料:研究人员将conv5_3对应于每个分割概念的单元罗列了出来(不包括IoU比率 < 4%的单元),这个结果可以展示对应于每个语义概念的单元的出现频率:在不同卷积层中,最后一层具有最大数量可以被单元检测出的物体类别,然而,检测物体部分的单元数量在之前(conv5_1)就达到了峰值:很有趣的是,即使在训练的时候并没有标记,物体检测器依然出现了。下图展示了单元150(对应于物体飞机)在飞机和非飞机样本图像上的活跃度: