很高兴看到大家对SNN脉冲神经网络的兴趣,于是我决定增加一个专题为大家从浅到深的完整学习SNN脉冲神经网络,今天我们要学的就是SNN的背景。
1.人工神经网络的发展历程
请大家先思考一个问题:
现在的 AI 能识别图片、理解文字,甚至和我们对话。但是,科学家最开始并不是直接发明这么复杂的系统。
他们最初只是在思考:
人脑中的神经元能够处理信息,那么能不能模仿神经元,让机器也具备处理信息的能力?
这就是人工神经网络的起点。
上图其实想讲一个发展故事:
最开始,人们让神经元能够进行简单的逻辑判断。后来,希望它自己学习。再后来发现,一个神经元的能力有限,于是把很多神经元连接起来,并研究如何训练它们。最终,随着数据、算法和计算机性能的发展,出现了今天的深度学习。
另外,SNN(脉冲神经网络)是一条并行发展的研究路线,并不是 2012 年以后才出现的。

2.最初的想法

我们先理解生物神经元
你可以把生物神经元想象成一个负责接收、处理和传递信息的小装置。
图中有几个重要部分:
-
树突: 接收其他神经元传来的信息。
-
细胞体: 对接收到的信息进行整合。
-
轴突: 把处理后的信息向外传递。
-
突触: 神经元之间传递信息的连接部位。
举一个例子。
假设你看见一只猫,大脑中的许多神经元就会参与处理猫的形状、颜色和其他特征。
一个神经元接收其他神经元传来的信号,经过整合之后,再把信息传递给后面的神经元。
当然,这里是对真实神经活动的简化描述。
我们继续学习人工神经元
人工神经元不需要真的长出树突和轴突。
我们只需要用数学计算模拟它处理信息的基本过程。
例如:
假设我们希望人工神经元判断一个学生能不能通过某项考核。

输入信息包括:
:考试成绩
:平时表现
: 学习能力
它将这三个信息综合起来,再根据某种判断规则输出:
y=1:通过。
y=0:未通过。
这就是最简单的人工神经元思想。
3.详细的发展历史
1. M-P 模型。
现在,我们来看看历史上一个重要的早期模型。
1943 年,McCulloch 和 Pitts 提出了 M-P 模型。
这有两个重要知识点。

1.什么是二值输入和二值输出?
所谓二值,就是只有两个可能的数值:0或1
例如,把 1 理解为"是",0 理解为"否"。
这类模型可以执行简单的逻辑运算。
2.理解图片右边的 AND(逻辑与)
假设一个学生想获得奖励,必须同时满足两个条件:
-
作业完成了。
-
考试合格了。
只有两个条件都满足,才能获得奖励。
这就是逻辑与。
我们甚至可以用一个简单的数学规则实现它:
否则输出 0。
这里就已经出现了神经元模型中的一个重要概念:阈值。
阈值可以理解为触发输出所需要满足的条件。
比如,把阈值设为 2,那么两个输入都为 1 时,神经元才输出 1。
这页有一个容易忽略的重点:
M-P 模型虽然能够完成简单的逻辑判断,但它主要按照预先设定的规则运行,还没有实现后来感知机那样通过训练来调整权重的学习机制。
2.感知机
这一页非常重要,后面学习神经网络、深度学习都离不开它。
我们终于接触到了人工神经网络最基本的数学公式。


你会发现,人工神经元所做的事情其实不复杂:
先把输入乘上各自的权重,加起来,再决定输出什么。
什么叫学习?
这是本页最关键的概念。
假设某一次模型把一个学生判断错了。
那么我们可以改变:
w1,w2,b
让模型下一次的判断更合理。
例如,把某个输入对应的权重增大,就意味着这个输入可能对最终判断产生更大的影响。
神经网络中的学习,基本思想就是:
根据训练中的错误或反馈,不断调整参数,让预测结果越来越符合目标。
这里要注意:这里介绍了能够调整权重的思想,还没有详细讲参数更新算法。
总结:感知机让神经元从执行固定规则,发展到能够通过调整参数来学习。
我们来看到XOR问题,这是神经网络发展史上的关键转折。
XOR,也就是异或问题。

你观察这张图。
蓝色圆点代表输出 0,橙色方块代表输出 1。
现在要求你用一条直线,把蓝色和橙色完全分开。
你会发现,无论怎么画,总会出现分类错误。
原因就在于:
单层感知机的分类边界是一条直线,而 XOR 需要非线性的分类边界。
这说明单层感知机的表达能力存在限制。
一种重要方法就是引入隐藏层,构建多层神经网络。
多层网络可以通过隐藏层组合出更加复杂的判断规则,从而解决像 XOR 这样的非线性问题。
这页对应的历史背景是 1969 年 Minsky 和 Papert 关于感知机的研究。
3.多层感知机
现在我们遇到一个新的问题。
既然单层网络能力有限,那多加几层不就行了吗?
答案是:结构可以增加,但新的难题出现了。
多层网络中有很多权重,我们应该怎样调整它们?
这就引出了反向传播(Backpropagation,BP)。

假设我们输入一张手写数字 7 的图片。
网络从左向右计算,最后输出预测类别。
这个从输入得到输出的过程,就叫前向传播。
假设图片真正的答案是数字 7,但网络预测错了。
那么预测结果和正确答案之间就存在差异。
训练时,我们用损失函数来衡量预测有多不理想。
学生做错了一道题,仅仅告诉他"错了"还不够。
更重要的是找到:
究竟是哪一步出了问题?哪些地方需要改进?
反向传播也是类似的思想。
它从输出层开始,利用数学上的链式法则,计算损失对各层参数的梯度,从而知道各个权重应该往什么方向调整。
训练的基本过程是:
-
前向传播,计算预测结果。
-
比较预测与正确答案,计算损失。
-
反向传播,计算梯度。
-
使用梯度调整网络权重。
-
反复训练,逐渐改善预测。
严格来说,反向传播负责计算梯度,具体如何调整参数由优化算法决定。这里不详细展开,感兴趣的小伙伴可以查看我的B站账号:黑箱内外,我对反向传播和梯度下降做了比较详细的解答

4.神经网络走向实际应用

假设给神经网络一张图片,上面写着数字 7。
神经网络需要根据图片中的像素信息判断:
这是 0、1、2,还是 7?
上图中左边就是这种识别过程。
这说明神经网络已经可以从输入图像中学习有用的特征,完成具体任务。
右边使用了汽车识别的例子。
输入一张自然图像,神经网络判断图中是什么类别,例如汽车。
相比手写数字,自然图像通常更加复杂。
同样是汽车,它可能有不同的颜色、形状、拍摄角度和背景。
因此,这类任务对模型能力提出了更高要求。
甚至我们现在使用的大语言模型,也是以ANN为基础
为什么深度学习取得突破?
第一,网络结构和训练方法改进。 模型能够学习更加复杂的图像特征。
第二,训练数据增加。 模型可以接触到更多不同的样本。
第三,计算能力增强。 更强大的计算硬件使训练大型网络成为可能。
这三个因素共同促进了深度神经网络的发展。
这页最后提到了 ANN。
ANN 就是 Artificial Neural Network,中文是人工神经网络。
重点:神经网络取得实际突破,不仅需要好的模型,还需要足够的数据和计算能力。
4.SNN是什么
前面我们学习的主要是传统人工神经网络(ANN)。
现在出现了一个新的名称:
SNN:Spiking Neural Network,脉冲神经网络。
以下只做简单的介绍,后面章节我会详细讲解SNN

1. ANN 和 SNN 有什么区别?
传统 ANN 中,神经元通常输出数值。
例如:
这些数值可以表示不同大小的激活程度。
但是,SNN 更强调神经元在什么时刻发放脉冲。
看下面的对比:

2. 为什么要研究 SNN?
假设两个神经元都输入了同样的两次数值。
但是:
神经元 A 在第 10 毫秒和第 20 毫秒接收。
神经元 B 在第 50 毫秒和第 60 毫秒接收。
它们接收的次数相同,但时间不同。
对于ANN,他只能接收到这些数值的大小,但是没有其中的时间信息,当然不是说ANN就无法处理带时序的信息,RNN甚至使用一些输入编码也可以做到。
RNN 通过不断更新隐藏状态处理时序信息。
经典的SNN的模型LIF 神经元的状态更新,其实也很像 RNN!
没错。从数学角度看,离散时间的 SNN 可以表示成一种具有特定状态更新和阈值发放机制的循环网络。
所以两者并不存在绝对的数学分界。
它们的重要差别在于:SNN 把脉冲事件、膜电位演化、发放和重置机制作为计算模型的基本组成部分,而普通 RNN 并不要求这些机制。
SNN 还提供了一种不同的信息表示方式。
例如,我们可以让:
-
较早发放的脉冲代表更强的刺激。
-
脉冲发放频率表示信息大小。
-
多个神经元之间的相对发放时间表示某种模式。
这相当于让事件发生的时间本身成为信息载体。
ANN 当然也能够通过时间特征建模这些现象,但 SNN 直接以脉冲事件为基本表达形式。
所以SNN实际上是研究更接近生物神经系统的计算机制
-
神经元的膜电位动力学。
-
生物神经系统中的脉冲发放规律。
-
基于局部脉冲活动的学习机制,例如 STDP。
-
神经形态计算与硬件。
所以,SNN 不只是为了获得更高的预测准确率,也是一条研究生物启发计算的重要路线。
3.那 SNN 能替代 ANN,RNN 或 Transformer 吗?
目前没有理由认为 SNN 能全面替代它们。

SNN 也有明显困难,比如阈值发放函数不可直接求导,往往需要替代梯度等训练方法;多个时间步的状态模拟可能增加计算与存储开销。
我们可以这么理解:RNN 解决的是如何让模型利用序列和时间相关信息;SNN 进一步探索的是如何利用神经元的时间动力学和脉冲事件组织计算。
它们解决的问题存在很大交集,但研究目标和计算机制并不完全相同。
4.举例说明
房间里有一个摄像头,连续监控 10 秒钟。
在这 10 秒里,前 9 秒房间完全没有变化,最后 1 秒有人走进来。
方案 A:传统帧式 ANN
假设摄像头每秒产生 30 帧,那么 10 秒就是 300 帧。
如果 ANN 逐帧完整处理,就需要进行 300 次图像推理,即使前 270 帧几乎没有变化。
方案 B:事件相机 + 事件驱动 SNN
事件相机主要在检测到视觉变化时输出事件。
假设房间没有变化,那么前 9 秒可能只有很少的事件。
有人进入房间时,产生大量新的视觉事件,SNN 才需要处理这些活动。
于是有机会减少不必要的计算。
SNN 不是因为 ANN 无法处理时序而存在,而是提供了以脉冲事件和神经元动力学为基础的另一种计算范式。