图:pexels
「雷克世界」编译:嗯~阿童木呀
在过去的十年里,人工智能领域中的深度学习(DL)以惊人的速度迅速发展,其中,自2016年以来大约有35800篇相关研究论文得以发表。对于越来越多的研究人员和实践者来说,与日益增长的文学发展齐驱并进,逐渐成为一场真正的战争。在最近的一次AI会议——NIPS2016上,有关主题“深度学习或神经网络”所提交的论文数最多(约685/2500)。但是,这些研究论文中的大多数并没有伴随相应的实现。在NIPS2016中,只有101/567份(约18%)论文中的源码资源得以实现。对软件工程师来说,假设他们在深度学习领域的认知有限,那么至少需要花费几天时间才能将研究论文得以实现。
而另一个主要挑战是以多种编程语言实现DL算法的各种库的可用性,比如Tensorflow(Abadi等人于2016年提出)、Theano(Bastien等人于2012年提出)、Caffe(Jia等人于2014年提出)、Torch(于2011年提出)、MXNet(Chen于2015年提出)、DL4J(Gibson于2015年提出)、CNTK(Seide和Agarwal于2016年提出),以及诸如Keras(Chollet等人于2015年提出)、Lasagne(Dieleman于2015年提出)和PyTorch(Chintala于2016年提出)等封装的可用性。深度学习研究论文的公开实现可以在各种库中得以使用,且它们之间几乎没有互操作性或通信能力。考虑一个研究人员在“图像注释”研究中的用例,其中被高度引用的关于图像注释这个问题的三篇研究论文分别是:
1.《ShowandTell》(Vinallys等人于2015年提出):能够用Theano执行的原始实现;
2.《NeuralTalk2》(Karpathy和Fei-Fei于2015年提出):能够用Torch执行的原始实现;
3.《LRCN》(Donahue等人于2015年提出):能够用Caffe执行的原始实现;
拟议的创意系统的体系结构,从深度学习研究论文中提取和理解流程图,并在两种不同的平台上:Keras和Caffe,生成一种执行深度学习代码
由于这些实现能够用各种不同的库中得以执行,因此研究人员不能直接将模型组合在一起,而且,对于仍然停留在使用Java代码库(DL4J)的从业者来说,直接利用这些公共实现中的任何一个都是非常艰巨的。因此,在这里我们着重强调深度学习中两个被忽视的挑战:
1.缺乏一个可供现有研究运行的公共实现,因此在重现其结果时会需要时间。
2.现有的实现仅限于一个(或少数)库,从而限制了移植到其他流行的深度学习库的可能性。
我们观察到,大部分的研究论文都是通过图形或者表格来解释深度学习模型设计的。因此,在这项研究中,我们提出了一种全新的算法,该算法能够自动解析一篇研究论文从而提取文中所描述的深度学习模型设计。该设计可被表示为独立于实现库或语言的抽象计算图。最后,可以从深度学习设计的抽象计算图中生成多个库中的源代码。结果显示,在Caffe(prototxt)和Keras(python)中自动生成5000篇arXiv论文的源代码。但是,由于缺乏对比标准,对生成的源代码所进行的评估还是具有一定难度的。为了克服这个挑战,我们在Caffe和Keras中模拟了一个有216000个有效DL模型设计的大型图像数据集。为了生成深度学习可视化,我们手动定义了深度学习模型的语法。由于这些可视化技术的高度变化,它们可与研究论文中所展示的图形相媲美。因此,主要的研究贡献是:
1.一种分析研究论文中的图形和表格来自动理解深度学习模型设计的技术,
2.从一个深度学习设计的抽象计算图中Keras和Caffe中的源代码,
4.使用手动定义的语法在216000个深度学习模型可视化的模拟数据集上评估所提出的方法以实现超过95%的准确度。
1.所提出的这个管道只能检测到图中的层(斑点)和边缘,它可以扩展到检测和提取每个层的超参数值,从而使计算图具有更丰富的内容。
2.目前,我们有两个独立的管道,用于从表格和图形中生成抽象的计算图,结合从多模源获得的信息可以提高提取的深度学习设计流的准确性。
3.除了Keras和Caffe之外,整个DLPaper2Code框架还可以扩展为支持附加的库,比如Torch、Tensorflow等。





