学界 | 从深度学习研究论文中自动生成可执行源代码

选自arXiv

机器之心编译

参与:路雪、刘晓坤

大部分研究论文缺乏相应的开源实现,在不同的库中复现研究论文的实现也是一大难题。因此,这篇论文的作者提出一种新型算法,可以自动解析论文,提取文中描述的深度学习模型设计,并生成 Keras 和 Caffe 可执行源代码,在模拟数据集上的实验表明该框架对流程图内容提取的准确率达到了 93%。

过去十年,深度学习在人工智能领域飞速发展,自 2016 年以来就发布了 35800 篇研究论文。与论文一样不断增长的还有研究者和从业者真实的努力和奋斗。在近期的一次 AI 会议 NIPS 2016 上,提交论文中出现最多的主题(~685/2500)是「深度学习或神经网络」。然而,大部分研究论文缺乏相应的实现。在 NIPS 2016 中,只有约 18%(101/567)的论文具备实现过程。研究论文的实现至少需要软件工程师数天的时间,假设他们在具备深度学习领域的有了解的话(Sankaran et al. 2011)。

因此,这篇论文的作者提出一种新型算法,可以自动解析论文,提取文中描述的深度学习模型设计。该设计以抽象计算图的形式呈现,独立于实现库和语言。最后,利用该抽象计算图在多个库中生成源代码。

这篇论文的主要研究贡献为:

1. 通过解析论文中的图表自动理解深度学习模型设计的技术;

2. 利用深度学习模型设计的抽象计算图在 Keras 和 Caffe 中生成源代码;

3. 为 5000 篇 arXiv 论文自动生成模型设计,构建一个 UI 系统,从而以众包的方式编辑它们;

4. 在包含 216000 个深度学习模型可视化图的模拟数据集上,使用手动定义的语法评估论文提出的方法,准确率超过 93%。

论文地址:https://arxiv.org/abs/1711.03543

深度学习领域涌现了大量研究论文,使得对现有研究的复现和使用成为一项挑战。原因在于缺乏作者提供的开源实现。此外,将研究论文在另一个库中重新实现也是一项非常困难的任务。为了解决这些问题,我们提出了一种新的可扩展方法 DLPaper2Code,用于提取和理解研究论文中的深度学习设计流程图和表格,并将它们转换为抽象的计算图。提取出来的计算图会实时在 Keras 和 Caffe 中被转换为可执行的源代码。我们创建了一个类似于 arXiv 的网站,并在上面公开发布了 5000 篇研究论文的自动生成设计。生成设计可以用众包的方式使用一种直观的拖拽式 UI 框架进行评价和编辑。为了评估我们的方法,我们用手动定义的语法创建了一个包含超过 216000 个有效的设计可视化图的模拟数据集。在模拟数据集上的实验表明,我们提出的框架对流程图内容提取的准确率达到了 93%。

图 1:DLPaper2Code 的框架,用于提取和理解论文中的深度学习设计流程图和表格,在两个不同的平台 Keras 和 Caffe 上生成可执行的深度学习源代码。

我们人工观察了研究论文中的 3000 余张图像,将深度学习模型设计图分为 5 个大类,如图 2 所示。

图 2:五大类深度学习模型设计图。

图 3:从复杂图中进行流程图检测的方法图示(Szegedy et al. 2017)(AAAI 2017),(b)节点/层检测,(d)边缘检测。

在一个行优先表格中,每一行对应深度学习设计流程图中的一层,如图 4 所示。类似的,在一个列优先的表格中,每一列对应该层的其它参数。层的命名通过匹配一个手动设计的词典提取出来。此外,参数的命名通过将一行或一列的标头映射到该层对应的预定义参数命名列表提取出来。因此,整个深度学习设计流程是从一个表格连续地提取出来的。

4:该表展示了和 Parkhi et al. 2015 中提到的 tabular 格式一样的深度学习设计流程图。

此外,推断引擎具备高度灵活性,允许简单的扩展和添加新层定义。推断引擎向 Pooling2D 层的词典映射示例,如下图所示。

图 5:Pooling2D 层图示,显示推断引擎的规则库,将抽象的 JSON 格式转换成 Caffe protobuf 和 Keras python 代码。

表 1:用该语法创建为当前层定义可能的下一层列表的有效深度学习设计模型。

表 5:五个分类器识别论文中深度学习设计流程图的性能。

图 8:一个直观的拖拽式 UI 框架,可以编辑提取的模型设计,并将其公开。

利用该研究,论文中的深度学习模型设计可以被自动提取。利用这个直观的拖拽式 UI 编辑器,我们可以对提取出的模型设计图进行手动编辑和完善。总之,该论文提出的 DLpaper2Code 框架从论文中提取图表信息,并将其转换成源代码。

点击「阅读原文」,在 PaperWeekly 参与对此论文的讨论。

本文为机器之心编译,转载请联系本公众号获得授权。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2017-11-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

教程 | 22分钟直冲Kaggle竞赛第二名!一文教你做到

选自微软机器学习博客 机器之心编译 参与:陈韵竹、路雪 本文介绍了如何使用微软 DVSM、利用迁移学习技术在 20 多分钟时间内达到 Kaggle 猫狗识别竞赛...

4448
来自专栏机器之心

资源 | 下一代PS工具:Adobe照片级图像风格转换的Torch实现

选自arxiv 作者:栾福军等 机器之心编译 参与:李泽南、微胖 康奈尔大学与 Adobe 的研究者们最近发布了一项通过卷积神经网络进行照片风格迁移的研究。随后...

36711
来自专栏人工智能LeadAI

伪标签半监督学习

之前在训练YoutubeNet和DCN的时候,我都发现平台用户中基础用户的信息数据缺失率特别高,比如性别一栏准确填写的不足60%,所以我一直想调研一下有没有什么...

1082
来自专栏机器之心

ICLR 2018 | 斯坦福大学教授Christopher Manning提出全可微神经网络架构MAC:可用于机器推理

选自arXiv 作者:Drew A. Hudson、Christopher D. Manning 机器之心编译 参与:刘天赐、黄小天 现今,神经网络已在图像识别...

3168
来自专栏CreateAMind

暑期课程第四课:CNN和机器视觉

792
来自专栏极客慕白的成长之路

高度不平衡的数据的处理方法

1622
来自专栏磐创AI技术团队的专栏

一个完整的机器学习项目在Python中的演练(二)

2397
来自专栏机器学习算法与Python学习

机器学习(6)之朴素贝叶斯NB及实例

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 贝叶斯定理是以英国数学家贝叶斯命名...

4807
来自专栏人工智能头条

拓扑数据分析与机器学习的相互促进

1352
来自专栏人工智能

如何使用Python基线预测进行时间序列预测

建立基线对于任何时间序列预测问题都是至关重要的。

90610

扫码关注云+社区

领取腾讯云代金券