您的位置:首页 → fMRI已被用于观察人们在做各种事情时的大脑

fMRI已被用于观察人们在做各种事情时的大脑 - 解决数学问题,学习外语,下棋,即兴演奏钢琴,做填字游戏,甚至观看电视节目,如“抑制你的热情”。

一个很少受到关注的追求是计算机编程——既是编写代码的苦差事,也是试图理解一段已经写好的代码的同样令人困惑的任务。

“鉴于计算机程序在我们日常生活中的重要性,”麻省理工学院计算机科学与人工智能实验室(CSAIL)的博士生Shashank Srikant说,“这当然值得研究。如今,很多人都在处理代码——阅读、编写、设计、调试——但当这种情况发生时,没有人真正知道他们脑子里在想什么。

幸运的是,他在一篇与麻省理工学院同事Benjamin Lipkin(该论文的另一位主要作者,以及Srikant),Anna Ivanova,Evelina Fedorenko和Una-May O'Reilly撰写的论文中取得了一些“进展”,该论文于本月早些时候在新奥尔良举行的神经信息处理系统会议上发表。

这篇新论文建立在 2020 年的一项研究的基础上,该研究由许多相同的作者撰写,该研究使用 fMRI 来监测程序员的大脑,因为他们“理解”了一小段或代码片段。(在这种情况下,理解意味着查看片段并正确确定片段执行的计算结果。

大脑和认知科学(BCS)教授、早期研究的合著者Fedorenko解释说,2020年的研究表明,代码理解并没有始终如一地激活语言系统,即处理语言处理的大脑区域。

“相反,多重需求网络 - 一个与一般推理相关联并支持数学和逻辑思维等领域的大脑系统 - 非常活跃。她说,目前的工作也利用了程序员的MRI扫描,“更深入地研究”,寻求获得更细粒度的信息。

虽然之前的研究着眼于20到30人,以确定平均依靠哪些大脑系统来理解代码,但新的研究着眼于单个程序员在处理计算机程序的特定元素时的大脑活动。

例如,假设有一段涉及单词操作的单行代码和一段需要数学运算的单独代码。“我能从我们在大脑中看到的活动,实际的大脑信号,尝试逆向工程并弄清楚程序员具体在看什么吗?”斯里坎特问道。

“这将揭示与程序有关的信息在我们的大脑中是唯一编码的。他指出,对于神经科学家来说,如果物理属性能够通过观察某人的大脑信号来推断该属性,那么物理属性就被认为是“编码的”。

例如,循环 - 程序中重复特定操作直到达到预期结果的指令 - 或分支,一种不同类型的编程指令,可能导致计算机从一个操作切换到另一个操作。

根据观察到的大脑活动模式,该小组可以判断某人是否正在评估一段涉及循环或分支的代码。研究人员还可以判断代码是否与单词或数学符号有关,以及是否有人正在阅读实际代码或仅仅是该代码的书面描述。

这解决了调查人员可能会问的第一个问题,即某些东西实际上是否被编码。如果答案是肯定的,下一个问题可能是:它在哪里编码?在上述案例中 - 循环或分支,单词或数学,代码或其描述 - 发现大脑激活水平在语言系统和多重需求网络中都是可比的。

但是,当涉及到与所谓的动态分析相关的代码属性时,观察到了明显的差异。

程序可以具有“静态”属性(例如序列中的数字数),这些属性不会随时间变化。“但是程序也可以有一个动态方面,比如循环运行的次数,”Srikant说。“我不能总是阅读一段代码并提前知道该程序的运行时间。

麻省理工学院的研究人员发现,对于动态分析,信息在多需求网络中的编码比在语言处理中心中的编码要好得多。这一发现是他们探索代码理解如何在整个大脑中分布的一个线索——哪些部分参与其中,哪些部分在该任务的某些方面扮演着更大的角色。

该团队进行了第二组实验,其中包括称为神经网络的机器学习模型,这些模型专门在计算机程序上进行训练。近年来,这些模型在帮助程序员完成代码片段方面取得了成功。

该小组想要了解的是,当参与者检查代码片段时,在他们的研究中看到的大脑信号是否类似于神经网络分析同一段代码时观察到的激活模式。他们得到的答案是有条件的“是”。

“如果你把一段代码放进神经网络,它会产生一个数字列表,以某种方式告诉你程序的全部内容,”Srikant说。对学习计算机程序的人进行脑部扫描同样会产生一个数字列表。例如,当一个程序由分支主导时,“你会看到一种独特的大脑活动模式,”他补充道,“当机器学习模型试图理解相同的片段时,你会看到类似的模式。

马克斯·普朗克软件系统研究所(Max Planck Institute for Software Systems)的玛丽亚·托涅娃(Mariya Toneva)认为这样的发现“特别令人兴奋”。它们提出了使用代码计算模型的可能性,以更好地了解我们阅读程序时大脑中发生的事情,“她说。

麻省理工学院的科学家们肯定对他们发现的联系很感兴趣,这些联系揭示了计算机程序的离散部分是如何在大脑中编码的。但他们还不知道这些最近收集的见解可以告诉我们人们如何在现实世界中执行更精细的计划。

完成这类任务——比如去看电影,这需要检查放映时间、安排交通、购买门票等等——不能由单个代码单元和单一算法来处理。

相反,成功执行这样的计划需要“作曲”——将各种片段和算法串成一个合理的序列,从而产生新的东西,就像组装单个音乐条以制作一首歌甚至一首交响乐一样。CSAIL的首席研究科学家O'Reilly说,创建代码组合模型“目前超出了我们的掌握范围。

BCS博士生利普金认为这是下一个合乎逻辑的步骤——弄清楚如何“结合简单的操作来构建复杂的程序,并使用这些策略来有效地解决一般推理任务”。他进一步认为,到目前为止,该团队在实现这一目标方面取得的一些进展归功于其跨学科构成。

“我们能够从程序分析和神经信号处理方面的个人经验中汲取经验,以及机器学习和自然语言处理的综合工作,”Lipkin说。“随着神经和计算机科学家联手寻求理解和建立通用智能,这些类型的合作变得越来越普遍。

该项目由麻省理工学院-IBM Watson AI实验室,麻省理工学院智能探索,国家科学基金会,美国国立卫生研究院,麦戈文脑研究所,麻省理工学院脑与认知科学系以及西蒙斯社会大脑中心资助。

智能推荐