深度学习是否能拥有“最初的记忆”?——深度向量嵌入的图表示法
译者的话
论文的原标题是“深度向量嵌入的图表示法”,该标题相对抽象,对没有一定技术背景的读者来说相对难以理解。所谓的向量嵌入,在图像处理领域常见的就是CNN(Convolutional Neural Network),CNN通过对图像做各种操作之后,将图像编码为向量化结构。但是这种获取向量嵌入的方法只是把模型最后一层的向量化表示给输出出来,而丢掉了网络的其他层对输入文本的特征抽取与表示。而本文原标题中提到的深度向量嵌入的图表示法的做法稍有不同。图表示法要把神经网络模型的所有参与编码的层都输出出来,从而能够得到神经网络对输入数据的所有特征表达(也可以称为嵌入表达)。把所有的嵌入式表达转换为拓扑结构,从而获取空间上的语义关系,这就是本文要探讨的深度向量嵌入的图表示法。
如果将深度向量嵌入的图表示法应用到基于CNN的文本分类领域,可以认为一篇文本在经过CNN处理的每一层,都会有一定的文本特征被提取出来,并构建成图。将文本集合送入深度神经网络之后,便会形成一个超大的基于文本特征的大图,在这个大图上可以做文本分类聚类等一系列任务。相对于我们目前所使用的基于向量的文本聚类方法,基于图的聚类方法或许有进一步探索的价值。
摘要
深度神经网络由于拥有非常强大的特征表示能力,作为类比,我们可以近似的认为预先训练好的神经网络本身是一门非常强大的描述性语言,该语言可以用于很多的用途。最为典型的应用是把深度神经网络特征表征映射到向量空间中去,然后很多传统的机器学习方法就可以基于这些向量空间进行算法的学习与训练。在本文中,我们引入了一套方法将经深度卷积神经网络编码的知识映射到拓扑空间中去,来构造图嵌入空间。基于所构造的图嵌入空间,我们会概括出其如何持有数据实例、如何持有数据特征、数据实例和数据特征之间的关系,以及数据特征之间的关系。最后,我们会进行一些初步试验,并通过图解析算法来论证如何使用图嵌入空间。
机器的“记忆迁移”
深度学习模型通过在大规模、高维度的输入数据集中寻找复杂的模式,来构造规模庞大的数据表示集合。在深度学习训练过程结束时,训练好的模型可以看作是一种数据表示语言,深度神经网络中每一个神经元所学习到的数据模式都可以被看作是该数据表示语言的词汇。数据模式的抽取和重用也构成了深度学习的一个子领域,被称为迁移学习(Transfer Learning)。把一个已经预先训练好的深度神经网络中所包含的数据模式,以参数初始化的方式迁移到一个新的深度神经网络中,不仅可以避免对新的深度神经网络参数进行随机初始化,还可以实现原有深度神经网络的知识迁移。由此可以预见,迁移学习相对于把新的深度神经网络参数进行随机初始化而言,其大幅度提升了网络的性能,从而为深度神经网络在有限数据集上的训练提供了可能。之所以要对迁移学习进行研究,其主要目的之一是为了在已有的深度神经网络的基础之上,训练另外的深度神经网络。另外一个目的是抽取神经网络中对输入数据的特征表征,从而其他的机器学习方法可以在已抽取的特征表征基础之上,进行进一步的学习训练。对于后者而言,我们也常把这一过程称为基于特征抽取的迁移学习,也是本文要重点探讨的内容。
深度神经网络所抽取到的特征表征通常来说都是向量,向量的长度代表了所使用的神经特征数量。向量嵌入空间可以以实例-属性对的方式馈入到分类器(典型的如Support Vector Machines)进行分类任务。不过这不是本文研究的重点,在本文中我们把向量嵌入空间转换为一种图表示法,并且能够被诸多的算法做进一步的处理,如社区发现算法(community detection algorithms)等。基于图或网络的算法通常都会聚焦于寻找图或网络内部各数据实例之间的关联,从而发现拓扑结构上的内在数据模式。相对于那些致力于寻找数据实例和属性之间相互关系的算法而言,两者所寻找的数据模式存在着非常显著的差异。本文提出了一套基于神经网络嵌入的能够用于构建图表示法的方法,把社区发现算法应用到我们所构建的图上,并给出性能分析报告。
向量嵌入的图表示法
向量嵌入通常都是通过捕获深度卷积神经网络(DCNN)输出层之前一层的输出,一般来说都是全连接层。然而,对于深度卷积神经网络而言,网络前面的层也都是可以用于特征抽取作用,尤其是在输入数据和预先训练模型的数据之间的关联性不是非常高的情形下。对于一个用于分类的CNN来说,网络前面的几层和后面的层,其行为上的显著差别是靠近类别输出层的部分其行为非常接近于判别行为,神经元的激活也是零星的、偶发性的,行为表现干脆利索。而离输出层较远的网络部分,其行为表现更像是描述性的,激活比较频繁,而且行为表现通常较为模糊,不像靠近输出层网络那般干脆利落。
在本文中我们会生成一个图表示,该图表示可以捕获拓扑空间内的数据属性(通过顶点和关系来实现)。如果我们用单一层的嵌入来完成上述任务的话(典型的是用全连接层嵌入),那么所构建的图表示的内容会非常干涩,因为这种方式其实只选取了激活神经元集合中的很少的子集,相对于深度神经网络学习到的所有数据模式而言,其丢失了绝大多数的信息。为了确保所构建的图表示内涵足够丰富,且能支持网络分析算法在其上做进一步处理,我们这里在构建图表示时使用了整个网络的嵌入,包含了CNN中的所有卷积层和全连接层。在前述条件下,网络的嵌入空间足够大,从而生成的图表示会更大、内涵更丰富。
下一部分我们会简要的介绍全网络嵌入,并在本部分的结尾给出我们如何把嵌入空间映射到拓扑空间,生成图表示。
全网络嵌入
全网络嵌入(FNE: Full Network Embedding)会对网络的输入数据实例生成相对应的特征表示,该特征表示是通过捕获卷积神经网络中每一个卷积层和全连接层的激活值构成。为了把每一层所找到的特征集成一体,FNE涵盖了一系列的处理步骤,整个处理过程如图1所示。
在抽取到每一层的激活值之后,FNE对卷积层的激活输出做了空间均值池化操作。通过该操作之后,每一个卷积层的神经元就可以输出嵌入空间里的单一标量值(全连接层也是同样的道理)。经过空间池化之后,FNE还进行了一个特征标准化操作。这一步变换的主要目的就是要使得不同神经元输出的标量值标准化,从而使得每一个神经元的激活值都有一个统一的值域范围,而不再关注其来源于CNN的哪一层。如果不做标准化的话,靠近网络输出层的向量表示将会主导整个嵌入表示,因为其激活后的权值比较大,在嵌入向量空间里面占比较高。
最后,FNE把所抽取到的特征进行离散化,把所有的特征值都映射到[-1, 0, 1]三元数值中去。这一操作可以减少噪音,修正嵌入空间。在FNE中,离散操作是通过阈值元组(-0.25, 0.15)来实现的。对于任意给定的输入数据而言,该元组决定了特征出现与否(1表示特征激活值很高,-1表示特征激活值很低)。在我们的实验中,我们按实际需要设定的阈值元组为(-2.0, 2.0)来控制图的稀疏度适中,从而方便网络分析算法的应用。
图表示法
FNE对每一个输入数据都生成了向量表示,其特征值取值为-1、0或1。这些值代表了特定神经元对输入数据过滤之后的相关性,-1意味着特征未出现、0代表特征无关、1代表特征出现。在本文中,我们会基于这些嵌入的特征表征来构建拓扑图,并且使用相关算法来挖掘图中数据实例与数据实例之间的关系,从而寻找到拓扑图中所编码的一些隐藏内部信息。
顶点
数据实例和特征构成的边
特征与特征之间连成边
实证分析
为了评估深度嵌入空间的图表示法,我们的模型架构为VGG16CNN(详情可以参考文献21),并且在ImageNet数据集上进行预训练。在预训练的模型上,我们依次处理了以下四个不同的数据集。数据集的详细介绍请参见表1:
Ø MIT室内景观识别数据集,该数据集包含67类不同的室内景观;
Ø Oxford花类数据集,包含102类不同的花;
Ø 可描述的纹理数据集,该数据集的纹理可以分为47中类目;
Ø Oulu Knots数据集,该数据集是一系列来源于杉树林的树木结图片,类别按照Nordic Standards进行划分。
对于这些数据集中的每一张图片,我们都会获取其全网络嵌入表示。在VGG16架构下,经嵌入之后我们得到包含12416个特征向量,并基于这些向量来构建数据实例的图表示。
为了探索图表示的内在隐含信息,我们对图表示应用社区发现算法(Fluid Communities (FluidC) algorithm)。我们之所以选择这个算法,主要有三方面原因:其一是因为该算法是基于有效标签传播方法,性能上优于传统的LPA算法;其二该方法还能允许我们指定聚类类别数目;其三该方法经过少量变更就可以适用于我们的实验环境。由于图是由数据实例和特征构成,但是只有数据实例才有标签,特征不存在标签,聚类效果的评价只能在数据实例顶点上实现。因此我们必须确保社区发现算法所挖掘出来的“社区”至少包含一个数据实例顶点。要实现这个需求,我们必须对FluidC算法进行修改,强制使其按照数据实例顶点来进行“社区”的初始化。
通过算法所挖掘的类簇,与原有数据集的标签进行相似度计算,来评价算法的有效性。我们使用NMI和AMI两种方法来衡量最终的结果。对每一个数据集所做的实验结果汇总如图2所示。
所有的实验都是在ImageNet2012上进行预训练,然后使用VGG16模型进行嵌入来完成,实验结果可以在网上免费获取,其中特征抽取过程是用Caffe来实现。图算法的实现是用NetworkX v2.0里面的FluidC。
相关研究
图和深度神经网络的相关性已经有前人进行了研究,不过大多数研究都是从不同的角度来展开。不同于大多数研究来训练DNN来处理图数据,本文所提出的方法是把CNN进行图像嵌入的过程进行图表示。举例来说,DeepWalk使用图内的随机漫步,把获取的结果送入SkipGram模型,然后评估社区发现算法在这些图上的效果。和DeepWalk类似,Cao et al的研究也是把处理图的结果作为输入,不同的是其使用了有权图上的概率性方法来获取图,并将其送入自编码器。而我们的研究是在图片数据集上使用社区发现算法,就我们所知,目前还没有人进行相似的研究。
结论
如何基于深度卷积神经网络的嵌入来构建图表示法,本文所提出的方法只是第一步。我们详细给出了如何构建包含了图片和特征的图表示,如何用拓扑结构表现图片和特征之间的关系,以及特征与特征之间的关系。通过这些工作,深度学习模型所获取的知识表示能够方便的供其他算法进行进一步处理。
实验结果非常振奋人心,像FluidC这样的基于拓扑结构的算法完全有能力从空间拓扑信息中识别出图片的类别。聚类结果可以通过网络解析工具来搜索,和基于传统的运行于向量空间的算法(如KMeans)大为不同。实际上,深度的分析可以看出,FluidC算法能够利用顶点之间的路径来聚类,因此能够聚合图内所有可能的路径信息,而以KMeans为代表的基于距离的方法就不能这种信息。如果考虑到运行其他不同类型的算法,那么本文所提出的方法就非常有意义,因为它开启了利用和复用预先训练的深度神经网络嵌入结果,来进行机器学习的新大门。在更好的理解深度表征的道路上,我们只是迈出了一小步,如何利用经过神经网络所编码的知识进行更加广泛开放的研究,需要投入更多的研究力量。
未来展望
本文所展示的实验更多是探索性的,用于验证深度向量嵌入用图来表示的可行性。客观理性的说,把本文中所提出的方法和其他一些替代性方法比较,如与基于向量的聚类方法比较,其结果还是让人满意的。然而聚类结果的评价一直都是有争议的话题,因为聚类结果并不是唯一的,也许有其他维度给出完全不同的聚类结果。
对本文提出的方法的更有意义的评价是看图所能捕获到的语义信息。为了这样的设想,我们考虑扩展模型,让其包含一些有向有权边,以及本体关系。一旦实现这样的目的,我们就可以在这样的图表示法之上进行一些推理方法,从而评价图表示法所捕获到的语义信息的丰富程度和有用性。
参考文献
[1] Azizpour, H., A. S. Razavian, J. Sullivan, A. Maki, and S. Carlsson (2016). Factors of transferability for a generic convnet representation. IEEE Transactions on Pattern Analysis and Machine Intelligence 38(9), 1790–1802.
[2] Branson, S., G. Van Horn, S. Belongie, and P. Perona (2014). Bird species categorization using pose normalized deep convolutional nets. arXiv preprint arXiv:1406.2952.
[3] Cao, S., W. Lu, and Q. Xu (2016). Deep neural networks for learning graph representations. In AAAI, pp. 1145–1152.
[4] Cimpoi, M., S. Maji, I. Kokkinos, S. Mohamed, and A. Vedaldi (2014). Describing textures in the wild. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 3606–3613.
[5] Donahue, J., Y. Jia, O. Vinyals, J. Hoffman, N. Zhang, E. Tzeng, and T. Darrell (2014). Decaf: A deep convolutional activation feature for generic visual recognition. In Icml, Volume 32, pp. 647–655.
[6] Garcia-Gasulla, D., F. Par´es, A. Vilalta, J. Moreno, E. Ayguad´e, J. Labarta, U. Cort´es, and T. Suzumura (2017). On the behavior of convolutional nets for feature extraction. arXiv preprint arXiv:1703.01127.
[7] Garcia-Gasulla, D., A. Vilalta, F. Par´es, J. Moreno, E. Ayguad´e, J. Labarta, U. Cort´es, and T. Suzumura (2017). An out-of-the-box full-network embedding for convolutional neural networks. arXiv preprint arXiv:1705.07706.
[8] Ge, W. and Y. Yu (2017). Borrowing treasures from the wealthy: Deep transfer learning through selective joint fine-tuning. arXiv preprint arXiv:1702.08690.
[9] Gong, Y., L. Wang, R. Guo, and S. Lazebnik (2014). Multi-scale orderless pooling of deep convolutional activation features. In European conference on computer vision, pp. 392–407. Springer.
[10] Liu, C., Y. Cao, Y. Luo, G. Chen, V. Vokkarane, and Y. Ma (2016). Deepfood: Deep learning-based food image recognition for computer-aided dietary assessment. In International Conference on Smart Homes and Health Telematics, pp. 37–48. Springer.
[11] Mousavian, A. and J. Kosecka (2015). Deep convolutional features for image based retrieval and scene categorization. arXiv preprint arXiv:1509.06033.
[12] Nilsback, M.-E. and A. Zisserman (2008). Automated flower classification over a large number of classes. In Computer Vision, Graphics & Image Processing, 2008. ICVGIP’08. Sixth Indian Conference on, pp. 722–729. IEEE.
[13] Par´es, F., D. Garcia-Gasulla, A. Vilalta, J. Moreno, E. Ayguad´e, J. Labarta, U. Cort´es, and T. Suzumura (2017). Fluid communities: A community detection algorithm. arXiv preprint arXiv:1703.09307.
[14] Perozzi, B., R. Al-Rfou, and S. Skiena (2014). Deepwalk: Online learning of social representations. In Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining, pp. 701–710. ACM.
[15] Quattoni, A. and A. Torralba (2009). Recognizing indoor scenes. In Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on, pp. 413–420. IEEE.
[16] Ren, R., T. Hung, and K. C. Tan (2017). A generic deep-learning-based approach for automated surface inspection. IEEE Transactions on Cybernetics.
[17] Russakovsky, O., J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, et al. (2015). Imagenet large scale visual recognition challenge. International Journal of Computer Vision 115(3), 211–252.
[18] Sharif Razavian, A., H. Azizpour, J. Sullivan, and S. Carlsson (2014). Cnn features off-the-shelf: an astounding baseline for recognition. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops, pp. 806–813.
[19] Silv´en, O., M. Niskanen, and H. Kauppinen (2003). Wood inspection with non-supervised clustering. Machine Vision and Applications 13(5), 275–285.
[20] Simon, M. and E. Rodner (2015). Neural activation constellations: Unsupervised part model discovery with convolutional networks. In Proceedings of the IEEE International Conference on Computer Vision, pp. 1143–1151.
[21] Simonyan, K. and A. Zisserman (2014). Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556.
[22] Xu, Z., S. Huang, Y. Zhang, and D. Tao (2015). Augmenting strong supervision using web data for fine-grained categorization. In Proceedings of the IEEE International Conference on Computer Vision, pp. 2524–2532.