dAMP: 可微分抽象机混合编程系统.pdf
中国科学院软件研究所学术年会’2019 暨计算机科学国家重点实验室开放周 学术论文 可微分抽象机混合编程系统 周鹏 武延军 赵琛 可微分抽象机混合编程系统,软件学报,2018 [录用] 联系方式:周鹏 zhoupeng@iscas.ac.cn 背景: 本工作是软件所智能软件研究中心在自动编程上 的研究成果之一。自动化编程是智能软件核心挑战之 一,程序执行轨迹和输入输出样例学习是典型研究方 法,这些方法无法弥合常规程序元素与神经网络组件 差异,不能吸收经验信息输入、缺乏编程控制。该工 作给出一种无缝结合高级编程语言与神经网络组件的 混合编程模型。优点是可使用过程化的高级编程语言 元素和神经网络组件元素混合开发应用程序,发挥并 整合高级过程化编程和神经网络可训练学习编程各自 的优势,为基于神经网络的程序自动生成模型提供经 验知识的输入接口。 编译与处理 编译 源程序 tokens 汇编 优化 AST 分支 处理 中间 代码 分块 分配NN 单元 结构化 索引化 Code Matrix AM Computation Graph dAM train 矩阵代数操作 机器指令集 loss M Pd Pr Ph D R Pc Pc Implemented as D H 离散状态 R H 连续状态 Build Recursive Run State run stepN ... run step0 创新点: • 提出在抽象层研究程序自动生成问题的一种思路,并给出该思路的一个完整验证系统dAMP。 • 给出了一种支持经验输入、编程语言跟神经网络组件元素相结合的混合编程模型,并给出了其 设计实现的关键技术。 实用性: • 可描述广泛复杂程序:模型支持顺序块、条件分支、函数调用、递归等常规复杂程序构造和神 经网络组件,具有很好的编程表达能力。 • 非确定性编程:不完全明确但有数据可依赖的问题编程,支持以传统过程化编程方式在确定性 框架下引入非确定性编程支持。 • 非完整编程:整合神经网络和程序员各自的优势,降低编程难度或提高编程效率。 4.5 3.95 4 12 4.17 4.1 3.89 3.72 9.75 10 9.69 3.5 9.56 8 2.73 2.46 2.5 dAMP 1.75 TF Performance Performance 9.73 8.74 3 2 10.29 9.92 6.68 6 5.33 dAMP TF 4 1.5 2.99 2.24 1 2 1.35 0.5 0 0 ADD SUB MUL Arithmatic operation (a) DIV EQ GT LT GEQ Relation operation (b) LEQ NEQ

dAMP: 可微分抽象机混合编程系统.pdf 