AI智能体可通过人类程序员的眼球运动学习并完成任务
2019年03月20日 由 深深深海 发表
982187
0
当我们完成需要认知能力的任务时,我们的眼球运动传达了很多关于我们的信息。自发眨眼率、瞳孔放大和注视方向等指标有助于提示注意力和性格等,甚至可能成为帕金森症和阿尔茨海默症等神经退行性疾病的早期标志。
日本奈良科学技术研究所的研究人员受之前工作的启发,最近将眼动研究应用于软件开发领域,其中包括2018年的一项研究,该研究旨在发现视觉艺术专业知识与眼动运动之间的关联。
在发表的一篇论文“Toward Imitating Visual Attention of Experts in Software Development Tasks”中,他们描述了一个AI框架,该框架旨在创建智能体,从程序员的眼球运动中学习如何修复bug、生成补丁和撰写评论。
研究人员写道,“在过去的三十年中,我们通过了解程序员在哪里分配视觉注意力获得了很多洞见,这可以从眼动数据推断出来。我们已经知道程序员使用注意力策略来节省程序理解和维护的时间。例如,专家程序员倾向于将注意力集中在程序的信息部分上,并仅浏览源代码中的相关关键字。结合固定凝视数据,自主智能体学习注意力策略,而这些策略很难仅仅从文本特征中学习。”
该团队提出的方法利用模仿学习,自主智能体从人类示范中收集有关复杂任务的知识。在这种情况下,智能体由使用行为克隆训练的模型表示,行为克隆是机器人和自然语言处理中常用的算法。
代码片段和编程环境被认为是一系列令牌或关键字,并且智能体受到限制,以至于他们被迫专注于模仿专家程序员视觉注意力的特定子标记,作为输入当前状态并输出所需的操作。从那时起,它们就适应了执行特定任务。
问题中的智能体包含两个深度神经网络:用于编码给定代码片段的全局上下文的递归神经网络(RNN),以及任务指定的解码器(也是RNN),使用来自第一个RNN的编码数据来预测作为动作参与的下一个标记。
研究人员的方法需要大量示范。他们建议使用生成对抗网络,这些网络将学习专家演示,而不仅仅是模仿动作。他们建议用脑电图(EEG)读数补充视觉注意力数据。但是,他们认为,如果在生产环境中实施该框架,可以提高AI智能体在一系列软件开发任务中的性能。
论文作者表示,“一个婴儿从父母的示范中学到很多东西,而无需任何语言解释,因为示范不仅仅是语言描述。到目前为止,研究人员调查了程序员的眼球运动,并且通常将它们转换为人类可理解的数字和描述,但这种转换导致大量信息丢失,我们相信,基于模仿学习的智能体可以充分利用有价值的信息来源,减少信息损失。”
论文:
arxiv.org/pdf/1903.06320.pdf