膜电压公式

τ m d u d t = − [ u − u r e s t ] + R I ( t ) \tau _m\frac{du}{dt}=-[u-u_{rest}]+RI(t) τm​dtdu​=−[u−urest​]+RI(t)

迭代式1

u ( t + Δ t ) = u ( t ) e − Δ t τ m + R I ( t ) u(t+\Delta t)=u(t)e^{-\frac{\Delta t}{\tau m} }+RI(t) u(t+Δt)=u(t)e−τmΔt​+RI(t)

推导

当 t = t 0 t=t_0 t=t0​时, u ( t ) = u r e s t + Δ u u(t)=u_{rest}+\Delta u u(t)=urest​+Δu;当 t > 0 t>0 t>0
时,输入电流 I ( t ) I(t) I(t)衰减到零,即 R I ( t ) = 0 RI(t)=0 RI(t)=0。若以 t 0 t_0 t0​为初始状态:
1 u − u r e s t d u = − 1 τ m d t \frac{1}{u-u_{rest}}du=-\frac{1}{\tau _m}dt u−urest​1​du=−τm​1​dt
∫ u r e s t + Δ u u 1 u − u r e s t d u = − ∫ t 0 t 1 τ m d t \int_{u_{rest}+\Delta u}^{u} \frac{1}{u-u_{rest}}du=-\int_{t_0}^{t} \frac{1}{\tau _m}dt ∫urest​+Δuu​u−urest​1​du=−∫t0​t​τm​1​dt
∫ u r e s t + Δ u u d ( u − u r e s t ) = − 1 τ m ∫ t 0 t d t \int_{u_{rest}+\Delta u}^{u}d(u-u_{rest})=-\frac{1}{\tau _m}\int_{t_0}^{t} dt ∫urest​+Δuu​d(u−urest​)=−τm​1​∫t0​t​dt
l n ( u − u r e s t ) ∣ u r e s t + Δ u u = − t τ m ∣ t 0 t ln(u-u_{rest})|_{u_{rest}+\Delta u}^u=-\frac{t}{\tau _m}|_{t_0}^t ln(u−urest​)∣urest​+Δuu​=−τm​t​∣t0​t​
l n ( u − u r e s t ) − l n ( Δ u ) = − t − t 0 τ m ln(u-u_{rest})-ln(\Delta u)=-\frac{t-t_0}{\tau _m} ln(u−urest​)−ln(Δu)=−τm​t−t0​​
u − u r e s t = e l n Δ u − t − t 0 τ m = Δ u e − t − t 0 τ m u-u_{rest}=e^{ln\Delta u-\frac{t-t_0}{\tau m}} =\Delta u e^{-\frac{t-t_0}{\tau m}} u−urest​=elnΔu−τmt−t0​​=Δue−τmt−t0​​
最后得到其解为
u − u r e s t = Δ u e − t − t 0 τ m u-u_{rest} =\Delta u e^{-\frac{t-t_0}{\tau m}} u−urest​=Δue−τmt−t0​​
一般情况下,取 u r e s t = 0 u_{rest}=0 urest​=0,为了简化计算,将 R I ( t ) RI(t) RI(t)看成常数,进一步得到迭代式,
u ( t + Δ t ) = u ( t ) e − Δ t τ m + R I ( t ) u(t+\Delta t)=u(t)e^{-\frac{\Delta t}{\tau m} }+RI(t) u(t+Δt)=u(t)e−τmΔt​+RI(t)

应用

[1]中的公式(2)
u ( t ) = u ( t i − 1 ) e − t i − 1 − t τ + I ( t ) u(t)=u(t_{i-1})e^{-\frac{t_{i-1}-t}{\tau} }+I(t) u(t)=u(ti−1​)e−τti−1​−t​+I(t)

[1]Wu Y, Deng L, Li G, Zhu J, Shi L P. Spatio-Temporal Backpropagation for Training High-Performance Spiking Neural Networks[J]. Frontiers in Neuroscience, 2017, 12.
[2]https://blog.csdn.net/qq_34886403/article/details/75735448

最后得到STBP中TD的迭代式为

{ x i i + 1 , n = ∑ j = 1 l ( n − 1 ) w i j n o j t + 1 , n − 1 u i t + 1 , n = u i t , n f ( o i t , n ) + x i t + 1 , n + b i n o i t + 1 , n = g ( u i t + 1 , n ) \left\{ \begin{aligned} x^{i+1,n}_i &= \sum _{j=1}^{l(n-1)}w_{ij}^no_j^{t+1,n-1}\\ u^{t+1,n}_i &=u^{t,n}_i f(o^{t,n}_i)+x^{t+1,n}_i+b^n_i\\ o^{t+1,n}_i &=g(u^{t+1,n}_i) \end{aligned} \right. ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧​xii+1,n​uit+1,n​oit+1,n​​=j=1∑l(n−1)​wijn​ojt+1,n−1​=uit,n​f(oit,n​)+xit+1,n​+bin​=g(uit+1,n​)​
其中
f ( x ) = τ e − x τ f(x)=\tau e^{-\frac{x}{\tau}} f(x)=τe−τx​

g ( x ) = { 1 , x ≥ V t h 1 , x < V t h g(x)=\left\{ \begin{aligned} 1,x \ge V_{th}\\ 1,x < V_{th} \end{aligned} \right. g(x)={1,x≥Vth​1,x<Vth​​
上式中, x i x_i xi​是第i个神经元的突触前输入的简化表示,和原始LIF模型中的I相似, u i u_i ui​是第i个神经元的神经元膜电位, b i b_i bi​是和阈值 V t h V_th Vt​h相关的偏差参数。
借鉴LSTM的思想,用遗忘门 f ( ⋅ ) f(·) f(⋅)来控制TD缓存,用输出门 g ( ⋅ ) g(·) g(⋅)来发射脉冲,遗忘门控制TD中的膜电压缓存泄漏程度,输出门当被激活时产生一个脉冲,对于一个很小的时间常数 τ \tau τ, f ( ⋅ ) f(·) f(⋅)可以被近似为,
f ( x ) = τ e − x τ f(x)=\tau e^{-\frac{x}{\tau}} f(x)=τe−τx​

f ( o i t , n ) = { τ , o i t , n = 0 0 , o i t , n = 1 f(o_i^{t,n})=\left\{ \begin{aligned} \tau,o_i^{t,n}=0\\ 0,o_i^{t,n}=1 \end{aligned} \right. f(oit,n​)={τ,oit,n​=00,oit,n​=1​
因为 τ e − 1 τ ≈ 0 \tau e ^{-\frac{1}{\tau}}\approx 0 τe−τ1​≈0,用这种方式,原始LIF模型被转化为迭代版本,方便后续反向传播

迭代式2

推导

由膜电压公式
τ d u d t = − u + I , u < V t h \tau \frac{du}{dt}=-u+I,u<V_{th} τdtdu​=−u+I,u<Vth​
Euler method:
d u = u t + 1 − u t du=u^{t+1}-u^t du=ut+1−ut
代入得
τ u t + 1 − u t d t = − u t + I \tau \frac{u^{t+1}-u^t}{dt}=-u^t+I τdtut+1−ut​=−ut+I
u t + 1 − u t = − d t τ u t + d t τ I u^{t+1}-u^t=-\frac{dt}{\tau}u^t+\frac{dt}{\tau}I ut+1−ut=−τdt​ut+τdt​I
得到迭代式
u t + 1 = ( 1 − d t τ ) u t + d t τ I u^{t+1}=(1-\frac{dt}{\tau})u^t+\frac{dt}{\tau}I ut+1=(1−τdt​)ut+τdt​I

应用

[3]Wu Y, Deng L, Li G, Zhu J, Shi L. Direct Training for Spiking Neural Networks: Faster, Larger, Better[J]. CoRR, 2018, abs/1809.05793.

  1. 将 1 − d t τ 1-\frac{dt}{\tau} 1−τdt​替换为delay factor k τ 1 k_{\tau 1} kτ1​
  2. 把电流 I I Iexpand为显性求和, ∑ j w j o ( j ) \sum_{j}w_jo(j) ∑j​wj​o(j).其中j为突触前神经元下标, o ( j ) o(j) o(j).表示对应突触前神经元是否发射脉冲,取值1或0
    得到公式
    u t + 1 = k τ 1 u t + ∑ j w j o ( j ) u^{t+1}=k_{\tau 1}u^t+\sum_{j}w_jo(j) ut+1=kτ1​ut+j∑​wj​o(j)
    然后添加firing-and-reseting机制,当发射脉冲时,膜电位重置为静息电位
    假设 u r e s t = 0 u_{rest}=0 urest​=0
    { u t + 1 , n + 1 ( i ) = k τ 1 u t , n + 1 ( i ) ( 1 − o t , n + 1 ( i ) ) + ∑ j = 1 l ( n ) w i j n o t + 1 , n ( j ) o t + 1 , n + 1 ( i ) = f ( u t + 1 , n + 1 ( i ) − V t h ) \left\{ \begin{aligned} u^{t+1,n+1}(i) & = k_{\tau 1}u^{t,n+1}(i)(1-o^{t,n+1}(i))+\sum_{j=1}^{l(n)}w_{ij}^{n}o^{t+1,n}(j) \\ o^{t+1,n+1}(i) & = f(u^{t+1,n+1}(i) -V_{th})\\ \end{aligned} \right. ⎩⎪⎪⎨⎪⎪⎧​ut+1,n+1(i)ot+1,n+1(i)​=kτ1​ut,n+1(i)(1−ot,n+1(i))+j=1∑l(n)​wijn​ot+1,n(j)=f(ut+1,n+1(i)−Vth​)​
    其中 w i j n w_{ij}^n wijn​表示从第n层第j个神经元到第n+1层第i个神经元的突触权重, l ( n ) l(n) l(n)表示第n层的神经元数量。 f ( ⋅ ) f(·) f(⋅)有
    f ( x ) = { = 0 , x < 0 = 1 , x ≥ 0 f(x)=\left\{ \begin{aligned} =0,x<0 \\ =1,x\ge 0\\ \end{aligned} \right. f(x)={=0,x<0=1,x≥0​
    从上式,
    若 u t + 1 , n + 1 ( i ) ≥ V t h u^{t+1,n+1}(i)\ge V_{th} ut+1,n+1(i)≥Vth​,则 o t , n + 1 = 1 o^{t,n+1}=1 ot,n+1=1,发射脉冲
    若 o t , n + 1 = 1 o^{t,n+1}=1 ot,n+1=1,即在t时刻发射脉冲,则t+1时刻膜电位被重置
    u t + 1 , n + 1 = ∑ j = 1 l ( n ) w i j n o t + 1 , n ( j ) u^{t+1,n+1}=\sum_{j=1}^{l(n)}w_{ij}^{n}o^{t+1,n}(j) ut+1,n+1=j=1∑l(n)​wijn​ot+1,n(j)
    若 o t , n + 1 = 0 o^{t,n+1}=0 ot,n+1=0,未发射脉冲,则不会被重置

伪代码

LIF神经元膜电压公式-迭代式推导,及其在STBP中的应用相关推荐

  1. arctanx麦克劳林公式推导过程_蔡勒(Zeller)公式及其推导:快速将任意日期转换为星期数...

    0. 本文的初衷及蔡勒公式的用处 前一段时间,我在准备北邮计算机考研复试的时候,做了几道与日期计算相关的题目,在这个过程中我接触到了蔡勒公式.先简单的介绍一下蔡勒公式是干什么用的. 我们有时候会遇到这 ...

  2. py语法05-可迭代与推导式

    # encoding=utf-8 """ 1.可迭代对象:通过for...in...这类语句迭代读取一条数据供我们使用的对象 2.索引(下标) (1)索引:下标,给序列中 ...

  3. LSTM公式详解推导

    书籍简介 LSTM理解 LSTM流程简介 算法及公式 一些函数 一些符号 前向传播 反向传播 关于误差的定义 公式推导 总结 书籍简介 <Surpervised Sequence Labelli ...

  4. C++11(及现代C++风格)和快速迭代式开发

    过去的一年我在微软亚洲研究院做输入法,我们的产品叫"英库拼音输入法" (下载Beta版),如果你用过"英库词典"(现已更名为必应词典),应该知道"英库 ...

  5. 罗德里格斯公式 理解、推导

      罗德里格斯公式(Rodriguez formula)是计算机视觉中的一大经典公式,在描述相机位姿的过程中很常用.公式: R = I + s i n ( θ ) K + ( 1 − c o s ( ...

  6. 【软件分析】软件分析、设计与建模迭代式详解

    软件分析.设计与建模迭代式详解 1.introduction 1.1 OOA/D 1.2 Iterative, Evolutionary, and Agile 2.Case Study and Req ...

  7. 机器学习周志华5.13式推导以及BP算法理解

    一.5.13式推导 变量符号说明: 推导目标: 推导过程: 二.BP算法的理解 BP算法:误差逆传播算法,又称反向传播算法,是一种非常成功的神经网络学习算法,可以用于神经网络的训练.BP算法基于梯度下 ...

  8. python 基础(数据类型、运算符、流程控制、推导式、函数等...更新中)

    python基础 一.认识Python 1.python起源 Python 的创始人为吉多·范罗苏姆(Guido van Rossum),江湖人称"龟叔". 1991年,第一个Py ...

  9. DNS迭代式和递归式域名查询对比

    背景知识:DNS数据库是树状的层次式的 本地域名服务器并不在这个体系当中,它相当于这个体系面向用户的代理. 迭代式:DNS server告诉用户:我不认识这域名,但我知道你可以问哪个DNS服务器 递归 ...

最新文章

  1. 用Python数据分析告诉你:复联哪个英雄人气最高?
  2. 【EventBus】事件通信框架 ( 发送事件 | 判断发布线程是否是主线程 | 子线程切换主线程 | 主线程切换子线程 )
  3. 【Flutter】Animation 动画 ( Flutter 动画的核心类 | Animation | CurvedAnimation | AnimationController | Tween )
  4. 【PAT乙级】1009 说反话 (20 分)
  5. C#调用bat 不显示DOS窗口,禁止DOS窗口一闪而过
  6. centos7下搭建hadoop、hbase、hive、spark分布式系统架构
  7. struts2.0.14 web.xml,struts.xml配置
  8. 关系传递闭包Warshall算法之思想的一种解说
  9. 接口测试用例设计思路_最全测试用例设计方法~思路分析
  10. C#.NET彩票数据分析
  11. 新浪云python示例_在新浪云安装Python应用
  12. android触摸 apk,超级触控(流畅触屏)apk
  13. 可用的公开 RTSP/ RTMP 在线视频流资源地址(亲测可行)
  14. QCustomPlot 连续快速地调用replot()改善速度
  15. 关于页面自动提交两次的问题(360浏览器)
  16. python zipfile压缩文件夹
  17. 产品经理进阶(一)Web APP UI一致性设计
  18. 2009年计算机统考考研试题及参考答案
  19. python 正则表达式-匹配规则
  20. 他在美国发动一场“战争”,影响全球半导体产业20年

热门文章

  1. Centos7.7安装及配置教程
  2. 经验模式分解(EMD)的MATLAB工具箱安装详解
  3. 视频教程-深度学习原理详解及Python代码实现-深度学习
  4. 【okfone 教程】 奥凯丰 HEIC图片转换器
  5. [学习笔记]Rtklib单点定位中电离层相关函数
  6. UNI-APP使用云开发跨全端开发实战讲解
  7. 利用VDP实现vsphere虚拟机备份
  8. Unity UGUI血条制作详细教程
  9. java多线程霓虹灯,Android 霓虹灯
  10. finally语句块一定执行吗?