brain协议使用说明书_通信协议有哪些

brain协议使用说明书_通信协议有哪些NiMiBrainCloud(NMBC)平台使用手册## 基本概念介绍- Env :环境刺激,主要用于为神经网络提供输入信号。- Layer:神经网络层,是神经的容器。在本模型中,每层神经网

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

(0)
上一篇 2024年 8月 6日
下一篇 2024年 8月 6日

相关推荐

关注微信