脉冲神经网络:神经网络发展历史背景

很高兴看到大家对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,但网络预测错了。

那么预测结果和正确答案之间就存在差异。

训练时,我们用损失函数来衡量预测有多不理想。

学生做错了一道题,仅仅告诉他"错了"还不够。

更重要的是找到:

究竟是哪一步出了问题?哪些地方需要改进?

反向传播也是类似的思想。

它从输出层开始,利用数学上的链式法则,计算损失对各层参数的梯度,从而知道各个权重应该往什么方向调整。

训练的基本过程是:

  1. 前向传播,计算预测结果。

  2. 比较预测与正确答案,计算损失。

  3. 反向传播,计算梯度。

  4. 使用梯度调整网络权重。

  5. 反复训练,逐渐改善预测。

严格来说,反向传播负责计算梯度,具体如何调整参数由优化算法决定。这里不详细展开,感兴趣的小伙伴可以查看我的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 无法处理时序而存在,而是提供了以脉冲事件和神经元动力学为基础的另一种计算范式。

相关推荐
Spatial3Ddddd1 小时前
数字孪生接IoT做仓储物流地基是什么
大数据·人工智能·物联网
frankzch1 小时前
Claude 刷新量子电路最优:LLM 与评估器的进化循环怎么搭
人工智能·深度学习·机器学习·语言模型·量子计算
郝学胜_神的一滴1 小时前
游戏设计:原型与开发 05:读懂动态层,理解玩家如何活在游戏世界
人工智能·程序员
用户6698295485291 小时前
同一句话,粤语要贵 24%:我量了 236 对双语文档和 4 种写法
人工智能
阿屿2 小时前
从零手搓 AI 伴侣:Java + 大模型 + 多模态的工程化踩坑实录
人工智能
const_qiu2 小时前
第四章 07:4.7 本章小结
java·运维·服务器·人工智能
拜小白2 小时前
【论文解读】PanoSwin:为全景理解打造的“全景版“ Swin Transformer
深度学习·计算机视觉·全景图
cubestudio2 小时前
云原生分布式训练怎么调度才不浪费算力?CubeStudio 分布式训练与加速架构解析(CRD+Operator / gang 调度 / 亲和反亲和 / GPU 利用率 / 共享 GPU)
人工智能·云原生·gpu
老马识码2 小时前
7541 万笔,2424 万美元:x402 真正解决了什么?
人工智能