11

数学好=编程能力强?MIT新发现:二者激活大脑区域并不同

 3 years ago
source link: https://user.guancha.cn/main/content?id=432684
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

数学好=编程能力强?MIT新发现:二者激活大脑区域并不同

量子位

追踪人工智能产品和技术新趋势,我们只专注报道AI3小时前

金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI

都说学编程就像学一门新的语言,但事实真的如此吗?

不不不,起码在读代码这件事上,你的大脑可不这么认为。

500

最近,MIT神经科学家在eLife期刊发表了一项新研究:

在读代码的时候,并不会激活人类大脑涉及语言处理的区域。

相反,激活的是一个叫做多需求 (multiple demand,MD)网络的分布式网络。

500

而这个MD网络,通常在人们处理比较复杂的认知任务时被激活。

举个例子,数学问题、填字游戏等……

500

怪不得……看别人的代码,一直有种很痛苦的赶脚,原来它真的是很“烧脑”啊!

读代码时,你的大脑会发生什么?

或许你会认为,代码嘛,本质上就是解决数学或逻辑相关的问题,那读代码会激活MD网络也是可以理解的。

Too simple,too naive.

MIT的研究人员进一步发现:

尽管读代码的时候激活了MD网络,但和数学、逻辑问题相比,它似乎更加依赖这个网络的不同部分。

也就是说,读代码时大脑的工作状态,还不能精确复制解数学问题时的大脑认知需求。

通讯作者Anna A Ivanova这样表述道:

理解计算机代码,不同于语言,也不同于数学和逻辑,仿佛是它自己的事情一样。

嗯,有种“VIP专属区域”的味道了。

研究人员测试的编程语言主要有2个:一个是Python;另一个是在少儿编程较火的可视化编程语言ScratchJr

500

测试对象是两组年轻人,分别对上述2个编程语言达到了精通状态。

大致的测试过程是让这些年轻人平躺,工作人员会给他们展示代码片段文字描述 (如上图所示),并让他们预测这些代码将产生什么样的结果。

在这个过程当中,研究人员还会用脑功能磁共振成像 (fMRI)来扫描,以此来检测这些年轻人大脑的活动。

上述的实验是这次研究的“主实验”(上图A),除此之外,还有额外的2个“副实验”(上图B,与定位器相关):

MD System Localizer:困难模式,在出现的8个蓝色方块中,一次性记住2个的位置;简单模式,在出现的4个蓝色方块中,一次性记住1个的位置。

Language System Localizer:包括一个句子,以及非单词(一次出现一个)。

对测试对象扫描过后,便得到了如下结果。

500

图中的A展示了MD网络在大脑左半球和右半球的位置,以及大脑涉及语言的区域。

B和C分别展示了在读Python和ScratchJr代码或文本时,通过fMRI扫描得到的响应反馈情况。

再具体的,SR代表句子阅读,NR代表非单词阅读,SP表示句子问题,CP表示代码问题。

从实验结果难看出,大脑中的语言区域,几乎对代码问题(CP)没有反应,或者说反应极低。

但十分意外的是,在读代码过程中,主要激活了MD网络,活动分布在大脑的额叶和顶叶。

Anna A Ivanova对此表示道:

MD网络几乎可以做任何具有认知挑战性的事情。

然而,先前的研究表明,数学和逻辑问题似乎主要依赖于左脑的MD区域,而涉及空间导航的任务对右脑的激活程度要高于左脑。

MIT这次的研究表明,读代码过程中,似乎同时激活了MD网络的左右两个部分;并且,读ScratchJr代码时,对右侧大脑的激活程度略高于左侧大脑。

同时也推翻了以往的认知,即读代码时大脑的活动,和数学逻辑相同。

到底更倾向于“数学逻辑”还是“语言”?

对于人们在处理代码过程中,大脑的活动机制,更加倾向于“数学逻辑”还是“语言”,这个问题并不是第一次被拿出来研究。

正如Anna A Ivanova所述,关于大脑如何学习编程,有两种思想派系:

有人认为,为了擅长编程,人们必须强化数学能力。

另一种观点是,由于编程和语言之间的相似性,语言技能可能更具相关性。

第一次利用科学成像工具来做这方面研究的,需要追溯的2014年。

来自帕绍大学(德国)、CMU等机构联手,对程序员大脑如何理解代码做了研究。

500

当时所采用的方法依旧是fMRI,参与测试的是17名精通Java的学生。

被测试的学生,每个人都需要阅读不同的几段Java代码片段,且难度相似,因此研究人员可以平均得到的大脑成像数据。

这项研究虽然并没有得到非常有力的结果,但第二作者表示:

读代码更像“语言”,是错误的。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK