NiMiBrainCloud(NMBC)平台使用手册 ## 基本概念介绍 - Env :环境刺激,主要用于为神经网络提供输入信号。 - Layer:神经网络层,是神经的容器。在本模型中,每层神经网络仅包含一种类型的神经。神经网络层又分为三种: - Sensory Layer:感知层,用于接收刺激信号,并产生电刺激信号 - Spiking Layer:脉冲层,可以根据传入的电刺激信号产生脉冲(Spiking)神经信号。 - Non-Spiking Layer 非感知无脉冲层。 - Connection:连接,也即层与层之间的连接,其本质上是层之间神经的连接。 - Receptor:感受器 - Channel:离子通道,一个神经可以包含多个离子通道。 ## 核心功能简介 - 创建、运行、暂停神经网络 - 支持实时渲染神经网络运行状态 - 内置80余种的离子通道,支持添加、修改自定义神经离子通道 - 支持下载、上传网络项目文件,便于用户之间共享项目 - 支持实时绘制选择的神经的Spike信息 ## 界面介绍 ![](/Uploads/Help/nimibrain/nmbc-main.png#border#pic_center) 如上图,平台操作界面主要分为以下几个模块 + 项目功能操作区域 主要包含与神经网络项目有关的功能,例如新建、打开、启动、停止、下载与上传等功能 ![](/Uploads/Help/nimibrain/nmbc-head.png#border#pic_center) + 神经网络可视化显示区域 主要用来显示神经网络的可视化结构,以及运行时神经的活动信息 + 神经网络树形结构区域 网络结构的树形显示区域,显示层的列表、神经的详细信息、连接的详细信息。工具栏的主要功能如下图: ![](/Uploads/Help/nimibrain/nmbc-toolbar.png?h=160#pic_center#border) + SpikeTrain 显示窗口 显示选中神经以及连接的线性活动情况。 + Env控制栏 用于控制Env的选择、开启与停止。具体功能如下: ![](/Uploads/Help/nimibrain/nmbc-envbar.png?h=120#pic_center#border) ## 新建项目 1. 单击【New】按钮,在弹出对话框中输入项目名称以及描述信息后,单击【Create】按钮完成项目创建。 2. 在创建新项目后,单击新建层,将会弹出【Add New Layer】窗口。 ![](/Uploads/Help/nimibrain/nmbc-toolbar-layer.png#border#pic_center) 3. 在【Add New Layer】窗口中,【Layer List】是当前项目中已创建的层列表;【Layer Type】中可以选择将要创建的神经网络层类型;【Layer Setting】中包含了神经网络层的基本信息。 ![](/Uploads/Help/nimibrain/nmbc-layer.png?h=450#border#pic_center) + Layer Name 层名称 + Layer Width 层的可视化视觉宽度 + Layer Height 层的可视化视觉高度 + Grid Width 一行神经的数量 + Grid Height 一列神经的数量 + 当前层神经的总数等于Grid Width 与Grid Height 的乘积 填写数据完毕后单击【CREATE】按钮即可完成网络层创建 4. 可以重复2-3步骤进行多个神经网络层的创建 5. 至此一个简单的神经网络已经基本创建成功。在界面上可以看到类似下图的效果 ![](/Uploads/Help/nimibrain/3.png#border#pic_center) ## 打开项目 单击菜单栏中的【Open】按钮,弹出项目列表窗口。在窗口的左侧是平台Demo项目,可以直接打开进行启动运行查看效果。右侧是自己创建的网络项目,单击项目列表中的删除按钮可以实现删除项目的功能。单击【Create】按钮可以弹出项目创建窗口。 对于打开的Demo项目,用户的修改将不会被保存,但是可以通过【Save As】方式另存为私有项目进行修改。 ## 离子通道 添加离子通道 1. 在左侧【神经网络结构区域】中选中某一层后,单击离子通道按钮,如下图。 ![](/Uploads/Help/nimibrain/nmbc-toolbar-channel.png#border#pic_center) ![](/Uploads/Help/nimibrain/channel.png?h=450#border#pic_center) 2. 在弹出的窗口中,左侧【Public】代表公共的离子通道,也是系统内置的离子通道库,用户可直接使用,也可以对其进行修改另存为【Private】私有的离子通道。中间是离子通道的属性列表,右侧是其关键参数跟随电压变化的图形。 3. 单击【OK】按钮即可将选中的离子通道添加至神经模型中。 离子通道参数说明 + Name 离子通道名称 + bCaChannel 是否是Ca通道,如果是,则选择True,该通道就会参与到Ca电流的计算中,否则选择False + CaPct 如果bCaChannel为True,则我们需要计算通过这个Ca通道进来的Ca离子的比例(可能会有其他离子通过Ca通道进入),这个CaPct就是比例,范围是0-1,对应0%到100% + Erevs 该通道的反转电位 + Gmax 该通道的最大电导,非负 + GateP 离子通道的第一个门X,计算神经科学常用这样的方式来描述离子通道的电导 $$g=g_{max}(X(V,t))^P(Y(V,t))^Q(Z(V,Ca,t))^R$$ $$begin{aligned} {d(X(V,t))over dt}&=alpha_X(V)(1-X(V,t))+beta_X(V)X(V,t) \\ &={{X_infty(V)-X(V,t)}over au_X} end{aligned} $$ + P $$X(V,t)$$的幂,为非负整数 + P_AlphaBetaType 用alpha/beta的形式还是inf/tau的形式来描述这个离子通道,如果为True,则用alpha/beta的形式,否则用inf/tau的形式 + P_InfNow 有的离子通道采用inf/tau的方式来表达,但只有inf,没有tau,其意义是用无限短的时间就可以到达inf,如果模型中是这样的离子通道,则P_InfNow为True,否则为False + P_Inf_Alpha 上面公式中的$$alpha_X(V)$$(当P_AlphaBetaType=True)或$$X_infty(V)$$(当P_AlphaBetaType=False),目前NeuNet提供两种描述$$alpha_X(V)$$的方法,一种是根据大量的离子通道总结出了$$alpha_X(V)$$的几种一般形式,包括以下几种: “`katex p0+p1 cdot V ag{1} “` “`katex p0+p1cdot e^{V-p2over p3} ag{2} “` “`katex p0+{p1over p2+e^{V-p3over p4}} ag{3} “` “`katex {p0cdot(V-p1)over p2-e^{V-p3over p4}} ag{4} “` “`katex {p0 over p1 cdot e^{p2cdot V} + p3cdot e^{p4cdot V}} ag{5} “` “`katex {1over sqrt {1+e^{V+p0over p1}}} ag{6} “` “`katex p0+{p1over p2+e^{V+p3over p4}+e^{V+p5over p6}} ag{7} “` 如上图,上面列表中的第1个到第7个就是这些一般形式,用户在使用的过程中,只需要输入公式ID; p0; p1; pn即可,如4;0.3;9;1;9;-5,注意各个素要用分号隔开,不要多输入或者少输入。 另一种是对于一些无法用这些一般形式表达的离子通道,NeuNet还提供了script的表达方式,用户只需要把公式输进去就行了,如OUT=1+2*EXP(-(V+56.1)/23.6)。这里要注意的是,对于能够用一般形式表达的方程,请务必用一般形式表达,因为script采用查表的方式,一方面会降低计算精度,另一方面会影响计算速度。 + P_Tau_Beta 上面公式中的$$beta_X(V)$$或$$ au_X$$ + GateQ 离子通道的第二个门Y,所有参数的含义同GateP + Q $$X(V,t)$$的幂,为非负整数 + Type 用alpha/beta的形式还是inf/tau的形式来描述这个离子通道,如果为True,则用alpha/beta的形式,否则用inf/tau的形式 + InfNow 有的离子通道采用inf/tau的方式来表达,但只有inf,没有tau,其意义是用无限短的时间就可以到达inf,如果模型中是这样的离子通道,则P_InfNow为True,否则为False + Inf_Alpha 上面公式中的$$alpha_X(V)$$(当Type=True)或$$X_infty(V)$$(当Type=False) + Tau_Beta 上面公式中的$$beta_X(V)$$或$$ au_X$$ + GateZ 离子通道的第三个门Z,一般来说,离子通道只有1个或2个门,但有的K离子通道的电导不仅会跟电压有关,还可能会跟Ca有关,GateZ就是为这些Ca依赖的K离子通道准备的,其参数含义与GateP基本一致,需要注意的是,对于Z_inf_alpha和Z_tau_beta,其一般公式与GateP和GateQ是不同的,是考虑到Ca依赖的K离子通道中常见的公式而归纳出来的,如下: “`katex quad {Caover Ca+p0} ag{1} “` “`katex quad {p0+p1cdot {Ca}^2 over p2+p3cdot {Ca}^2} ag{2} “` “`katex quad {p0+p1cdot {Ca}^4 over p2+p3cdot {Ca}^4} ag{3} “` “`katex quad {p0cdot e^{p1cdot log_{10}(Ca)+p2over p3}} ag{4} “` “`katex quad {max(p0,{p1over p2+p3cdot {Ca}^2})} ag{5} “` “`katex quad p0+{p1over p2+({p3over Ca})^{p4}} ag{6} “` “`katex quad min(p0,p1+p2cdot Ca+p3cdot {Ca}^2) ag{7} “` 如何修改离子通道中Inf_Alpha和Tau_Beta的值 在属性列表中单击 Inf_alpha 或 Tau_Beta的值后弹出设置窗口如下图: ![](/Uploads/Help/nimibrain/inf-alpha.png?h=450#border#pic_center) Inf_alpha 和 Tau_Beta的值支持分段函数。在上图中,Piecewise Formula模块为公式中的分段函数列表。 Formula List 中列出了可用的公式列表。选中某一个公式后单击 Add按钮,填写分段函数条件后将添加至左侧的分段函数列表中。 Formula Graph下方为每个门控变量的速率(Beta、Alpha)随膜电位的变化曲线和每个门控变量的时间常数(Tao、Inf)随膜电位的变化曲线显示区。 对于某一个选中的公式,需要在Parameter Setting中对 p{n} 参数进行设置。调整参数的值,右侧的图表会进行即时更新以便于更好的评估参数的合理性。 如何在离子通道中的Inf_Alpha和Tau_Beta使用自定义的公式 在 Inf_Alpha和Tau_Beta 编辑器中的Formula List中选中Custom Function后编辑器将变为如下界面: ![](/Uploads/Help/nimibrain/diy-func.png?h=450#border#pic_center) 用户可以在Custom Function模块中编辑自定义的函数。函数示例OUT=1.0+2*Ca*EXP(-(V+56.1)/23.6),也可以使用E0,E1的方式内接常用公式。如下示例:OUT=MAX(1/(E0+E1), EXP(-(V+56.1)/23.6)/3.4),公式中的E0和E1将分别开启界面下方的E0和E1的输入权限,用户可以分别对E0和E1进行选择、设置公式。 备注:一般而言,尽可能的使用内置的公式,较为复杂的自定义公式将会降低计算速度。 ## 创建连接 1. 在左侧的【神经网络树形结构区域】中选中需要创建连接的【Spiking】层 2. 单击工具栏中的创建连接按钮,弹出网络连接配置窗口【Create Connection】 ![](/Uploads/Help/nimibrain/nmbc-toolbar-connection.png#border#pic_center) 3. 在【Create Connection】窗口中的【Select a Pre-Layer】,选中一个连接源层,这个层可以是感知层也可以是Spiking层,也可以是步骤2中选中的网络层本身。一个Synapse 由 PreSynapse 和 PostSynapse 组成。由于 Synapse 具有多样性和复杂性,我们做了大的分类,不同类有不同的参数设置项。 ![](/Uploads/Help/nimibrain/6.png?h=450#border#pic_center) 【Connection Setting】中的参数含义如下: + Pre-Synaptic Type 突触类型,Simple 不具有可塑性,只是释放稳定的神经递质。目前仅支持 Simple 类型 + PostSynaptic Receptors 接收器,目前仅支持 Simple PSP e.g. AMPA + Connections Projection 连接投射形状。每个preneuron在接收层上的投射范围,以preneuron在接收层的对应位置为中心,画一个形状,落在形状内部的神经就是该神经的所有postneuron。目前支持3种投射方式 + 矩形 R;-1;1;1;-1,R代表矩形,坐标采用计算机图形学的定义方式,第一个-1和第三个1定义了矩形的左下角坐标,第二个1和第四个-1定义了矩形了右上角坐标 + 椭圆 E;0;0;6;3;45,E代表椭圆,0和0定义了椭圆的重心,6和3定义了椭圆的长轴和短轴,45定义了椭圆的旋转角度 + 圆形 C;0;0;10,C代表圆形,0和0定义了圆心的坐标,10定义了圆的半径。 + Weight Dsitribution 投射的分布,支持均匀分布(U,U代表Uniform Distribution)和高斯分布(N; 1.5, N代表Normal Distribution,1.5代表标准差) + Max Connection Count 最大连接数量 4. 连接创建完成后可以在【树形结构】和【可视化】区域看到。如下图 ![](/Uploads/Help/nimibrain/7.png#border#pic_center) ![](/Uploads/Help/nimibrain/8.png#border#pic_center) ## 删除连接、层、离子通道 选中【神经网络结构】中的离子通道或者连接,或者层,单击删除按钮,根据提示,确认后即可删除选中的素,如下图。 ![](/Uploads/Help/nimibrain/nmbc-toolbar-del.png#border#pic_center) ## 创建ENV Env是为神经网络提供刺激源的一个设置。本质上讲就是为感知层【Sensory】提供外源刺激。 创建Env的步骤如下: 1. 单击【菜单栏】中的【Env】按钮,弹出【Multi Env Control】窗口 ![](/Uploads/Help/nimibrain/10.png?h=450#border#pic_center) 2. 左侧是Env列表,分为两类,一类是公共的Env,可以用于运行Demo;一类是自己创建的私有Env。用户可以单击列表中的Env进行打开和编辑。Demo中的Env也可以进行编辑,但不能直接保存,可以采用【Save As】的方式保存为私有的Env 3. 可以单击【Create】按钮或者【New Env】按钮新建Env。 4. 在【Env Info View】中输入相应参数 ![](/Uploads/Help/nimibrain/nmbc-env-detail.png?h=450#border#pic_center) + EnvName Env的名称 + Background intensity 背景灰度,取值范围[0,255] + Type 添加的Env条目的类型,支持的条目类型如下: + Flash Light 光斑 + Moving Light 移动光斑 + Image 图片,仅支持128*80大小的图片,图片格式可以是bmp,jpg,png. + Video 视频,仅支持5M以内的视频,视频尺寸也需要保持在128*80大小 5. 新建Env子条目。可以单击新建按钮来为Env添加子条目。可以通过上下箭头按钮来进行调整子条目的顺序、删除按钮删除子条目操作。 6. 在【Env Property Edit View】中可以为选中的子条目进行参数配置。参数的含义如下表 | 属性 | 说明 | 属性 | 说明 | | —- |—– | —- |—-| | Name | 名称 | Shape | 形状 | | Angle | 角度 | Duration | 持续时长 | | StartX | 起始X | StartY | 起始Y | | EndX | 结束X | EndY | 结束Y | | StartWidth | 起始宽度| StartHeight| 起始高度 | | EndWidth | 结束宽度| EndHeight | 结束高度 | | StartColor | 起始颜色| EndColor | 结束颜色 | 7. 在一个Env中可以添加多个子条目,这些子条目在神经网络运行时会依次进行执行。 8. 在底部的控制栏中,各按钮的主要功能描述如下 + Del Env 删除Env,指删除左侧Env列表中选中的Env + New ENV 新建Env + Upload Env 上传Env文件。可以通过其他渠道Env文件,例如本地版的NiMiBrain + DownLoad Env 下载Env文件。可以将在线创建的Env文件下载下来在本地使用,或者分发给别的用户。 + Save 保存当前打开的私有Env + Save As 将Demo中的Env保存为私有的Env或者将当前Env另存一份。 + Cancel 取消 ## 使用Env 在Spike Train Window旁边有一个下拉列表框,可以在这里选择要使用Env,在神经网络运行的时候单击启动按钮可以启动Env刺激,如下图。 ![](/Uploads/Help/nimibrain/13.png#border#pic_center) 备注:如果神经网络已经处于运行状态,则启动Env将会立即生效;如果神经网络未处于运行状态,启动Env并不会立即生效,Env将跟随神经网络一起启动。 ## 运行神经网络 运行神经网络需要依赖以下条件: 1. 打开或者新建一个神经网络 2. 较为通畅的网络条件 3. 云平台上有可用的GPU计算资源 满足以上条件的时候: 单击菜单栏的【Start】按钮即可启动神经网络。 在神经网络运行过程中,可以单击按钮【Pause】暂停运行神经网络,【Stop】按钮可以停止神经网络。在网络运行时,layer会由黄色变成黑色。 ## 选择/移除观察神经 1. 在可视化神经网络层上选择某一个具体的神经,按下【Ctrl】+【Shift】+【鼠标左键】,可以对具体的神经放电活动进行观察。 2. 如果神经数量较多,可以通过鼠标滚轮对可视化图像进行缩放 3. 对于已经选中的神经,按下同样的按键【Ctrl】+【Shift】+【鼠标左键】即可移除选中观察的神经。 如果你按照步骤操作,就可以观察到下面的效果。 ![](/Uploads/Help/nimibrain/nmbc-spiketrain-sel.png#border#pic_center) ## Spike Train Window 默认情况下由于没有选择需要观察的神经,【Spike Train Window】显示的内容是空的。需要选择观察神经并进行运行后既可看到Spike 数据信息。参考[选择/移除观察神经](#选择/移除观察神经)
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/72738.html