nengo的树状计算原语
nengo-bio的Python项目详细描述
Nengobio生物学(更多)合理的Nengo模型
<阻塞率>9888;警告:此项目正在进行中。此处描述的所有内容,包括项目名称和API,都可能更改。
Nengobio是Nengo的附加库。Nengo被科学家用来构建神经生物学系统的详细模型。然而,在某种程度上,nengo和底层的神经工程框架有限制,限制了所创建网络的生物学合理性。nengobio通过实现以下功能解除了某些限制:
- 戴尔原则(:带复选框的投票框:完全实现)
虽然可以绕过这个限制,但nengo通常不会明确地将神经元标记为兴奋性或抑制性。这意味着单个神经元可以兴奋性和抑制性地连接到后神经元,这取决于权重求解器计算出的权重符号。Nengobio将神经元标记为兴奋性或抑制性,并在求解连接权重时解释这一点。 - 偏置电流消除(:带复选框的投票框:完全实现)
神经工程框架假设每个神经元连接到一个恒定的偏置电流源。这种偏置电流被用来使亲和神经元的调谐曲线多样化,但从生物学的角度来看有点不切实际。Nengobio通过求解当前空间中的突触权重来消除偏置电流,有效地从预种群状态解码偏置电流。 - 对树状计算的支持(:带复选框的投票框:完全实现)
树突非线性在中枢神经系统的信息处理中起着关键作用,可以系统地利用树突非线性进行非线性、多变量的计算。nengobio通过允许任意数量的神经元集合作为连接中的前置对象,向nengo添加了对树突计算的支持。 - 支持基于电导的突触以及具有任意被动树突树的神经元(有计划) 树状结构的计算依赖于树状结构和树状结构的非线性效应。Nengobio为Nengo添加了对任意被动多compartment神经元模型的支持。
安装Nengobio
依赖项:nengobio需要python 3,依赖于numpy>;=1.16.3
,scipy>;=1.2.0
,cvxopt>;=1.2
,nengo>;=3.0.dev0
。
通过运行克隆此存储库
git clone https://github.com/astoeckel/nengo_bio
然后,您可以在nengo_bio
存储库中运行以下命令来安装该软件包
pip3 install -e .
这将自动安装所有依赖项。请注意,nengobio当前需要最新的开发版本nengo,必须单独安装。
使用Nengobio
;请参阅示例笔记本
假设您知道如何使用nengo,那么使用nengobio应该非常简单。只需将以下内容添加到导入列表中
importnengo_bioasbio
并将nengo.ensemble
替换为bio.ensemble
和nengo.connection
替换为bio.connection
(如适用)。
生物集成
类
bio.ensemble
类的作用类似于正常的nengo集成,但有两个附加参数:p_exc
和p_inh
。这些参数描述了群体中兴奋/抑制神经元的相对数量。请注意p_exc
和p_inh
必须求和为一。只有当一个系综是预对象时,这些参数才相关。
注意:神经元在构建时将被分配一个突触类型。如果设置了p_exc
或p_inh
中的任何一个,则每个神经元要么是兴奋性的,要么是抑制性的。如果没有p廑exc
和p廑inh
,合奏的表现将与正常的nengo合奏一样。
警告:bio.ensemble
可以与normalnengo.connection
类一起使用。只有在使用bio.connection
时,才会考虑到abio.ensemble
中神经元的兴奋性/抑制性(见下文)。
示例
例1:一个由兴奋性神经元组成的整体
ens_exc=bio.Ensemble(n_neurons=101,dimensions=1,p_exc=1.0)
例2:一个完全由抑制神经元组成的集合
ens_inh=bio.Ensemble(n_neurons=101,dimensions=1,p_inh=1.0)
例3:一个由80%兴奋性神经元和20%抑制性神经元组成的集合(两条线都是等价的):
ens_mix=bio.Ensemble(n_neurons=101,dimensions=1,p_exc=0.8)ens_mix=bio.Ensemble(n_neurons=101,dimensions=1,p_inh=0.2)
生物连接
类
abio.connection
connection连接到单个目标集成。它将自动解释分配给每个神经元的突触类型。
显著参数
pre
:这可以是单个pre-population,也可以是一个pre-population的元组。预填充表示的值的维数将被叠加。解码偏差
(默认值真
):如果真
后神经元偏差电流将从预种群中解码,而不是假设为常数。对于除第一个bio.connection
连接之外的任何连接,将其设置为false
,目标是相同的post population。解算器
(默认qpsolver()
):来自nengo_bio.solvers
的扩展解算器
实例。扩展求解器可以求解电流并考虑神经元参数。
示例
示例1:在考虑神经元/突触类型和解码偏置电流的情况下,ens-a
和ens-b
之间的简单通信信道:
bio.Connection(ens_a,ens_b)
示例2:2d通信信道,其中ens_a
,ens_b
表示一维值,ens_c
表示二维值。
bio.Connection((ens_a,ens_b),ens_c)
示例3:线性"树突计算"
bio.Connection((ens_a,ens_b),ens_c,function=lambdax:np.mean(x))
引用
此库中使用的技术在本arxiv预印本中有更详细的描述:https://arxiv.org/abs/1904.11713。如果你能引用这篇文章以防在已发布的模型中使用此库。
啊!