谷歌大脑教AI写代码,是不是为了取代程序员?( 六 )

通过对原始状态和编辑序列(Edits 1 & 2)的观察,研究人员发现,神经网络“预测代码”并知道后面怎么“编下去”,是完全可行的。

谷歌大脑教AI写代码,是不是为了取代程序员?

图5/10

那么接下来的问题是,如何让机器将预测结果以合理而优雅的方式呈现出来呢?

研究人员为“机器程序员”考虑了两种表征方式:显式表征和隐式表征。

显式表征由一个两阶段的 LSTM 网络实现,第一阶段能够编码每一个状态序列,第二阶段会将前面已观察到的编辑序列解码出来,因此,实例化序列中每一次编辑的状态结果都会被 “照猫画虎”地将代码呈现出来。

谷歌大脑教AI写代码,是不是为了取代程序员?

图6/10

而为了不让“AI程序员”的作品“反类犬”,还需要带入隐式表征,这就要求,采用的隐式模型不仅能够对隐式表征进行操作,还能更好地捕捉到编辑内容和编辑上下文之间的关系序列,进而更好地学习策略。

推荐阅读