机器学习的神经科学笔记-全-
机器学习的神经科学笔记(全)
001:为何学习神经科学 🧠
在本节课中,我们将探讨为何具备机器学习背景的人应该对神经科学产生兴趣。我们将回顾两个领域相互影响的丰富历史,并展望未来可能的交叉点。
欢迎来到《机器学习人员的神经科学》。顾名思义,这门课程面向具备机器学习背景、并希望了解一些神经科学知识的人士。本课程在伦敦帝国理工学院线下授课,同时也在线免费开放。
让我们从这个视频开始,谈谈为何你应该对神经科学感兴趣。
一个原因是,机器学习和神经科学在历史上有着相互影响的丰富渊源,例如从神经元到感知机,或从视网膜到卷积神经网络。

近年来,这两个领域开始逐渐分离,但这种状况可能改变。了解一些神经科学知识可能有助于推动这种改变。
毕竟,人脑仍然能够轻松解决一些目前机器学习尚无法轻易攻克的任务。那么,人脑是如何做到的呢?
说实话,我们目前还不知道全部答案。但我们确实了解一些关于大脑工作机制的、相当惊人且迷人的知识。
例如,脑细胞之间以一种既非完全数字也非完全模拟的、令人难以置信的高能效方式进行信号传递。
大脑所做的一些事情可能与机器学习无关,但其中一部分很可能相关,因为它们解决的是许多相同的问题。
了解自然与人工系统在智能问题上采取的不同方法及其面临的不同约束,有助于丰富我们对两者的思考。
这就是本课程将采取的方法。我们将主要避免讨论神经科学家当前关于大脑如何整合一切的理论,因为就像所有科学领域一样,这些想法(包括我的)很可能最终被证明是错误的。
相反,我们将专注于我们已知的关于大脑的知识,并以一种富有玩味和创造性的方式运用这些想法。
如果在学习过程中,你发现自己确实想理解大脑的工作原理,那么这门课程也可以成为你踏上这段旅程的第一步。


总结:本节课我们一起探讨了学习神经科学对机器学习从业者的价值。我们回顾了两个领域相互启发的历史,认识到人脑在解决某些复杂任务上的优势,并明确了本课程将聚焦于已知的、可靠的大脑机制知识,以启发新的思考。
002:课程大纲 📚

在本节课中,我们将概述这门课程的整体结构,包括将要涵盖的主题、每周的安排以及课程的评估方式。
课程主题概览 🧠
课程内容大致分为四个部分。
上一节我们介绍了课程的整体安排,本节中我们来看看具体的主题构成。
以下是四个核心部分:
- 大脑的结构:这部分将探讨大脑如何由被称为神经元的脑细胞构成,这些细胞通过突触连接,并划分为不同区域。我们还将讨论这些细胞如何利用信号进行通信和计算,以及我们用于理解这一过程的模型。
- 学习机制:这部分将特别聚焦于学习,探讨我们已知的大脑学习方式、相关的模型,以及这些模型如何与机器学习相关联。
- 整合理论:这部分课程涉及一些关于大脑如何将所有机制整合起来的理论。我们将从理解大脑(或人工神经网络)的方法论入手,然后探讨大脑如何解决特定类型任务的一些理论。
- 未来展望:在最后一部分,我们将讨论未来的前景。我们将探讨神经形态计算(一种旨在模仿大脑某些功能特性的专用硬件),以及神经科学中一些我们尚不完全理解的最新进展。
教学模式与安排 📅
本课程采用翻转课堂的教学模式。
这意味着,不同于每周花几小时听讲座然后自行消化材料,我们将这个顺序翻转过来。以下是每周的安排:
- 你将观看一系列像本视频这样的短视频,这些视频涵盖了核心材料。
- 你可能还需要围绕这些主题进行一些额外的阅读。
- 在安排的课堂时间内,你将分小组进行基于编程的练习,我们会以更具互动性的方式提供支持。
- 如果你没有完成或想进一步探索,也可以在预定时间后继续。
很遗憾,我们无法在线进行互动式课程,但你将能够访问所有练习材料。最后,帝国理工的学生将在Teams上建立讨论组,其他在线学习者则使用Discord。

课程评估方式 📝
对于在帝国理工学院学习的学生,本课程设有评估环节。
上一节我们了解了学习过程,本节中我们来看看如何评估学习成果。以下是三个评估节点:
- 两次课程作业:各占总成绩的40%。这些作业将以两人小组形式完成,基于编程。我们鼓励你使用Python笔记本,最简单的方式是使用Google Colab,我们将为你设置好,无需任何安装。你甚至可以报销本学期Google Colab Pro账户的费用。评估将部分由你的同伴完成,即每个人都将阅读和评估他人的笔记本。这样做的目的是鼓励你清晰地展示工作成果,并让你从不同小组采用的不同方法和策略中学习。我们将在发布第一次作业时提供详细指南。
- 期末在线选择题测验:在学期末进行,占总成绩的20%。
如果你有任何进一步的问题,帝国理工的学生请在Teams上提问,在线学习者请在Discord上提问。希望你能享受这门课程。
总结 ✨

本节课中我们一起学习了《机器学习人员的神经科学》课程的整体框架。我们了解了课程将围绕大脑结构、学习机制、整合理论和未来展望四个部分展开,采用了翻转课堂的教学模式,并通过两次小组编程作业和一次期末测验进行评估。接下来,我们将深入每个部分的具体内容。
003:神经科学与机器学习的历史 🧠💻

在本节课中,我们将回顾神经科学与机器学习之间相互影响的悠久历史。我们将聚焦几个关键的发展脉络,展示这种影响是如何双向流动的。

神经科学、机器学习乃至更广义的计算科学,长期以来一直相互影响,历史丰富。我们无法涵盖所有内容,因此本节将选取历史中的几条主线,展示这种双向影响。
神经网络概念的起源
上一节我们概述了课程目标,本节中我们来看看神经网络思想的起源。1943年,McCulloch和Pitts发表了首篇对神经元进行数学建模的论文。

这项工作最终催生了现代生物学和机器学习领域对神经网络的研究。他们的方法是基于当时已知的生物学神经元知识,明确承认未知部分,并创建一个即使在未来有新发现时也能成立的抽象模型。

该模型本质上等同于现代的人工神经元,区别在于其输入和输出激活值是二元的,权重为+1或-1。这与当时已知的生物学事实相符:神经元通过称为动作电位或脉冲的、离散的“全或无”活动爆发进行通信。即使在今天,这仍是一个不错的神经元网络模型,尽管它缺失了本课程后续会讨论的许多有趣的时间动态特性。

他们展示的主要结果是,这类网络可计算的函数类等价于命题逻辑。换言之,你可以用神经网络实现任何逻辑函数,反之亦然。



从生物学到计算机架构
作为一个小插曲,需要提及McCulloch和Pitts的工作以及大脑生物学直接启发了约翰·冯·诺依曼,他创造了现代数字计算机的架构。

如图所示,他指出CPU和RAM对应于人类神经系统中的联想神经元。

感知机:适应统计问题

接下来神经网络概念的重大发展来自Frank Rosenblatt,他发明了感知机模型,其改良形式至今仍在沿用。

他确实用线缆构建了它,因为当时没有计算机可以模拟。它拥有512个可修改的连接,使用电机来调整权重,占满整个房间。
Rosenblatt的洞见在于,McCulloch-Pitts模型及其与命题逻辑的紧密联系过于僵化,无法处理大脑必须应对的统计问题。即,生物网络似乎是广泛且至少部分随机的,它们充满噪声,它们所处理的外部世界输入数据也是如此。
他提出的模型实际上相当复杂,此处不深入细节。与McCulloch和Pitts类似,它使用二元激活,并具有受当时生物学知识启发的循环结构和时间动态。后来的工作将其简化为你可能见过的形式,用以下方程表示:
输出 = 激活函数(权重 * 输入 + 偏置)
这项工作的关键结果是表明,给定来自某个分布的足够训练数据,模型在同一分布的不同样本上的测试准确率会接近训练准确率。这是早期方法不具备的特性,无疑是理解大脑的一个重要属性。
为证明其相关性,我在2013年的一篇论文中表明,感知机在统计学上是比当时该领域两种主流模型更好的哺乳动物声音定位模型。


明斯基的批评与反向传播的诞生
接下来必须谈到的是明斯基对感知机的批评。这里不会详述,因为它与神经科学没有直接关系,但完全忽略它也不妥。在20世纪60年代,Marvin Minsky开始批评感知机,最终在1969年出版了一本书,该书被认为是导致神经网络研究资金中断、使该领域倒退数十年的原因。
他的论点是,单层感知机只能实现线性可分函数,因此无法计算诸如异或、奇偶性或连通性等函数。然而,他确实认识到多层感知机能够做到,并且众所周知McCulloch-Pitts神经元可以做到异或,因为它可以实现任何逻辑函数。他对多层感知机的批评并非它们不能实现这些函数,而是它们太难训练。显然,这后来被证明在很大程度上是错误的,但有趣的是,它并非完全错误。
尽管可以用深度或循环神经网络解决连通性问题,但如果不通过非常具体且高度受限的架构来“喂入”答案,仍然很难通过训练找到这个或任何其他解决方案。事实上,这仍然是一个开放的研究问题。为了证明在神经科学与机器学习历史中讨论此事的合理性,我能找到的最新相关论文实际上来自一个神经科学研究小组。
明斯基认为多层神经网络可能难以训练,但Rumelhart、Hinton和Williams在反向传播中找到了解决方案。

此处有一个非常简短的总结,如需可暂停阅读。简而言之,他们找到了一种高效算法来计算损失函数相对于网络参数的梯度,从而为多层神经网络提供了一种高效的梯度下降方法。这被证明在很大程度上解决了明斯基关于可训练性的问题,例如找到了异或问题的解决方案。尽管理论上仍未完全证明它何时有效,并且我们之前看到了一个它失败的例子。
顺便提一下,基于梯度的方法在明斯基发展其论点的60年代就已为人知,但当时认为它们对于高维问题效率太低且收敛太慢。
反向传播与生物合理性
回到神经科学,Rumelhart及其同事明确认识到,尽管他们的方法有效,但并不具有生物合理性。但这里有一些有趣的转折。首先,一些具有生物合理性的学习规则可以被视为反向传播的数学近似,我们将在课程后期讨论。其次,反向传播不具有生物合理性的原因可能最终无关紧要。

论点在于,反向传播需要通过网络反向传递误差信号,而目前没有已知的生物机制能做到这一点。理论上,可以用一个次级反馈网络来携带误差信号反向通过网络,但它必须与前馈网络完全对称,而大脑中并未观察到类似结构。
但在2016年之后的一个引人入胜的进展中,Timothy Lillicrap及其同事发现,即使使用一个不对称的随机前馈网络,它仍然有效。事实证明,前馈网络会学习与反馈网络对齐,最终,反馈网络为已学习或已对齐的前馈网络携带正确的误差信号。这种反馈对齐方法被证明无法扩展到非常深的网络,但故事尚未结束,该领域仍有大量有趣的研究在进行。

视觉系统与卷积神经网络
在结束关于神经网络的讨论前,我们想在本视频结束前再涵盖几个主题。第一个是视觉系统的神经科学研究与卷积神经网络发展之间的相互作用。
在50年代末60年代初,神经科学家Hubel和Wiesel在视觉系统早期部分发现了两种主导细胞类型。他们分析的大多数细胞都有一个感受野,即视野中一个小的局部区域,在该区域照射光线可引起神经元放电,而在其他区域则无效。
一些细胞是简单细胞,这意味着基本上可以通过了解它们对不同光点照射的反应来预测它们对任何信号的反应。这大致相当于说它们充当线性滤波器。以下是一个他们记录的例子:在标有X的地方照射光线会使细胞更活跃,在标有小菱形的地方照射会使它活跃度降低。

他们还发现了复杂细胞。这些被定义为任何非简单细胞,但在许多情况下,他们发现这些细胞具有这样的特性:例如,对具有特定朝向的光棒有反应,但不介意光棒出现在其感受野内的哪个位置。如果你了解卷积神经网络的工作原理,这可能不会让你感到惊讶。你可以将简单细胞和复杂细胞大致视为卷积层和池化层。

这种简单细胞和复杂细胞结构直接启发了Fukushima在1980年提出的新认知机。这是一个明确受Hubel和Wiesel启发的计算模型,具有交替的S层和C层,分别对应简单细胞和复杂细胞。该网络通过一种定制的无监督学习规则进行训练。1989年,Yann LeCun等人采用了基本相同的架构,但使用反向传播进行训练,后来改进此模型并称之为卷积神经网络。这导致了接下来几十年机器学习领域的蓬勃发展,并在当前机器学习成功的大爆发中扮演了重要角色。


从机器学习回到神经科学
在结束关于视觉系统的讨论之前,我想简要地将其带回神经科学,以表明影响并非单向。2014年,Dan Yamins及其同事发现,训练CNN以良好执行某项任务,实际上使其内部表征与视觉系统中记录的神经数据高度匹配。Alex Kell及其同事在听觉皮层中也发现了同样的情况。
这促使Martin Schrimpf等人提出了“大脑评分”和排行榜,以追踪哪些模型与神经数据最匹配。但故事并未结束,许多人对此并不信服。例如,Jacob Billeh发现这些网络无法预测人类在面对分布外刺激时的成功与失败模式。我的研究小组在听觉刺激中也发现了同样的问题,与此同时,另一个小组也独立发现了同样的情况。
因此,关于深度神经网络作为大脑模型有多好,尚无定论。但可以肯定的是,机器学习目前对神经科学产生了巨大的影响。
强化学习:从动物心理学到现代AI
本视频要讨论的最后一个主题是强化学习。这个词实际上可以追溯到1927年的巴甫洛夫(研究狗的那位)。对这种学习的研究,实际上可以追溯到1898年的Thorndike。此时,它更多是动物心理学而非神经科学。有趣的是,Thorndike的论文现在看来很滑稽,因为他的主要目的似乎是证明动物实际上相当愚蠢,这也许是当时的一个活跃辩论话题。
他建造了具有不同复杂度的开启机制的笼子,动物必须从中逃脱,并追踪它们在多次试验中逃脱所需的时间。在我看来,这些数据与现代的训练曲线惊人地相似。在结论中,你甚至可以看到一些暗示,用现代强化学习的术语来说,就是优化价值而非优化奖励。


心理学和神经科学的研究人员在这一领域有许多发展,我不想深入整个历史。如果你感兴趣,Sutton和Barto有一本很棒的在线免费书籍,深入探讨了这段历史。
这里仅提及其历史中的几个有趣时刻。例如Alan Turing在1948年的论文,其中描述了一个明确作为大脑皮层模型的计算学习器。有一段很长的时期,强化学习的数学建模主要由计算机科学家和最优控制领域的研究人员进行。它在80年代和90年代以巨大的声势回归神经科学,通过对多巴胺神经元的实验以及模型表明,它们的活动符合时间差分学习的预期。这引发了神经科学领域的巨大研究浪潮,其中许多工作发生在UCL的Gatsby计算神经科学部门,由Peter Dayan及其同事领导。为了展示至今仍有紧密联系,DeepMind创始人Demis Hassabis在创立DeepMind前的最后一个学术职位就是在UCL与Peter Dayan共事,他至今仍倡导人工智能应受神经科学影响。
总结与延伸阅读
本节课中,我们一起学习了神经科学与机器学习相互影响的一段非常简要且不完整的历史。还有更多内容值得探索。
以下是几篇优秀的论文,如果你有兴趣了解更多关于这段历史以及该领域当前的进展:
- (此处可插入推荐的论文标题或主题,因原文未提供具体名称,故保留概括性描述)
此外,Patrick Mineault的时事通讯也非常值得订阅,它涵盖了有时被称为“神经AI”领域的所有最新进展。
或许,下一个重大进展就将由你来创造。


004:机器学习与神经科学面临的挑战
在本节课中,我们将探讨机器学习与神经科学各自面临的挑战,并分析这两个领域如何通过相互借鉴来推动彼此的进步。
概述
上一节我们讨论了神经科学与机器学习的历史渊源。本节中,我们将具体审视当前机器学习在能效、训练数据需求与鲁棒性方面的挑战,同时也会探讨神经科学在实验设计上的局限性。理解这些挑战,有助于我们看清两个领域互补合作的前景。
挑战一:能效问题
我们先从能效挑战谈起。一个著名的例子是AlphaGo与李世石之间的围棋比赛。
1997年,计算机在国际象棋上超越了人类,但在搜索空间更大的围棋领域,人类一直保持优势,直到2016年DeepMind的AlphaGo击败了顶尖棋手李世石。
据估算,在那场比赛中,AlphaGo的功耗大约在100到1000千瓦之间,而李世石可怜的人脑功耗大约只有20瓦。这意味着AlphaGo的能效比人脑低了约5000到50000倍,并且人脑同时还在处理许多其他任务。
显然,这是一个巨大的差距。但到第二年,DeepMind推出了AlphaGo Zero,其棋力更强,据称功耗仅约为1到2千瓦,相当于50到100个人脑的功耗。虽然这仍然很低效,但一年内能效就提升了50倍以上,因此机器的进步速度不容小觑。
挑战二:训练数据需求
机器学习面临的另一个挑战是达到高性能所需的海量训练数据。
AlphaGo Zero的训练使用了超过500万局棋谱。我们不知道李世石下了多少局棋,但比赛时他33岁,假设他从5岁开始,每天下5局棋,总计也只下了大约5万局。当然,这不完全公平,因为李世石利用了人类历史上积累的集体围棋知识。但AlphaGo Zero也尝试利用人类棋谱进行训练,结果发现帮助不大:训练速度虽略有提升,但最终达到的棋力水平反而更低。
这背后的原因之一是,人类拥有大量知识,并能将其灵活应用于新场景,而机器学习方法在这方面仍然落后,尽管进步很快。
以下是另一个说明泛化能力不足的例子:
- 2016年,被谷歌收购的Vicarious公司对游戏《打砖块》进行了有趣的分析。当时的深度强化学习方法能轻松掌握原版游戏,但当引入细微变化时,问题就出现了。
- 例如,仅仅将挡板的位置调高一点,人类玩家毫无问题,但DRL智能体几乎需要从头开始重新训练。
- 同样,在游戏中添加一道灰色的不可摧毁的墙,也会导致智能体失效。
另一项针对人类学习雅达利游戏的研究发现,对于某些被DRL“掌握”的游戏,人类在不到15分钟的训练后,就能达到与经过数十甚至数百小时训练的DRL智能体相似或更好的水平。

挑战三:鲁棒性不足
本节要讨论的机器学习最后一个挑战是鲁棒性。尽管近期有所改善,但机器学习解决方案往往很脆弱,容易出错。
这体现在许多方面,上一张幻灯片讨论的泛化与复用问题就是一个例子。另一种表现是它们容易被操纵,即所谓的对抗性攻击。
一个经典例子是:向一张图像添加人眼无法察觉的、看似随机的微小噪声,就能让图像识别系统以高置信度输出任何你想要的标签。这本身就告诉我们,神经网络处理图像的方式与人类截然不同。
部分原因在于,与人类相比,这些网络更重视纹理而非形状。例如,给一张猫的图片加上大象的纹理,网络会识别为“大象”,而大多数人仍会认为是“猫”。
但你甚至不需要这么复杂的操作,只需添加一点文字就能让它改变主意。例如,在一张苹果的图片上贴上“iPod”文字,它就会识别为“iPod”而不是“Apple”。

神经科学面临的挑战
现在,让我们把目光从机器学习转向神经科学面临的一些挑战。
第一个挑战与实验设计有关。你可能知道科学家喜欢研究老鼠在迷宫中奔跑。你想象的可能是这样的迷宫,或者,如果你常去英国乡村,也许是这样的。但现实中的实验往往是这样极其简单的。
在神经科学中,我们的实验通常非常简单,常常归结为二元选择。这有充分的理由:训练动物完成实验很困难,并且我们需要一种简单的方式来解释结果。
但这意味着,我们试图通过研究动物来理解智能行为,却使用那些实际上并不真正需要任何智能的任务。如果我们真想理解智能,目前的方法是否足够,尚不清楚。
我们的模型也存在同样的问题。对于生物启发的脉冲神经网络来说,最具挑战性的数据集之一是Spiking Heidelberg数据集,而这只是一个包含20个口语单词的分类数据库。
尽管如此,近年来神经科学领域出现了一个新趋势,即开始关注机器学习中常见的那种具有挑战性的复杂任务,这已经催生了大量令人兴奋的新工作。

总结与展望
我认为这是一个结束本周课程的好节点。历史上,神经科学与机器学习曾紧密相连,并因此在两个领域都催生了出色且开创性的工作。

我确信,如果两个领域的研究者能更多地了解彼此的进展,双方都将取得更大的进步。希望你能享受课程后续的内容。
005:神经元结构 🧠



在本节课中,我们将学习神经元的结构。神经元被认为是大脑的主要处理单元,理解其结构是理解大脑如何工作的第一步。我们将探讨神经元的基本组成部分、其形态的多样性,以及这种结构如何可能影响其计算功能。
概述

在人工神经网络中,计算由“单元”完成,这些单元对加权输入求和,并通过激活函数(如ReLU)传递结果。在大脑中,对应的基本单元是神经元。然而,神经元并非简单的点,而是复杂的立体结构。人类大脑包含约860亿个神经元。
神经元的基本组成部分

与其它细胞类似,神经元也有一层脂肪膜,将其内部内容物与外部环境隔开。内部充满称为细胞质的液体。在细胞质中,可以找到细胞核等常见细胞器,细胞核包含遗传物质,通常位于神经元的主要细胞体(即胞体)中。
但与其他许多细胞不同,神经元是信息处理单元。它们通过左侧所示的树突树接收来自其他神经元的输入,然后通过右侧所示的轴突向其他神经元、肌肉或腺体发送信号。

神经元的形态多样性
我们常用的示意图是一种简化。实际上,神经元具有惊人的多样性。例如,一项研究对超过1000个神经元进行了详细测量,得出结论认为存在大约70种类型,它们在包括形态在内的多个特征上存在差异。
一些神经元(图中蓝色部分)看起来像上一张幻灯片中的示意图,但另一些(如粉色部分)则看起来相当不同。你可能会认为这种复杂性是人类大脑所独有的,但事实上,这70种神经元类型的研究都只聚焦于小鼠大脑的一个部分。

结构是随机的吗?
这种结构多样性是随机的吗?换句话说,是嘈杂的生物过程的结果吗?答案是否定的。
在一篇论文中,作者分析了一个开源数据集中超过10,000个真实神经元的形态,并证明它们在布线成本(构建分支所需的材料量)和传导延迟(胞体与其他神经元接触点之间的距离)之间取得了平衡。
图A展示了如何以不同方式连接输入点(绿色圆圈)和胞体(黑色圆圈)。左侧是布线成本最小的树,中间是传导延迟最小的树,右侧是一个折中的树。最小化布线成本和传导延迟这两个目标相互竞争,形成了一个帕累托前沿:改善一个会导致另一个的损失。
作者得出结论,神经元的树状结构比随机情况更接近帕累托最优。这表明神经元结构并非随机,而是在优化布线成本和传导延迟之间取得了平衡。

结构如何影响计算?
坦白说,这是一个开放性问题。这里我们提供一个例子,展示人们在这个方向上的研究类型。
在这项研究中,作者对单个神经元进行建模,研究改变其树突树(负责处理输入)的特性如何影响其解决经典机器学习基准任务(如MNIST)的能力。
从对真实树突树的检查中,研究人员发现了两个有趣的特征:分支形态和重复输入。作者研究了改变这种树结构(他们称之为K树模型)如何影响任务性能。他们使用线性点神经元模型作为性能下限,使用具有相同可训练参数数量的全连接神经网络作为性能上限。
他们的结论是,树模型的性能随着重复子树数量的增加而提高,但当使树结构更真实(即不对称)时,性能开始下降。这表明,关于结构如何精确影响计算,仍有大量探索空间。
总结

本节课中,我们一起学习了神经元的基本结构,了解了其作为复杂立体信息处理单元的特性。我们看到了神经元形态的惊人多样性,并了解到这种结构并非随机,而是在布线成本和信号传导速度之间取得了优化平衡。最后,我们探讨了结构如何可能影响计算功能,认识到这是一个活跃的研究领域。在下一节视频中,我们将转向神经元的功能。
006:神经元功能 🧠

在本节课中,我们将学习神经元如何作为信息处理单元工作。我们将重点探讨神经元的电信号活动,包括静息电位和动作电位的产生机制,并了解这些生物特性如何与机器学习模型产生联系。
上一节我们介绍了神经元的结构。本节中,我们来看看神经元如何通过电信号来处理信息。

神经元的电活动记录
以下是研究人员如何记录和分析神经元的电活动。

上图展示了单个神经元的电活动。X轴是时间(毫秒),Y轴是电压(毫伏)。获取此类数据通常需要电极放大器和一个记录样本,例如培养皿中的分离神经元,甚至是手术中的人脑。
从这类图中,我们可以观察到两个主要特征:
- 存在高振幅、持续1-2毫秒的事件,我们称之为动作电位或峰电位。
- 在峰电位之间,神经元的电压在一个基线值附近波动,这个基线值称为静息膜电位。
静息电位的产生机制
那么,神经元如何产生静息电位和峰电位呢?细胞膜在其中扮演了关键角色。细胞膜将细胞内部与外部环境分隔开。
重要的是,带电粒子(离子,如钠离子和钾离子)在膜两侧的分布是不均匀的。例如,钾离子在细胞内的浓度较高,而钠离子和氯离子在细胞外的浓度较高。这意味着膜两侧同时存在化学梯度和电学梯度。
然而,这些带电离子不能直接穿过细胞膜,必须通过镶嵌在膜上的特殊蛋白质通道。有些通道是被动的,只允许离子顺浓度梯度扩散;另一些则是主动的,消耗能量以逆浓度梯度运输离子。
这些离子运动的总体结果是,每种离子都会在一个平衡点达到稳定,此时其化学浓度梯度与静电梯度相等,这被称为该离子的平衡电位。
膜的静息电位是所有离子平衡电位的总和,通常在-70毫伏左右。

动作电位的产生过程
静息电位是神经元在几乎没有输入时的状态。当它接收到输入时,就可能产生峰电位。

上图示意了动作电位产生的过程,时间尺度为几毫秒。
- 去极化:输入信号导致膜上的钠通道打开,钠离子顺浓度梯度流入细胞。这使膜电位升高。如果升高到足够高,超过一个称为阈值的临界点,电压门控钠通道会大量打开。更多钠离子涌入,膜电位迅速上升至峰值。
- 复极化:在高电压下,钠通道关闭,而钾通道打开。钾离子流出神经元,使膜电位下降。
- 超极化:有趣的是,复极化通常会使膜电位下降到比静息电位更低的水平,最低可达-90毫伏。这被称为超极化。其效果是在一段时间内(称为不应期)有效地提高了触发新峰电位的刺激阈值。
- 恢复:超极化之后,主动和被动的离子运动最终将膜电位带回-70毫伏的静息状态。
峰电位的特性与编码
鉴于这个过程的复杂性,你可能会认为峰电位是充满噪声的。但如果我们再看一下单个神经元的记录:


你会发现它们的形状看起来非常相似。实际上,如果我们叠加同一个神经元产生的所有峰电位,会发现它们确实看起来都一样。例如,左图显示了一个真实神经元对不同输入产生的超过100个峰电位。


你可以看到变异性非常低。这意味着每个神经元的峰电位本质上是二元的“全或无”响应。如果神经元需要编码更复杂的信息,它们必须通过改变峰电位的数量或时间来实现。我们将在课程后期回到神经元如何编码信息的问题。
由于每个神经元的峰电位如此相似,峰电位序列(或称峰电位序列)通常被绘制为二进制事件。例如,右图就是我们所说的栅格图,每一行显示了不同神经元随时间变化的放电活动。
神经元的动态差异
虽然每个神经元自身的峰电位形状相同,但并非所有神经元的动态特性都一样。
例如,考虑向神经元注入输入电流。注入足够的电流会使其膜电位超过阈值并引发峰电位。但如果我们只注入少量瞬时电流,其膜电位会升高,然后衰减回静息状态。
我们将这种衰减所需的时间称为膜时间常数。实验观察到,不同的神经元具有不同的膜时间常数值,因此以不同的速率衰减。上图绘制了两个具有不同膜时间常数的示例神经元(尽管是模拟的)的响应。
与机器学习的联系
虽然本视频中的这些细节似乎与机器学习相去甚远,但使用神经网络模型来探索这些特征在计算中的作用,或利用生物特征来提高性能,都是非常令人兴奋的前景。
仅举一个这方面的例子,在引用的论文中,B及其同事构建了具有不同膜时间常数的人工神经网络,并表明这提高了任务性能。
那么,如何制造具有不同膜时间常数的人工单元呢?在下一个视频中,我们将展示如何对单个神经元进行数学建模,这将为我们后续课程中学习如何构建和训练由脉冲单元组成的网络奠定基础。


本节课中我们一起学习了神经元电活动的基础:静息电位的离子机制、动作电位“全或无”的产生过程及其阶段性变化(去极化、复极化、超极化),以及神经元通过峰电位的时间和数量进行信息编码的特性。我们还初步探讨了神经元动态特性(如膜时间常数)的差异及其在改进人工神经网络模型中的潜在价值。下一节,我们将开始学习如何用数学方程来描述这些过程。
007:抽象神经元模型 🧠
在本节课中,我们将学习如何将复杂的生物神经元细节抽象和简化为简单的计算模型。我们将从机器学习中熟悉的人工神经元开始,逐步引入时间动态、泄漏、输入电流建模以及发放频率适应等概念,以构建更贴近生物神经元行为的模型。

从人工神经元到脉冲神经元
上一节我们介绍了生物神经元的许多细节,本节中我们来看看如何将其抽象为简单的模型。我们将聚焦于那些不包含大量生物细节(如神经元的空间结构)的模型。
我们首先从机器学习中你可能已经熟悉的人工神经元开始。这个神经元有 N 个输入,激活值为 x1 到 xN,以及权重 W1 到 WN。每个激活值和权重都是一个实数。
它对其输入进行加权求和,然后将结果通过某个非线性函数 F 传递。你可以在这里使用各种函数。在较早的研究中,你经常会看到 Sigmoid 函数,部分原因是它曾被认为是真实神经元的一个良好模型。如今,你更常看到的是整流线性单元(ReLU),事实证明它更容易处理,并且通常能给出更好的结果。
有趣的是,关于什么是真实神经元激活函数的最佳模型,至今仍有论文发表,例如 2023 年的这篇论文,它看起来有点像 Sigmoid 和 ReLU 之间的中间形态。
模型与生物数据之间的关系是通过计算输入输出函数来建立的。通常,通过计算在一段时间内、多次运行中,进入神经元的脉冲数量与输出脉冲数量的关系。
这个模型所缺失的是生物神经元的时间动态。
引入时间动态:整合发放模型
现在让我们来谈谈时间动态。我们在之前的视频中看到,当神经元接收到足够的输入电流时,会将其推高到一个阈值,从而引发动作电位,也称为脉冲。
输入电流的来源是来自其他神经元的传入脉冲,我们将在下周关于突触的视频中详细讨论。本周,这里有一个简单、理想化的示意图来说明这个过程(该图来自模型而非真实数据,以便更清晰地说明过程)。
曲线显示了神经元膜电位的变化,红色标记指示了输入脉冲到达的时间。每个传入的脉冲都会引起输入电流的瞬时激增。对于第一个脉冲,它不足以导致神经元发放脉冲。过一段时间后,膜电位开始衰减回其静息值。然后更多的脉冲到来,最终,累积效应足以将神经元推过阈值,它发放一个脉冲并重置。
你能想到的最简单的模型称为整合发放神经元。
以下是它的行为示意图。每当一个传入脉冲到达(这里每 10 毫秒一次),膜电位就会瞬时跳跃一个固定的权重值,直到达到阈值,此时发放脉冲并重置。
我们可以用一系列基于事件的方程将其写成标准形式:
- 当接收到传入脉冲时,设置变量
V = V + W_i。 - 如果阈值条件
V > 1为真,则发放脉冲。 - 发放脉冲后,将
V设置为 0。
你可以看到,这已经捕捉到了真实神经元部分行为。但它忽略了在没有新输入的情况下,膜电位会衰减回静息值这一事实。所以让我们加上这一点。
添加泄漏:泄漏整合发放模型

我们可以通过将膜视为电路中的电容器来模拟这种衰减。将其转化为微分方程,V 随时间演化,遵循微分方程:τ * dV/dt = -V,其中 τ 是我们在上一个视频中讨论过的膜时间常数。
解这个微分方程可以看到,在没有任何输入的情况下,V 随时间以时间常数 τ 呈指数衰减。
以下是它的样子。你可以看到,在膜电位瞬时增加之后,它开始衰减回静息值。虽然这看起来不是一个很棒的模型,但事实证明,它通常足以捕捉真实神经元中发生的大部分情况。你将在本周的练习中看到这一点,但我想给出另一个为什么添加这种泄漏可能很重要的原因。
在实验中,如果你向神经元注入一个恒定的输入电流(如图中所示),并记录几次重复试验中发生的情况,你会发现膜电位和脉冲时间在试验之间有相当大的差异。这是因为大脑中存在大量噪声,这些噪声会随时间累积。

另一方面,如果你注入一个波动的输入电流,你会发现膜电位和脉冲都倾向于在相同的时间发生。这张图上的垂直线基本上向你展示了在每次重复中,脉冲都在大致相同的时间发生。
我稍后会回来解释为什么会发生这种情况,但首先让我们看看一些模型在相同情况下的表现。

使用泄漏整合发放神经元,你会看到同样的情况发生。在这里,我将膜电位绘制为半透明,以便你可以清楚地看到,对于波动电流,脉冲时间和膜电位都倾向于重叠,但对于恒定电流则不然。
但是,如果我们用一个没有泄漏的简单整合发放神经元重复这个实验,你可以看到,无论是恒定电流还是波动电流,你都会得到不可靠的脉冲时间。换句话说,添加泄漏使神经元对噪声更具鲁棒性,这是大脑以及我们将在课程后面谈到的低功耗神经形态硬件的一个重要特性。
那么,为什么泄漏能使其更具噪声鲁棒性呢?这个问题由 Romain Brette 和 Eric Shea-Brown 在 2003 年的一篇论文中解答。数学分析很复杂,但归结为这样一个事实:如果你在微分方程中要么有泄漏,要么有非线性,内部噪声引起的波动就不会随时间累积。而对于一个线性且无泄漏的神经元,噪声会累积。

改进输入建模:电流动力学
好的,提醒一下我们讲到哪里了,我们讲到了泄漏整合发放神经元,我们刚刚看到它具有一些你希望生物神经元模型具备的良好特性。但是,当你查看右上角的图片时,你仍然可以看到模型中的这些瞬时跳跃并不非常真实。那么我们如何改进呢?
一个简单的答案是改变模型,使得传入脉冲对膜电位的影响不是瞬时的,而是对输入电流产生瞬时影响,然后该电流作为输入提供给泄漏整合发放神经元。
所以你可以在下面的图中看到,输入电流现在的行为就像之前的膜电位一样,具有这种指数形状。你可以将其视为突触内部过程的模型,我们将在下周详细讨论。目前,我们将通过添加一个微分方程来模拟这一点:τ_i * dI/dt = -I。这与我们之前为膜电位设置的方程类似,但有自己的时间常数 τ_i。
我们还将这个电流 I 添加到 V 的微分方程中,乘以一个常数 R。模型的其余部分与之前相同。
你可以看到这更好地近似了形状。这里你可以看到,这看起来与那个非常相似。
如果你想,你还可以在这里做更多的事情,例如,你可以模拟电导的变化而不是电流,我们将在下周更多地讨论这一点。
模拟发放频率适应
现在,如果你将一系列规则的脉冲输入到一个没有任何噪声的泄漏整合发放神经元中,这就是正在发生的情况。你会看到脉冲之间的时间总是相同的。它必须如此,因为微分方程是无记忆的,并且在每次脉冲后重置。
然而,真实神经元对其最近的活动有记忆。这里有一些来自艾伦研究所细胞类型数据库的记录(我们将在课程后期再次提到)。在这些记录中,他们向这三个不同的神经元注入了恒定电流并记录了它们的活动。
你可以看到,神经元输出的不是规则间隔的脉冲序列,而是脉冲之间的间隔越来越大。你可以在这里特别清楚地看到,这里的间隔比这里的间隔长得多。
这背后有各种机制,但本质上归结为一些较慢的过程没有被脉冲重置。那么让我们看看如何模拟这一点。

实际上,有许多不同的模型用于模拟发放频率适应,我只向你展示一种非常简单的方法,但如果你想了解更多想法,可以看看这篇综述。
在这个简单模型中,我们只是引入了一个由变量 V_T 表示的动态阈值(图中绿线)。每次神经元发放脉冲时,阈值都会增加,使得发放下一个脉冲更加困难,然后阈值缓慢衰减回其起始值。
在方程中,我们通过为阈值设置一个新的指数衰减微分方程来表示这一点,通过修改阈值条件为 V > V_T 而不是大于 1,并指定在脉冲后,阈值增加一个小量。
现在你可以看到它完成了任务,早期脉冲之间的间隔比后期脉冲之间的间隔小。总的来说,发放频率适应可以给神经元带来一些非常丰富和强大的动态特性,但我现在不打算深入讨论更多细节。

总结与扩展
好了,这次对一些抽象神经元模型特性的快速浏览就到这里。如果你想深入了解,还有更多知识需要学习。
我们模型中尚未看到的一些真实神经元行为包括:相位性发放(仅在输入开始时发放脉冲)、簇状发放(多个脉冲,可以是相位性的,仅在输入开始时,也可以是紧张性的,持续进行),以及抑制后反弹,即神经元在抑制性或负向电流关闭后发放一个脉冲。
你可以用双变量模型捕捉许多这些效应,例如自适应指数整合发放模型或 Izhikevich 神经元模型。
还有基于高斯噪声电流或概率性发放过程的随机神经元模型,更进一步,还有神经元的马尔可夫链模型,你可以模拟神经元在离散状态之间切换的概率。
还有很多很多。如果你想进一步学习,我将在本周的阅读材料中提供一些链接。你还会找到一个 Jupyter Notebook,其中包含生成本视频中所有图形的所有代码。
本节课中,我们一起学习了如何将生物神经元抽象为计算模型,从简单的人工神经元出发,逐步引入了时间动态、泄漏整合、电流动力学以及发放频率适应等关键概念,构建了更贴近生物现实的泄漏整合发放模型及其变体。这些抽象模型是理解神经计算和构建脉冲神经网络的基础。

在下一个视频中,我们将讨论更具生物物理细节的神经元模型。😊
008:生物物理模型 🧠
在本节课中,我们将简要了解两类更贴近生物物理现实的神经元模型:霍奇金-赫胥黎模型和包含空间结构的电缆模型。我们不会深入细节,但会介绍其核心思想、数学形式以及它们在计算上的挑战。

霍奇金-赫胥黎模型 ⚡
上一节我们讨论了简化的积分发放模型,本节中我们来看看一个更复杂的经典模型。
霍奇金-赫胥黎模型是一个著名的生物物理模型,可以精确地模拟动作电位。下图展示了一个由该模型生成的动作电位波形。

这类模型的推导方式,是将细胞膜视为一个由电容和多个电压依赖性电阻(对应不同的离子通道)组成的电路。每个离子通道都有其自身的动力学特性,并且存在许多不同的类型。
在霍奇金和赫胥黎的原始论文中,他们只考虑了三种通道:钠通道、钾通道和漏通道。他们通过手工计算(使用手摇机械计算器,耗时数周求解方程),找到了一系列能很好近似这些动力学的函数。最终,这归结为一个包含四个动态变量的非线性微分方程,其中有许多函数形式和常数需要根据数据拟合。
该模型的模拟也颇具挑战,要么需要非常小的时间步长,要么需要特定的数值积分方法。
以下是一个模拟此类模型的代码示例(可在本视频附带的Notebook中找到):
# 霍奇金-赫胥黎模型模拟代码示例
# 此处为伪代码,展示模型的核心结构
def hodgkin_huxley(V, m, h, n, I_inj):
# 定义各种离子电导、反转电位等参数
# 计算膜电流
# 更新状态变量 (V, m, h, n) 的微分方程
return dVdt, dmdt, dhdt, dndt
以上只是对此类模型的快速一瞥。如果你有兴趣了解更多,视频中提供了进一步阅读的链接。

空间结构与电缆模型 🌳
到目前为止,我们讨论的所有模型都完全忽略了一个事实:神经元具有非常复杂的空间结构,包括树突和轴突。如下图所示,电活动会在细胞周围传播。

我们可以通过将树突和轴突想象成圆柱体来捕捉这种结构,然后将这些圆柱体分解成许多相对均匀的短圆柱段。接着,我们像处理霍奇金-赫胥黎神经元一样,将每一段视为电路中的一个节点。


如果采用这种方法并进行数学分析,我们会得到电缆方程,这是一个二阶偏微分方程:
∂V/∂t = (1/(r_m * c_m)) * ∂²V/∂x² - (V - V_rest)/τ_m
其中,V是膜电位,x是沿神经突的距离,r_m和c_m是膜的特性参数,τ_m是膜时间常数。
可以通过将电缆分割成如上所述的分隔间来模拟这个方程。但可以想象,计算量会迅速变得非常庞大,因为真实的神经元可能有成千上万个需要模拟的分隔间。
问题在于,这些空间细节对于网络整体的功能是否重要,还是仅仅是实现细节?目前尚无定论,但有观点认为它可能很重要,这是一个活跃的研究领域(例如,可以参考近期的一些论文)。核心挑战在于,其计算需求太大,难以在机器学习设置中或没有巨大计算资源的大型网络中使用。
模型简化工具 🛠️
这就引出了Dendrified这类工具。它是一个相对较新的软件包,可以自动将这些非常复杂的模型简化为易于模拟的形式,同时仍能捕捉大量相关动力学特征,如下列示例所示。


如果你有兴趣探索树突结构可能为网络级计算带来什么,这个软件包可能值得一看。
总结 📝

本节课中,我们一起学习了两种更复杂的神经元建模方法。我们首先介绍了经典的霍奇金-赫胥黎模型,它用微分方程精细描述离子通道动力学。接着,我们探讨了包含神经元空间结构的电缆模型及其数学表达——电缆方程,并指出了其高昂的计算成本。最后,我们提到了像Dendrified这样的工具,它们致力于在保持生物真实性的同时降低计算复杂度。
关于神经元建模的视频到此结束。下一个视频将快速介绍本周的编程练习。从下周开始,我们将继续学习突触和网络。


009:第一周练习指南 🧠
在本节课中,我们将介绍第一周的练习内容,并展示完成练习的几种不同方式。课程练习分为两个部分:第一部分是模拟一个漏电整合发放神经元模型,第二部分是使用一个简单模型来拟合给定的神经元放电数据。

访问练习材料
上一节我们介绍了课程背景,本节中我们来看看如何获取练习材料。

练习材料位于课程网站上。向下滚动到“第一周”部分,可以看到“练习”选项。这里提供两种主要方式访问练习笔记本。

以下是两种访问方式:
- 预览笔记本:点击此选项将在GitHub上打开练习仓库。你可以查看内容或在本地克隆仓库使用。
- 在Google Colab中打开:点击此选项将在Google Colab中直接打开笔记本。这种方式会自动处理所有环境配置,让你可以立即开始编辑和运行代码。

对于选择本地操作的用户,仓库中提供了在本地安装Python和运行Jupyter Notebook的说明。你可以使用VS Code等编辑器打开并运行笔记本中的代码单元。
练习第一部分:模拟LIF神经元
现在,让我们具体看看本周的练习内容。第一部分的目标是将学到的关于漏电整合发放神经元的理论知识转化为代码,实现你自己的模拟。
你需要用Python编写代码,模拟LIF神经元的行为。练习中提供了一个函数模板,你的主要任务是根据以下算法填充关键部分的代码:
# 算法伪代码示例
for each time step:
# 1. 计算膜电位变化
dV = (I - (V - V_rest)) / tau_m
# 2. 更新膜电位
V += dV * dt
# 3. 检查是否达到阈值并发放脉冲
if V >= V_threshold:
record_spike_time()
V = V_reset
完成代码编写后,运行对应的单元。如果实现正确,你将得到与示例一致的结果图。完成这部分练习预计需要30到40分钟。
练习第二部分:拟合神经元数据
完成了基础模拟后,我们进入一个更开放、更接近真实研究情境的练习。第二部分的目标是使用一个简单的抽象模型来近似拟合给定的神经元放电数据。
首先,运行提供的代码单元来加载数据。数据包含一系列输入电流和记录到的神经元响应轨迹与放电时间。你可以将此视为真实实验数据。
你的任务是构建一个模型,使其产生的放电时间与数据中的放电时间尽可能匹配。练习中实现了一个用于评估拟合好坏的距离度量——Van Rossum脉冲序列距离。你的模型输出的放电时间与真实数据放电时间之间的距离值由 eval_LIF 函数计算并返回。
距离值越小,表示拟合效果越好。值为0代表完美拟合。下图展示了一个使用默认参数的LIF模型的初步拟合结果,你可以看到其表现有改进空间。

第二部分的练习就是尽你所能,通过优化模型参数,来获得最低的距离值,即最佳拟合。有多种方法可以尝试:
- 手动调整参数。
- 使用全局优化包,例如Python中的CMA-ES库。
对于参加线下课程的同学,课程结束时将汇总大家获得的最佳距离值,最优解者可以向其他同学展示其解决方案。
总结与提醒
本节课中我们一起学习了第一周练习的概览和完成方式。我们介绍了如何获取练习材料,第一部分LIF神经元模拟的编码任务,以及第二部分数据拟合的开放挑战。
请享受练习过程!对于在线学习的同学,欢迎讨论交流,但请注意不要过早分享完整解决方案,以免影响他人的探索乐趣。

祝你练习顺利!
010:突触的工作原理
在本节课中,我们将学习神经元之间是如何进行信号传递的。我们将从单个神经元的结构出发,探讨动作电位如何沿着轴突传导,并最终通过一个称为“突触”的特殊连接结构,将信号传递给下一个神经元。我们将详细介绍化学突触的组成、神经递质的释放与作用,以及突触信号的终止机制。最后,我们会将生物神经元与人工神经网络单元的输出特性进行对比,探讨一个有趣的生物学原则。

上一节我们介绍了离子运动如何使神经元产生静息膜电位和动作电位。本节中,我们来看看神经元之间是如何相互传递信号的。
从我们的单个神经元示意图开始。

神经元树突的输入会导致钠离子通道打开。遵循浓度梯度,这些离子扩散进入细胞,并沿着树突、胞体和轴丘(富含电压门控通道的区域)传播。
少量的输入不足以将膜电位提升到触发这些通道打开的程度(请回忆上一节提到的阈值)。但大量的输入则可能达到阈值,此时更多的钠离子会流入神经元,并开始沿着轴突扩散。
然而,如果没有额外的帮助,这个信号在沿轴突传播的过程中会逐渐衰减。
那么神经元如何防止这种情况发生呢?解决方案是使用一种称为髓鞘的脂肪物质来绝缘轴突。

但是,即使绝缘整个轴突长度也可能不够。因此,轴突被绝缘的髓鞘节段分隔开,节段之间的间隙称为郎飞结,这些节点富含电压门控通道。这有效地在信号沿轴突传播时对其进行增强,并产生我们所说的跳跃式传导。
那么,一旦信号到达神经元的轴突末梢会发生什么?

如果我们放大其中一个末梢,可以看到这是一个神经元与另一个神经元连接的地方。
我们称这种连接为突触,并将两侧的神经元分别称为突触前神经元和突触后神经元。
这些连接可以是电性的(称为缝隙连接),也可以是化学性的,就像图中所示。
那么,化学突触由什么组成呢?突触前神经元含有囊泡,这些是充满化学信使(称为神经递质)的3D球体。
突触后神经元的细胞膜中嵌有称为受体的蛋白质,神经递质会与之结合。两者之间的间隙称为突触间隙。虽然它通常被画成一个空隙,但实际上有蛋白质跨越其中,将整个连接结构固定在一起。
当动作电位到达轴突末梢时,离子的内流使膜去极化,导致电压门控钙通道打开,钙离子流入细胞。
这导致突触囊泡与细胞膜融合,并将其中的神经递质释放到突触间隙中。
神经递质随后扩散穿过间隙,与突触后受体结合,触发不同的效应。
在图中,结合导致一个离子通道打开,正离子流入突触后神经元,从而升高其膜电位。因此,我们将此描述为兴奋性突触,因为一个突触前动作电位会使突触后神经元更有可能发放动作电位。
相反,抑制性突触会降低突触后神经元的膜电位,使其发放动作电位的可能性降低。
那么这个信号如何终止呢?一些神经递质分子只是从间隙中扩散走。一些被酶分解,还有一些实际上被重新摄取回突触前神经元。
这里有一个有趣的旁注:有一整类用于治疗抑郁症的药物,其作用机制就是抑制这种重摄取通道。它们被称为选择性5-羟色胺再摄取抑制剂,一个常见的例子是百忧解。


现在让我们更详细地讨论神经递质。
神经递质是由神经元合成的分子,用于向其他神经元传递信号。已知有数百种神经递质,被认为具有不同的功能。这里仅举三个常见的例子。
谷氨酸是脊椎动物神经系统中的主要兴奋性神经递质。
γ-氨基丁酸是主要的抑制性神经递质。
多巴胺通常被认为是愉悦信号,但可能最好描述为效价信号。
有趣的是,单个神经元往往包含并释放多种递质。例如,一个神经元可能同时使用GABA和多巴胺。不过一般来说,神经元在其所有突触处都释放相同的一组递质。


这被称为戴尔原则,并在生物和人工神经网络之间建立了一个有趣的对比:生物神经元会向其所有连接伙伴释放相同的一组神经递质。
但在人工神经网络中,单个单元既有正的输出权重,也有负的输出权重,因此它们的激活会向不同的单元发送不同的信号。
那么,这是生物学的局限性还是优势呢?为了探索这个问题,Jonathan Cornford 及其同事构建了人工神经网络,其中每个单元要么是兴奋性的,要么是抑制性的(如左图中粉色和蓝色所示)。
事实证明,这些网络很难用标准的梯度下降法进行训练,最终表现不如标准的人工神经网络。你可以在右侧图表中看到这一点,其中黑色曲线显示标准人工神经网络的性能,绿色曲线显示简单遵循戴尔原则的网络性能。
因此,作者引入了一些修正,使得遵循戴尔原则的网络能够匹配标准人工神经网络的性能(图中红色曲线所示)。但由于作者只能匹配标准人工神经网络的性能,并且据我们所知,尚未有人通过遵循戴尔原则显示出更好的结果,因此神经元为何倾向于遵循这一原则仍然是一个悬而未决的问题。

好的,回到神经传递。一旦被释放,神经递质会扩散穿过突触间隙,找到嵌入细胞膜中的受体,并触发不同的效应。
有数百种受体,它们都对不同的神经递质具有特异性,但它们仅分为两大类。

离子型受体(如上图所示)是神经递质结合会触发结构变化从而打开离子通道的受体。
代谢型受体是结合会触发突触后神经元内部信号级联反应的受体,这可能最终打开离子通道或引起其他效应。
希望这能让你更好地理解突触的工作原理。在下一个视频中,我们将介绍突触如何调整其强度或权重。
😊


本节课中,我们一起学习了神经元间信号传递的核心机制。我们了解了动作电位如何通过髓鞘和郎飞结实现高效传导,深入探讨了化学突触的结构与功能,包括神经递质的释放、结合与清除过程。我们还对比了生物神经元的戴尔原则与人工神经网络单元输出特性的差异。下一节,我们将聚焦于突触可塑性,即突触如何调整其连接强度,这是学习和记忆的神经基础。
011:突触可塑性 🧠
在本节课中,我们将学习生物神经网络如何调整其连接强度,这与训练人工神经网络时调整权重类似。我们将探讨从长期到短期的多种可塑性机制。

上一节我们介绍了突触、神经递质和受体的基本概念。本节中,我们来看看突触如何调整其连接强度或“权重”。
赫布学习规则
在人工神经网络中,我们根据学习规则调整连接权重。那么生物学中的等效机制是什么?
早在1949年,唐纳德·赫布提出了一个相对简单的学习规则:如果细胞A的轴突足够靠近细胞B并反复或持续地参与激发它,那么一个或两个细胞中会发生某种生长过程或代谢变化,使得A激发B的效率提高。这一规则后来被实验证实。

该规则常被概括为“一起激发的细胞,连接在一起”。反之,不同步激发的细胞会失去连接。但这忽略了细胞A必须先于细胞B激发并促成其激发的事实,因此相对时序至关重要。
脉冲时序依赖可塑性
为了进一步阐述,让我们考虑一对神经元。
- 图A 展示了突触前神经元的脉冲是倾向于发生在突触后神经元之前还是之后,从而判断它们的关系是因果性的还是非因果性的。
- 图B 展示了该突触的强度(Y轴)将如何根据两个神经元脉冲的时序差进行调整。
- 如果关系是因果性的(即突触前先于突触后),强度将增加或增强(长时程增强,LTP),图中以绿色表示。
- 如果关系是非因果性的(即突触前跟随突触后),强度将减弱(长时程抑制,LTD),图中以红色表示。
这种机制被称为脉冲时序依赖可塑性。它通过LTP和LTD过程,倾向于诱导突触强度的长期变化。
突触强度的改变机制

那么,突触层面发生了什么变化导致了这种权重改变?
如果我们思考突触的结构,可以看到改变连接强度有多种可能性,例如:
- 增加突触小泡的数量或内部神经递质的密度。
- 增加突触后受体的数量。
- 增加突触的表面积。
- 甚至在两个神经元之间增加额外的突触。
但这些都是长期变化。突触权重也可以在更短的时间尺度上改变,大约在数百到数千毫秒内。这被称为短期可塑性,它描述了突触强度如何随着突触前活动水平动态变化。
以下是短期可塑性的两种主要形式:
- 短期易化:由动作电位后轴突末梢残留的钙离子水平升高引起,这增加了神经递质释放的概率。
- 短期抑制:由突触处可用神经递质水平降低引起,在极端情况下,突触可能完全无法传递信号。
因此,短期可塑性反映了神经元近期的活动状态,其突触的状态会动态地影响其权重。
与机器学习的联系:Dropout 与 DropConnect
回到之前,突触有时会传递失败,这可能会让一些人联想到机器学习中的Dropout技术。
这里的关键区别在于:
- 在Dropout中,你在训练期间随机静默整个单元(神经元),这有助于减少过拟合。
- 而在生物突触失效的类比中,是单个连接(权重) 失效,而不是整个单元。

实际上,Yann LeCun及其同事在2013年的一篇论文中探讨了这两种情况的差异。他们提出了DropConnect方法,即随机静默权重(连接)。
为了快速比较两者,图表显示了在MNIST数据集上,测试误差随网络大小的变化函数:
- 无Drop(黑色):误差随网络增大而增加,因为网络越来越过拟合数据。
- Dropout(红色):误差随网络增大而减小。
- DropConnect(蓝色):误差更低且更稳定。
该论文提供了更多的实证和理论结果,表明在某些情况下,DropConnect可能比Dropout更具优势。
总结
本节课中,我们一起学习了生物突触如何调整其连接强度。我们从赫布学习规则及其具体实现——脉冲时序依赖可塑性入手,了解了导致长期权重变化的LTP和LTD机制。接着,我们探讨了发生在更短时间尺度上的短期可塑性,包括易化和抑制。最后,我们将突触失效的现象与机器学习中的正则化技术Dropout和DropConnect联系起来,看到了生物机制对人工神经网络设计的启发。

下一节视频,我们将讨论神经元和突触如何共同构成网络并执行功能。
012:神经网络

在本节课中,我们将学习神经元如何连接在一起形成网络或回路。我们将通过两个生物学中的具体网络实例来理解这一概念。
在上一节中,我们学习了神经元如何通过突触彼此连接和传递信号。本节中,我们来看看神经元如何组织成更复杂的网络结构。

如何绘制生物神经回路?
神经科学家通过以下步骤来绘制生物神经回路:解剖动物大脑,将其切成非常薄的切片,进行染色,在显微镜下观察,然后分析图像。历史上,这项工作完全由手工完成,例如卡哈尔在1894年的绘图。如今,从数据采集到分析的整个过程都在走向自动化,这是一个值得关注的激动人心的领域。
示例一:小脑回路 🧠
小脑是大脑中负责协调运动的区域,其回路结构如下图所示。

关于此图,有三点需要注意:
- 细胞分布在三个标记于左侧的层中。
- 主要细胞类型(如颗粒细胞和浦肯野细胞)已被标注。
- 不同细胞类型之间的连接根据其使用的神经递质被标记为兴奋性(exc)或抑制性(true/inhibitory)。
那么,信息如何在这个网络中流动呢?
在右侧的苔状纤维通路中,输入信号与颗粒细胞形成突触。颗粒细胞随后将其输出向上发送到上一层,在那里它们分支并扩散通过浦肯野细胞的树突丛,形成成千上万个兴奋性突触。由于其结构,这些颗粒细胞的输出被称为平行纤维。浦肯野细胞然后向回路的输出端——深部小脑核——发送抑制性连接。
在左侧的第二个通路,即攀爬纤维通路中,其他输入信号直接到达浦肯野细胞。你还可以注意到回路中其他有趣的连接,例如这两个通路都有直接通向输出的连接(即从苔状纤维和攀爬纤维直接到深部小脑核)。
我们如何思考或建模这个网络的功能呢?相关模型已被提出了50多年,一种简化的思考方式是将其视为一个具有我们刚讨论的两个通路的三层网络。输入通过苔状纤维到达,苔状纤维连接到第一层(颗粒细胞)和第三层(核细胞)。然后,信号通过网络进行前馈传递,第三层生成输出预测。这些输出随后与输入观察进行比较,两者之间的差异作为误差信号,通过攀爬纤维通路(在图中以红色显示)反馈给网络。如果你对这个模型感兴趣,可以阅读相关论文,它探讨了一个非常有趣的问题:当传递误差信号到第三层的连接相对较弱时(如图B中细红色箭头所示),网络如何能够学习。
示例二:头部方向细胞与环形吸引子 🧭
大约30年前,研究人员在记录大鼠大脑中单个神经元活动时,发现了一些似乎编码动物头部方向的细胞,他们将其命名为头部方向细胞。例如,下图显示了三个神经元的放电频率(每秒峰电位数量)随动物头部方向变化的情况。可以看到,每个神经元都对特定方向非常敏感。

这项及后续研究表明,作为一个群体,这些神经元均匀地覆盖了所有可能的头部方向空间,并且这些细胞的活动依赖于视觉和前庭(平衡)输入。
为了更好地理解这些结果,张等人于1995年提出了一个吸引子模型。他们将其绘制成一系列环,头部方向细胞在外环,视觉和前庭输入在内环。该模型有许多细节,但最突出的一点是:相邻的头部方向细胞之间有强烈的兴奋性连接,而相距较远的细胞之间有强烈的抑制性连接。这意味着在任何时刻,只会有一个活跃的细胞簇。视觉或前庭对头部方向细胞的输入将迫使这个活动峰值在环上移动。
有趣的是,作者认为这只是一个相对抽象的模型,并在论文中写道:“将网络视为一组圆形层有助于理解,但这并不反映大脑中相应细胞的解剖学组织。”
然而,最近在果蝇中的实验揭示了一组排列成环状的神经元,其单一的活动峰追踪着果蝇的头部方向。在这个实验中,作者让果蝇在一个旋转的跑步机上行走,同时果蝇观看一个带有地标的屏幕(图A中显示为蓝色圆环)。

同时,他们记录果蝇的大脑活动(如下方黑色和红色方框所示)。我们将在课程后面解释他们使用的记录技术,目前只需知道红色表示更高的神经活动。可以看到,随着果蝇的导航,一个单一的活动峰在环上旋转。下方的D和E图显示,这个活动峰确实追踪着果蝇的头部方向。
总而言之,环形吸引子是一个很好的例子,展示了实验与理论如何相互促进。
总结

本节课中,我们一起学习了生物神经网络的构成与分析。我们首先了解了绘制神经回路的基本方法,然后深入探讨了两个具体实例:小脑的三层网络回路及其在运动协调和误差学习中的可能功能,以及头部方向细胞系统及其用环形吸引子模型(具有局部兴奋、全局抑制的连接特性)来解释的神经编码机制。这些例子展示了神经系统如何通过特定的连接模式实现复杂的信息处理功能。在接下来的视频中,Dan将更详细地讨论突触和网络的建模。
013:突触模型

在本节课中,我们将学习如何将复杂的突触生物学过程转化为相对简单的数学模型。我们将探讨不同详细程度的突触模型,从简单的膜电位变化到包含短期可塑性的复杂动态,并简要介绍突触类型、长时程可塑性及其他高级概念。
从生物学到方程
上一周我们介绍了许多详细的生物学知识,本节中我们来看看如何将其转化为方程。
马库斯解释了当动作电位到达突触前末梢时,会释放神经递质。这些神经递质导致相关离子通道打开,从而改变接收细胞的电导。这进而产生输入电流,其遵循的方程与我们上周看到的霍奇金-赫胥黎形式主义类似。最终,这会导致霍奇金-赫胥黎神经元或漏电积分发放神经元的膜电位发生变化。
与神经元建模类似,我们需要决定在突触模型中包含多少细节。省略某些细节的一个原因是,某些变化发生得足够快,在我们观察的时间尺度上,模拟其时间动态不会带来太大差异。
突触后电位与模型细节
一个有助于理解的概念是突触后电位,有时简称为PSP。它显示了由于动作电位到达接收细胞而导致的该细胞膜电位升高。
下图展示了三个不同详细程度的突触模型:
- 蓝色曲线:将突触建模为膜电位的瞬时增加。
- 橙色曲线:将其建模为电流的瞬时增加,随后电流指数衰减回静息状态。
- 绿色曲线:同样是指数衰减,但瞬时增加的是电导。

接下来,我们先讨论如何直接用电导、电流或膜电位来建模动态,稍后再回来详细讨论神经递质释放的动态。
线性时不变模型
一种常见方法是确定关键的突触变量,并用以下三类函数之一进行建模。稍后我会解释为什么是这三类。为简单起见,我将它们描述为突触后膜电位,尽管它们也可用于模拟电流或电导。
以下是三类核心函数:
- 指数函数:可以写成一个指数衰减与一个阶跃函数
H(t)的乘积。H(t)在t<0时返回0,否则返回1。- 公式:
PSP(t) = A * exp(-t/τ) * H(t)
- 公式:
- Alpha函数:复杂度更高一级。在这个方程中,我们将指数衰减乘以
t,使其在衰减前连续上升。- 公式:
PSP(t) = A * (t/τ) * exp(1 - t/τ) * H(t)
- 公式:
- 双指数函数:复杂度更进一步,允许我们用两个不同的时间常数分别控制上升和下降时间。
- 公式:
PSP(t) = A * (exp(-t/τ_rise) - exp(-t/τ_decay)) * H(t)
- 公式:

这三类函数都可以表示为具有常系数的线性时不变微分方程。这有一定道理,因为我们期望物理系统模型具有时不变性,而线性和常系数是最简单的选择。
我们可以进一步将这些方程写成矩阵形式并计算其特征值。对于既是线性时不变又具有常系数的一维或二维系统,这三种形式本质上是仅有的可能性。指数函数是一维系统的唯一可能;在二维系统中,根据特征值是否重复,你会得到Alpha函数或双指数函数。

短期可塑性
到目前为止,我们看的是无记忆的突触模型,即先前的活动不影响其后续行为。但这并不完全准确。
神经递质在囊泡中释放,释放后,如果另一个动作电位到来,一部分囊泡将不可用。这意味着后续的脉冲可能比先前的脉冲效果更小,我们称之为短期突触抑制。我们可以通过添加一个额外变量 x 来跟踪可用囊泡的比例来建模。
然而,也存在后续每个脉冲比前一个脉冲效果更大的情况,我们称之为易化。一个包含这两种效应的简单模型是添加一个额外变量 u,表示可用囊泡被释放的概率,并允许其在每个脉冲后增加。
以最简单的方式结合这两个想法,我们得到以下模型:
- 在没有任何脉冲的情况下,可用囊泡池将指数增长,直到所有囊泡都可用。同时,释放概率将衰减到零。我们可以用易化时间常数
τ_f和抑制时间常数τ_d来控制这些过程的速率。 - 当脉冲到达时,我们首先增加
u(囊泡释放概率)。注意我们先做这一步,否则第一个脉冲将释放零个囊泡。 - 接下来,我们释放的囊泡数量与
u * x成正比,因为有x个可用囊泡,我们以概率u释放。在这个模型中,我让它直接修改膜电位V,但和前面的幻灯片一样,它也可以修改其他变量。 - 最后,由于我们已经释放了
u * x个囊泡,我们必须通过从x中减去这个量来将它们从可用池中移除。
以下是这两种情况下这些变量的变化示意图。
那么这在功能上有什么作用呢?和往常一样,我们没有完整的答案。可以肯定的是,它赋予了突触比原本更长的记忆,这在许多情况下可能很有用。它还可以让神经元具有更丰富的脉冲频率动态,使其能够充当低通、高通或带通滤波器,并进行增益控制。人们还提出了许多其他想法,我在阅读列表中放了一些链接,供你了解更多关于短期可塑性及其他模型的信息。
突触类型:兴奋性与抑制性
正如马库斯提到的,突触可以是兴奋性的或抑制性的。存在一系列不同的离子通道和动态,产生了不同类型的兴奋性或抑制性突触。
最简单的模型是:兴奋性突触导致某个变量增加,而抑制性突触导致其减少。然而,当使用详细的离子通道动态和空间结构对突触建模时,情况会变得更有趣。
分流抑制是一个很好的例子。在分流抑制中,一个脉冲导致局部电导增加,但其反转电位接近静息电位。这意味着,在没有任何其他输入的情况下,你观察不到对膜电位的任何影响。然而,它会减少树突上兴奋性突触的效果,而对胞体上或不同树突分支上的兴奋性突触没有影响。这意味着它可以对兴奋性输入产生选择性的、除法效应,这是其他方式难以实现的。
另一个有趣的通道类型是NMDA受体,它不能线性建模。有效的NMDA受体激活要求接收神经元的膜电位最近处于高位,这可能在学习中很重要。
长时程可塑性与学习
谈到学习,我应该在这里提一下长时程可塑性,但只是简要提及,因为这是第4周的主要主题。马库斯提到了赫布规则,你通常可以通过为突触权重 w 添加一个微分方程来建模,该方程是突触前和突触后神经元活动的函数,我们将在后面讨论一些特定的模型。
还有脉冲时间依赖可塑性。实验观察到,特定的突触前和突触后脉冲时间配对可以导致突触增强或减弱。我们可以通过增加一个依赖于时间差的 Δw 来建模权重,这可以合理地拟合实验数据。这种特定的曲线——如果突触前脉冲倾向于在突触后脉冲之前到来,则突触增强——可以被认为是鼓励网络关注时间因果关系。
关于这一点,我现在就讲这么多,但在课程后面我们会看到更多相关内容。
其他突触现象
和往常一样,关于突触建模还有很多可以说的,在结束本视频之前,我将简要提及两点。
第一点是突触失败,这很容易建模,因为我们可以为每个突触事件添加一个失败概率。


第二点是间隙连接,这是两个神经元通过直接的电连接而非化学突触进行通信。同样,这可以直接建模为另一种电流,在这种情况下与膜电位差成正比。当然,也有更复杂的模型。间隙连接存在于许多物种中,但一个特别有趣的例子是微小的线虫。神经科学家喜欢它,因为它总是恰好有302个神经元,且连接模式相同。它的不寻常之处在于,它们大多是非脉冲性的,而是使用间隙连接进行通信。

总结

本节课中我们一起学习了如何为突触建立数学模型。我们从不同详细程度的模型(指数、Alpha、双指数函数)开始,这些模型基于线性时不变系统。接着,我们引入了短期可塑性(抑制和易化)的概念,以模拟突触对脉冲历史的有记忆响应。我们还探讨了兴奋性与抑制性突触的区别,以及分流抑制和NMDA受体等特殊类型。最后,我们简要介绍了长时程可塑性、STDP以及其他现象如突触失败和间隙连接。在下一个视频中,我们将探讨如何对神经网络进行建模。
014:网络模型 🧠

在本节课中,我们将开始探讨网络建模。从某种意义上说,这是本课程剩余部分的核心主题。
一个关键问题是:网络能完成哪些单个神经元无法完成的任务?简单的答案是:网络可以完成任何任务。这决定了我们无法在一个简短的视频中涵盖所有内容。因此,我们将从一个具体的网络模型入手,深入探讨其工作原理,并展示它如何与神经科学家理解大脑的一些概念联系起来。
网络的能力与通用性
上一节我们提出了网络能力的问题,本节中我们来看看其理论基础。
早在1943年,McCulloch和Pitts就证明了脉冲神经网络可以实现任何逻辑函数。不仅如此,就像人工神经网络一样,脉冲神经网络也是一个通用函数逼近器。这意味着它们可以逼近任何合理的函数。
Google Research的Yulia Komarova提供了一个简洁而优美的证明。她的思路如下:
- 首先,证明可以使用脉冲神经元实现“小于”和“大于”运算符。
- 接着,通过加入实现逻辑“与”的网络,可以表达区间(或高维空间中的超立方体)。
- 最后,通过组合这些元素,只需将函数划分为越来越小的超立方体,就能以任意精度逼近任何函数。
这个结论或许并不意外,因为我们的大脑本身就是脉冲神经网络,并且功能强大。但这意味着我们无法涵盖网络的所有可能性。因此,我们将聚焦于一个具体的研究案例。

案例分析:声音定位电路 🔊
我们将详细探讨一个特定的网络模型:声音定位电路。我们判断声音方向的一个关键依据是声音到达双耳的时间差。对人类而言,最大时间差约为650微秒,但我们能分辨小至20微秒的差异,猫头鹰等动物甚至能分辨几微秒的差异。
那么,我们如何检测这种微小的时间差呢?一个经典模型由Lloyd Jeffress于1948年提出,至今仍见于教科书。在他的模型中,有一排所谓的“重合检测器”神经元。这些神经元只有在同时接收到来自两个突触的输入时才会发放脉冲。
信号从左耳传入,以恒定速度沿这条通路传播,以略微不同的延迟到达每个神经元。同时,信号从右耳传入,以相反方向进行同样的传播。当声学延迟与神经延迟恰好抵消时,信号会同时到达重合检测器并使其发放脉冲。我们可以根据哪个神经元发放了脉冲来判断声音的来源。
以下是该电路的工作原理:
- 声音首先到达左耳。
- 信号从左耳出发向右移动。
- 声音随后到达右耳。
- 信号从右耳出发向左移动。
- 当左右信号在某个神经元处同时到达时,该神经元被激活。
Jeffress的声音定位模型具有几个有趣且更具普遍性的特征,值得我们深入探讨。
网络的关键特性
重合检测 🔍
重合检测是泄露积分发放神经元的一个普遍特性。如下图所示,当两个脉冲几乎同时到达时,其叠加效应足以使神经元超过阈值并发放脉冲。而当它们到达的时间间隔较大时,脉冲之间的泄露会导致峰值降低,不足以超过阈值。
我们可以绘制一个接收两个脉冲的神经元在存在高斯背景噪声下的响应曲线。结果显示,当输入脉冲的时间差越小时,神经元发放的脉冲越多,这正是我们所需要的效果。
调谐曲线 📊
上述响应曲线是神经科学中“调谐曲线”的一个例子。调谐曲线显示了神经元对一个或多个变量定义的刺激的平均响应。在这个案例中,变量是两个脉冲的到达时间差,但它也可以是视觉图像的对比度、声音的振幅或音高等。调谐曲线也可以是二维的,此时可以绘制成图像。我们稍后会再回到调谐曲线。

空间结构 🗺️
该网络的另一个在神经科学中常见的特征是空间结构。这里的细胞按照它们偏好的到达时间差排列成一维阵列。这种模式在大脑的听觉、视觉和其他模态中以1D或2D形式广泛存在。
例如,在大鼠的桶状皮层(处理胡须输入的大脑区域)中,彩色斑点显示了在该位置记录的细胞偏好的刺激方向。虽然单个动物的空间结构不明显,但综合多个动物的数据并稍作平滑后,这种结构就变得清晰可见。有趣的是,这种结构是后天习得的,在幼鼠或成年盲鼠中看不到。

在建模中,可以轻松地为每个神经元添加一些元数据来指定其位置,并在模型中使用。例如,可以使附近神经元之间的连接比远距离神经元之间的连接更有可能。
信息的编码与解码
了解了调谐曲线和空间结构的概念后,我们可以讨论信息在这个网络中是如何编码和解码的。
本质上,Jeffress提出的模型就是我们今天所说的独热编码。知道最活跃神经元的身份或索引,就能告诉你数据的类别(在本例中,是将一个值归入几个离散区间之一)。
然而,在存在神经噪声的情况下,这并不是一种非常鲁棒的解码方式。David McAlpine及其同事提出了另一种观点,认为大脑可能通过计算偏好“右耳领先”的细胞活动总和与偏好“左耳领先”的细胞活动总和之差,来从这个网络解码信息,并使用这个一维变量来回归声音位置。事实证明,这种方法对噪声的鲁棒性更强。从概念上讲,这是因为通过对所有细胞的活动求和(或等效地求平均)来减少噪声的影响。
2013年,我发表了一篇论文,其核心观点是:通过使用标准的多类感知机,可以比上述两种方法做得更好。这种方法以一种前两种模型都无法做到的方式利用了所有信息,包括平均掉噪声。巧合的是,同年,我刚加入的同一个实验室发表了另一篇论文,做了基本相同的事情,只是他们使用了贝叶斯解码框架而非感知机。因此,我将用他们的论文来介绍那个框架。
概率群体编码 🧮
我们已经看到,如何拥有一个重合检测器阵列,其响应大小取决于声音的到达时间差。
想象我们将这个神经元群体的所有调谐曲线叠加绘制。如果ITD(双耳时间差)位于灰色竖线处,那么我们会在这些圆圈处看到响应。我们的想法是利用这种响应模式来推算出ITD。如果没有噪声,你可以轻松地从图中读出。但这些响应非常嘈杂,因此我们必须使用概率方法。有一种非常常见的方法可以做到这一点。
这需要一点数学推导。我们想估计ITD(记为 θ)。我们知道神经响应是一个向量 x。我们假设它们是独立的,因此可以轻松计算给定特定θ值时,观察到响应向量 x 的概率。那么,我们的最大似然估计器就是使观测到的响应最有可能的θ值。
但我们不知道给定 x 时 θ 的概率,只知道反过来。这时就需要贝叶斯定理,因为它让我们可以用一个计算另一个。具体来说,由于我们是在对 θ 求最大值,我们可以忽略任何不依赖于 θ 的项,因此可以忽略 P(x)。如果我们假设所有 θ 值出现的可能性相同,也可以忽略 P(θ) 项。另一方面,如果我们有关于哪些ITD更可能出现的先验知识,也可以将其纳入,这种方法则被称为最大后验估计。
现在,我们可以用我们可以计算的东西来表达我们想要的估计值。这一切可能看起来很抽象。但在本例中,我们可以做一些额外的假设,从而大大简化。
我们将假设所有这些调谐曲线的形状近似为高斯曲线,以某个神经元 i 的偏好ITD θ_i 为中心。我们还假设噪声服从泊松分布,这是一个对神经元相当合理的模型。在这些假设下,最大似然估计简化为:对偏好ITD进行加权平均,权重就是神经响应。
以上就是对概率群体编码的快速介绍。如果你对此感兴趣,我推荐阅读Dayan和Abbott的《理论神经科学》教科书,或者Wei Ji Ma及其同事的《感知与行动的贝叶斯模型》(可在网上免费获取,阅读材料中有链接)。

网络的增益与延伸话题
好了,关于声音定位的例子就讲到这里。最后,我想强调一下我们从网络中获得的好处。
单个神经元的时间敏感性受其时间常数控制,最小约为1毫秒,并且噪声很大。我们看到的调谐曲线是10000次重复试验的平均结果,单次试验看起来波动很大,我们不太可能从中做出非常准确的估计。
通过切换到群体并使用群体水平的解码器,我们得到了一个对几微秒时间差敏感的系统,其时间敏感性比网络中最快单元的速度高出几个数量级。
正如我所说,我们无法在这里涵盖关于网络的一切。因此,在结束前,我只想再提两个你可能想进一步阅读的有趣话题。
平衡的兴奋与抑制 ⚖️
皮层神经元每秒接收数千个微小输入,那为什么它们不像下图的左侧那样非常有规律地发放脉冲呢?一个可能的答案是存在兴奋和抑制的平衡。如果兴奋性和抑制性输入是平衡且随机分散的,神经元可以非常不规则地发放脉冲,如右侧所示。实际上,大脑中两种行为都能看到,拥有这样一系列行为可能很重要。更广泛地说,平衡的兴奋和抑制可能的作用包括提高网络的敏感性、噪声鲁棒性和响应速度。这方面有大量文献。
中枢模式发生器 🔄
另一个我个人觉得非常迷人的是中枢模式发生器。这些是小型网络,似乎只是永远重复地发放相同的脉冲模式。它们被认为参与协调运动,基本上是提供一个有规律的信号,可以转化为我们以标准模式移动肌肉所需的刻板序列。其中一些电路可以非常简单,就像这里示意性展示的龙虾胃神经节中的这个。这个例子特别有趣,因为建模研究发现,这个电路有许多不同的参数组合可以产生相同的输出。后来,实验发现真实的龙虾也是如此,不同个体的这个电路中神经特性可能差异很大,但功能却完全相同。
我在阅读列表中提供了关于这个话题以及其他视频中提到话题的更多阅读材料。此外,我们将在课程后面回到其他一些网络主题,如记忆和决策。

本节课中,我们一起学习了网络建模的基本概念,并通过声音定位电路深入探讨了重合检测、调谐曲线、空间结构以及信息的概率群体编码。我们还简要介绍了平衡的兴奋与抑制以及中枢模式发生器这两个延伸话题。在下一个视频中,我将介绍本周的练习。
015:W2_V5-练习概述 🧠
在本节课中,我们将概述本周关于“突触与网络”的练习内容。本次练习旨在通过实践,加深对复杂突触模型和简单神经网络模拟的理解。
练习笔记本基本是自包含且易于理解的,但这里我们将快速浏览一遍,提供一个大致概览。
第一部分:双指数突触模型 📈
上一节我们介绍了基础的突触模型,本节中我们来看看一个更复杂的模型——双指数突触。其核心公式描述了突触后电流 I(t) 随时间 t 的演化:
I(t) = (exp(-t/τ_decay) - exp(-t/τ_rise)) * (τ_rise * τ_decay) / (τ_decay - τ_rise)

以下是你的首要任务:
- 使用数值积分方法模拟该模型。
- 将你的数值解与内置的数值解以及解析解进行比较。
完成此部分后,你应能得到类似下图的波形。


第二部分:利用突触延迟 ⏱️
在实现了突触模型后,本节我们将探索如何利用它来控制神经元输出的延迟,即动作电位峰值出现的时间。
你的任务是调整模型参数,观察并记录输出峰值的延迟变化。
第三部分:构建简单脉冲神经网络 🔌
掌握了单突触的模拟后,我们现在可以构建一个简化的脉冲神经网络模拟器。该网络包含 N 个神经元,每个神经元仅在 t=0 时刻接收一个输入脉冲。
以下是网络的基本结构示意图。


你的任务是实现这个模拟器并进行测试。这为接下来更有趣的部分做了热身。
第四部分:实现顺序敏感网络 🎯
现在,我们将利用之前完成的工作,构建一个“顺序敏感”网络。如果你看过之前的视频,会知道Yeo Comcha的网络实现了“小于等于”或“大于等于”操作。我们这里将使用不同类型的突触和延迟,来实现相同的功能。
以下是用于生成输入数据的代码,以及网络的结构示意图。网络的基本设置是:有两个输入脉冲序列,它们各自直接兴奋一个输出神经元,同时又相互抑制对方。

其工作原理是:如果神经元A先发放脉冲,则输出神经元会发放脉冲,而抑制效应在其之后到来;反之,如果神经元B先发放,则抑制效应先到达,随后到来的兴奋性输入不足以使输出神经元发放脉冲。


你的核心任务是:
- 实现这个网络。
- 通过调整参数,复现下图所示的顺序检测功能。
- 证明该网络对于如下所示的更长的脉冲序列同样有效。


完成以上内容后,你可以进一步尝试使用第一部分开发的慢抑制突触来微调这个网络的性能。
可选拓展:构建互相关网络 🔄
第四部分是一个可选的拓展内容,供有兴趣深入探索的同学尝试。其基本思路是:基于已开发的网络,尝试构建一个更复杂的“互相关”网络。该网络能够估计哪些输入是相关的,以及相关的时间延迟是多少,并且其判断应对以下情况保持稳健:
- 输入脉冲的数量变化。
- 存在噪声干扰。
- 随机删除部分脉冲。
你的目标是理解哪些因素控制着该网络的性能和稳健性。但请注意,在课程时间内完成此部分颇具挑战性。

总结 📝

本节课中,我们一起学习了如何实现和运用双指数突触模型,并以此为基础构建了能够检测脉冲时序顺序的简单神经网络。从单突触的数值模拟,到多神经元的网络集成,再到实现特定的计算功能(顺序检测),我们完成了一次从基础组件到功能系统的小型实践。希望你能从中获得乐趣并加深理解。😊
016:连接组学 🧠
在本节课中,我们将学习连接组学的概念,即描绘生物体内所有神经元之间连接关系的完整图谱。我们将从简单的线虫开始,了解其连接组的结构与特性,然后探讨连接组如何随发育和学习而变化,最后介绍果蝇幼虫连接组的新发现,并讨论获取更大规模连接组所面临的挑战。
从神经元网络到全脑图谱

上一节我们介绍了神经元如何连接形成网络,并观察了果蝇脑中的环状吸引子网络等实例。本节中,我们将视角放大,审视整个大脑的结构,这就引出了“连接组”的概念。
连接组是指描述一个动物体内每个神经元与所有其他神经元之间连接关系的完整图谱。迄今为止,只有四种生物拥有完整的连接组,其中第一种是秀丽隐杆线虫。

线虫连接组的发现
线虫连接组于1986年首次完成,并于2019年更新。线虫仅约1毫米长,但为了获取其连接组,研究人员仍需将样本切成约50纳米厚的超薄切片。他们在显微镜下观察每个切片,并手动追踪每个神经元在切片间的连接。
完成后,他们发现了此处展示的连接模式。该连接组仅包含302个神经元和大约7000个突触。
那么,我们能从这种架构中学到什么呢?以下是几个关键发现:
- 突触类型:约80%的突触是化学突触,其余为电突触(间隙连接)。
- 连接稀疏性:只有约3%的可能连接实际存在,表明连接是稀疏的。
- 模块化结构:神经元通常具有密集的局部连接和稀疏的长程连接,这意味着网络具有模块化结构。
- 网络深度:从感觉输入到运动输出,网络最多只有约四层深,因此相对较浅。

需要记住的是,尽管这个网络看起来简单,尤其是与机器学习模型相比,但它使线虫能够完成从响应感觉输入、在环境中觅食到交配繁殖后代等一系列行为。因此,即使是一个相对简单的生物网络,其所能实现的复杂性也不应被低估。
这个连接组是通过结合多个同龄动物的数据生成的,因此它为我们提供了大脑结构的代表性静态视图。但大脑会随着我们学习和年龄增长而持续变化,这如何在连接组中体现呢?

连接组的动态变化
为了解答这个问题,一篇论文重建了八只不同年龄线虫的连接组并进行比较。他们发现,从出生到成年,突触数量增加了五倍。这些变化并非均匀发生,而是遵循几种模式,总结在下图中。
以下是其中三个主要模式:

- 前馈连接增加:新的突触倾向于添加到前馈方向(从感觉输入到运动输出),因此网络随着时间的推移变得越来越前馈化。
- 模块化增强:如果将具有相似连接模式的神经元分组为模块或子网,可以观察到网络随着年龄增长而模块化程度越来越高。
- 经验塑造连接:尽管这些线虫在基因上是相同的,但每只线虫都拥有其他线虫中没有的连接,这表明经验也塑造了神经回路的结构。
超越线虫:果蝇幼虫连接组
好的,除了线虫,其他模式生物的连接组也开始被绘制出来,如果蝇。

例如,一篇论文重建了果蝇幼虫的连接组。在幻灯片顶部可以看到,即使从小小的幼虫开始,其神经元数量已是线虫的10倍,突触数量接近80倍。
那么,我们能从这个连接组中学到什么?以下是一些有趣的特征:
- 非典型连接:如果定义每个突触的方向(即哪个神经元是突触前,哪个是突触后),那么与我们通常假设并已教授的知识相反,只有66%的连接是一个神经元的轴突与另一个神经元的树突相连。其余都是非典型连接,可以观察到所有可能的连接类型:轴突到轴突、轴突到树突、树突到轴突以及树突到树突。这意味着整体连接组是四个不同的神经元间连接矩阵的结果,如最左侧图所示。
- 多模态整合:另一个有趣的特征是,几乎所有神经元都是多模态的。如果从幼虫的感觉神经元(检测味觉、温度和触觉等输入)开始,然后使用信号级联算法通过网络模型传播信号,你会发现只有12%的神经元接收来自单一模态的输入(如中间图的左侧所示)。其余88%的神经元接收来自不同模态组合的输入(如中间图右侧所示),并且有些令人惊讶的是,62%的神经元接收来自全部12种模态的输入。
- 循环连接:作者估计,41%的神经元以多突触方式形成循环连接。换句话说,如果神经元A连接到B,B连接到C,依此类推,最终会有一条连接回到A。最右侧的图用简单的橙色A-B-A连接说明了这一点,但条形图考虑了多达五个突触的循环。
更大连接组的挑战与展望
退一步看,我们可能会期望像我们这样具有更复杂行为的动物,其连接组与果蝇和线虫非常相似,只是规模更大。或者,我们可能预期会有额外的特征。无论哪种情况,如果我们能获得更大的连接组进行比较,那将非常有益。

问题在于,大脑体积增长非常迅速。例如,从线虫到小鼠,大脑体积增加了1000万倍。为了形象化理解,如果1立方微米的大脑体积相当于1厘米的线性距离,那么我们讨论过的线虫大脑大约相当于飞机上一个座位的宽度。成年果蝇的大脑相当于六架半飞机的长度。而小鼠的大脑则相当于波士顿到里斯本的距离。

显然,获取更大的连接组在数据采集、存储和分析方面都带来了巨大的挑战。
总结与下节预告
本节课中,我们一起学习了连接组学的概念。我们从最简单的线虫连接组入手,了解了其稀疏、模块化且相对较浅的结构特点。接着,我们探讨了连接组并非静态,而是会随发育和经验动态变化。然后,我们看到了果蝇幼虫连接组揭示的非典型连接、广泛的多模态整合以及显著的循环连接等新特征。最后,我们认识到获取更大规模连接组(如小鼠或人类)面临着巨大的技术挑战。
下一节,我们将再次放大视角,学习人类大脑的宏观结构。


018:W3_V2 练习


在本节练习中,我们将处理一份真实的神经科学数据集,学习如何加载、可视化数据,并初步估算大脑区域间的连接性。最后,我们将鼓励你基于数据自由探索感兴趣的问题。
📚 数据来源与背景介绍
在开始练习之前,我们先花几分钟了解数据的来源和基本形态。
这些数据主要来源于论文《Cellular resolution outlas of the laval zebrafish brain》。论文中的数据来自斑马鱼幼体,这是神经科学中常用的动物模型。
从俯视图看,一条斑马鱼形态如图所示。鱼头部两侧有眼睛和两个鳍,身体向后延伸至尾部。
研究者在实验中运用了基因技术,将每条鱼大脑中的一到两个神经元进行荧光标记(图中显示为绿色)。随后,他们使用显微镜对每条鱼进行成像,并追踪了所有被标记神经元的形态,从而获得了三维结构数据。
最终,他们得到的是每条鱼中一到两个神经元的集合。为了在不同鱼之间进行比较,研究者使用了配准算法,将所有数据对齐到一个公共的参考坐标系中。
由此产生的是一个图谱,它包含了数千个神经元及其在鱼脑中的三维形态。这如图E所示(同样是俯视图),其中眼睛是两侧的半球,大脑结构以灰色显示,而所有不同的线条则代表了不同神经元的三维形态,该数据库中包含数千个神经元。
🧩 练习内容概览
我们将利用这些数据做什么呢?本次练习主要包含四个部分。
第一部分:加载数据
你首先需要加载数据。具体方法取决于你的工作环境(本地或CABAB平台),两种情况的说明都已提供。
第二部分:数据可视化
成功加载数据后,我们将从两个角度观察数据:一是查看单个神经元,二是绘制数据集中所有神经元的整体图。我们将进行二维和三维的可视化。
第三部分:估算粗略的连接矩阵
完成可视化后,我们将估算鱼脑不同区域之间一个非常粗略的连接矩阵。这部分被细分为三个子步骤,每个步骤都有说明,你需要补充代码来完成。
第四部分:自由探索
在获得连接矩阵后,我们鼓励你基于此数据探索任何你感兴趣的方向。我们提供了三个思路供你参考:
以下是三个探索思路:
- 改进连接矩阵估算方法:我们在练习中估算的连接矩阵只是一个非常粗略的近似。你可以尝试改进它,原始论文能提供许多改进思路。
- 探索大脑的对称性:研究大脑沿中线的对称程度。换句话说,左右两侧在细胞分布、连接模式等方面有多相似?你也可以尝试寻找大脑中不对称的区域。
- 模拟信息流:你可以使用信号级联算法,尝试估算信息在鱼脑中的流动方式。我们提供了一个相关论文的链接,其中详细解释了该方法。
如果你是帝国理工学院的现场学员,在课程结束时我们将简要讨论大家在这部分提出的方法和发现。
如果你是远程参与,欢迎在Discord上分享你的发现或任何想法。
感谢参与,祝你练习愉快!😊

✨ 总结

本节课我们一起学习了如何获取并处理真实的斑马鱼脑神经元数据集。我们了解了数据的背景,练习了数据加载与可视化,并初步尝试估算大脑区域间的连接性。最后,我们鼓励你基于此进行自由探索,以深化对神经科学数据的理解。
019:学习类型概述 🧠

在本节课中,我们将要学习大脑中学习发生的机制,以及这些机制如何与机器学习算法相关联。我们将从概述学习的类型及其可能使用的不同机制开始。

什么是学习?
从最广泛的意义上讲,学习是指面对经验时行为的任何改变。换句话说,任何导致不同行为的变化都可以算作学习。我们的大脑中有许多可以改变的方面。
学习的潜在机制
在原理上,任何能修改我们行为的东西都可以成为学习的组成部分。以下是大脑可能用于学习的一些关键机制。
1. 修改突触权重
我们都很熟悉通过修改突触权重来改变神经网络功能的理念。这通常是机器学习语境中所指的“学习”。其核心公式可以表示为:
Δw = η * (pre * post),其中 w 是权重,η 是学习率,pre 和 post 是突触前后神经元的活动。
2. 结构可塑性
除了改变权重,我们还可以增加或移除突触,这有时被称为结构可塑性或布线可塑性。这接近于机器学习中的架构搜索。
3. 改变神经元属性
学习也可以通过改变神经元的其他属性来实现。例如:
- 修改其输入增益、阈值或静息电位。这类似于改变机器学习模型中的权重和偏置。
- 通过改变细胞膜上离子通道的分布甚至其形状,来改变神经元的动态特性和信息整合方式。
4. 改变输入与背景活动
改变神经元行为的一个关键因素是其输入的性质,包括网络的背景活动。学习或记忆不一定非要存储在神经元或突触结构的永久性变化中。
5. 工作记忆与化学环境
- 工作记忆(为完成任务而暂时保存在大脑中的信息)的常见理论认为,它是由大脑中持续的活动模式实现的,而非永久性变化。
- 大脑细胞外区域的精确化学成分会改变神经元的行为方式。神经调质(如多巴胺)是能改变离子通道功能的弥散性化学物质,大脑可用其改变一大群神经元的行为。
- 大脑还可以选择提供更多或更少的能量。通过我们的行为(例如疲倦时喝咖啡),我们可以直接改变这种化学环境。
学习的重要概念与分类
在接下来的视频中讨论学习时,我们需要牢记以下几个重要类别。
赫布学习
最重要的概念之一是赫布学习。这通常被总结为“一起放电的细胞,连接在一起”,可以看作是在大脑中鼓励关联性或因果性连接。
- 一种建模方法是使用一系列基于发放率的模型,这些模型利用突触前后神经元发放率之间的相关性。
- 另一种方法是考虑单个尖峰的时序,即脉冲时序依赖可塑性。
稳态
在思考大脑的变化方式时,考虑稳态很重要。这是我们的身体或大脑保持自身某种平衡的过程。例如,如果某些神经元放电过多,那么突触可能会变弱或阈值可能会升高以降低活动。
短期与长期变化
区分短期和长期变化也很重要,这类似于活动变化与突触和神经元结构的永久性变化之间的区别。
学习可用的信号
与机器学习类似,我们可以区分无监督和有监督的学习形式。
- 以机器学习方式定义的有监督学习在大脑中可能比较罕见,因为并没有一个来自外部的、神奇的“正确”信号。
- 相反,我们可能会考虑各种形式的自监督学习,即大脑的一部分向另一部分提供反馈。一个例子是奖励:如果你做了一个动作并得到了美味的糖作为奖励,这就是大脑可以利用的信号。这自然引出了强化学习的相关概念。
总结

本节课中,我们一起学习了大脑中学习的广泛定义及其多种潜在机制。我们探讨了从修改突触权重、结构可塑性到改变神经元属性和化学环境等多种方式。我们还介绍了赫布学习、稳态、以及区分短期/长期变化和无监督/有监督/强化学习等关键概念,为后续深入探讨具体的数学模型和算法奠定了基础。
020:基于发放率的模型


在本节课程中,我们将学习基于发放率的赫布学习模型。我们将探讨突触权重 W 如何根据突触前神经元发放率 R_pre 和突触后神经元发放率 R_post 的变化而调整。我们将通过微分方程来描述这一学习过程,并分析几种具体的模型及其特性。
赫布学习的基本模型
上一节我们介绍了赫布学习的核心思想。本节中,我们来看看如何用数学公式来描述基于发放率的学习。
我们用一个微分方程来建模权重的变化。该方程表示,权重 W 的变化率与某个函数 F 成正比,而 F 是权重本身以及突触前、后发放率的函数。时间常数 τ_W 控制着变化的速度。
公式:
τ_W * dW/dt = F(W, R_pre, R_post)
不同的函数 F 对应不同的学习模型。这个概念比较抽象,让我们来看一个具体的例子。
简单的相关学习模型
以下是第一种简单的模型。我们选择函数 F 为突触前和突触后发放率的乘积。
公式:
τ_W * dW/dt = R_pre * R_post
这个模型清晰地体现了“一起发放的神经元会连接在一起”的思想。当突触前和突触后发放率同时很高时,权重增长最快。
然而,这个模型存在两个明显的问题:
- 权重无界增长:由于发放率总是正数,权重会无限增大。
- 权重只增不减:模型缺乏使权重减小的机制。
为了解决这些问题,研究者们提出了改进方案。
解决权重无界增长问题
针对权重无限增大的问题,主要有两种解决方案:
- 硬边界:简单地将权重 W 限制在某个最大值
W_max。 - 软边界:修改学习规则,使权重在接近最大值时变化率降低。
以下是实现软边界的一个示例公式,其中 W_max 是目标最大权重:
公式:
τ_W * dW/dt = R_pre * R_post * (1 - W/W_max)
接下来,我们转向一个更著名的模型,它同时解决了权重无界增长和只增不减的问题。
Oja学习规则
Oja规则旨在解决权重无界增长的问题。它在标准赫布规则的基础上,减去了一个与权重和突触后发放率平方成正比的项。
公式:
τ_W * dW/dt = R_pre * R_post - α * W * (R_post)^2
这个规则有两个优良特性:
- 权重最终会停止增长,保持稳定。
- 更令人惊讶的是,这个学习规则能让神经元学会提取其输入的第一主成分。
这建立了一个生物学学习规则与统计学/机器学习算法(主成分分析PCA)之间的联系。下面我们来简要分析其原理。
Oja规则与主成分分析
为了简化分析,我们做出一些假设:输入是一个向量 x(代表突触前发放率,均值为0),输出是一个标量 y,由权重向量 w 和输入 x 的点积得到。
公式:
y = w^T * x
在这些假设下,Oja规则可以重写为:
公式:
dw/dt = γ * (y * x - y^2 * w)
我们关注学习停止后的稳定状态,即权重变化率的平均值为零。经过推导(涉及协方差矩阵 C = <x*x^T>),我们得到稳定状态需满足的条件:
公式:
C * w = λ * w
其中 λ = w^T * C * w。这正是矩阵特征值的定义式,意味着 w 是协方差矩阵 C 的一个特征向量,而 λ 是对应的特征值。实际上,Oja规则会收敛到最大特征值对应的特征向量,即第一主成分。
此外,我们还可以证明,在稳定状态下,权重的模长会归一化到1(||w|| = 1)。这体现了Oja规则内在的权重归一化特性。
BCM学习规则
另一种重要的方法是BCM规则(以Bienenstock, Cooper, Munro命名)。他们的目标是模拟视觉皮层中选择性的发展,因此寻找一个能最大化选择性的学习规则。
他们定义选择性为 1 - (平均响应 / 最大响应)。高选择性意味着网络对大多数输入响应很弱,但对某些特定输入响应很强。
BCM规则在简单赫布项上乘以一个可正可负的项:
公式:
τ_W * dW/dt = R_pre * R_post * (R_post - θ)
其中 θ 是一个阈值。当 R_post > θ 时,权重增强;当 R_post < θ 时,权重减弱。
如果 θ 是常数,权重仍可能无限增长。因此,BCM将 θ 设为一个动态变量,它追踪突触后发放率平方的平均值(例如滑动平均)。
公式:
τ_θ * dθ/dt = <(R_post)^2> - θ
这个动态阈值机制确保了输出的发放率既不会趋向于零也不会趋向无穷。它通过制造一个不稳定的平衡点来促进选择性:如果网络对所有输入产生相同输出(低选择性),微小的扰动就会使网络偏离这个状态,最终变得只对某些特定输入产生强响应。
在模拟视觉皮层方位选择性的发展中,BCM规则能产生与生物发育过程定性匹配的结果:随着时间的推移,网络的选择性增加,最终只对某个特定方位有强烈偏好。

总结与过渡
本节课中我们一起学习了基于发放率的赫布学习模型。我们看到了简单的相关模型、能进行主成分分析的Oja规则,以及能发展特征选择性的BCM规则。这些模型将赫布原理转化为具体的数学公式,并展现出有趣的计算特性。

然而,这些模型都忽略了一个重要特征:神经元脉冲的精确时序。在下一节视频中,我们将转向基于脉冲时序的学习模型。
021:脉冲时序依赖可塑性 (STDP) 🧠

在本节课中,我们将学习一种重要的突触学习规则——脉冲时序依赖可塑性。我们将了解它的实验发现、数学模型、它能实现的学习功能,以及它存在的一些问题和挑战。
实验发现与核心概念
上一节我们介绍了学习规则的概念,本节中我们来看看一种基于精确脉冲时序的学习机制。
脉冲时序依赖可塑性,通常简称为 STDP,是一种将单个脉冲的精确发生时间考虑在内的赫布学习形式。

首先介绍它的实验测量方法。
- 找到一对通过突触连接的神经元。
- 强制突触前神经元在时间 0 发放脉冲。
- 强制突触后神经元在时间 ΔT 发放脉冲。
- 重复这种配对刺激约 60 次。
- 等待约一小时后,测量突触的变化。
- 通过计算单个兴奋性脉冲前后突触后电流的高度来测量这种变化。
实验结果大致如下。如果突触后神经元在突触前神经元之后发放脉冲,突触权重会增强。如果突触后神经元在突触前神经元之前发放脉冲,突触权重会减弱。并且,脉冲时间间隔越近,这种效应越强。
我们可以用一对具有不同高度和时间常数的指数函数来大致拟合这个结果。
我们之前讨论过赫布学习,即“一起发放的神经元会连接在一起”。但 STDP 更接近赫布最初提出的想法:当突触前神经元反复促成突触后神经元的发放时,突触会增强。STDP 实现了这个想法,因为如果突触后神经元在突触前神经元之前发放,那么突触前神经元显然不可能促成那次发放。同样,如果脉冲时间间隔很远,它们也不太可能相关。

到目前为止,这看起来是一个完美的故事:为一个直观的理论想法找到了实验证据,然后用一个简单的模型来拟合数据。
但大脑从不会让我们如此轻松。除了发现赫布可能预测的形状外,我们还发现了相反的形状,以及无论符号如何,只要脉冲时间接近突触就会增强等多种不同形状。
尽管如此,“前-后”形状是我们通常讨论的 STDP,也是本视频的重点。

数学模型与高效计算
上一节我们看到了 STDP 的实验现象,本节中我们来看看如何用数学模型来描述它,并实现高效计算。
最简单的建模方法是对所有脉冲对引起的权重变化求和。
问题是这种方法的计算成本很高。假设有 N 个神经元连接到另外 N 个神经元,每个神经元发放约 R 个脉冲。那么,计算这个求和大约需要 N²R² 次运算,且每次运算都包含对指数函数的调用,这本身就很耗时。
但利用指数函数是线性求和的指数这一特性,有一个技巧可以简化计算。
为每个突触前神经元引入一个称为“迹变量”的 A_pre,对突触后神经元也做同样处理,引入 A_post。
以下是更新规则:
- 在没有脉冲时,它们像我们在漏电积分发放神经元中看到的那样呈指数衰减。突触前迹以时间常数 τ_plus 衰减,突触后迹以 τ_minus 衰减。
- 当突触前脉冲到达时,A_pre 增加一个常数 A_plus,然后权重 W 增加 A_post。
- 类似地,当突触后脉冲到达时,A_post 增加 A_minus,然后权重 W 减少 A_pre。
现在,尝试理解为什么这能给出相同的结果是一个很好的练习。你应该先检查单个脉冲对(例如,突触前神经元在时间 0 发放,突触后神经元在时间 ΔT > 0 发放)会发生什么。绘制 A_pre 和 A_post 的变化图,以及在每个脉冲时间 W 的变化。然后对突触后脉冲先发生的情况做同样操作,这应该会得到顶部的单脉冲对权重变化方程。最后利用所有方程都是线性的这一事实,对所有可能的脉冲对求和,就会得到全脉冲对权重变化规则。
在计算上,我们现在只需要进行 N²R 次运算。而且,与指数运算不同,现在都是算术运算,速度更快、效率更高。不仅如此,这实际上是“免费”的,因为无论如何我们都必须进行这些最小运算。对于突触前神经元的每个脉冲,我们必须向其连接的每个突触后神经元添加一个值。每个脉冲影响 N 个神经元,并且有 N*R 个突触前脉冲,所以这是我们无论如何都必须进行的 N²R 次运算。
需要指出的一点是,模型与实验数据在此略有不同。在实验数据中,大约需要一小时才能看到完整的权重变化,且变化是随时间缓慢增加的。在第一种实现中,我们可以在想要学习的脉冲之后一小时运行权重变化规则,但这仍然与实验中看到的缓慢变化不匹配。在第二种实现中,它会在每个脉冲后立即自动更新。
还需要注意延迟的一些细微差别。根据延迟是树突的、轴突的还是两者的组合,你应该做略有不同的事情。无论如何,关于延迟的实验数据不太明确,因此甚至不清楚这里是否有正确的做法。
STDP 能学习什么?
现在我们已经知道如何建模 STDP,让我们开始看看它能学习的一些东西。
学习最早响应 🏃♂️
以下是第一个模型:设置一层输入神经元,通过具有 STDP 的突触权重连接到单个输出神经元。
我们让这些输入神经元在 20 毫秒内发放一串脉冲,但具有随机的潜伏期,然后观察网络学到了什么。
我们看到,潜伏期低的神经元其突触权重增强到了最大水平。这里,学习前所有潜伏期的权重相同。学习后,低潜伏期神经元具有高权重,高潜伏期神经元具有低权重。输出神经元在学习后的发放时间也比学习前更早。
一种解释是,如果一个动物有多个信息来源,它会优先响应最早到达的信息。这在响应延迟短可能决定生死(例如被猎杀)的环境中显然是有利的。


学习相关性与竞争 🤝
在下一个模型中,我们将输入神经元分为两组。白色背景的一组发放不相关的脉冲。蓝色背景的一组发放相关的脉冲。经过 STDP 后,不相关组神经元的权重变为 0,而相关组神经元的权重变为最大值。
这在生物学上是有意义的,因为能够捕捉环境中的输入相关性非常有用。

我们也可以做同样的事情,但让两组神经元各自与组内其他神经元相关,而与另一组神经元不相关。我们发现 STDP 会学会选择两组中的一组,但具体选择哪一组是随机的。换句话说,STDP 在学习内容上具有某些竞争性方面,你可以认为这有点像我们在上一个视频中讨论的 BCM 规则的选择性。

学习重复序列 🔁
下一个模型结合了前两个模型的思想,学习对重复的脉冲序列做出响应。
我们采用相同的设置,一组神经元通过 STDP 突触连接到单个输出神经元。在这种情况下,输入是随机的不相关脉冲,其中嵌入了重复的模式,这些模式在随机时间重复出现。
这里,蓝色点是不相关的脉冲,这些间歇出现的红点是重复的模式。
这里发生的情况是,输出神经元最初在随机时间发放脉冲。但最终,它学会只在脉冲模式出现时发放一次。事实上,到最后,它学会在脉冲模式呈现开始时发放。
如果更仔细地观察,发生的情况是:首先,它学会随机选择脉冲模式组中同时发放的神经元子集。这是来自上一张幻灯片的“相关性和竞争”机制,它导致输出脉冲在序列中的某个随机点(这里大约是三分之二或四分之三处)发放。这可能早也可能晚,因为它选择哪些神经元完全是随机的。
但随后,STDP 对低潜伏期的偏好开始起作用,它转向模式中发放更早的神经元,直到到达模式的开始。
有趣的是,后来的一项研究发现,人类确实可以在噪声中学习随机模式。具体来说,他们向人类听众播放成对的随机噪声脉冲串,听众必须指出是重复的相同噪声脉冲串还是两个不同的。他们不知道的是,有时重复的噪声脉冲串与他们之前听到的相同。结果是,过了一小段时间后,听众学会更准确地识别他们以前听过的重复噪声脉冲串,而不是全新的噪声脉冲串,尽管所有的脉冲串都是完全无意义的白噪声样本。


学习方向选择性地图 🗺️
在第二周关于网络模型的视频中,我们看到了大鼠桶皮层空间地图的例子。提醒一下,这是处理大鼠胡须输入的系统。我们看到这些神经元对特定方向的运动有偏好,并且这种偏好具有空间结构。
为了模拟这一点,我们使用了一个比之前研究稍复杂的设置,旨在匹配桶皮层第 2 到 4 层的结构。输入是活动波,以线性模式在胡须上移动,每次随机选择方向。这种输入结构,加上 STDP 突触,足以让模型学习到与在大鼠中记录的非常相似的输入选择性地图。


STDP 的问题与挑战 ⚠️
上一节我们看到了 STDP 强大的学习能力,本节中我们来看看它面临的一些问题和挑战。
STDP 很酷,可以学习一些有趣的东西,但也存在一些问题。
我们在关于基于速率的模型的视频中看到,如果没有仔细控制,权重往往会趋向极端。在本视频前面,你也可以看到 STDP 发生同样的情况:权重会被推向允许的最小值或最大值。这与实验中看到的更均匀的分布不匹配。
这个问题可以通过使用 STDP 学习规则的噪声乘法版本来解决,尽管用这种形式的 STDP 更难获得强烈的竞争和特异性。
另一个问题是,STDP 总是迫使神经元之间的突触连接是单向的,不可能出现 A 兴奋 B 且 B 兴奋 A 的情况。然而,这在大脑皮层中非常常见。同样,你可以用更复杂的 STDP 规则来解决这个问题,在这种情况下,是一个考虑电压的规则。这类模型的性质仍在研究中。它在结构上类似于我们在上一个视频中看到的 BCM 规则,并且也能产生类似独立成分分析的选择性。
一个更根本的、尚未解决的问题是如何处理跨多个时间尺度的学习稳定性。这篇论文从动力系统的角度很好地回顾了许多模型,表明当你结合不同时间尺度的不同学习形式时,各种问题开始出现,比如破坏记忆的振荡。总的来说,我们知道结合多个时间尺度很重要,因为我们想要学得快,但忘得慢。但这似乎很难实现,这与机器学习中灾难性遗忘的类似问题有关。解决这个问题的方案,无论是在神经科学还是机器学习中,都可能对另一个领域有所帮助。
这不是 STDP 所有问题的完整列表。如果你有兴趣进一步研究,这篇论文很好地回顾了一些问题和尝试的解决方案。

扩展与总结 🎯
好了,本周关于学习规则的视频到此结束。这里还有很多内容可以涵盖,我以后可能会补充。

如果你有兴趣,本幻灯片上是一些可以进一步研究的关键词。这包括奖励调节的 STDP,它让你可以将 STDP 与奖励结合以学习更有趣的任务。还有储备池计算,它将线性读出层应用于带有或不带 STDP 的随机网络,结果证明在某些假设下能够学习任意复杂的函数。还有著名的霍普菲尔德网络和联想记忆。当然,还有强化学习,以及更多内容。

本节课中我们一起学习了:
- 脉冲时序依赖可塑性 的实验基础与核心思想:突触前脉冲先于突触后脉冲发放导致增强,反之则减弱。
- 使用迹变量对 STDP 进行高效数学建模的方法,将计算复杂度从 O(N²R²) 降低到 O(N²R)。
- STDP 能够实现的多种学习功能,包括学习最早响应、检测输入相关性、引入竞争机制、学习重复时空模式以及形成方向选择性地图。
- STDP 模型当前面临的主要问题和挑战,如权重饱和、双向连接缺失以及跨时间尺度学习稳定性等。

STDP 为我们理解大脑如何利用精确的脉冲时序进行学习提供了一个强有力的框架,尽管它并非完美,但仍然是连接赫布学习理论与复杂神经计算的关键桥梁。
022:脉冲不可微性问题

在本节课中,我们将探讨如何训练脉冲神经网络。但在开始之前,我们需要先理解为什么训练脉冲神经网络是困难的。
概述
我们希望借鉴人工神经网络中成熟的训练方法,因为它们已被证明非常有效。然而,将梯度下降法直接应用于脉冲神经网络时会遇到一个根本性障碍:脉冲发放过程本身是不可微的。本节视频将详细解释这个问题,并简要概述研究人员为解决此问题提出的多种思路。
从人工神经网络到脉冲神经网络
上一节我们回顾了人工神经网络的基本训练流程。本节中我们来看看如何将其应用到脉冲神经网络上。

首先,我们快速回顾一下人工神经网络的训练过程。这并非一个完整的指南,如果你不熟悉,建议先阅读相关入门材料。
- 定义网络函数:将神经网络表示为一个关于输入和参数的函数。例如,对于一个单层网络,参数可以是权重,函数可以是权重向量与输入向量点积后应用Sigmoid激活函数:
output = sigmoid(W * x)。 - 定义损失函数:该函数衡量网络输出与期望输出之间的差距。
- 应用梯度下降:沿着损失函数相对于参数的梯度反方向更新参数,以最小化损失。
- 高效计算梯度:使用向量、矩阵运算和链式法则可以高效地计算梯度。
那么,我们能否对脉冲神经网络直接这样做呢?答案并不简单。
脉冲神经元的不可微性
为了看清问题所在,我们先回顾之前介绍过的漏电积分发放神经元模型。
该模型的膜电位 V 随时间演化遵循一个微分方程,并在接收到脉冲时有瞬时效应。每当膜电位 V 超过阈值(例如 V > 1),神经元就会发放一个脉冲,并瞬间重置为 0。
为了分析,我们暂时忽略突触连接以简化公式,但这不影响核心结论。

我们可以将阈值判断写为 S(t),它是膜电位 V(t) - 1 的赫维赛德阶跃函数。当神经元发放脉冲时,S(t) 等于 1,否则为 0。
接着,我们将微分方程改写为离散更新规则。为了得到 t + Δt 时刻的膜电位 V,我们将 t 时刻的 V 乘以一个指数衰减项。同时,我们通过将结果乘以 (1 - S(t)) 来合并处理脉冲重置:如果发放了脉冲(S(t)=1),则乘以 0(即重置为 0);否则乘以 1。
如果我们想使用梯度下降法,就必须使用链式法则计算梯度。这个更新规则中的每个部分计算梯度都没有问题,除了赫维赛德阶跃函数 S(t)。
问题在于:赫维赛德阶跃函数在除零点外的所有点导数都为 0,而在零点处导数未定义。这意味着梯度几乎处处为零。因此,梯度下降法将永远无法更新任何参数,这使得它对于训练脉冲神经网络完全无效。
解决方案概览
那么,如何解决这个问题呢?研究人员尝试了许多不同的方法,本周接下来的视频会详细讨论。目前尚无完美的解决方案。
以下是人们尝试过的主要思路及其各自的一些问题:
-
避免使用梯度(至少对脉冲部分):
- 储备池计算:使用一个未经梯度训练的脉冲神经网络作为“储备池”,外加一个可训练的读出层。这种方法效果出奇地好,但学习效率不高,因为没有利用所有可调参数。
- 全局优化方法:如进化算法。这方法有效,但需要巨大的计算资源。
-
转换与近似:
- ANN-to-SNN转换:先训练一个人工神经网络,然后将其转换为脉冲神经网络。效果尚可,但找到的解决方案通常未能充分利用脉冲特性,效率不高。
-
利用脉冲时间:
- 单脉冲假设:假设每个神经元只发放一个脉冲,然后对脉冲发放时间这个可微的量求导。这是一个巧妙的解决方案,在实践中效果很好。缺点是假设每个神经元只发放一个脉冲不现实,限制了其应用范围。
-
平滑或概率化:
- 平滑阶跃函数:将不可微的赫维赛德函数平滑为一个可微的Sigmoid函数。在某些案例中被证明有效,但这改变了网络的行为。
- 概率神经元模型:使用概率模型,其分布参数是可微的。这在理论上很优雅,但在实践中似乎难以扩展到大规模网络。
-
替代梯度法:
- 核心思想:仅在计算梯度时进行平滑操作,而在前向传播时仍使用原始的不可微函数。这听起来有些令人惊讶,但它确实有效。我们是在为一个与我们优化的函数不同的函数提供梯度,但这能引导我们找到好的解。我们对其工作原理有一些理解,但尚无完全严谨的解释。这种方法计算量仍然较大,但对于几千个神经元的网络是可行的。一个缺点是它需要全局信息,这在生物环境中是神经元无法获得的。
-
局部与近似学习规则:
- 为了同时解决计算复杂性和生物合理性问题,人们使用近似方法来降低计算复杂度,并使学习规则仅使用局部信息。虽然性能往往有所下降,但这些规则更具生物可解释性。
总结

本节课中,我们一起学习了训练脉冲神经网络的核心挑战:脉冲发放过程的不可微性导致标准梯度下降法失效。我们回顾了漏电积分发放神经元模型,并指出了赫维赛德阶跃函数是梯度无法回传的关键。最后,我们简要概述了为解决此问题而提出的多种研究思路,包括避免梯度、转换网络、利用脉冲时间、平滑函数以及目前较为流行的替代梯度法等。在接下来的视频中,我们将深入探讨其中一些解决方案的细节。
023:有限梯度方法 🧠

在本节课中,我们将学习几种训练脉冲神经网络的方法。这些方法要么完全不使用梯度,要么仅以有限或受约束的方式使用梯度。它们为处理传统反向传播难以直接应用的脉冲网络提供了替代方案。
储层计算
上一节我们介绍了不使用梯度的基本概念,本节中我们来看看第一种具体方法:储层计算。这种方法也被称为液态状态机或回声状态网络。
在这种设置中,我们从一个随时间变化的输入序列开始,该序列连接到一个随机、循环连接的神经元群。这些随机连接是固定的,不进行训练。这个循环神经元群连接到一个线性读出层,该层使用监督学习算法进行训练,以复现期望的随时间变化的输出。

其核心思想是,通过将循环神经元的权重初始化为使网络动态处于接近混沌的状态。在接近混沌时,这些神经元的动态中会包含丰富的轨迹。通过一个线性读出层,你可以近似任何你想要的动态。这种方法被证明是有效的,理论上,只要有足够多的神经元,这种设置可以近似任何时变函数。
以下是储层计算的一个变体示例:
- 例如,对于脉冲神经网络,你可以使用STDP规则对储层神经元进行无监督训练。
- 一个特别有趣的变体是“强制训练”,它将循环权重写为一个诱导混沌的固定项和一个可通过递归最小二乘算法训练的可训练项之和。
进化算法
除了基于动态系统的方法,另一种思路是使用不需要导数的全局优化算法。由Katie Schumann开创的一种特别成功的方法是使用进化算法。

在这些算法中,你生成一个网络种群,评估它们的性能,然后通过混合最成功的网络来创建新的网络,不断重复直到获得良好的性能。
以下是使用该方法的一些关键点:
- 优势:这种方法可以发现令人惊讶的网络架构,这些架构可能通过其他方式永远无法找到。它还能轻松适应可用的硬件类型,例如现场可编程门阵列。
- 局限性:它往往计算量很大,并且仅限于相当小的网络。
- 应用:它已被用于训练本课程后面会讨论的神经形态硬件,例如为这个轮式机器人训练控制器。
转换法
与其直接处理脉冲神经网络,我们可以从做我们知道如何做的事情开始,比如训练一个人工神经网络,然后将结果转换为脉冲神经网络。这方面的文献很多,这里主要介绍Chris Eliasmith及其同事的两种方法。
第一种方法首先创建一个称为“软LIF”的非脉冲人工神经元,它近似脉冲神经元的输入输出行为。然后用标准算法训练这个软LIF网络,可能会添加训练噪声以增强其抗噪鲁棒性。最后,只需将这些软LIF神经元替换为真实的LIF神经元,效果相当不错。

后来,Eliasmith及其同事将这种方法进一步发展,创建了一个非常通用的方法,称为神经工程框架。在这种方法中,你可以通过将输入值编码为随机、高维、过完备的表示,然后线性解码,来直接实现向量函数和微分方程。他们证明这允许你近似几乎任何函数。他们在综合软件包Nengo中实现了这一点,因此如果你感兴趣,可以轻松尝试。一旦你有了这些构建模块,就很容易将由此类模块组成的ANN转换到他们的框架中,并用脉冲神经元实现。
单脉冲网络
我们今天要看的最后一种方法,是通过限制每个神经元只能发放一个脉冲,从而使网络可微分。这听起来像是一个疯狂的限制,但Simon Thorpe及其同事的研究为此提供了很好的理由。
他们指出,灵长类大脑能够以短至100毫秒的延迟,对相当复杂的视觉刺激进行分类和响应。从解剖学研究中他们知道,信号从视觉系统传递到记录反应的运动系统,需要经过大约10层。由于皮层神经元通常每秒最多只发放约100个脉冲,这意味着在每层只有10毫秒的处理时间内,一个神经元很可能只发放0或1个脉冲。因此,每个神经元只发放0或1个脉冲,也必定能够完成相当复杂的任务。
Tim Masquelier及其同事实现了这个想法。他们建立了一个整合发放神经元网络(注意,不是泄露整合发放模型),并且只允许它们在每次呈现刺激时发放一个脉冲。有了这个限制,他们就可以根据输入脉冲的时间和权重,解析地写出神经元的输出脉冲时间。而这个函数是可微分的。这意味着我们可以应用反向传播来训练这些网络。他们发现,这种方法在Simon Thorpe早先在灵长类动物中研究的同类视觉分类任务上表现优异。例如,他们可以非常可靠地区分这个数据集中的面孔和摩托车。
总结

本节课中,我们一起学习了几种训练脉冲神经网络的“有限梯度”方法。我们探讨了储层计算的动态系统近似能力,进化算法在发现新颖架构和硬件适配上的优势,通过转换法利用成熟ANN技术的便捷性,以及单脉冲网络通过巧妙限制实现可微分的创新思路。当然,本视频仅触及了这些活跃研究领域的表面。这些方法为绕过脉冲神经网络中梯度计算的难题,提供了多样且富有启发性的路径。
024:替代梯度法

在本节课中,我们将学习如何使用替代梯度法来训练脉冲神经网络。这种方法虽然并非完美,但在灵活性和效率之间取得了很好的平衡,是目前该领域的主流方法之一。
从循环神经网络到脉冲神经网络
上一节我们介绍了替代梯度法的基本思想。本节中,我们来看看如何将训练循环神经网络的方法应用到脉冲神经网络上。
脉冲神经网络可以被视为一种特殊的循环神经网络。即使网络中没有显式的循环连接,由于神经元在某一时刻的内部状态依赖于其前一时刻的状态,这使得网络具有了隐式的循环特性。
理解了这一点后,我们快速回顾一下循环神经网络的训练方法。
首先,我们这样定义一个神经网络。我们有参数 θ,它可以是权重或偏置等。我们有一个随时间变化的输入 X,它被送入一个内部状态为 H 的循环网络。然后,H 被送入一个输出层 Y,该层有一个相关的损失函数 L。
为了更清晰地看到依赖关系,我们将其在时间上展开。例如,你可以看到时间 T=1 时的网络状态,不仅受到 T=1 时输入的影响,也受到 T=0 时网络状态的影响。
我们可以用方程来定义网络:H_T = F_θ(H_{T-1}, X_T)。这里,F_θ 是一个函数,它接收网络状态、输入和参数,并返回更新后的网络状态。这个函数可以是单层的应用,也可以是应用多层的结果。
我们可以展开这个函数来感受前几个时间步发生了什么。在第一个时间步,你得到上述定义。在第二个时间步,我们可以展开 H1,得到仅用参数 θ、初始状态 H0 和输入表示的结果。我们可以对所有其他时间步继续这样做。

在最终时间步,我们应用另一个函数 G_θ。然后,我们得到一个仅用参数 θ 和输入表示的损失表达式。这意味着我们可以使用链式法则计算损失相对于参数的梯度。有了梯度,我们就可以像以前一样写出梯度下降更新规则。
这一切看起来很复杂,但现代机器学习工具箱中的自动微分包为我们完成了所有工作。我们只需编写前向传播,它就能使用链式法则高效地计算梯度、应用更新规则等。这个算法被称为随时间反向传播,因为它是应用于随时间重复应用的函数的标准反向传播算法。
应用替代梯度法
现在,让我们将这个想法应用到脉冲神经网络上。我们从本周第一个视频中回顾的漏积分发放神经元开始。
关键点在于,我们可以写出方程来更新网络从一个时间步到下一个时间步的内部状态,就像上一张幻灯片中的函数 F_θ 一样。
这完全由可微函数组成,只有一个例外:Heaviside 阶跃函数,它用于计算神经元是否超过阈值并发放脉冲。这个函数是不连续的,其导数在除 x=0 外的所有地方都为 0。这意味着当我们使用链式法则或自动微分包计算梯度时,只会得到零,不会发生更新。

解决方案有点奇特:在前向传播中保持函数 H 不变。但每当我们看到 H 的导数时,就用平滑后的 Heaviside 阶跃函数的导数来替代它。这里的直觉是,如果损失函数景观中存在不连续的跳跃(对应于梯度变化导致多一个或少一个脉冲),那么平滑 Heaviside 函数将平滑损失函数景观中的跳跃。
我们可以使用的一个示例函数是 logistic sigmoid 函数。它有一个简单漂亮的导数。但实际上,平滑函数的选择并不那么重要,该算法对多种函数都非常鲁棒。
代码实现
理论上听起来不错,但我们有这些优秀的自动微分函数,实现这个想法看起来像一场噩梦。但实际上,情况并没有那么糟。PyTorch 等库允许你覆盖梯度计算的默认实现。
以下是如何在 PyTorch 中实现替代梯度的代码示例。
我们首先定义一个类 surrogate_heaviside。它继承自 PyTorch 的 torch.autograd.Function 类,以使其与 PyTorch 兼容。我们将用它来创建一个新的、具有魔力的替代版 Heaviside 函数,它将完全按照我们的意愿工作。
PyTorch 要求你实现两个方法。第一个是前向传播中发生什么。我们只想返回标准的 Heaviside 函数。ctx.save_for_backward 只是一些样板代码,使其能与 PyTorch 良好配合。
第二个方法是反向传播。它同样以一些样板代码开始,让我们获取输入和输出的梯度(因为我们是反向传播)。然后我们计算新的导数。我们设置一个参数 beta 来指定 sigmoid 函数的陡峭程度,然后使用上一张幻灯片的公式计算导数。注意,我们将导数乘以 PyTorch 给我们的输出梯度。
就这样。我们实例化这个类,然后直接用它代替 Heaviside 函数。现在,通过魔法,我们的脉冲神经网络就可以与自动微分一起使用了,我们可以使用任何优化算法,如随机梯度下降、Adam 学习规则等。
实际应用示例
它确实有效。这里有一个使用脉冲海德堡数字数据集的例子。这个数据集是通过让几位不同的说话者用英语和德语朗读数字 0-9 构建的。获取声波后,将其输入一个相当详细的早期听觉系统处理声音的模型,以产生类似这些的脉冲响应图。
在每个图中,Y 轴是神经元索引,底部行对应低频声音,上部行对应高频声音。X 轴是时间。如果你以前见过声音的频谱图,这看起来应该有些熟悉,因为在非常粗略的层面上,这就是听觉系统早期部分正在做的事情。

我们可以训练一个脉冲神经网络模型,将这些作为输入,并要求它对数字进行分类,它能够完成这项任务。以下是训练后模型神经元的一些中间脉冲序列。
你可以看到,经过训练,损失曲线具有熟悉的形状,最终我们得到大约 70% 的测试准确率。对于一个机会准确率为 5%、仅使用 200 个脉冲神经元的分类任务来说,这不算太差。构建这个数据集的 Friedemann 和 Zenke 保留了一个最佳表现者表格,在录制本视频时,最佳准确率约为 95%。那里的关键创新是允许神经元之间存在可训练的延迟。这是很好的性能,但我相信它会更高。也许你们中的一位可以打破这个记录。
方法的局限性
在我们过于兴奋之前,这种方法存在一些问题。第一个问题是,尽管它使得训练脉冲神经网络完成复杂任务变得可行,但它仍然相当消耗资源。
为了感受这一点,假设我们有 N 个神经元彼此全连接,并且我们运行网络 T 个时间步。该算法每个时间步将使用 O(N²) 的计算时间,以及 O(NT) 的存储空间。这才是真正的瓶颈,因为如果你想快速运行这些算法,你希望在 GPU 上运行。这意味着你可用的 RAM 非常有限。你本质上是在为模拟的每个时间步复制一份完整的网络状态,这会迅速累积。对于 1 毫秒的时间步长,你每秒模拟时间要制作 1000 份网络状态的副本。
另一个问题是很难很好地初始化这些网络。你希望初始状态具有几个关键属性。首先,它应该在每一层产生合理数量的脉冲,既不太多也不太少,否则将很难找到一个好的解决方案。其次,你希望网络初始化的状态是梯度既不会消失也不会爆炸的状态。这是训练深度或循环神经网络时的常见问题。
为此已经提出了各种想法,包括但不限于:初始化为类似大脑的状态,以及通过分析计算前向和反向传播中的方差。我必须说,这方面的数学推导很快就会变得非常复杂,并且高度依赖于你使用的神经元类型,这意味着这种解析解决方案在实践中部署起来比我们希望的更困难。
我想提到的最后一个问题是,像任何随时间反向传播算法一样,它使用了非局部信息,这些信息对于大脑中的真实神经元来说是不可用的。这意味着,如果没有一些额外的工作,它并不是大脑自身如何进行学习的好候选方法。然而,这并不意味着它不是训练脉冲神经网络的好方法,也不妨碍我们用它来以其他方式模拟大脑的工作。
前沿研究:可训练的时间常数
说到这里,我想通过谈论我的一位博士生使用替代梯度法进行的一项研究来结束,这项研究告诉我们大脑可能如何工作。
这个想法是从标准的漏积分发放神经元方程开始,但不仅仅是训练突触权重,我们还使这些时间常数 τ 成为可训练的参数。在 PyTorch 中实现这一点,几乎只需要对代码进行单行修改,尽管需要做一些工作来防止算法陷入停滞或遇到数值积分问题。
结果非常简洁。我们获得了巨大的性能提升,特别是对于像我们之前看到的海德堡数字数据集这样时间上复杂的数据集。我们仅以极小的参数数量增加就实现了这一点,因为我们只为每个神经元添加了一个新的可训练参数,即 O(N) 个参数,而没有增加突触权重的数量(那是 O(N²) 个)。我们还发现,当在训练集分布之外进行测试时,这种方法更加鲁棒。
我们学习到的时间常数与实验记录的大脑数据相匹配。具体来说,无论我们如何为每个数据集初始化时间常数,它们总是会找到一种特征分布,该分布大致呈对数正态分布或伽马分布。这正是你在包括人类在内的多种不同脑区和动物类型的大脑中看到的情况。这并非结论性的,但我们认为这表明,拥有不完全相同的神经元可以使大脑在不大量增加所需资源的情况下做更多的事情。
顺便说一下,这些实验记录的分布是从艾伦研究所的数据库中获得的,该数据库是开放和免费探索的,并有一个很好的 Python API。所以你应该去尝试一下。
总结与后续学习

好的,这就是关于替代梯度下降法的全部内容。我强烈建议你花些时间更详细地了解它,可以从 Friedemann 和 Zenke 的优秀 PyTorch 教程开始,该教程逐步构建代码,从零开始运行,直到你拥有一个可以解决脉冲海德堡数字数据集的网络。
本周的练习从学习本教程的第一部分开始,然后将其应用于一个不同的问题。如果你希望更深入地了解替代梯度下降的数学原理,我还包含了一些阅读材料,但请注意,你可能需要留出几天时间来学习这些内容。

本节课中我们一起学习了如何使用替代梯度法训练脉冲神经网络,理解了其理论基础、代码实现、实际应用以及当前的局限性。这种方法为在复杂任务上训练脉冲神经网络打开了大门,是连接机器学习和计算神经科学的重要工具。
025:观察神经活动

在本节课中,我们将探讨研究人员如何尝试理解神经网络。首先,我们需要明确理解神经网络意味着什么。

我们可以将人工神经网络和大脑都视为计算系统,它们执行从感觉刺激到行为的输入-输出转换。但网络的所有特征,如单元特性、架构和活动模式,是如何结合起来实现这些转换的呢?神经科学家和机器学习研究人员都对这个问题感兴趣,原因多种多样,例如利用生物学知识改进人工神经网络,或构建脑机接口来记录神经活动并控制各种设备。
本周的视频将涵盖与理解神经网络相关的三个主题:如何观察神经活动、如何分析它以及如何操控它。

上一节我们介绍了理解神经网络的目标,本节中我们来看看如何观察神经活动。
观察神经活动的方法
在人工神经网络中,观察活动很简单,只需运行一次前向传播并计算单元激活值即可。在脉冲神经网络中,我们可以向网络输入脉冲并记录其隐藏单元的膜电位或脉冲输出。然而,在真实的生物系统中,我们需要选择记录神经活动的方法。

有多种不同的神经活动记录方法,各有优缺点。一种描述它们的方式是使用一个二维坐标轴,其中X轴表示方法的时间分辨率,Y轴表示该方法可以同时记录的神经元数量。
在之前的视频中,我们介绍了电生理学技术,它可以高时间分辨率地记录单个神经元,在图中位于这个位置。为了用这种方法获取更多神经元的数据,研究通常会在不同试验中顺序记录不同的神经元,然后跨试验和受试者汇总数据。即便如此,通常也仅限于数十到数百个神经元,并且以这种方式合并数据并不理想。那么,我们如何能同时记录更多神经元呢?
以下是几种主要的记录技术:
- 高密度探针(如Neuropixels):这种探针的主体是一个极薄的杆,通过手术插入大脑,上面覆盖着数百个记录位点。每个位点记录附近的电活动,因此每个位点的信号是许多神经元活动的总和。通过利用不同神经元具有不同脉冲波形等特征的尖峰排序算法,可以从这些数据中推断出单个神经元的基础脉冲活动。这种探针允许同时记录数百到数千个神经元的活动。
- 钙成像:当动作电位到达轴突末梢时,会导致电压门控钙通道打开,钙离子流入细胞。因此,我们可以利用钙离子浓度的变化来推断神经活动。使用这种方法测量神经活动大致有四个步骤:
- 需要一种钙指示剂,它在钙离子存在时会改变荧光。
- 需要将这种指示剂放入神经元内部,可以通过注射或基因改造使神经元自身产生指示剂来实现。
- 将样本置于显微镜下,测量每个神经元随时间变化的荧光。
- 分析连续的荧光变化,或使用反卷积算法推断基础的脉冲活动。
- 功能磁共振成像(fMRI):这是人类最常用的方法之一,它测量大脑区域血流的变化。由于更活跃的区域需要更多氧气,反之亦然,因此这可以作为神经活动的另一种间接测量。fMRI被广泛使用,因为它是非侵入性的,能提供全脑信息,并具有毫米级和秒级的合理空间与时间分辨率。但需要注意的是,它是神经活动的间接测量,并且即使空间分辨率在毫米级,最小的测量空间单元(体素)仍包含约一百万个神经元。
现在,让我们将这些技术大致映射到我们的坐标轴上。高密度探针(如Neuropixels)具有高时间分辨率,可以记录数百到数千个神经元。钙成像具有中等时间分辨率,但可以记录数千到数万个神经元。fMRI时间分辨率较慢,就神经元数量而言,它记录的是无法解析单个神经元的全脑信号。
在继续之前,还有两点需要提及。首先,还有许多其他记录神经活动的方法,例如,脑电图(EEG)使用外部电极测量大脑的电活动,电压成像使用荧光随神经元膜电位变化的指示剂。人们认为电压指示剂将是神经科学的下一个重大进展。其次,除了方法的时间和空间分辨率之外,还有许多其他因素需要考虑,例如,大多数神经记录是在静态受试者身上进行的,但人们对能够在自由运动期间记录神经活动的方法越来越感兴趣。
本节课中我们一起学习了观察神经活动的几种主要技术:高密度电生理记录、钙成像和功能磁共振成像。每种方法在时间分辨率、空间覆盖范围和侵入性方面各有优劣。理解这些工具的局限性对于正确解释神经数据至关重要。

在下一节中,我们将探讨如何分析这些记录到的数据。
026:神经数据分析 🧠

在本节课中,我们将学习如何分析和解读神经活动数据。上一节我们介绍了神经数据的采集方法,本节中我们来看看如何从这些数据中提取有意义的信息。
无论使用何种方法采集数据,我们最终都会得到一个矩阵,其中一个维度是时间,另一个维度是神经元。矩阵中的每个单元格代表一个神经元在某个时间点的活动水平。这里的“活动”可以是二元的(如动作电位),也可以是连续的(如钙成像数据),或者通过计算每个时间窗口内的动作电位数量得到的连续发放率。
需要注意的是,实验者通常不会连续记录神经活动,而是进行多次固定时长的试验,因此时间维度可能是不连续的。例如,一个实验可能包含多个试次,在每个试次中,受试者观看图像并进行分类,图像之间会有休息间隔。
面对这类数据,我们可以提出许多不同的问题:不同神经元的行为如何?是否存在只在某些试次或试次的某些阶段活跃的神经元?神经元的活动是否会随着试次发生变化,例如随着动物学习任务或感到无聊而变化?如果我们知道所记录神经元在大脑中的位置,我们还可以观察具有不同反应特性的神经元是否位于不同的空间位置。如果我们处理的是人工神经网络的数据,等效的方法是比较不同层的单元。
一旦明确了问题,我们就可以决定采用何种分析方法。分析神经数据的方法多种多样,本视频将重点介绍三种。
一种简单的方法是计算汇总统计量。例如,在一个分类任务中,我们可以计算每个神经元对每个类别的反应强度,然后观察其反应在不同类别间的特异性。或者,当我们连续改变一个刺激参数(如屏幕亮度)时,我们可以观察神经元对该参数的调谐程度,即其活动如何随该参数变化。
以下是这种分析的一个实例:


在这篇论文中,作者让一只大鼠在一个方形场地中自由移动,同时记录其海马体(大脑的一部分)中神经元的活动。左图中,黑线显示动物在环境中的移动路径,红点显示某个神经元发放动作电位时的空间位置。右图则显示了该神经元发放率的热图,红色表示高发放率。这个热图相当于一个二维的调谐曲线,我们可以看到该神经元对这个环境中的特定位置有调谐反应。具有此类反应的神经元被称为“位置细胞”,它们于1971年被首次发现,至今仍是活跃且令人兴奋的研究领域。
然而,许多神经元并非如此清晰地调谐于特定的环境特征。与其将单个神经元视为编码变量,不如尝试理解神经元群体编码了哪些信息。这引出了我们的第二种方法:神经解码。
神经解码的目标是利用神经活动来估计环境或受试者的某些状态。例如,对于上一张幻灯片中的大鼠,我们可以获取其神经活动,并尝试估计它在环境中的速度或位置。

具体做法是,从我们的“神经元 x 时间”矩阵开始,将动作电位分箱以获得连续的发放率(这更易于处理),然后使用多个时间箱的数据来预测我们在特定时间点感兴趣的变量。由于这本质上变成了一个回归问题,我们可以采用多种不同的方法,例如使用滤波器甚至神经网络模型。幻灯片底部提到的论文详细比较了这些方法。
例如,在下图中,X轴上的每个点代表一种不同的解码方法,Y轴显示每种方法解码大鼠位置的准确度。可以看到,尽管数据集只记录了50个神经元,但有些方法可以相当准确地完成解码。

但是,如果我们尝试从大脑其他区域的神经元群体(如视觉皮层或听觉皮层)解码位置,结果会差很多。因此,我们可以利用解码准确度来估计不同脑区中存在哪些信息。
然而,解码依赖于我们有一个或多个感兴趣的变量来估计,有时我们可能没有这样的变量。例如,如果我们只是记录自发的脑活动,即静息状态下的脑活动。
在这种情况下,一种方法可以被称为“群体方法”。

这些方法试图识别出那些活动模式随时间相关的神经元群体。一种方法是使用聚类算法,将具有相似活动模式的神经元分组。另一种是此处展示的方法,称为张量成分分析。

我们将记录到的“神经元 x 时间 x 试次”的二维矩阵重塑为一个三维张量(神经元 x 时间 x 试次)。然后,我们用一组“群体”来描述这个张量,每个群体由三个向量组成(图中用红、绿、蓝三色表示):
- 神经元因子:表示每个神经元与该群体的关联强度。
- 时间因子:表示该群体的活动在单个试次过程中如何随时间变化。
- 试次因子:表示该群体的活动在不同试次间如何变化。
这听起来可能有些抽象,让我们看看将其应用于真实数据时能得到什么。


这个实验仍然关注空间导航,但对象换成了小鼠,使用的是所谓的“十字迷宫”(见A图)。基本上,小鼠从东臂或西臂开始,必须导航到北臂或南臂,如果正确,就会获得奖励。那么,将张量成分分析应用于该实验记录的神经数据揭示了什么?
这里,每一行显示八个群体中的一个,每一列显示该群体的神经元因子、时间因子和试次因子。
- 神经元因子列:X轴显示所有280个记录的神经元,每个Y轴显示每个神经元与每个群体的关联强度。可以看到,不同的神经元与不同的群体相关联。
- 时间因子列:X轴显示每个试次的时间进程,每个Y轴显示每个群体的活动。可以看到,不同的群体在试次的不同时间点活跃。
- 试次因子列:每个点代表一个试次,X轴显示试次的顺序,每个Y轴显示每个群体在给定试次中的活跃程度,点的颜色根据B图中显示的不同试次属性进行编码。
例如,如果我们关注群体2,它的时间因子显示这些神经元主要在试次开始时活跃。它的试次因子显示,当小鼠从迷宫的东臂开始时(黄色点),这些神经元比从西臂开始时(紫色点)更活跃。现在,鼓励你暂停视频,尝试自己解释其他群体。

希望本视频让你对如何使用汇总统计量、解码方法和群体方法分析神经活动数据有了一些了解。当然,还有许多其他方法,鼓励你广泛阅读相关资料。在下一个视频中,我们将介绍如何操控神经活动。



本节课总结:
本节课我们一起学习了三种主要的神经数据分析方法:
- 汇总统计与调谐分析:用于描述单个神经元对特定刺激或行为参数的响应特性。
- 神经解码:将神经活动视为输入,使用回归等方法预测行为或环境变量,以评估神经群体编码的信息。
- 群体分析方法(如张量成分分析):用于发现具有协同活动模式的神经元群体,并解析其活动在时间、试次等维度上的结构,尤其适用于没有明确外部变量或研究自发活动的情况。
027:神经活动操控 🧠
在本节课中,我们将学习如何通过操控神经活动来验证神经元或脑区功能的重要性。我们将探讨不可逆与可逆的操控方法,并了解这些方法如何应用于生物神经系统和人工神经网络。
概述

在前两节视频中,我们探讨了如何记录和分析神经活动。然而,这些方法主要是在神经活动与不同变量之间建立相关性,我们无法完全确定这些发现具有因果关联。换句话说,一旦我们发现某些神经元对特定刺激或行为有反应,我们想知道干扰这些神经元是否会影响动物对该刺激的反应能力或执行该行为的能力。这可以通过操控神经活动来实现,操控可以是不可逆的,也可以是可逆的。
不可逆操控
不可逆操控通常涉及永久性地改变或破坏神经组织。在人类中,这种变化通常源于意外、疾病过程或外科手术干预。例如,在本课程早期提到的一篇论文中,研究者使用功能磁共振成像研究了胼胝体受损的两名患者。
在动物模型中,我们可以不可逆地破坏单个神经元甚至整个脑区,并研究其影响。例如,一篇论文使用大鼠研究了运动皮层的作用。运动皮层是一个在许多研究中观察到与运动相关的神经活动的脑区。
在这项研究中,作者将一组大鼠分为两组:一半大鼠的运动皮层被破坏(损伤组),另一半作为对照组(无运动皮层损伤)。然后,他们训练所有大鼠穿越台阶,如下方视频所示。
视频显示了一只运动皮层受损的动物(标记为“损伤A”)和一只对照动物学习任务的过程。最初,两只动物的运动模式看起来非常相似。令人惊讶的是,作者发现两组动物在简单任务表现上没有差异。
一个可能的结论是,运动皮层对于此类简单任务并非必需。因此,作者通过使越来越多的台阶变得不稳定来增加任务难度。然而,他们再次惊讶地发现两组动物之间没有差异。
直到他们非常仔细地分析数据后,才发现差异。他们发现,当动物首次遇到不稳定的台阶时,会以三种方式之一作出反应,如下方视频所示。
- 一些对照动物会停下来探查不稳定的台阶。
- 一些对照动物会通过调整运动来补偿。
- 但运动皮层受损的动物会停止移动数秒钟。
这表明,该脑区的主要作用可能是帮助动物适应意外情况。更广泛地说,这篇论文很好地说明,虽然我们可以通过观察神经活动来推测神经元或脑区的功能,但只有通过操控它们,我们才能真正确认或反驳这些功能。

可逆操控
然而,我们并非总是必须使用不可逆的操控方法,因为也存在可逆的方法。
在人类中,一种方法称为经颅磁刺激(TMS),它利用磁场来改变脑区的活动。
在动物模型中,我们可以更精确地控制神经活动,一个出色的方法是光遗传学。它利用光控蛋白来控制神经活动。
一些光控蛋白是基因工程改造的,但也有一些天然存在于藻类等生物中。例如,本图左侧显示的通道视紫红质是一种离子通道。当暴露在蓝光下时,它会改变结构,允许正离子流入神经元,从而增加其膜电位和放电活动。
相比之下,本图右侧显示的蛋白质对黄光产生反应,要么将氯离子移入神经元,要么将氢离子移出。这两种情况都会降低神经元的膜电位和放电活动。
因此,通过在神经元中表达这些通道并用光触发它们,我们可以通过可逆地激活或沉默神经元来研究它们的功能。
人工神经网络中的操控
虽然这看起来与机器学习有些脱节,但我们实际上可以使用相同类型的操控方法来研究人工神经网络。
例如,在一篇论文中,作者通过广泛“损伤”一个人工神经网络来研究它。为了创建这个人工神经网络,作者使用了一种名为“ME”的进化算法,演化出一个可以玩街机游戏《太空侵略者》的网络。
演化出的网络结构如本图所示。左侧是网络的12个输入节点,接收压缩后的视频游戏画面。右侧是网络的6个输出节点,对应“左移”、“右移”、“开火”等动作。中间是一个隐藏节点和许多连接,其权重用颜色编码。
为了操控网络,他们依次沉默每个节点,并检查网络在每个节点被单独沉默时的表现。本图显示了他们的结果。Y轴表示网络得分,越高越好。作为对比,蓝色条纹表示网络的正常表现,红色条纹表示如果打乱其权重(性能下限)时的表现。
在图左侧,X轴上的每个点对应沉默一个节点。可以看到,损伤不同的节点会导致不同的得分,这意味着某些节点对游戏更重要。有趣的是,损伤两个节点反而提高了网络得分,表明这些节点实际上阻碍了网络。
在图右侧,作者还依次沉默了每个权重,并研究了对性能的影响。有趣的是,他们的结果表明许多权重可以被移除而影响不大。
然而,此类单元素操控的结果可能会产生误导。例如,想象一下,如果网络中的两个单元并行执行相同的功能。那么单独沉默其中任何一个可能都不会导致网络得分变化,我们可能会错误地得出结论,认为这两个单元都不重要。
进一步来说,由于网络(无论是人工的还是生物的)中元素之间存在复杂的相互作用,很可能存在许多此类问题的变体。那么,我们如何克服这个问题呢?
作者提出的一个解决方案是使用多元素损伤方法。在这种方法中,对损伤组合进行采样。例如,沉默节点1并检查网络得分,然后同时沉默节点1和2,再同时沉默节点1、2和3,依此类推。然后,通过比较节点在不同组合中存在与否时的网络得分,来计算每个节点的重要性。
结果如之前一样显示在图B中。在右侧的图C中,可以看到单元素和多元素损伤方法对不同的节点赋予了不同的重要性。
这些以及其他结果使作者得出结论:即使是小型人工神经网络也可能非常难以解释。因此,在解释对更大、更复杂系统的操控结果时,我们或许应该保持谨慎。如果您想了解更多关于这种方法及其结果的信息,强烈推荐阅读下方显示的论文。
总结

本节课我们一起学习了如何通过操控神经活动来建立神经功能的因果联系。我们探讨了不可逆操控(如脑损伤研究)和可逆操控(如光遗传学)的方法,并了解了这些原理如何应用于分析人工神经网络。操控实验是验证观察性研究发现的关键步骤,但需要注意网络内部复杂相互作用可能带来的解释挑战。在下一个视频中,我将概述本周的练习,它将挑战您亲自观察和操控一个人工神经网络。
028:W6_V4-练习


在本周的课程中,我们探讨了如何通过观察、分析和操控神经网络的活动来理解它们。本次练习的目标是将同样的技术应用于一个人工神经网络,以探索我们能学到什么。
🎯 概述
在本练习中,我们将首先训练一个用于声音定位任务的脉冲神经网络模型。随后,我们将运用课程中介绍的技术,通过观察或操控模型的内部活动,来探究其工作机制。
🏗️ 第一步:训练模型
首先,我们需要训练一个模型。本练习将使用一个在声音定位任务上训练的脉冲神经网络。随附的 Colab Notebook 包含了完成此步骤所需的所有代码。
🔍 第二步:探究模型工作原理
获得训练好的模型后,你的目标是探究其工作原理。我们概述了两种不同的方法:观察模型单元活动或操控模型单元活动。你可以按任意顺序或组合尝试这些方法,甚至可以根据自己的想法采取完全不同的方法。
以下是每种方法的简要说明。
方法一:观察模型单元活动
如果你想观察模型的单元活动,需要编辑少量代码以记录模型的隐藏层活动。然后,你需要向网络输入数据并记录这些活动。获得数据后,你可以尝试我在 W6 V1 讲座中概述的一些分析方法。
以下是几种可行的分析思路:
- 计算汇总统计量:例如,计算每个神经元对每个输入类别的响应特异性。
- 从活动解码输入:尝试从隐藏层活动中解码出输入类别。我已链接了可能对你有帮助的论文和代码。
- 识别功能集群:使用聚类算法或我在论文中讨论的集成方法,将隐藏单元分组为功能集群。同样,相关论文和代码链接已提供。
方法二:操控模型单元活动
如果你对操控神经活动感兴趣,需要编辑代码,以便在前向传播过程中将某些权重或单元设置为零,然后观察这如何改变模型的准确性。
获得此能力后,你可以进行以下尝试:
- 沉默单个元素:观察沉默每个节点或权重是否会降低模型在一个或多个类别上的性能。
- 过度激活单元:尝试过度激活单元,看看是否能迫使网络做出错误决策。
- 多重损伤分析:如果你有足够的雄心,还可以尝试我在讲座中概述的多重损伤方法。相关论文和代码也已链接。
🤝 分享与讨论
如果你是帝国理工学院的课堂学生,在课程结束时,我们将简要讨论你的发现。如果你是在线学习者,欢迎在 Discord 上分享你的成果,我们非常期待看到你的发现。

📝 总结

在本练习中,我们一起学习了如何将神经科学的分析思路应用于人工神经网络。我们首先训练了一个脉冲神经网络模型,然后通过观察其隐藏层活动或主动操控其内部状态两种途径来探究模型的工作原理。希望你能通过动手实践,更深入地理解神经网络的内部机制。
029:决策制定 🧠
在本节课中,我们将学习神经科学中一个对机器学习或量化背景人员可能特别有趣的主题:决策制定。我们将聚焦于决策制定的一个特定方面——反应时间,并探讨一个能解释其分布的数学模型。这个模型不仅与行为数据吻合,还拥有严谨的概率论解释,并且得到了神经生理学实验的支持。
本周的视频内容并非围绕单一主题展开。我们将探讨神经科学中几个不同的研究方向,这些方向可能对具有机器学习或定量背景的人士有所启发。未来我们可能会增加更多相关内容。
决策制定与反应时间
上一节我们介绍了本节课的总体范围。本节中,我们来看看我们将要重点关注的决策制定具体方面:反应时间。从某种意义上说,大脑所做的一切都可以被视为决策。然而,我们将聚焦于神经科学和机器学习中研究得很多的一个特定方面:反应时间。即,基于随时间连续到达的信息流做出决策需要多长时间?

双项迫选任务

为了更具体地探讨,我们引入一种非常具体的任务类型:双项迫选任务。
在此任务中,参与者会看到某种图像或视频,并被要求在两个选项之间做出决定。一个常见的例子是随机点运动图:屏幕上显示随机移动的点,其中一部分点一致地向左或向右移动,另一部分点则随机移动。参与者需要判断一致移动的点是哪个方向。有时,他们被要求尽快做出决定。反应时间就是从视频开始到参与者按下按钮之间的时间间隔。
如果你进行这个实验,你会观察到特征性的、偏态分布的反应时间。下图实际上来自一个略有不同的任务,参与者被要求判断他们之前是否见过所展示的图像。


漂移扩散模型
有一个非常简洁的理论可以解释我们如何做出这些决策,并能说明这些反应时间的分布。想象一下,随着时间的推移,有时会到达一些证据片段,每个片段本身并不可靠,但暗示着点更可能向右移动而非向左。接着是另一个证据,然后是一个暗示向左移动可能性更大的证据,依此类推。
我们持续追踪一个累计总量,记录我们收到的支持“向右”相对于“向左”的证据有多少。一旦这个累计量超过某个阈值,我们就做出决策。
这是一个有偏的随机游走过程,其中向正确方向迈出一步的概率高于向错误方向迈出一步的概率。随着时间点从10增加到30,再从30增加到100,一直到1000,这个随机游走看起来越来越像带有漂移的布朗运动。
这为我们提供了一个数学模型,让我们可以解析地计算反应时间分布的表达式,或者像这里一样,用数值方法进行模拟。我们可以设置一个低决策阈值或高决策阈值进行模拟。果然,我们得到的结果与实验数据非常相似。

模型的概率论解释

这个模型看起来不错,但可能仍显得有些特设。幸运的是,事实证明这个模型有一个巧妙的概率论解释。
让我们为任务建立一个概率模型。我们假设存在一个真实方向 T,可以是 L 或 R,且两种可能性相等。你也可以修改此模型,使选项具有不同的先验概率。
我们在时间 t 观察到的数据是一系列符号 X_t,每个符号是 R 或 L。观察到正确符号的概率是 p,观察到错误符号的概率是 1-p。
现在,给定我们已知观察数据 X,我们想要推断未知值 D,我们计算这两个选项中哪一个更可能。我们将其写为似然比 R(x):
R(x) = P(D=R | X) / P(D=L | X)
如果这个比值很高,则 D=R 的可能性大得多;如果比值很低,则 D=L 的可能性更大。
我们使用贝叶斯定理来重写条件概率。P(D=R | X) 可以写为 P(X | D=R) * P(D=R) / P(X),分母 P(D=L | X) 同理。P(X) 项抵消,且先验概率 P(D=R) 和 P(D=L) 都是 1/2,所以也抵消。
不同时间点的观测是独立的,因此我们可以将其展开为每个时间点概率的乘积。这个乘积在分子和分母中是相同的,所以可以提出来。
为了更清楚地看到发生了什么,我们取这个比值的对数,得到对数似然比 LLR:
LLR = log R(x) = Σ_t [ log( P(x_t | D=R) / P(x_t | D=L) ) ]
对数的乘积等于对数的和。我们将单个项写为时间 t 的证据 ε(x_t)。当 x_t = R 时,ε(x_t) = log( p / (1-p) );当 x_t = L 时,ε(x_t) = log( (1-p) / p ) = -log( p / (1-p) )。
因此,我们可以将对数似然比写为一个常数项乘以一系列项 δ(x_t) 的和,其中 δ(x_t) 在 x_t = R 时为 +1,在 x_t = L 时为 -1。
LLR = log( p / (1-p) ) * Σ_t δ(x_t)
但这个和正是我们在上一张幻灯片中看到的随机游走。当 D=R 时,和以概率 p 增加1,以概率 1-p 减少1;当 D=L 时则相反。
现在,我们可以从概率角度理解决策阈值。我们等待直到对数似然比大于某个阈值 θ,或者等价地,似然比大于 e^θ。这恰好发生在 δ(x_t) 的和大于某个阈值时,与漂移扩散模型完全一致。

神经科学证据与模型扩展

最后,关于这个理论最棒的一点或许是:在基于拟合行为观察提出模型并找到严谨的概率论解释之后,电生理学实验在多个物种的多个不同脑区都发现了这种证据累积过程的痕迹。
当然,实际情况从未像理论那样清晰纯粹,人们已经提出了各种修改模型。例如,随时间推移而向原点靠近的自适应阈值,以代表做出某种决策的紧迫性增加;或者能以各种方式适应更广泛背景的阈值。
此外,还有更全面的贝叶斯决策理论,其中这个模型只是一个特例。如果你有兴趣阅读更多,本周的阅读材料中提供了一些建议的起点。

总结

本节课中,我们一起学习了神经科学中关于决策制定的一个核心视角。我们重点探讨了反应时间,并通过双项迫选任务将其具体化。我们介绍了一个简洁的漂移扩散模型,该模型通过证据累积的随机游走来解释反应时间的分布。更重要的是,我们深入探讨了这个模型的概率论基础,揭示了它本质上是计算对数似然比并设定决策阈值的过程。最后,我们了解到该模型得到了神经生理学证据的支持,并且存在多种扩展和更一般的理论框架。这个例子很好地展示了如何用数学和计算模型来理解和解释大脑的复杂功能。
030:神经形态设备简介 🧠
在本节课中,我们将要学习神经形态计算。这是一种使用专门硬件的方法,这种硬件要么直接模仿大脑功能,要么受到大脑计算方式的某些方面启发。本周视频的研究主要由正在攻读博士学位的Gabriel Mayner完成。

为何关注神经形态计算?⚡
上一节我们介绍了神经形态计算的概念,本节中我们来看看它为何在当前备受关注。一个主要原因是电能消耗。
- 据估计,到2023年,信息与通信技术(ICT)消耗了全球约10%的电力供应,导致了约2%至4%的全球二氧化碳排放。
- 这一消耗正以每年约2%至3%的平均速度增长。显然,这种情况必须得到改变。
- 部分增长源于机器学习应用日益增长的需求。例如,一台配备8块A100 GPU的NVIDIA DGX GPU服务器功耗约为6.5千瓦。
神经形态计算的理念是从大脑中汲取灵感,而大脑是已知的非常节能的系统。
- 人脑最多消耗约20瓦功率,实际可能远低于此,因为该数值包含了维持头部温度等所需的能量。
- 凭借这20瓦功率,大脑能进行大量复杂的计算,在许多任务上的表现远超功耗高出数个数量级的机器学习系统。
- 再以蜜蜂的大脑为例,它仅消耗约10微瓦功率,就足以完成复杂的导航、模式识别和社交沟通。
神经形态硬件如何降低功耗?以下是一个例子:
- 2009年的IBM Synapse芯片在执行视频处理任务时,仅消耗70毫瓦功率。

超越功耗:传统计算的局限 🚧

神经形态计算的优势不仅在于降低功耗。标准的计算范式正开始显现其局限性,神经形态计算是解决其中一些问题而被提出的若干思路之一。
以下是当前计算面临的一些挑战:
- 物理极限:著名的摩尔定律所概括的计算能力指数增长正面临物理极限。事实上,作为计算能力关键指标的时钟速度在2004年就已停滞。
- 内存带宽瓶颈:加速代码时,瓶颈常常是内存带宽而非计算能力。如果你进行过GPU编程,就会知道关键在于确保海量核心获得足够数据,避免它们空转等待。
- 移动设备限制:移动设备没有足够的功率预算来运行全尺寸的机器学习模型。在这种情况下,它们受限于与更强大服务器通信的网络带宽。
近似计算与噪声鲁棒性 🔀
近似计算是一个有趣的发展方向,可以解决上述部分问题。
- 核心思想:如果在计算中允许存在噪声,就可以实现一些原本不可能的事情。
- 举例:如果不介意随机比特翻转(即1随机变为0,或反之),就可以大幅降低电压,从而降低功耗并以更高的时钟速度运行。
- 关键:要实现所有这些优化,需要计算本身对噪声具有鲁棒性。然而,设计这种鲁棒性对我们而言通常很困难或不自然。
神经形态计算为这些问题提供了一个很好的解决途径。
神经形态计算的优势 💡
神经形态计算从多个方面应对了传统计算的挑战:
- 内存与计算协同定位:由于内存和计算在物理上是共位的,可以减少一些瓶颈问题。这既体现在设备内部,也体现在移动设备上——可以在本地运行一些计算,避免将数据发送到服务器。
- 算法天然噪声鲁棒:神经形态算法受大脑启发,而大脑本身充满噪声且具有极强的噪声鲁棒性。这使得近似计算的许多目标得以实现。
- 事件驱动与异步性:整个系统天然基于事件且是异步的。这再次允许了各种巧妙的优化,这些优化在保证操作按固定、确定顺序执行的系统上是不可能实现的。
本周内容预告 📺
在接下来的视频中,我们将探讨神经形态硬件的现状,包括计算设备和传感设备,并了解一些应用实例。

总结

本节课中我们一起学习了神经形态计算的基本概念。我们了解到,它通过模仿大脑高效、鲁棒、异步的计算方式,旨在解决传统计算在功耗、内存瓶颈和物理极限等方面面临的挑战。神经形态硬件将内存与计算单元紧密结合,其算法天然对噪声鲁棒,并以事件驱动的方式运行,为未来计算技术的发展提供了新的可能性。
031:类脑计算详解 🧠
在本节课中,我们将深入探讨类脑计算。这是一种非标准计算架构,旨在模仿大脑工作的某些方面。它不一定意味着使用脉冲信号,但许多类脑计算方案确实以某种形式利用了脉冲。
概述

类脑计算设备的设计方案众多。一篇综述论文引用了多达2700篇文献。因此,我们无法涵盖所有尝试。本节将概述一些最常见的特性,并举例说明。如果你希望了解更多,建议查阅相关文献。
核心组件概览
类脑计算系统通常包含几个关键部分。以下是其主要构成要素:
- 神经元模拟技术:核心是模拟神经元功能的技术。这可以是模拟过程,使用新材料或电路来模拟神经元动态;也可以是数字过程,基于传统CPU或为模拟神经动力学和脉冲而定制的硬件;还可以是两者的结合。
- 脉冲处理:硬件需要处理可能数量庞大的输入脉冲。一种常见方法是忆阻器交叉阵列。
- 脉冲通信:神经元需要一种方式将其产生的脉冲传递给其他神经元。地址事件表示是一种标准协议,并有几种不同的路由方法。
- 学习机制:理想情况下,学习应在类脑设备本身上进行以实现最高效率,但这通常难以实现。因此,训练常常在芯片外低效地进行,只有前向传播或推理过程在芯片上运行。
上一节我们介绍了类脑计算系统的整体框架,接下来我们逐一深入其核心组件。
模拟神经元
第一步是模拟神经元或其组件。
一种非常传统的方法是亚阈值模拟方法。这种方法设计一个行为类似于神经元模型的电路,其时间常数与生物神经元相当,因此可以实时运行。相关论文展示了一系列使用晶体管和电容器构建的、日益复杂的电路,这些电路越来越接近地模拟了突触动力学。
此外,还有超阈值模拟方法,其速度比生物过程快数千到数十万倍,因此可用于加速模拟。其缺点是电流通常更高,电路设计更复杂。
值得注意的是,这些模拟电路是有噪声的。例如,你可以看到其中一种技术的电导如何随时间变化。这是我们必须考虑的因素,但如果底层网络(如大脑)对噪声具有鲁棒性,这可能不是问题。
数字方法
现在让我们看看数字方法。最简单的一种就是使用标准CPU,例如像ARM这样的精简指令集处理器。其巧妙之处在于如何将这些处理器连接在一起。这种方法在模拟内容方面非常灵活,但能效不如更定制化的方案。
现场可编程门阵列 是迈向完全定制化的第一步。它们允许对硬件进行部分配置。虽然比CPU的灵活性稍差,但在速度和功耗方面可以更高效。
最后,你可以选择开发完全定制的芯片。这是灵活性最低、开发成本最高的方案,但能效可能高得多。
当然,也存在以不同方式结合这些元素的混合方法。
在模拟了神经元之后,我们需要一种方式来接收并处理输入的脉冲。
处理输入脉冲
这里的关键问题,也是人工神经网络和脉冲神经网络共同面临的问题,是矩阵向量乘法。这通常是神经网络模拟中最耗时的部分,因此加速此过程或降低其功耗是类脑系统设计的关键。
一个常见的解决方案是忆阻器交叉阵列。忆阻器是一种具有可编程电导的电子元件。如果将它们连接成网格,就可以用它来实现矩阵向量乘法。
- 行(V_i)代表输入,以电压表示。
- 列(I_j)代表输出,以电流表示。
- 在每个网格点,可以有一个忆阻器,其电导代表突触权重。
- 网格点的电流是输入电压和忆阻器电导的乘积。
- 一列的总输出电流是所有网格点电流之和,这正是矩阵向量乘法所需的计算。
除了处理接收到的脉冲,我们还需要传递脉冲。
传递脉冲
大脑的做法是简单地为每个输入到每个输出连接一根导线。我们能照做吗?可以。但如果你有N个输入和N个输出,你可能需要多达N²根导线,这成本很高,尤其是在芯片仅限于二维空间,而大脑是三维的情况下。
另一种方法是地址事件表示方案。在该方案中,每个输入事件首先被解码为二进制,这需要log₂(N)个比特。这些事件通过一个非常高速的数字总线进行时分复用传输。路由表允许你将事件分发到目标,然后目标可以重建输入脉冲序列。这只需要与log₂(N)成比例的导线数量,要好得多。
然而,由于多个事件可能同时发生,你不得不对同时发生的事件进行排队(这会引入时间误差)或完全丢弃它们。如果你的目标是完美模拟,这在理论上有问题,但如果你训练的网络对噪声(如某种形式的时间抖动和突触丢失)具有鲁棒性,这可能不是大问题。因此,AER方案在类脑系统中被广泛使用。
我们需要的最后一个要素是学习。
实现学习
最简单的做法是在类脑设备之外进行学习,然后将突触权重和其他参数复制过来。这种方法非常灵活,因为你可以使用任何你喜欢的学习规则,但这意味着你失去了在类脑设备上模拟学习的好处,并且这常常限制了可扩展性。
另一种方法是在芯片本身上进行学习。从效率的角度来看这是理想的,但也有一些缺点。
- 我们无法使用全局梯度信息,这排除了像在替代梯度下降中使用的随时间反向传播这样的学习规则。
- 即使大脑知道如何仅用局部信息进行学习,我们目前还不知道如何做得和用全局信息一样好。
- 此外,这些局部信息需要被管理并传输到正确的位置,因此必须将其纳入硬件设计中,这限制了灵活性。
在实践中,我们经常使用STDP或其近似,或一种称为SDSP(脉冲时间依赖可塑性)的变体。这些规则是无监督的,如果你想在分类或回归任务上进行训练,这是一个限制,但你可以使用资格迹来恢复监督元素(此处不深入讨论)。
在某些方面,学习是类脑计算故事中缺失的重要部分,这可能也是因为我们还不完全理解大脑如何仅用局部信息进行学习。
现有产品示例
最后,我们快速浏览一些现有的产品,看看它们如何运用我们讨论过的组件。这不是一个详尽的列表。

我们从实时运行的亚阈值模拟系统开始:

- Rolls 和 DAPS:现已由Sence商业化。基本Rolls芯片每片有256个自适应指数积分发放神经元,带有64K个具有短期可塑性的突触和64K个使用SDSB学习规则的突触。在Dynaps中,通过脉冲路由架构,神经元数量可达数万个。
- Neurogrid:拥有百万神经元,但突触权重存储在片外,增加了延迟。
接下来是运行速度快于实时的超阈值设计:
- HICANN芯片:拥有512个自适应指数积分发放神经元和112K个STDP突触,每个突触4比特。
- BrainScaleS:由352个上述芯片组成,因此每个晶圆有18万个神经元和4000万个突触。
然后是数字设计,从基于CPU的开始:
- SpiNNaker:最初由曼彻斯特的Steve Furber设计。它通过将大量ARM芯片与一个巧妙的高容量事件路由系统连接起来工作。由于使用通用CPU,它非常可定制,尽管这带来了相对较高的能耗。第一代SpiNNaker系统可扩展至百万核心,7TB RAM,并能实时模拟十亿神经元(约人脑的1%),但功耗约为100千瓦。其后续产品SpiNNaker2由SpinCloud商业化,旨在构建一个规模大100倍的系统,即能够模拟与人脑一样多的神经元。
最后是由大型芯片公司投资的完全定制芯片:
- IBM TrueNorth:每片芯片可模拟一百万个神经元和2.56亿个二进制非可塑性突触,具有固定的神经元到突触映射。
- Intel Loihi:每片芯片有13万个神经元,突触数量可以从13万个(每突触9比特)到100万个(每突触1比特)配置。它具有可配置的神经元模型和一个名为Lava的开源工具箱,鼓励了许多研究人员尝试。

还有许多其他系统,这里只是快速介绍了一些我们讨论过的技术如何应用于实际生产系统并解决现实世界问题。
总结

本节课我们一起学习了类脑计算的详细内容。我们概述了其核心组件,包括模拟神经元的多种技术(模拟与数字)、处理输入脉冲的关键方法(如忆阻器交叉阵列)、传递脉冲的协议(如地址事件表示),以及实现学习的挑战与现有方案。最后,我们浏览了一些现有的类脑计算产品,了解了不同设计理念的实际应用。类脑计算是一个快速发展的领域,旨在通过模仿大脑的高效计算模式,为机器学习和其他计算任务开辟新的可能性。
032:神经形态传感与应用
在本节课中,我们将快速介绍一些神经形态传感设备,并了解它们如何实现独特的低功耗应用。
为什么需要神经形态传感设备?
上一节我们介绍了神经形态计算,本节中我们来看看与之配套的传感设备。首先需要思考一个问题:为什么需要专门的神经形态传感器?我们能否直接将标准摄像头(例如)的输出转换为脉冲,然后输入到神经形态计算设备中?
答案是肯定的。但当我们开始考虑所涉及的数据传输量时,问题就显现了。
以下是标准视频数据量的计算:
- 每秒30帧的高清视频每秒产生约 178 MB 的数据。
- 而具有高动态范围的超高清视频,数据量会达到每秒 7 GB。
对于低功耗设备而言,如此大的数据量是非常棘手的问题。
事件相机:一种解决方案
针对上述数据量问题,事件相机提供了一种解决方案。其核心思想是:在连续帧之间,场景中的大多数像素通常不会发生变化,这也是视频压缩算法的基础。
事件相机将这一理念提升到了传感层面。它只在底层像素发生变化时才传输一个“事件”。
以下图片来自动态视觉传感器手势数据集,展示了这类相机的输出效果:

除了能极大减少数据传输量,事件相机还有另一个优势。它不再以每秒60帧运行,而是能以相当于每秒数千帧的速率运行,同时拥有更大的动态范围。
其不足之处在于,正如我们在整个课程中看到的,针对这种数据流的算法设计要困难得多。

实际应用案例:消除运动模糊
我们想展示一个来自法国公司Prophesee的近期的优秀案例。他们在手机上混合使用标准相机和事件相机,以消除快速运动图像中的模糊。

在这段视频中,你可以看到事件相机的高帧率如何让你以更高的时间分辨率观察运动。他们随后利用这一点,从变化最快的像素中消除模糊,从而获得更清晰的图像。

其他神经形态传感器
视觉并非唯一拥有神经形态对应物的感官。以下是其他类型的神经形态传感器:
- 听觉传感器:例如,你可以在此看到该系统产生的一些脉冲信号。
- 嗅觉传感器:用于感知气味。
- 触觉传感器:用于感知触摸。
机器人学应用示例
本周课程的最后,我们将介绍凯蒂·舒曼的一个优秀机器人应用。
她使用了由Loihi神经形态计算设备控制的机器人小车。该小车在模拟的微型方程式赛道上进行训练,如下图所示:


她采用了进化算法,该算法找到了一些能够完成任务的、令人惊讶的小型网络。
最终,在模拟环境中完成训练后,他们在先前未见过真实环境中进行了测试,小车成功地绕赛道行驶。
总结
在这些视频中,我只触及了神经形态设备领域的表面。但我希望这能让你对这个领域正在进行的研究有所了解。本节课中,我们一起学习了神经形态传感设备(如事件相机)如何通过仅传输变化信息来大幅降低数据量与功耗,并探讨了其在消除运动模糊、机器人控制等多个方面的应用潜力。
033:神经科学有效吗?🧠

在本节课中,我们将探讨神经科学领域内一些我们认为悬而未决的问题。核心议题是:神经科学的方法有效吗?我们如何能知道它是否有效?
概述:一个关键问题
在课程的大部分时间里,我们展示了神经科学家如何收集越来越大规模的神经元形态和活动数据,并讨论了从这些数据集中能学到什么。这些努力背后隐含着一个假设:更多的数据会带来更深的理解,并且只要有足够的数据,我们就能理解大脑。
但这个假设成立吗?一篇名为《神经科学家能理解一个微处理器吗?》的论文探讨了这个问题,该论文灵感来源于更早的《生物学家修理收音机》。在这篇论文中,作者们选取了一个运行三款视频游戏的旧微处理器,并尝试应用神经科学的方法来理解它的工作原理。
微处理器作为“模型大脑”
这个想法看似奇特,但微处理器在某些方面与大脑并无太大不同。例如:
- 它的晶体管及其连接方式类似于神经元。
- 这些晶体管随时间变化的活动将输入转化为输出。
当然,也存在许多差异,比如晶体管是确定性的且易于观察和操控。然而,这些差异实际上应该让微处理器比生物数据更容易解释。这为我们提供了一个理想的“地面真相”系统来测试神经科学方法。
尝试一:分析连接组
首先,作者们获取了微处理器的“连接组”,即描述每个晶体管如何连接到其他晶体管的图谱。他们对此图谱进行了一些分析。
以下是他们的发现:
- 虽然发现了一些有趣的结果,但很难看出如何直接从网络结构推导出其功能。
- 作者们强调了一个事实:我们目前没有算法能够做到这一点。


因此,仅靠结构分析不足以理解系统。
尝试二:观察与记录活动
接下来,他们模拟微处理器并观察其晶体管的活动模式,就像神经科学家记录和分析神经活动一样。
以下是他们收集和分析的数据类型:
- 尖峰状活动:晶体管从“关”到“开”的转换随时间的变化图,看起来非常像神经元放电的栅格图。
- 调谐特性:分析单个晶体管的活动如何作为像素亮度的函数而变化。结果发现,有些晶体管表现出简单的调谐(与单一亮度值相关),而有些则表现出更复杂的调谐,这与大脑中的神经元类似。
然而,这有助于我们理解微处理器的工作原理吗?答案是否定的。实际上,这些晶体管都不直接控制亮度。
尝试三:识别功能集群
既然分析单个晶体管效果有限,作者们尝试识别功能集群,即具有相关时间动态的晶体管组。
以下是他们的方法:
- 在三款不同游戏运行时,同时记录所有3510个晶体管随时间变化的活动。
- 使用非负矩阵分解等方法来分析这些大规模数据。
这次,他们发现了一些与微处理器特征(如时钟和读写信号)匹配的动态模式。但这仍然无法为我们提供关于微处理器如何工作的实质性理解。
尝试四:操控系统
也许仅仅观察系统还不够,我们应该尝试操控它。为此,作者们依次“沉默”(禁用)每个晶体管,并检查三款游戏是否能启动。
以下是操控实验的结果分布:
- 1565个晶体管:移除后无任何影响。
- 1560个晶体管:移除后导致微处理器无法启动任何游戏。
- 一小部分晶体管:移除后阻止一款或两款游戏启动。
那些对特定游戏至关重要的晶体管位置被映射到了芯片图上。我们很容易将这些晶体管标记为“大金刚晶体管”或“太空侵略者晶体管”,就像我们可能将神经元标记为视觉或听觉神经元一样。但这是误导性的,因为这些晶体管并非专属于单一游戏,而是实现如全加器这样的简单功能,这些功能可能也参与了我们未考虑的其他游戏,甚至在这些游戏中除了启动之外的其他过程。
启示与开放性问题
那么,什么才能真正帮助我们理解微处理器(或大脑)呢?
以下是论文作者提出的两个建议:
- 设计更好的实验:例如,如果只在玩家尝试向左移动时记录和操控晶体管,就可以尝试弄清楚微处理器如何将“向左”的控制器输入转化为屏幕上的向左移动。这有助于隔离特定的行为或计算。
- 开发更好的方法:例如,在第六周我们讨论过,为什么多元素损伤可能比单元素损伤提供更多信息。但如何理解复杂网络,这本身仍是神经科学中的一个开放性问题。
总结
回到最初的问题:神经科学有效吗?这篇论文表明,当前的主流方法可能不足以达成“理解”这一最终目标。我们需要更好的方法,也需要像微处理器这样的“地面真相”系统,以便在其中验证这些新方法。

在下一节视频中,Dan将继续带领我们深入探讨。本节课我们一起审视了通过一个已知系统来检验神经科学方法的局限性,并认识到在通往理解复杂系统的道路上,我们仍需在方法论上不断创新。
034:脉冲的作用是什么?🧠

在本节课中,我们将探讨神经科学中一个核心但悬而未决的问题:神经元为何使用离散的动作电位(即脉冲)进行通信和计算?我们将梳理关于脉冲功能的几种主要观点和争论,并尝试理解这对我们理解大脑以及构建类脑计算模型的意义。
神经科学中最令人惊讶的事情之一,是神经元使用一种非凡的方法进行通信和计算,即离散的动作电位或脉冲。但我们并不知道大脑为何要这样做。在哲学层面上,这可能是一个没有答案的问题。大脑这样做,只是因为这是进化选择的路径。它本可以选择不同的路径。这可能是事实,但我们对此也并不确定。因此,让我们来看看关于这个问题的一些观点和争论。
论点一:能量效率与可靠性 ⚡️

上一节我们提出了核心问题,本节中我们来看看第一个主要论点。
第一个论点是,脉冲的主要功能仅仅是一种能量高效的机制,用于沿着长距离的“导线”可靠地发送信号。这基本上是通信和计算中数字信号通常优于模拟信号的原因。数字信号即使在有一定噪声的条件下也能完美重建,而噪声总会使模拟信号劣化。这是一个非常有效的论点,并且很可能是原因的一部分。它无疑是上周讨论的神经形态设备的关键灵感来源。
但是,当我们知道大脑中神经元存在许多其他噪声源(如突触传递失败)时,这个论点有多大的有效性?即使它是真的,是否还有更深层的原因?我们是否需要理解脉冲才能理解大脑在做什么?
论点二:脉冲时间 vs. 发放率 ⏱️
我的观点是,我们知道大脑确实使用脉冲,因此如果我们想理解大脑,就需要理解这一点。即使我们认为大脑只使用脉冲的发放率,我们也必须理解大脑如何能够丢弃非发放率信息(即脉冲时间信息)。人们已经在这方面做了研究,展示了如何设置脉冲神经网络,使其表现得好像只传递发放率。但大脑为何要主动丢弃一个潜在有用的信息源或丰富性呢?
我的看法是,如果你想声称大脑只使用发放率,那么你需要证明使用脉冲时间信息在某种程度上是有害的,以至于值得付出努力去丢弃它。但对此有一个反论点,我在这里用一个完全中立的表情符号来代表。😊
如果脉冲时间携带了所有这些潜在有用的信息和丰富的动态行为,对计算有益,那为什么我们从未能证明脉冲模型在性能上优于非脉冲模型?我们知道基于发放率的人工神经网络很强大,但我们还不能对脉冲神经网络模型说同样的话。你在前几周已经看到,训练脉冲神经网络正在取得巨大进步,但我们仍远未达到人工神经网络的性能水平。

我个人认为,虽然这显然是事实,但部分原因在于,我们拥有处理连续和可微分系统的良好理论和技术,而对于混合的、离散和连续系统的技术还不够成熟。😊 这是我们数学技术的局限性,但没有理由认为大脑的生物机制会受到同样的限制。此外,这也不完全正确,我们确实知道一些系统,其中精确的脉冲时间绝对重要,比如声音定位回路。尽管如此,我承认仅仅说它很难并给出一个例子并不是一个特别有说服力的论点,而我研究的很大一部分正是试图在这方面做得更好。😊
论点三:概念上的等价性?🤔
在我们进一步深入讨论之前,值得一问:我们在这个问题上没有取得进展,是否因为这个问题本身并不存在?如果我们把脉冲时间平滑处理为一种近似的发放率,我们可以看到,这确实没有捕捉到脉冲时间的结构。这是人们通常持有的观点。但如果我们使用一个狭窄的时间窗口,这种区别就变得不那么明显,直到最终发放率和发放时间之间没有区别。
那么,这是否意味着我们可以忽略脉冲时间和发放率之间的区别?并不完全如此。首先,虽然脉冲可以在任何时间尺度上告诉你关于发放率所需知道的一切,但反之则不成立。只有狭窄的平滑窗口能告诉你关于脉冲时间的信息。其次,争论点不仅在于发放率的概念能否做到时间信息能做到的任何事,而在于脉冲实际上是由一个脉冲时间不重要的过程产生的,这是一个更强有力的陈述。从表面上看,这令人惊讶。我们知道单个神经元不会丢弃其输入中的脉冲时间信息,并且它们会对时变输入电流产生可靠的脉冲时间。
可以建立一个丢弃时间信息的神经元网络,但正如我之前所说,这似乎是一件奇怪且不必要的事情。😊 当然,这并不意味着大脑不是这样做的,大脑常常出人意料。
那么这张幻灯片的结论是什么?结论并不像说发放率和脉冲时间在数学上是同一件事那么简单,但这是在这场辩论中需要牢记的一个有用观点。😊
论点四:信息论视角 📊
让我们回到这一点:知道脉冲时间就能知道关于脉冲发放率的一切,但反之则不一定。我们能量化这一点吗?这并不完全直接,但人们已经尝试使用信息论方法。😊
思路是记录一些感觉信息(在本例中是大鼠胡须偏转的程度),同时记录一组神经元的活动。然后你问:知道脉冲序列能告诉我多少关于胡须偏转程度的信息(以比特为单位)?然后,你使用完整的脉冲时间集,或者仅仅使用脉冲发放率或计数(如图中所示)来进行计算。当然,由于脉冲时间信息告诉了你发放率或计数,其信息量必须至少一样大,但这里的发现是它要大得多。知道脉冲时间所提供的信息几乎是仅知道计数的两倍。😊
这是一个在不同感觉模态和不同物种中多次发现的结论。😊 乍一看,这像是一个支持脉冲时间编码的决定性论据,但它并不那么清晰。首先,在这些非常高维度的设置中测量互信息非常困难,因此很难100%确信我们所做的是有意义的。😊 其次,仅仅因为信息存在,并不意味着动物会利用这些信息。😊
论点五:可重复性与相关性 🔄

另一个反对脉冲时间重要的论点是,它们通常不可重复,因此不能用作神经编码的基础。我们之前看到过,如果你向神经元注入一个时变电流,你会得到可重复的脉冲时间。

但相比之下,如果你反复向动物呈现相同的刺激,你通常会得到非常不同的脉冲时间。尽管计数也高度可变,但论点是这些差异可以在群体中被平均掉。😊
然而,你不一定会看到明显可重复的脉冲时间模式。😊 这里有两种脉冲时间编码,它们产生的直方图乍一看与那些没有有意义脉冲时间的编码无法区分。😊 在顶行,你看到脉冲的排序使得四个神经元在时间上彼此有特殊关系。😊 在左边,它们会在相同的时间(加上一点噪声)发放,在右边,它们彼此之间有固定的顺序。然而,如果你随机打乱绘制它们的顺序或计算脉冲时间的直方图,你看不到任何明显的脉冲时间编码。😊

排序编码有点棘手,它意味着网络结构有很多约束。但巧合编码则非常自然,这引出了下一个论点。
下一个论点是,如果巧合是神经编码的重要组成部分,我们预计会看到神经元脉冲序列之间存在高的成对相关性,而我们在记录中并没有看到。确实,我们预计会看到相关性,但一个令人惊讶的事实是,时间编码并不需要它们那么高。事实上,小到与噪声无法区分的输入相关性,可能对下游神经元的发放产生巨大影响。😊
Ceral Russell 及其同事生成了成对相关性从 0 到 0.01 变化的模拟输入脉冲序列。将这些脉冲作为输入电流注入皮层神经元,然后测量输出神经元的发放率。正如你所见,神经元对这些微小的相关性差异极其敏感。😊 在神经元 C1 的情况下,其发放率从零增加到每秒近 10 个脉冲。😊 他们还表明,同样的情况可以在漏电积分发放神经元中看到。
因此,我们没有在脉冲序列中看到巨大的相关性,并不意味着时间信息对网络功能不重要。😊 事实上,我们可以更进一步。你可以认为,无论编码是基于时间还是基于发放率,你都期望看到局部关系和单个脉冲序列的统计特性,与它们由没有有意义时间信息的泊松过程生成的情况一致。这些统计特性是在每个单独脉冲携带最大信息量的任何情况下都会得到的。
Sophie Deev 已经将其发展成一个有趣而详细的理论,我在阅读列表中放了一个很好的入门链接。😊
结论与未来方向 🚀
当然,这些论点远不止这个简短的概述,但你可以开始看到问题所在。这是一场持续了数十年的辩论,似乎离解决还遥遥无期。那么,需要什么才能解决呢?
我们不能纯粹基于计算能力来决定。我们已经看到脉冲神经网络是通用函数逼近器,基于发放率的人工神经网络也是如此。我们可以尝试以破坏脉冲时间但不破坏发放率的方式来操控回路,看看它是否会改变网络的功能。我们可以对单个神经元这样做,但对于基于群体的脉冲网络,这个实验目前超出了我们的能力范围。
我们正在研究的一种方法是试图证明脉冲让你能用更少的神经元和突触做更多的事。这将意味着降低能量和空间需求,这两者对生物网络都至关重要。目前尚不清楚这是否属实,但我们在研究中看到了一些暗示性的迹象。最后,也许脉冲神经网络需要更少的训练数据。这确实会是一个巨大的差异,这可能吗?嗯,有可能时间稀疏性或阈值机制对此很重要,但我还没有看到任何能说服我这一点的证据。
如果我现在必须猜测,我会说最可能的情况是,大脑主要使用脉冲来减少资源(包括能量和空间),而用最少数据学习的最佳方式最终将既不是脉冲也不是发放率,而是我们尚未想象出来的东西。也许你们中的一位会发现它。

本节课中我们一起学习了关于神经元为何使用脉冲进行通信和计算的多种观点。我们探讨了能量效率、脉冲时间与发放率的关系、信息论证据、可重复性问题以及相关性在编码中的作用。尽管争论仍在继续,但理解这些论点对于构建更接近大脑工作原理的计算模型至关重要。最终,答案可能在于资源优化,或者一个我们尚未发现的崭新机制。

浙公网安备 33010602011771号