精华内容
下载资源
问答
  • 脉冲神经网络 神经元模型-IF模型(2) 一 原理 具有固定阈值的脉冲发放神经元模型具有更高抽象层次,这类模型依赖于所有突触前神经元输入脉冲的积累,当膜电位到达一个固定的阈值时,神经元发放脉冲。 IF模型仅考虑...

    脉冲神经网络 神经元模型-IF模型(2)

    一 原理

    具有固定阈值的脉冲发放神经元模型具有更高抽象层次,这类模型依赖于所有突触前神经元输入脉冲的积累,当膜电位到达一个固定的阈值时,神经元发放脉冲。
    IF模型仅考虑HH神经元模型中漏电流。漏电IF神经元模型的等效电路如图所示:
    在这里插入图片描述
    在这里插入图片描述

    二 代码

    clear
    close all
    
    C = 0.2;          % capacitance in nF
    R = 100;          % resitance in megaohm
    dt = 0.01;        % integration time step in milliseconds
    dur = 0.3;        % simulation duration in sec
    Vthresh = -60;    % threshold in mV
    EL = -70;         % leakage reversal potential in mV
    Vreset = -70;     % reset voltage in mV
    V0 = -70;         % initial condition in mV
    
    tref = 3;         % refractory period in msec
    Ij = 0.15;          % injected current in nA 
    
    
    dur = dur*1000;      % simulation duration in msec
    niter = floor(dur/dt)+1;    % number of iterations
    V = EL;                     % initial condition
    spikes = zeros(1,niter);    % vector for storing binary spike train
    Vm = zeros(1,niter);        % vector for storing Vm
    Vm(1) = V0;          % assign initial condition to first element of Vm
    t_vector = 0:dt:(length(Vm)-1)*dt;  % vector of time values
    tcounter = tref;            % counter for how long we have been refracted, 
                                    % it is not refracted when we start
    taum = R*C;                 % time constant in msec
    
        for idx =  2 : niter    % loop for number of iterations
            % check if we are refracted
            if tcounter < tref
                V = Vreset; 
                tcounter = tcounter + dt;   % update refractory counter
            else     % we integrate as before
                dVdt =(1/taum) .* ((EL - V) + R * Ij);
                V = V + dt .* dVdt;
            end 
            % check if spiking
            if V > Vthresh
                spikes(idx) = 1;
                V = Vreset;
                tcounter = 0;   % reset refractory counter
            end
            Vm(idx) = V;
        end
    
    plot(t_vector,Vm);
    xlabel('time (ms)');
    ylabel('V_m (mV)');
    

    运行结果
    在这里插入图片描述

    三 参考文献

    SNN系列|神经元模型篇(4) LIF
    Neuronal Dynamics(book)

    展开全文
  • 基于尖峰神经元模型的机器人学习方法研究 [D]; 南京理工大学, 2014. 1.1 模型建立 1.1.1 脉冲神经网络神经元 为了去了解大脑是如何工作的,我们需要把结合实验学习动物和人类神经系统和大规模脑模型的数值研究结合...

    前段时间研查阅文献时的matlab方面的探索,这一部分主要参考文献为

    [34] 朱娟. 基于尖峰神经元模型的机器人学习方法研究 [D]; 南京理工大学, 2014.

    1.1 模型建立

    1.1.1 脉冲神经网络神经元

    为了去了解大脑是如何工作的,我们需要把结合实验学习动物和人类神经系统和大规模脑模型的数值研究结合起来。突触其实就是神经元信息传递的关键部分,是前神经元的轴突和后神经元的树突相连接的部分,突触可以分为化学突触和电突触,在研究中化学突触要比电突触常见。当神经冲动到达突触前膜时,这时突触前膜上的Ca2+通道就会被其触发并且被打开,这时细胞外的Ca2+就会进入到突触前部,接着突触小泡向突触前膜移动并将内部的神经递质释放到突触间隙。有一部分的神经递质就会和突触后膜上相应的受体相结合,从而使受体相关的门控通道打开,相应的离子由通道进入突触后部,从而使突触后神经元的活动受到影响。突触信息的传递过程可归纳为如图:

    在这里插入图片描述

    突触信息传递的特点可归纳为:

    (1)信息传递一般都有延时

    (2)兴奋性、抑制性

    (3)存在不应期

    (4)可塑性:突触传递信息的强度是可以改变的,具有学习能力。可塑性是学习和记忆的基础。

    (5)对信息的整合有两种方式,时间累加和空间累加。

    (6)具有遗忘和疲劳

    (7)信息传递是不可逆的:脉冲只能从突触前神经元传到突触后神经元。

    朱娟等人[最前面提到的那篇]分析比较了第三代与之前的神经元模型,深入的对尖峰神经元的三种代表性模型进行仿真并比较各自的优缺点,在以较小的复杂度达到较高的生物学的真实性基础上选择了适合本文的Izhikevich模型,重点讨论了Izhikevich模型,对常见的6种尖峰进行仿真研究,深入了解了模型中各个参数的作用。

    在这里插入图片描述

    门电路可以看成是计算机最基本的一个单元,故而神经元也就可以当作是神经系统的一个基本单元。但是神经元有的功能却远远比门电路来的复杂。目前神经元模型有一百多种,表现出了神经元的各种特性(时空总和、阀值、不应期、适应性以及可塑性)。

    由于研究的最终目的有所不同,所以对于神经元模型的研究方向也就不同主要有两点。一是,单神经元的研究,这时就希望尽最大努力去复现神经元本身的属性。二是,由神经元组成功能复杂的神经网络,所以用到的神经元数目比较多,为了研究的方便,我们要求神经元保留信号处理能力的前提下能够简化神经元模型。神经元模型的一些特点如下:

    (1)神经元的输入有很多但是输出端口只有一个。

    (2)神经元的阀值是一个定值。

    (3)神经元是非时变的。

    (4)神经元产生脉冲的条件:

    1)每个兴奋型输入为+1表示,抑制性输入用-1表示,当输入的总和大于固定的阀值时神经元这时才会产生脉冲信号。

    2)没有抑制性输入,只有兴奋型输入时,当输入总和超过阀值时,神经元才会产生脉冲。

    下面着重介绍两种模型,漏积分模型和尖峰神经元模型仿真来研究为什么本文要采用尖峰神经元模型

    在这里插入图片描述

    (1)漏积分神经元模型

    现在大部分神经网络中的神经元都采用漏积分模型来研究如式

    在这里插入图片描述

    其中x表示神经元的状态,u用来表示神经元的输入,y代表神经元的输出,k,m,e三者是模型的参数,H为阶跃函数。仿真设置:输入u为阶跃输入, k=1,m=1,e=0.2 得到输出曲线如所示:

    在这里插入图片描述

    (2)尖峰神经元模型

    尖峰神经元模型种类很多这里选择Izhikevich模型如式来研究

    在这里插入图片描述

    v为膜电位,u表示恢复变量,膜电流则用I代表 a,b,c,d为参数。仿真设置:a=0.02,b=0.25,c=-65,I=10得到的响应如图所示
    在这里插入图片描述

    可以看出漏积分神经元模型主要是将信息编码放在输出信号的幅值中。而尖峰神经元则不是,它是将信息编码在神经元的动作电位的频率中,因此这种模型对于模拟真实神经元的放电特性更加逼真

    1.1.2 几种代表性的尖峰神经元模型的比较

    尖峰神经元模型最早的提出者是Hodgkin和Huxley。根据脉冲神经元的响应模式和生化模型,学者们提出了一些用于模拟脉冲神经元行为的数学模型,一般将提出三种具体的脉冲神经元模型——Itegrate&Fire、Izhikevich以及Hodgkin-huxley三种模型。并对这三种模型的表达式进行对比和仿真研究:

    (1) Integrate&Fire模型

    ​

    式中 v为膜电位, I为膜电流, a,b,c,v_为参数。IF模型通过式可以看出是一维方程而且只有一个v变量,它主要通过线性微分方程来描述神经元,它的阀值以及复位机制均是固定的。
    在这里插入图片描述

    结论:通过仿真可以发现IF模型的神经元没有不应期(所谓的不应期是指在神经元恢复到静息状态前,它不能通过发放动作电位来对刺激做出一定的响应,这段恢复时间被称为神经元的不应期,一般为 ),因而不够精确不能展现神经元最基本的特性。而且通过改变参数不会出现神经元的峰放电以及簇放电等特性。

    在这里插入图片描述

    (2)Izhikevich模型

    模型如式(2.2)所示,仿真参数设置:a=0.02,b=0.25,c=-65,I=10
    在这里插入图片描述

    结论:通过图可以看出神经元模型存在不应期,而且随着电流强度的变大尖峰频率也在增加。当刺激超过阀值时神经元会产生始终响应,使兴奋与静息交替产生,而且兴奋的周期远远小于静息的周期,这一点与真实神经系统受到外界刺激时作出的响应相符合。

    (3)Hodgkin-Huxley模型

    在这里插入图片描述

    其中
    在这里插入图片描述

    理解就好,剩下的可以看文献

    最终结论:IF只有1个变量,数值模拟比较简单,所以它适合于数学分析,但是却无法反应相位刺激、爆发式点火和回荡反应等行为。实质上这种模型不能算作真正的脉冲神经元模型,当膜电位到达阀值时,神经元产生的脉冲都是假想的。H-H模型含有4个变量,参数最为丰富,所以它对于模型真实神经元的某些特性(例如,对于电流脉冲的响应以及阀值效应的产生)是很精确的。所以我们一般用其研究单个的神经细胞的行为与特性,对于很多的神经元构成的神经系统却很少使用这种模型。Izhikevich模型含有2个变量,它在计算复杂度和生物学上的真实性两者间进行了折中。

    因为我们要发展由尖峰神经元组成的这种大规模的脑模型,我们就必须要做到两个看似相互排斥的要求间的折中:单一神经元模型必须是简单的计算,但真正的生物神经元有产生丰富的放电模式能力的表现。使用H-H模型是最精确的,但是计算比较困难,因为我们仅仅可以实时的模拟极少数的神经元。相比之下,Integrate&Fire模型计算速度最快,而Izhikevich模型结合了H-H模型生理学特性和Integrate&Fire模型计算简单特性。取决于四个参数,该模型再现了神经元已知类型的尖峰。Izhikevich对神经元不同输入发生的分叉分类,并揭示了神经系统复杂行为的非线性动力学机制。

    6种神经元比较:

    在这里插入图片描述

    通过图可以看出通过改变c,d参数可以使神经元实现簇放电。其中,u 和 v是无量纲变量, a,b,c,d是四个无量纲参数, v作为神经元的膜电位, u为神经元恢复变量,表示神经元膜上Na+通道关闭而K+通道打开,这时Na+的膜透性迅速下降而K+的膜透性却迅速增强,膜电压恢复到静息电位的过程。当神经元产生动作电位,此时膜电位v达到峰值30mV时,膜电位和恢复变量将按照式2变化。 I是突触电流,即注入电流。模型各个参数的作用:

    a:其实是一个时间因子主要用来反映恢复变量u,而u的恢复速度就是由a决定的,a越小表示u恢复的越快,尖峰脉冲的频率也就越高,a的一个典型值为0.02。

    b:恢复变量对于v波动时的敏感度就是由b反映的,但是有一个条件就是v必须在阀值下。b 越大,u和v的联系就越强,阀值下的震荡就越强烈并且产生尖峰序列的阀值就越小,典型值为0.2。

    c:在动作电位产生后,膜电位恢复值v的大小条件是由快速高阀值K+电导引起,典型值为-65mV 。

    d:动作电位产生后由K+ 电导和Na+电导引起的恢复变量u的值。

    0.04v*v+5v=140这一部分是通过对神经元的尖峰过程动态拟合而来的,膜电位的单位为 ,时间的单位为mV 。细胞膜的静息电位一般为-70~-60mV ,具体情况则要由参数b决定。在大多数的神经细胞中,一般阀值是不固定的,它受到前面神经细胞状态的影响。阈值电位的变化有个范围一般是-55~-40mV。

    神经元模型介绍了动态突触和主动树突结合功能的优点。神经元能够通过隐式“延迟”机制系统最大化其响应并检测特定的时间序列。这些机制基于对突触动力学和神经活动特性产生的突触后电位的调制。学习算法会调整“延迟”机制,以使它们针对输入尖峰序列的特定时间序列产生最大的响应(就躯体处的膜电位而言)。[20]

    1.2 SNN仿真

    这一部分的结果当时用了几天的时间调出来,但是最后也没有用到(需要的计算量其实并不小),仅仅提供仿真思路参考,也没法用代码解释,放几张图之后随缘上传源文件吧。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    六个模块对应六种模型:
    在这里插入图片描述
    在这里插入图片描述

    源代码:绘图部分因为其他需要注释掉了微分量,如果需要自行修改即可。

    % 脉冲神经网络matlab实现
    % 朱娟. 基于尖峰神经元模型的机器人学习方法研究 [D]; 南京理工大学, 2014.
    % 神经元及突触模型仿真
    % 20201010日 Jonny Su
    clc;
    % close all;
    clear all;
    cd ('D:\OneDrive - 徐州开放大学\NPU\program\STDP')
    
    %%   Simulation parameters
    v = -65;                  %初始膜电位
    u = 0;                      %初始恢复变量
    I = 10;                  %膜电流 影响放电频率
    v_thresh = 30;               %电位阈值
    
    step = 0.001;               %步长 ms
    timepuls = 10000;    %时长缩短,不然反应太慢了
    t = 0;                      %计时器
    t0 = 0.002;                     %初始输入电流阶跃时间
    n = 1;                      %步数
    
    v_states(n) = v;     %状态量初始化
    u_states(n) = u;  %输入初始化
    %%  Izhikevich尖峰神经元模型中,兴奋型皮层细胞可以分为以下三类:
    
    % RS(Regular spiking)常规性尖峰
    % a = 0.02;                  %模型参数
    % b = 0.2;                  %模型参数
    % c = -65;                  %模型参数
    % d = 8;                  %模型参数
    
    % IB(intrinsically bursting)本征性爆发尖峰神经元  
    % a = 0.02;                  %模型参数
    % b = 0.2;                  %模型参数
    % c = -55;                  %模型参数
    % d = 4;                  %模型参数
    
    % CH(chattedng)震颤式尖峰神经元
    % a = 0.02;                  %模型参数
    % b = 0.2;                  %模型参数
    % c = -50;                  %模型参数
    % d = 2;                  %模型参数
    
    %%  Izhikevich尖峰神经元模型中,抑制性脑皮层细胞也可以分为以下三类:
    % FS(fast spiking)快速式尖峰神经元
    % a = 0.1;                  %模型参数
    % b = 0.2;                  %模型参数
    % c = -65;                  %模型参数
    % d = 2;                  %模型参数
    
    % LTS(Low-Threshold spiking)低阀值尖峰神经元
    % a = 0.02;                  %模型参数
    % b = 0.25;                  %模型参数
    % c = -65;                  %模型参数
    % d = 2;                  %模型参数
    
    % LS(Last spiking)延时尖峰神经元  60ms
    a = 0.1;                  %模型参数
    b = 0.2;                  %模型参数
    c = -65;                  %模型参数
    d = 2;                  %模型参数
    t0 = 0.06;                     %延时阶跃时间
    while (t < 0.2)
    %     Izhikevich
        v_del_states(n) = 0.04 * v_states(n) * v_states(n) + 5 * v_states(n) +140 - u_states(n) + I * stepfun(t,t0);            %状态变化量
        u_del_states(n) = a * (b * v_states(n) - u_states(n));     %状态量初始化
    
        %   状态更新
    %     v_states(n+1) = v_states(n) + v_del_states(n) * step * timepuls;           %更新 赋值 old 和del一个行向量一个列向量导致出来是矩阵
    %     u_states(n+1) = u_states(n) + u_del_states(n) * step * timepuls;           %控制量
    %     直接什么都不乘完全是合理的,步长少了增量也少了,自然没有必要再缩减几个量级了。
        v_states(n+1) = v_states(n) + v_del_states(n);           %更新 赋值 old 和del一个行向量一个列向量导致出来是矩阵
        u_states(n+1) = u_states(n) + u_del_states(n);           %控制量
        if v_states(n+1) >= v_thresh        %没有起到作用感觉
            v_states(n) = v_thresh;   % 弥补步长导致没法还原步长的错误,不太合理
            v_states(n+1) = c;   % 恢复
            u_states(n+1) = u_states(n+1) + d;      % 恢复
        end
    %     Integrate&Fire
    %     v_del_states(n) = I + a - b * v_states(n) ;            %状态变化量
    %     v_states(n+1) = v_states(n) + v_del_states(n) * step * timepuls;           %更新 赋值 old 和del一个行向量一个列向量导致出来是矩阵
    %     if v_states(n+1) >= v_thresh
    %         v_states(n+1) = c;   % 恢复
    %     end
            
        %  时间更新
        Time(n) = t;   %时间记录
        t = t + step;  %仿真步长
        n = n + 1;  %计数+1
    end
    
    % 绘图
    figure
    subplot(2,1,1);plot(v_states,'linewidth',1.5)
    % title(['阶跃电流值为 ',num2str(I),' mA的膜电位'],'FontSize',14);
    % grid on;
    % xlabel('$T(ms)$','FontName','Times New Roman','FontSize',14,'Interpreter','latex');
    % ylabel('$v(mV)$','FontName','Times New Roman','FontSize',14,'Interpreter','latex');
    % set(gca,'FontName','Microsoft YaHei UI','FontSize',14,'linewidth',1.5);
    set(gca,'FontName','Times New Roman','FontSize',14,'linewidth',1.5);
    % subplot(2,2,3);plot(v_del_states,'linewidth',1.5)
    % grid on;
    % xlabel('$T(ms)$','FontName','Times New Roman','FontSize',14,'Interpreter','latex');
    % ylabel('$\dot{v}$','FontName','Times New Roman','FontSize',14,'Interpreter','latex');
    % set(gca,'FontName','Microsoft YaHei UI','FontSize',14,'linewidth',1.5);
    
    subplot(2,1,2);plot(u_states,'linewidth',1.5)
    % title(['阶跃电流值为 ',num2str(I),' mA的恢复变量'],'FontSize',14);
    % grid on;
    % xlabel('$T(ms)$','FontName','Times New Roman','FontSize',14,'Interpreter','latex');
    % ylabel('$u(mV)$','FontName','Times New Roman','FontSize',14,'Interpreter','latex');
    % set(gca,'FontName','Microsoft YaHei UI','FontSize',14,'linewidth',1.5);
    set(gca,'FontName','Times New Roman','FontSize',14,'linewidth',1.5);
    % subplot(2,2,4);plot(u_del_states,'linewidth',1.5)
    % grid on;
    % xlabel('$T(ms)$','FontName','Times New Roman','FontSize',14,'Interpreter','latex');
    % ylabel('$\dot{u}$','FontName','Times New Roman','FontSize',14,'Interpreter','latex');
    % set(gca,'FontName','Microsoft YaHei UI','FontSize',14,'linewidth',1.5);
    

    结尾

    其实这几个月还是没闲着一直在做工作,平时不咋记得码博客了,最近网站也出了问题,莫名会跳转到其他网站去,也没有时间收拾了。年初的论文不知道是第几次被拒了,现在又在准备另一篇,这部分内容算是里面的一小部分,希望能共同学习,一切都会好起来的。
    今年可真快,加油。

    欢迎访问我的个人网站 (目前死机,明年也不一定续)https://www.josu.top/

    展开全文
  • 首先介绍各类常用的脉冲神经元模型以及前馈和循环型脉冲神经网络结构;然后介绍脉冲神经网络的时间编码方式,在此基础上,系统地介绍脉冲神经网络的学习算法,包括无监督学习和监督学习算法,其中监督学习算法按照梯度...
  • 欧界报道:学习是人工智能领域的核心问题,对于...脉冲神经网络将脉冲神经元作为计算单元,能够模仿人类大脑的信息编码和处理过程。不同于CNN使用具体的值进行信息传递,SNN通过脉冲序列每个脉冲发射时间进行信息...

    欧界报道:

    学习是人工智能领域的核心问题,对于SNN来说,基于脉冲时间层次的学习方法研究,对于通过理论模型来验证生物神经系统的信息处理和学习机制是必须的。通过生物可解释的方式建立人工神经系统,科学家希望可以通过神经科学和行为实验来达到预期目的。

    9cec8d8952637a00a4a41b82e1274365.png

    脉冲神经网络将脉冲神经元作为计算单元,能够模仿人类大脑的信息编码和处理过程。不同于CNN使用具体的值进行信息传递,SNN通过脉冲序列中每个脉冲发射时间进行信息的传递,能够提供稀疏但强大的计算能力。脉冲神经元将输入累积到膜电压,当达到具体阈值时进行脉冲发射,能够进行事件驱动式计算。由于脉冲事件的稀疏性以及事件驱动的计算形式,SNN能提供卓越的能源利用效率,是神经形态结构的首选神经网络。

    脉冲神经网络的学习方式主要包括无监督学习、监督学习和强化学习等。无监督学习算法在人类和动物的学习中占据主导地位,人们通过观察能够发现世界的内在结构,而不是被告知每一个客观事物的名称。人工神经网络无监督学习算法的设计主要是针对无标签数据集的训练,要求应用无监督学习规则对神经网络中的连接权值或结构进行自适应的调整。

    d50197dcdfe6f7be9caaf08eebdcba55.png

    脉冲神经网络的监督学习是指对于给定的多个输入脉冲序列和多个目标脉冲序列,寻找脉冲神经网络合适的突触权值矩阵,使神经元的输出脉冲序列与对应的目标脉冲序列尽可能接近,即两者的误差评价函数最小。强化学习是从环境状态到行为映射的学习,以使智能体行为从环境中获得的累积奖赏值最大。基于生物启发的学习机制,人工神经网络强化学习的研究重点在于探索智能体的自适应优化策略,是近年来神经网络和智能控制领域的主要方法之一。

    66b6097819663c0e138e63ae0cd78060.png

    但我们亟待解决的问题是,在标准的硬件上模拟脉冲神经网络是计算密集型的,因为这需要模拟微分方程。然而,像IBM的TrueNorth等仿神经硬件解决了这个问题,它旨在是通过使用特定硬件模拟神经元,该硬件可以利用神经元脉冲行为的离散和稀疏特性优势来模拟神经元。

    脉冲神经网络的未来尚不明确,一方面,它是循环神经网络的天然继任者;另一方面,对于大多数任务来说,这还不是较为实用的工具。脉冲神经网络在实时图像和音频处理领域得到一些实际应用,但文献仍然较少。但是,现在有很多团队正在从事脉冲神经网络监督学习规则的工作,因此我对其未来发展保持较为乐观的态度。

    来源:线上采编,如涉及版权问题或者寻求报道,请及时联系欧界传媒网 o2ojie.com!

    欧界传媒 | Jie Media

    七年专注有深度的互联网世界

    展开全文
  • 简述脉冲神经网络SNN:下一代神经网络

    万次阅读 多人点赞 2018-01-15 06:49:42
    脉冲神经网络(SNN)属于第三代神经网络模型,实现了更高级的生物神经模拟水平。除了神经元和突触状态之外,SNN 还将时间概念纳入了其操作之。本文将简要介绍这种神秘的神经网络形式。 所有对目前机器学习...
        
    脉冲神经网络(SNN)属于第三代神经网络模型,实现了更高级的生物神经模拟水平。除了神经元和突触状态之外,SNN 还将时间概念纳入了其操作之中。本文将简要介绍这种神秘的神经网络形式。


    所有对目前机器学习有所了解的人都听说过这样一个事实:目前的人工神经网络是第二代神经网络。它们通常是全连接的,接收连续的值,输出连续的值。尽管当代神经网络已经让我们在很多领域中实现了突破,但它们在生物学上是不精确的,其实并不能模仿生物大脑神经元的运作机制。


    68058640-14.jpeg

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


    90924640-4.png

    LIF 模型中膜电位的微分方程


    056880-2.gif

    脉冲期间的膜电位形态

    28617640-15.jpeg三神经元网络的脉冲训练


    47989640-16.jpeg

    脉冲神经网络图示


    乍一看,脉冲神经网络的方法像是一种倒退。我们从连续输出移动至二进制输出,这些脉冲训练的可解释性不强。但是,脉冲训练增强了我们处理时空数据(或者说真实世界感官数据)的能力。空间指神经元仅与附近的神经元连接,这样它们可以分别处理输入块(类似于 CNN 使用滤波器)。时间指脉冲训练随着时间而发生,这样我们在二进制编码中丢失的信息可以在脉冲的时间信息中重新获取。这允许我们自然地处理时间数据,无需 RNN 添加额外的复杂度。事实证明脉冲神经元是比传统人工神经元更强大的计算单元。


    既然理论上 SNN 比第二代网络更强大,那么我们很自然会想到为什么它们没有得到广泛应用。主要问题在于 SNN 的训练。尽管我们有无监督生物学习方法,如赫布学习(Hebbian learning)和 STDP,但没有适合 SNN 的有效监督训练方法能够 i 通过提供优于第二代网络的性能。由于脉冲训练不可微,我们无法在不损失准确时间信息的前提下使用梯度下降来训练 SNN。因此,为了正确地使用 SNN 解决真实世界任务,我们需要开发一种高效的监督学习方法。这是一项艰巨的任务,因为它涉及到,给定这些网络的生物现实主义,确定人类大脑如何学习。


    另一个问题是在正常硬件上模拟 SNN 需要耗费大量算力,因为它需要模拟微分方程。但是,神经形态硬件,如 IBM TrueNorth,旨在使用利用神经元脉冲行为的离散和稀疏本质的专门硬件模拟神经元,进而解决该问题。


    今天看来,SNN 的未来依然不甚清晰。一方面,它们是我们当前神经网络的天然继承者;但是另一方面,对大多数任务来说它们还远不是实践工具。目前在实时图像和音频处理中有一些 SNN 实际应用,但相关文献仍然很少。绝大多数 SNN 论文或者是理论的,或者在一个简单的全连接第二代网络之中展示性能。然而,很多团队正致力于开发 SNN 监督式学习规则,并且我对 SNN 的未来充满乐观。


    原文链接:https://towardsdatascience.com/spiking-neural-networks-the-next-generation-of-machine-learning-84e167f4eb2b


    展开全文
  • 脉冲神经网络(SNN)属于第三代神经网络模型,实现了更高级的生物神经模拟水平。除了神经元和突触状态之外,SNN 还将时间概念纳入了其操作之。本文将简要介绍这种神秘的神经网络形式。 所有对目前机器学习有所...
  • 脉冲神经网络Spiking neural network

    万次阅读 2014-10-16 15:02:19
    脉冲神经网络Spiking neuralnetworks (SNNs)是第三代神经网络模型,其模拟神经元更加接近实际,除此之外,把时间信息的影响也考虑其中。思路是这样的,动态神经网络中神经元不是在每一次迭代传播中都被激活(而在...
  • 本人一直以来在研究脉冲神经网络中神经元模型和STDP学习规则,做的工作是优化神经元模型和学习算法。在研究过程中发现离线的学习算法已经不能完成大数据集的训练任务。在离线学习中,网络的参数通常在给出整个训练...
  • 参考资料: 类脑运算--脉冲神经网络(Spiking Neural Network)叙述:https://blog.csdn.net/Yannan_Strath/article/details/105761023 脉冲神经网络的五脏六腑:...脉冲神经元模型 1.IF neuron(int
  • 1、引言提到现有神经网络通过频率编码,而脉冲神经网络还加入了时间信息,是基于精准脉冲定时编码。此处仍需理解。 2、论文5,讲解脉冲神经元模型。可以阅读。 3、引言提到脉冲的大小和形状与神经元输入无关,此处...
  • 对简化的脉冲耦合神经网络模型中神经元连接强度β的选取方法进行改进,使β依赖于图像像素灰度值,从而更加有效地去除椒盐噪声;对动态门限的衰减时间常数αE的选取方法进行改进,使αE依赖阈值输出的放大系数vE,减少...
  • 进而为电子系统的电磁仿生防护提供新的思路和方法,本文基于神经网络中信息传递的机制和脉冲时间依赖突触可塑性(STDP)机制,探讨了突触可塑性与生物自适应特性的关系,然后选取Izhikevich神经元模型作为基本单元,以STDP...
  • 因此,本文从人脑出发,探索基于人脑神经元机制的类脑计算模型及其中具有代表性的工具----脉冲神经网络。 关键词:人工智能;神经网络;脑神经科学;类脑智能;脉冲神经网络神经元; 1人工智能的研究现状 人工智能...
  • SNN系列|神经元模型篇(4) LIF

    千次阅读 多人点赞 2019-12-05 13:00:47
    Leaky Intergrate and Fired Model 参考: ...为了在这种网络结构上产生脉冲信号,SNN使用了更加复杂也更加贴近于生物的神经元模型,目前使用最多的是**Leakyintegrity-Fire(LIF)**模型。对于这...
  • 监督学习-神经网络

    2020-09-24 09:26:57
    为了构建神经网络模型,我们需要首先思考大脑神经网络是怎样的?每一个神经元都可以被认为是一个处理单元/神经核(processing unit/Nucleus),它含有许多输入/树突(input/Dendrite),并且有一个输出/轴突...
  • 为了构建神经网络模型,我们需要借鉴大脑的神经系统。每一个神经元都可以作为一个处理单元(Processing Unit)或神经核(Nucleus),其拥有众多用于输入的树突(Dendrite)和用于输出的轴突(Axon),其中神经元...
  • 1,模型表示  在人体的大脑中,每一个神经元都可以被认为是一个处理单元,有很多额树突(输入),并且有一个轴突(输出), 神经网络是...下图是一个以逻辑回归模型作为自身学习模型神经元示例,在神经网络中...
  • 本文提出了一种有效的大规模连续脉冲耦合神经网络(MCPCNN)模型,用于大规模实例的SPT计算。 所提出的模型在拓扑上仅具有神经元之间的局部横向连接。 起始神经元首先触发,然后触发事件通过神经元之间的横向连接...
  • 吴恩达8.3:模型表示1

    2019-09-20 21:47:59
    为了构建神经网络模型,我们需要首先思考大脑神经网络是怎样的?每一个神经元都可以被认为是一个处理单元/神经核(processing unit/Nucleus),它含有许多输入/树突(input/Dendrite),并且有一个输出/轴突...
  • 针对脉冲耦合神经网络在交通标志分割准确度不高和参数设置复杂的问题,提出一种参数可调的改进脉冲耦合神经网络(PA-MSPCNN)。通过分析交通标志颜色特征,对图像进行红化预处理,区分出交通标志和环境背景;根据周围...
  • 本文首先对仿真涉及到的神经元模型进行介绍,并对最后一个例程的实现机制进行分析。 目录 脉冲神经元模型 Hodgkin-Huxley模型 积分点火模型(Integrate and Fire, IF) 基于脉冲神经网络的...
  • 在神经拟态工程学,通过神经元集成建模、突触相连建网(组建大规模脉冲神经网络)、(从单个神经元膜电位)到生长可变的神经动力系统,形成脉冲(尖峰)神经网络工作机制 美国华盛顿大学(UW)电子系统工程学院、...
  • 22.1线性神经网络模型 22.2WH学习规则 22.3线性网络的训练函数 22.4线性神经网络的构建 22.5网络训练 22.6线性网络的实现 22.7线性网络的局限性 22.8系统辨识 第23章信源编译码MATLAB模块实现 23.1信源...
  • SLAYER是来自NUS的成果,文章被收录到NeurIPS2018 原文链接 ... 文章内容简述 ...由于SNN(spiking neural network)中神经元模型发放的离散脉冲信号不可微,所以传统CNN的BP策略不再适用。文章主要贡献...
  • STDP时间窗口

    2021-01-18 10:23:39
    anti-Hebbian类型学习窗口能根据网络中神经元放电率的变化,自适应调节突触权值以维持神经元放电;Hebbian和Symmertric类型学习窗口对神经元放电的抑制作用较强,不利于皮层神 经元的放电。 ...
  • 附录B 神经网络的S-Plus命令 191 练习题 191 参考文献 193 5 高频数据分析与市场微观结构 196 5.1 非同步交易 196 5.2 买卖报价差 200 5.3 交易数据的经验特征 201 5.4 价格变化模型 207 5.4.1 顺序概率值...
  • 针对传统的脉冲耦合神经网络(Pulse Coupled Neural Network,PCNN)模型中参数众多且不易自动选取,迭代次数结束条件不好确定的问题,提出了一种基于灰度迭代阈值脉冲耦合神经网络的眼底图像血管分割方法。...
  • 1952年,Alan Lloyd Hodgkin和Andrew Fielding Huxley观测鱿鱼????巨大轴突的放电情况,建立了以两个人的名字共同命名的Hodgkin-Huxley ...HH模型是最著名的神经元发放模型,但由于模型较复杂,在大型网络中很少使用...

空空如也

空空如也

1 2
收藏数 33
精华内容 13
关键字:

脉冲神经网络中神经元模型