卡哈尔(Cajal)手绘的浦肯野细胞。注意其中树突分支的复杂性和数量。神经元通过位于(但不排除其它位置)其树突树(dendritic tree)上的突触接收来自其它神经元的信号。树突树是一种复杂的、有分支的、扩散式的结构。如果你想知道树突复杂度最高的是什么细胞,那就是浦肯野细胞(Purkinje cell),它能够接收多达 100000 个其它连接。树突上有树突棘(dendritic spine),这是树突上微小的凸起,是其它神经元与该树突接触的位置。来自树突的信号会传播和汇聚到神经元胞体(soma)——神经元细胞的主体,是细胞核和其它典型细胞器所在的位置。胞体会延伸出轴丘(axon hillock),并进一步延展成轴突(axon)。轴突与其它神经元的树突相连。这让神经元可以快速长距离通信,同时不损失信号完整性。为了让信号快速传播,轴突是有髓鞘的——其覆盖有分散的绝缘体,让神经元的信号可以在绝缘的区域之间跳跃。为了维持信号完整性,轴突中的神经元信号是「要么全有要么全无的」——这是有点像比特(bit)的脉冲信号

 SNN简介

          第一代神经网络(感知器),第二代神经网络(ANN)它们都是基于神经脉冲的发放频率进行编码,但是神经元的脉冲发放频率并不能完全捕获脉冲序列种包含的信息,因此第三代神经网络(SNN)登场了。第三代神经网络具有更强的生物可解释性的,神经网络内部的信息传递是由脉冲序列完成的。

        人脑神经元创造网络是个“剪除”过程:从人出生到童年早期,脑神经元形成大量突触连接,超过了所需数量,随着年龄增长,无用的连接会被迅速“剪除”。人成熟时的突触连接比儿童高峰期要少50%至60%。而计算机科学和工程网络恰好相反。人工神经网络简称神经网络,是一种通过模仿生物的神经网络而形成的计算模型,能对输入和输出间的复杂关系进行探索和建模,具有较强的非线性拟合能力;能够分布式地存储信息在性能上;具有良好的容错性和自适应性,包括自组织与自学习的能力;目前广泛应用的有BP(BackPropagation)神经网络、Rprop(Resilient Propagation)神经网络和RBF(Radial Basis Function)神经网络这三种人工神经网络方法。

 SNN和传统ANN的区别
        在传统的前馈人工神经网络中,两个神经元之间仅有一个突触连接,即输出只有一个权值去决定,这些权值受到的是神经脉冲的发放频率的影响。在SNN中的前馈型脉冲神经网络种,两个神经元之间是由多个突触连接的方式,每个突触具有不同的延时和权值,因此可以使得突触前神经元输入的脉冲能影响一段时间范围内突触后神经元发放的脉冲。

 ANN转SNN的理论基础
        SNN相比于ANN,产生的脉冲是离散的,这有利于高效的通信,但是SNN直接训练需要比较多的资源,且代码实现也比较复杂,因此我们自然会想到使用现在非常成熟的ANN转换到SNN。现在SNN主流的方式是采用频率编码,因此对于输出层,我们会用神经元输出脉冲数来判断类别。发放率和ANN有没有关系呢?答案是肯定的,ANN中的ReLU神经元非线性激活和SNN中IF神经元(采用减去阈值 V_threshold 方式重置)的发放率有着极强的相关性,我们可以借助这个特性来进行转换。。

人工神经网络介绍

前馈神经网络

        前馈神经网络,又被称为多层感知机(Multi-layer Perceptrons,MLP),在它内部,参数从输入层向输出层单向传播。和递归神经网络不同,它内部不会构成有向环。

BP神经网络

        BP(Back Propagation,反向传播)神经网络由Rumelhart和McClelland等人在1986年提出,是一种反向传播的多层前馈神经网络。这种神经网络的主要思想是将训练过程分为两个阶段,第一阶段为正向传播过程,即给出输入信息,通过输入层经隐藏层逐层处理,并计算每个单的实际输出值;第二阶段为反向传播过程,即从输出层逐层递归地计算误差,并根据误差调节权重,从而实现网络的实际输出与期望输出的均方差最小化。

Rprop神经网络
        Rprop(Resilient backpropagation,弹性反向传播)神经网络由Riedmiller和Braun在1992年提出,这种神经网络的时间和空间复杂度都是线性的,它的优点是快速且准确,同时具有优秀的健壮性。

RBF神经网络

        RBF神经网络由Broomhead和Lowe在1988年提出,是一种隐藏层采用RBF(Radial Basis Function,径向基函数)的前馈神经网络,RBF神经网络比BP神经网络有更好的泛化能力,然而RBF的中心和宽度以及输出权重对RBF神经网络的泛化能力有一定的影响。

神经网络拟合介绍

  MathWorlks科学计算网站:使用神经网络拟合对数据进行拟合 - MATLAB & Simulink (mathworks.com)

文章内容摘抄链接:设计和可视化深度学习网络 - MATLAB - MathWorks 中国

1.深度设计:加载示例数据。

2.定义网络架构

3.定义网络架构

4.指定训练选项

4.训练神经网络

5.测试神经网络。

从 WaveformData 加载示例数据此数据包含四类波形:正弦波、方波、三角波和锯齿波。此示例训练 LSTM 神经网络来识别给定时间序列数据的波形类型。

脉冲神经网络SNN介绍

snn是一种非常类似生物神经网络的神经网络。在snn中,信息以尖峰的时序编码,数据以称为泊松尖峰序列的稀疏序列的形式通过网络传递。神经元接收到的尖峰有助于神经元的膜电位,当膜电位达到阈值时,神经元发出尖峰或放电。这张图显示了一个动态的神经元尖峰过程。

在专用硬件(称为神经形态硬件)上部署snn具有许多优点,例如低功耗和快速推理。snn的应用包括处理事件驱动信息,例如来自神经形态视觉传感器的输入,用于光流估计、跟踪和手势识别。还可以使用snn作为典型人工神经网络的低功耗替代品,在功率效率有利的情况下,例如在电池供电的机器人和电池供电的嵌入式硬件中。

snn的训练算法包括以下选项:

1.直接监督学习算法。这些算法在SNN上执行监督学习,通常使用传统反向传播算法的变体。

2.无监督学习算法。这些算法通常涉及峰值时间相关的可塑性(STDP)。

3.基于速率的学习算法。这些算法通常涉及使用反向传播训练典型的ANN,然后将其转换为SNN,仅用于推理。

卷积网络转换为峰值神经网络

在将卷积网络转换为峰值神经网络本例中,文章链接:Convert Convolutional Network to Spiking Neural Network - MATLAB & Simulink - MathWorks 中国        使用基于速率的学习算法来训练传统的卷积神经网络(CNN)来对图像进行分类。然后替换和添加层将网络转换为SNN,然后使用SNN对图像进行分类。使用的转换技术为3.基于速率的学习算法中概述的技术。其中尖峰队列是神经元的语言。人们往往会将尖峰看作是点事件,将尖峰队列看作是点过程。(深度 | 生物神经网络基础:从尖峰放电神经元谈起 (sohu.com)

        在SNN中,信息以尖峰或动作电位的形式处理,即真实神经元放电时发生的电脉冲。这两种形式的一个关键特性是使用异步处理,这意味着尖峰在出现时会被及时处理,而不是像传统神经网络那样被批量处理。因此SNN能够对其输入的变化做出快速反应,并比传统神经网络更有效地执行某些类型的计算。SNN还能够实现在传统神经网络中难以或不可能实现的某些类型的神经计算,例如时间处理和脉冲时间依赖可塑性(STDP),其中STDP是赫布型学习(Hebbian learning)的一种形式,允许神经元根据尖峰脉冲的时间改变突触连接。(赫布学习被概括为“一起放电的神经元连接在一起”,适用于模拟大脑学习能力可塑性的数学)。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐