点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
转自 | AI科技大本营
神经科学家们发现,人类在解读代码时会激活一个通用的大脑区域网络,但不会激活语言处理中心。
就某些方面而言,学习计算机编程和学习一门新语言的过程非常类似。二者都需要学习新的符号和术语,然后以正确的方式将这些符号和术语组织起来,进而指导计算机去执行相应的任务。和语言一样,传达计算机代码时也需要足够清晰,以便其他程序员能够阅读和理解。
尽管两者间有这些相似之处,但麻省理工学院的神经科学家们发现,人类在阅读计算机代码时并不会激活大脑中与语言处理有关的区域。相反,它会激活一个名为“多重需求网络”的分布式网络,该网络也会被用于处理复杂的认知任务,如解决数学问题或填字游戏。
然而,尽管阅读计算机代码会激活“多重需求网络”,但与解决数学或逻辑问题相比,它所依赖的网络区域又有所不同。因此,这表明编码过程并不能精确地复制数学认知需求。
麻省理工学院研究生、该研究的主要作者安娜·伊万诺娃(Anna Ivanova)表示:“理解计算机代码似乎是一种独一无二过程。它不同于学习语言,也有别于处理数学和逻辑问题”。
伊芙琳娜·费多伦科(Evelina Fedorenko)——弗雷德里克·A和卡罗尔·J(Frederick a . and Carole J. )米德尔敦神经科学职业发展副教授,兼麦戈文大脑研究所(McGovern Institute for Brain Research)成员——是该项研究论文的资深作者。同时,麻省理工学院计算机科学与人工智能实验室(MIT’s Computer Science and Artificial Intelligence Laboratory)和塔夫茨大学(Tufts University)的研究人员也参与了此次研究。
语言与认知
费多伦科研究的重点之一是语言和其他认知功能之间的关系。尤其是,其他功能是否依赖于大脑的语言网络——包括布罗卡氏区(Broca’s )和大脑左半球的其他区域。她之前参与的研究证明,音乐和数学似乎不会激活这一语言网络。
伊万诺娃指出:“我们乐于去探索语言和计算机编程之间的关系,计算机编程是一项新技术,还不存在能够使人一键成为优秀程序员的硬性机制”。
她表示,关于“大脑如何学习编码”的问题,目前学术界的观点主要分两派:一派认为,要善于编程,就必须擅长数学;另一派认为,由于编码和语言学习存在相似性,因此语言技能或许更有利于编程学习。为了弄清楚这个问题,研究人员们开始研究在阅读计算机代码时的大脑活动模式是否和同语言相关的大脑活动存在重叠。
在这项研究中,研究人员重点关注的是两种以可读性强而著称的编程语言——Python和ScratchJr,专为5岁及以上人群设计的可视化编程语言。研究中的受试者都是精通其所测试语言的年轻人。当程序员躺在功能性磁共振(fMRI)扫描仪中时,研究人员会向他们展示一些代码片段,并让他们预测这些代码会生成什么操作。
结果发现,被试者的大脑语言区几乎没有产生任何反应。相反,研究人员发现编码任务主要激活了所谓的多重需求网络。该网络活动主要分布于大脑的额叶和顶叶,常被用来完成需要同时记住多种信息的任务,并负责协助人类执行各类脑力任务。
伊万诺提到:”多重需求网络几乎可以完成任何具有认知挑战的事情,促使人们努力思考”。
以往的研究表明,数学和逻辑问题似乎主要依赖于左脑的多重需求区域,而当涉及空间导航任务时,人类右脑的激活程度则要高于左脑。麻省理工学院的研究团队发现,阅读计算机代码似乎会同时激活人脑左右两侧的多需求网络,而ScratchJr对右侧的激活程度略高于左侧。这一发现推翻了此前“数学和编码依赖于相同的大脑机制”的假设。
经验的影响
研究人员表示,虽然此次试验似乎并没有发现专门负责计算机编程的大脑区域,但编程经验更丰富的人可能会发展出这种专门的大脑活动。
费多伦科称:“如果找一些花了30或40年时间持续用某种特定的语言编写代码的专业程序员,我们或许就会在人脑中发现一些特殊地专业化现象,或在多重需求系统的特定区域发现结晶化现象。这需要受试者非常了解编程,并且能高效地完成相关任务。但在经验相对有限的人身上,我们似乎还看不到任何专业化现象”。
在同一期《eLife》上发表的另一篇相关论文中,来自约翰霍普金斯大学(Johns Hopkins University)的研究团队也报告称,解决代码问题激活的是大脑的多重需求网络,而不是语言区域。
研究结果表明,对于“编程应该作为一种基于数学的技能还是基于语言的技能来教授”这一问题,目前还没有一个明确的答案。研究人员表示,或许这是因为,从一定程度上而言,学习编程的过程既要依赖于语言,也要依赖于多重需求系统,但在学会之后,编程便不再依赖于大脑语言区域。
伊万诺娃提到:“两派观点各执一词——编程必须和数学结合在一起;编程必须和语言结合在一起。但对于计算机科学教育者们而言,要想以最有效的方法来教授代码知识,似乎必须要开发出适合自己的方法。”
这项研究由美国国家科学基金会(National Science Foundation)、麻省理工学院大脑和认知科学部(Department of the Brain and Cognitive Sciences at MIT)以及麦戈文大脑研究所(the Department of the Brain and Cognitive Sciences at MIT)资助进行。
原文链接:https://news.mit.edu/2020/brain-reading-computer-code-1215
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
下载2:Python视觉实战项目31讲
在「小白学视觉」公众号后台回复:Python视觉实战项目31讲,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
下载4:leetcode算法开源书
在「小白学视觉」公众号后台回复:leetcode,即可下载。每题都 runtime beats 100% 的开源好书,你值得拥有!
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~