SNN脉冲神经网络中IF神经元的matlab仿真

2024-01-12 23:59

本文主要是介绍SNN脉冲神经网络中IF神经元的matlab仿真,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.内部电位积分

2.阈值判定和脉冲发放

3.脉冲传播时间间隔

4.部分核心程序


      第三代神经网络,脉冲神经网络 (Spiking Neural Network,SNN) ,旨在弥合神经科学和机器学习之间的差距,使用最拟合生物神经元机制的模型来进行计算,更接近生物神经元机制。脉冲神经网络与目前流行的神经网络和机器学习方法有着根本上的不同。SNN 使用脉冲——这是一种发生在时间点上的离散事件——而非常见的连续值。每个峰值由代表生物过程的微分方程表示出来,其中最重要的是神经元的膜电位。本质上,一旦神经元达到了某一电位,脉冲就会出现,随后达到电位的神经元会被重置。对此,最常见的模型是 Leaky Integrate-And-Fire (LIF) 模型。此外,SNN 通常是稀疏连接的,并会利用特殊的网络拓扑。

        同传统的人工神经网络一样,脉冲神经网络同样分为三种拓扑结构。它们分别是前馈型脉冲神经网络(feed-forward spiking neural network)、递归型脉冲神经网络(recurrent spiking neural network)和混合型脉冲神经网络(hybird spiking neural network)。

       在脉冲神经网络(SNN)中,整流-火(Integrate-and-Fire,IF)神经元是一种简单但重要的模型,用于模拟神经元的电活动。IF神经元接收来自其他神经元的脉冲输入,根据输入的总量判断是否会发放输出脉冲。它是一种离散时间模型,通过积分输入来决定神经元是否激活。IF神经元的基本思想是在接收到一定数量的输入脉冲后,神经元会产生一个输出脉冲。通常,每个输入脉冲都会在神经元内部积分,累积成为一个内部电位。一旦内部电位达到阈值,神经元会发放一个输出脉冲,并且内部电位会被重置。

1.内部电位积分

IF神经元的内部电位会根据接收到的输入脉冲进行积分。这可以用以下微分方程表示:

其中,$V$ 是内部电位,$\tau_m$ 是膜电容时间常数,$E_{\text{rest}}$ 是静息电位,$R$ 是膜电阻,$I(t)$ 是输入脉冲流。 

2.阈值判定和脉冲发放

当内部电位超过某个阈值 $V_{\text{th}}$ 时,神经元会发放一个输出脉冲,并且内部电位会被重置到一个较低的值

3.脉冲传播时间间隔

       IF神经元通常具有脉冲传播的绝对不变时间间隔,这被称为绝对不变间隔(Absolute Refractory Period)。IF神经元是一种简化的模型,特别适用于描述低层次的神经元行为。它可以用于构建更复杂的脉冲神经网络,但对于模拟更精确的神经元行为,可能需要使用更复杂的模型。

        当使用SNN中的IF神经元时,通常还会考虑一些扩展和变种,以更好地适应不同的应用需求。以下是一些常见的IF神经元的扩展和变种:

1. 神经元自适应: 有时候,神经元的行为会受到其历史输入的影响,这可能通过自适应性机制实现。例如,使用自适应阈值的IF神经元,其中阈值会根据神经元的活动动态地调整。

2. 脉冲幅度: 在标准IF神经元模型中,所有脉冲的幅度是一致的。然而,在某些情况下,神经元可能对于不同的输入具有不同的响应。这可以通过调整脉冲幅度来实现,从而实现更灵活的响应方式。

3. 时间窗口: 在实际的神经系统中,脉冲的时序信息也是非常重要的。因此,某些IF神经元模型会引入时间窗口,以模拟窗口内的脉冲累积。

4. 多种类型的输入: 在真实的神经系统中,神经元可能接收来自多个神经元的不同类型的输入。因此,一些IF神经元模型允许对每个输入脉冲的权重和延迟进行调整。

5. 脉冲传播模式: 除了标准的阈值触发方式,还可以考虑其他脉冲传播模式,比如随机性传播、模拟突触传播等。

6. 网络拓扑和连接性: 在构建SNN时,神经元之间的连接性和拓扑结构也是非常重要的。IF神经元可以应用于不同的连接模式,如全连接、局部连接、稀疏连接等。

总之,IF神经元作为SNN中的基本构建块,为模拟神经元行为提供了一个简单而有效的方法。根据不同的应用需求,可以对IF神经元进行各种扩展和变种,以更好地适应不同的模拟和计算任务。在构建SNN模型时,需要根据具体情况选择合适的IF神经元变体,并结合其他神经元类型来实现更复杂的网络行为。

4.部分核心程序


% 模型参数I_ext=12;       % 恒定的外部输入itmax=500;     % 时间步数del_T=0.5;     % 时间步长%itmax=floor(x_max/del_T);C_noise=0;  % 外部电流的噪声水平T_noise=0.;  % 阈值值的噪声水平Mean_Ref=0.1;   % 不应期时间的平均值STD_Ref=0.;  % 不应期时间的标准差tau_inv=0.1;    %时间常数的倒数uu=0;           % 初始膜电位tspan=[0 itmax];  % 积分区间 - 从负值开始以消除过渡效应theta=10;       % 发放阈值x_max=itmax*del_T;      %图的最大水平轴值
% 如果 itmax 小于 x_max,则将 x_max 设置为 itmax
% if itmax < x_max; x_max = itmax; end;DelTime=0;% 使用欧拉方法进行积分for it=0:itmax;Ntheta=theta+T_noise*randn;RefTime=Mean_Ref;if (uu > Ntheta) & (RefTime < DelTime)x=0;DelTime=0;elsex=1;DelTime=DelTime+del_T;enduu=x*(1-tau_inv*del_T)*uu+tau_inv*del_T*I_ext;if it > 0 ; u(it)=uu;t(it)=it*del_T;s(it)=1-x;endend
UP3025

测试结果如下:

这篇关于SNN脉冲神经网络中IF神经元的matlab仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/599600

相关文章

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

matlab读取NC文件(含group)

matlab读取NC文件(含group): NC文件数据结构: 代码: % 打开 NetCDF 文件filename = 'your_file.nc'; % 替换为你的文件名% 使用 netcdf.open 函数打开文件ncid = netcdf.open(filename, 'NC_NOWRITE');% 查看文件中的组% 假设我们想读取名为 "group1" 的组groupName

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

C# double[] 和Matlab数组MWArray[]转换

C# double[] 转换成MWArray[], 直接赋值就行             MWNumericArray[] ma = new MWNumericArray[4];             double[] dT = new double[] { 0 };             double[] dT1 = new double[] { 0,2 };

perl的学习记录——仿真regression

1 记录的背景 之前只知道有这个强大语言的存在,但一直侥幸自己应该不会用到它,所以一直没有开始学习。然而人生这么长,怎就确定自己不会用到呢? 这次要搭建一个可以自动跑完所有case并且打印每个case的pass信息到指定的文件中。从而减轻手动跑仿真,手动查看log信息的重复无效低质量的操作。下面简单记录下自己的思路并贴出自己的代码,方便自己以后使用和修正。 2 思路整理 作为一个IC d

机器学习之监督学习(三)神经网络

机器学习之监督学习(三)神经网络基础 0. 文章传送1. 深度学习 Deep Learning深度学习的关键特点深度学习VS传统机器学习 2. 生物神经网络 Biological Neural Network3. 神经网络模型基本结构模块一:TensorFlow搭建神经网络 4. 反向传播梯度下降 Back Propagation Gradient Descent模块二:激活函数 activ

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

libsvm在matlab中的使用方法

原文地址:libsvm在matlab中的使用方法 作者: lwenqu_8lbsk 前段时间,gyp326曾在论坛里问libsvm如何在matlab中使用,我还奇怪,认为libsvm是C的程序,应该不能。没想到今天又有人问道,难道matlab真的能运行libsvm。我到官方网站看了下,原来,真的提供了matlab的使用接口。 接口下载在: http://www.csie.ntu.edu.

Matlab/Simulink中PMSM模型的反电动势系数和转矩系数

Matlab/Simulink中PMSM模型的反电动势系数和转矩系数_matlab pmsm-CSDN博客