AI向程序员老司机学习:从眼神的变化中寻找bug

2019 年 3 月 27 日 量子位
晓查 发自 凹非寺 
量子位 报道 | 公众号 QbitAI

用AI找bug这件事,有人尝试过,结果翻车了。美国网站Yelp的程序员们试图让AI帮自己找bug,岂料AI却删库跑路,最后只能用回滚的办法挽回损失。

当然,这只是程序员开的一个玩笑。但是让AI找bug一直是程序员们美好的愿望。

育碧和Mozilla曾开发过一个AI,能从过去代码库的错误中学习找bug,并在今后提交新代码时标出可能的bug。

然而这些在程序员老司机面前都是渣渣,大神们往往一个眼神,就能直接定位到bug所在的位置。如果让AI直接向大神学习,岂不更快?

日本奈良先端科学技术大学院大学(名字有些长,下面简称NAIST)的研究人员真的做到了,他们把眼球追踪的研究用在软件开发领域,构建了一个基于模仿学习(IL)的框架,让智能体从程序员的眼部活动中学习找bug、打补丁、写注释。

以往的AI找bug方法是从文本特征中学习。而程序员独有的注意力策略可以节省程序理解和维护的时间。大神们会将注意力集中在程序的重要信息上,仅浏览源代码中的关键字。

NAIST的AI就是在软件开发中模仿程序员的视觉注意力。结合程序员眼睛注视的数据,智能体可以获得到过去难以学习到的注意力策略。

由于程序代码是文本序列,研究人员用自然语言处理的方法来设计智能体。这个智能体包括两个深度神经网络:

第一部分是一个RNN,用来对代码片段的全局上下文进行编码。第二部分是指定任务解码器,用上一步的编码数据来预测下一步的token。

代码片段和编程环境被当做一系列token或关键字,智能体被限制专注于模仿程序员视觉注意力的特定子标记,作为输入当前状态并输出所需的操作。

这种方法还需要大量的演示数据。研究人员建议使用生成对抗网络,让AI学习编程大神们的示范操作,而不仅仅是模仿。

总的来说,这种方法利用了模仿学习,让智能体从人类示范中收集相关复杂任务的知识。智能体由行为克隆(behavioral cloning)训练的模型表示。代码片段和编程环境被认为是一系列token或关键字,智能体被限制去关注模仿程序员注意到的特定代码,作为当前状态的输入,并输出所需的操作。

仅仅依靠眼部数据还不够,NAIST团队还建议用脑电图(EEG)读数视觉注意力的补充数据。如果这个模型在生产环境中使用,可以提高AI智能体在软件开发任务中的性能。

在论文的最后,研究人员说,即使没有语言描述,婴儿也能从父母的演示中学到了很多东西。他们或许是从婴儿行为获得的启发。看来AI也逃脱不了“复读机”的命运。

论文链接:https://arxiv.org/abs/1903.06320


订阅AI内参,获取AI行业资讯

加入社群

量子位AI社群开始招募啦,量子位社群分:AI讨论群、AI+行业群、AI技术群;


欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“微信群”,获取入群方式。(技术群与AI+行业群需经过审核,审核较严,敬请谅解)

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点这里吧 !

登录查看更多
0

相关内容

程序猿的天敌 有时是一个不能碰的magic
可解释强化学习,Explainable Reinforcement Learning: A Survey
专知会员服务
129+阅读 · 2020年5月14日
Python计算导论,560页pdf,Introduction to Computing Using Python
专知会员服务
72+阅读 · 2020年5月5日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
224+阅读 · 2020年3月22日
算法与数据结构Python,369页pdf
专知会员服务
161+阅读 · 2020年3月4日
《代码整洁之道》:5大基本要点
专知会员服务
49+阅读 · 2020年3月3日
【新书】Python中的经典计算机科学问题,224页pdf
专知会员服务
144+阅读 · 2019年12月28日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
对抗样本并非bug,它们只是特征罢了
机器之心
8+阅读 · 2019年5月9日
动态 | 2019 年 1 月 AI 最佳网文榜单最新出炉!
AI科技评论
4+阅读 · 2019年2月9日
人工神经网络真的像神经元一样工作吗?
论智
9+阅读 · 2018年11月15日
Python | 拯救鉴黄师
计算机与网络安全
5+阅读 · 2018年2月17日
关于强化学习(附代码,练习和解答)
深度学习
36+阅读 · 2018年1月30日
给程序员的10条建议,吐血推荐!
R语言中文社区
3+阅读 · 2017年12月21日
Generating Fact Checking Explanations
Arxiv
9+阅读 · 2020年4月13日
Arxiv
6+阅读 · 2019年3月19日
Viewpoint Estimation-Insights & Model
Arxiv
3+阅读 · 2018年7月3日
Arxiv
5+阅读 · 2018年5月10日
Arxiv
3+阅读 · 2018年4月18日
Arxiv
11+阅读 · 2018年1月18日
VIP会员
相关资讯
对抗样本并非bug,它们只是特征罢了
机器之心
8+阅读 · 2019年5月9日
动态 | 2019 年 1 月 AI 最佳网文榜单最新出炉!
AI科技评论
4+阅读 · 2019年2月9日
人工神经网络真的像神经元一样工作吗?
论智
9+阅读 · 2018年11月15日
Python | 拯救鉴黄师
计算机与网络安全
5+阅读 · 2018年2月17日
关于强化学习(附代码,练习和解答)
深度学习
36+阅读 · 2018年1月30日
给程序员的10条建议,吐血推荐!
R语言中文社区
3+阅读 · 2017年12月21日
Top
微信扫码咨询专知VIP会员