LIF模型

Leaky integrity-Fire(LIF)模型

输入信号直接影响神经元的状态,即神经元膜电位,只有当膜电位上升到阈值的时候,才会产生输出信号。

  • 膜电位:细胞膜两侧的电位差。只有当膜电位到达阈值的时候,才会发送脉冲信号,影响下一个神经元。
  • 动作电位:细胞膜受到外界刺激之后产生的电位变化。
  • 静息电位:细胞膜未收到外界刺激的时候的电位。
  • 过程:细胞膜受到脉冲刺激之后,变化过程为\(极化\to 去极化 \to 阈值\to 再极化\to 超极化\to 极化\to 不应期\)

基本思想:如果上一个神经元输入不超过阈值的时候,获得的电位会回到静息状态;如果神经元接收到的脉冲进行积分之后到达阈值,会发射一个脉冲信号,对下一个神经元进行刺激,激发之后会引起不应期,即使给予刺激也不会给出相应的反应。


公式

\(q=\int I(t)dt\) 细胞膜电位积累,给细胞膜充电的过程

细胞膜的等效电流公式:

\(I(t)=I_R+I_C\)

\(I_C=C\frac{du(t)}{dt}\)

\(I_R=\frac{u(t)-u_{res}}{R}\)

\(RC\dot{u}(t)+u(t)-RI(t)=0\)

对方程进行求解:

\(u(t)=RI(t)+C_1e^{-\frac{t}{RC}}\)

计算\(t=0\)的时候,\(u(t)=u_0\),\(C_1\)的值为:

\(C_1=u_0-RI(t)\)

最终得出:

\(u(t)=RI(t)+[u_0-RI(t)]e^{-\frac{t}{RC}}\)

如果\(I(t)=0\),则\(u(t)=u_0e^{-\frac{t}{RC}}\)

如果要输入给计算机计算,则需要进行离散化和递归求解:

\(\tau\frac{du(t)}{dt}=-u(t)+RI(t)\)

\(\tau\frac{u(t+\Delta t)-u(t)}{\Delta t}=-u(t)+RI(t),\Delta t\to 0\)

\(u(t+\Delta t)=u(t)+\frac{\Delta t}{\tau}[-u(t)+RI(t)]\)


仿真参数设计

仿真步长:0.001

初始状态:\(I(0)=0\)

\(R=5\times 10^{7}\)

\(C=1\times 10^{-10}\)


Python实现

import matplotlib.pyplot as plt
def LIF(u,R=5e7,C=1e-10,I=0,step_time=1e-3):
u = u + step_time/(R*C)*(-u + R*I)
return u
u = 0.9
num_step = 100
u_trace = []
for step in range(num_step):
u_trace.append(u)
u = LIF(u)
plt.plot(u_trace)
plt.xlabel("Time step")
plt.ylabel("Membrane Potential")
plt.title("LIF")
plt.xlim([0, 50])
plt.ylim([0, 1])
plt.show()

SNN_LIF模型的更多相关文章

  1. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库

    在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...

  2. ASP.NET Core MVC/WebAPi 模型绑定探索

    前言 相信一直关注我的园友都知道,我写的博文都没有特别枯燥理论性的东西,主要是当每开启一门新的技术之旅时,刚开始就直接去看底层实现原理,第一会感觉索然无味,第二也不明白到底为何要这样做,所以只有当你用 ...

  3. ASP.NET路由模型解析

    大家好,我又来吹牛逼了 ~-_-~ 转载请注明出处:来自吹牛逼之<ASP.NET路由模型解析> 背景:很多人知道Asp.Net中路由怎么用的,却不知道路由模型内部的运行原理,今天我就给大家 ...

  4. 高性能IO模型浅析

    高性能IO模型浅析 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型. (2)同步非阻塞IO(Non-blocking  ...

  5. 探索ASP.NET MVC5系列之~~~4.模型篇---包含模型常用特性和过度提交防御

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  6. 隐马尔科夫模型python实现简单拼音输入法

    在网上看到一篇关于隐马尔科夫模型的介绍,觉得简直不能再神奇,又在网上找到大神的一篇关于如何用隐马尔可夫模型实现中文拼音输入的博客,无奈大神没给可以运行的代码,只能纯手动网上找到了结巴分词的词库,根据此 ...

  7. webapi - 模型验证

    本次要和大家分享的是webapi的模型验证,讲解的内容可能不单单是做验证,但都是围绕模型来说明的:首先来吐槽下,今天下午老板为自己买了套新办公家具,看起来挺好说明老板有钱,不好的是我们干技术的又成了搬 ...

  8. 谈谈一些有趣的CSS题目(二)-- 从条纹边框的实现谈盒子模型

    开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...

  9. 【NLP】蓦然回首:谈谈学习模型的评估系列文章(一)

    统计角度窥视模型概念 作者:白宁超 2016年7月18日17:18:43 摘要:写本文的初衷源于基于HMM模型序列标注的一个实验,实验完成之后,迫切想知道采用的序列标注模型的好坏,有哪些指标可以度量. ...

  10. 【NLP】揭秘马尔可夫模型神秘面纱系列文章(一)

    初识马尔可夫和马尔可夫链 作者:白宁超 2016年7月10日20:34:20 摘要:最早接触马尔可夫模型的定义源于吴军先生<数学之美>一书,起初觉得深奥难懂且无什么用场.直到学习自然语言处 ...

随机推荐

  1. java volatile是如何保证可见性的?

    lock前缀指令干的事. volatile 修饰的变量在进行写操作时会多出一条如下的汇编指令: lock addl $0x0,(%esp) volatile就是靠这个lock前缀指令去实现可见性的,当 ...

  2. zabbix 主动模式下报文分析

    获取监控项列表 客户端发起请求 3次握手之后,请求监控项列表: {"request":"active checks","host":&quo ...

  3. 2021-7-12 VUE的组件认识

    VUE组件简单实例 <!DOCTYPE html> <html> <head> <title> </title> </head> ...

  4. 2021-4-19 vs加速启动小技巧之intellitrace

    在选项界面中将intellitrace的启用关闭后对于程序的打开有加速作用.

  5. Trackbar调色板

    我们将会建立一个简单的应用,显示我们指定的颜色.将会建立一个窗口,显示三个trackbar指定RGB三个颜色通道值.可以滑动trackbar来改变相应的颜色.默认情况下,初始颜色为黑色. cv2.ge ...

  6. 内网渗透大杀器fscan

    fscan简介 一款内网综合扫描工具,方便一键自动化.全方位漏扫扫描.支持主机存活探测.端口扫描.常见服务的爆破.ms17010.redis批量写公钥.计划任务反弹shell.读取win网卡信息.we ...

  7. P1880 [NOI1995] 石子合并 题解

    区间DP. 首先将其复制一遍(因为是环),也就是经典的破环成链. 设 \(f[i][j]\) 表示将 \(i\) 到 \(j\) 段的石子合并需要的次数. 有 \[f[i][j] = 0(i = j) ...

  8. 牛客小白月赛65 E题 题解

    原题链接 题意描述 构造一个\(1\)到\(n\)的排列,使得其中正好有\(k\)个二元组\((i, j)\)满足,\(1\le i\lt j\le n\) && \(a_i - a_ ...

  9. 快速解决 const 与 typedef 类型组合时 ,const修饰谁的问题

    C++使用typedef 给复合类型定义别名时,与const结合会产生看似"令人困惑"的类型推定,例如 typedef char* pstring; const pstring c ...

  10. 【升职加薪秘籍】我在服务监控方面的实践(6)-业务维度的mysql监控

    大家好,我是蓝胖子,关于性能分析的视频和文章我也大大小小出了有一二十篇了,算是已经有了一个系列,之前的代码已经上传到github.com/HobbyBear/performance-analyze,接 ...