没有合适的资源?快使用搜索试试~ 我知道了~
MatlabHTM:新皮层分层时间记忆模型的精简MATLAB实现
SoftwareX 11(2020)100491原始软件出版物MatlabHTM:一个用于异常检测Ilia Bautistaa,Sudeep Sarkarb,Sanjukta Bhanjaaa美利坚合众国坦帕南佛罗里达大学电气工程系b美利坚合众国坦帕南佛罗里达大学计算机科学与工程系ar t i cl e i nf o文章历史记录:2018年12月13日收到收到修订版2020年1月16日接受2020年保留字:神经建模序列记忆HTMa b st ra ct许多基于大脑智能中心新皮层运作的模型正在出现。分层时间记忆(HTM)模型是新皮层分层子结构的一个独特的中间层模型。假设这些层建立了观察序列和/或运动信号的时间模型,即,建立一个序列记忆该模型的实现存在于Python、C++和Java中。然而,这些实现使用起来相当麻烦,因为它们依赖于许多其他包。本文提出了一个精益,独立,易于修改MATLAB实现。处理Numenta Anomaly Benchmark(NAB)的性能结果证明了matlabHTM的保真度©2020作者由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前软件版本v1.0此版本可执行文件的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2018_252法律软件许可证CC BY-NC-SA 4.0计算平台/操作系统MATLAB安装要求依赖性MATLAB 2012b或更高版本如果可用,请链接到用户手册https://github.com/SudeepSarkar/matlabHTM问题支持电子邮件sarkar@usf.edu1. 动机和意义作为大脑智能的中心一些模型,如神经网络和深度学习,灵感依赖于非常抽象的连接,结构和功能。其他模型的架构基于对单个神经元行为的详细观察尖峰神经元Hawkins等人概述的分层时间记忆是基于新皮层分层子结构的独特中级模型[1]。新皮层是一个部分的组合,每个部分包含许多层。合理的解释是,大脑皮层区域*通讯作者。电子邮件地址:sarkar@usf.edu(美国)Sarkar)。https://doi.org/10.1016/j.softx.2020.100491执行序列学习的变化,即,学会预测每一个观察结果。每一层的输入各不相同,如图所示。图1显示了简化的皮质柱示意图。皮质和丘脑将刺激传递到新皮质层,从而产生感觉运动序列。输出馈送到同一列的层、另一列的层或电机系统。每层都有不同类型的细胞,取决于形状,连接和树突长度。L4有三个: 金字塔(py),星形金字塔(sp)和多刺星状(ss)[2]。L5有两个:细长(st)和厚簇状(tt)金字塔[2]。L6有两个:皮质皮质(cc)和皮质丘脑(ct)。尽管输入和输出不同,但每一层的核心功能和模型matlabHTMHTM将新皮层中每一层的行为建模为 一个三个模块的序列:空间布局创建稀疏2352-7110/©2020作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx2I. 鲍蒂斯塔湾 Sarkar和S. Bhanja / SoftwareX 11(2020)100491Fig. 1. 新皮层中的层及其连接:丘脑向L4和L5 B传输[3,4]延伸到L5 A [4],而L4也接收来自皮层的数据; L1,L2和L3刺激L4,L4传输到L5和L 6 [2,5]; L3投射到L5 A和L5 B [3,6]; L 6A和L5 B通过L5 A输出到丘脑[3,6,7]并终止于L4 [7]。输入的表示,记录时间顺序的序列存储器,以及创建每个序列的稳定表示的时间顺序。假设是这些层从传感器和运动输入创建序列的高阶时间模型。这种模型通过检测变化并将观察结果反馈到更高层以进一步建模或将其反馈回运动通路来预测下一个测量和运动动作。这份手稿提出了一个MATLAB代码,实现了这个模型的皮层。开发的软件将有助于神经科学研究人员的兴趣在于比较和基准性能的替代模型通过验证,通过多个实验。该软件还将使计算机科学研究人员能够构建强大的基于神经的算法,而不仅仅是神经启发的算法。序列存储器HTM模型也可以直接用于通过物联网收集的数据,例如交通流量,信用卡购买,房间的温度。目前,HTM模型的实现存在于Python [8],C++[9]和Java [10]中,但它们依赖于许多包。本文提出了一个精益MATLAB实现集中在其他研究人员有兴趣扩展和修改的序列记忆模型。此外,matlabHTM的流行也应该增长,因为MATLAB编程环境嵌入了它的根源在工程教育课程与生态系统的教科书和在线资源。在介绍系统的架构之前,这些术语应该可以帮助HTM的新用户(i) 层:由微型柱组成,接收特定数据,例如,音频、视觉和触摸。(ii) 迷你柱:结合了空间和时间[11]。这相当于大脑中的一个迷你柱[12,13]。(iii) 单元格:与同一层内的其他单元格互连,以预测下一个事件。(iv) 树枝状突起:收集由先前的观察所激发的突触,以预见每个微柱的当前(v) 突触:新皮层中神经元之间的连接,是深度学习的(vi) 持久性:表示突触强度的权重2. 软件框架输入由一系列项目组成,这些项目可以是各种类型,例如数字、位置、运动参数、字母或单词。通过接收单个测量值,该软件建立序列模型,随着时间的推移改进预测。然后,该系统对用于区分异常的常规事件进行分类。有四个基本模块:编码器、空间位姿、序列存储器和时间位姿。编码器从每个度量中提取二进制语义表示,例如数字、字母或单词。这种语义表示通过分析输入和来自系统的预测之间的重叠“ON "位来简化相似性计算。一个数的常规的以2为基数的表示没有这个I. 鲍蒂斯塔湾 Sarkar和S. Bhanja / SoftwareX 11(2020)1004913图二. 软件功能流程图。每个数字对应于第2.1或2.2节中列举的功能,而字母表示其父功能段落中描述的子功能。(关于此图例中颜色的参考解释,请读者参考本文的网络版本财产,例如,具有二进制011的数字3和具有二进制100的数字4在“ON”位中没有任何重叠此外,mat-labHTM系统采用Purdy [14]概述的涉及移位的编码器空间概率(SP)将这种可能是密集的二进制语义表示转换为稀疏的分布式表示(SDR)。这两个模块一起将不同的两个类似的输入具有SDR,当投影到彼此上时,SDR在其“ON”位中具有比例重叠Ahmad和Hawkins探讨了特别提款权的稳健性和容量[15]。序列存储器(SM)建立连续测量之间的序列相关性。在这个记忆模块的核心是一个非平凡的模型,锥体神经元排列在迷你列中,它实现了与同一层中其他细胞的局部抑制和非局部连接的操作[1]。为了填补缺失的信息,matlabHTM它还依赖 关于Surpur的幻灯片[ 16 ]提供的信息然而,MATLAB实现并不完全忠实于Python NUPIC实现[8],其中包括一些非神经科学的黑客。例如,matlabHTM不实现注意模式或回溯模式。时间概率(TP)为每个学习的序列建立一个稳定的SDR。为了创建一 个将序列 的不同空 间特征合 并为统一模 式的模块 ,matlabHTM依赖于Bolliger概述中的信息此外,matlabHTM包含一个基于McCall [18]演示的伪代码和Sur- pur在[19]中实现的代码的联合算法。MatlabHTM遵循Bolliger [ 17 ]和Supur [ 19 ]代码中的概念上述模块一起工作,通过计算原始分数和测试的可能性来检测异常通过将预测与SP输出进行比较,系统计算原始异常分数[21]。它们的列重叠给出了一个分数,在不可预测的行为期间很大,而在预测时很小。此外,matlabHTM通过移动正态分布检测可预测和不可预测场景之间的变化来计算异常可能性[21]。4I. 鲍蒂斯塔湾 Sarkar和S. Bhanja / SoftwareX 11(2020)100491++图三. 序列存储器内部配置:(a)连接到空间和时间池的序列存储器微柱;(b)序列存储器中的2D单元配置;(c)单元内的树突连接见图4。序列存储器显示:空间位置或活动列的输出(蓝色圆圈),列内的活动单元格(红色),选择用于学习的单元格(洋红色圆圈),预测单元格(蓝色正方形)。未预测的活动单元格突出为连续的红色线。(For对本图图例中所指颜色的解释,读者可参考本文的网络版。)2.1. 软件构架函数调用图显示了图1中的软件架构。二、有两个入口点:main和runNAB。主函数在输入中进行一系列测量,在构建SM模型时输出原始异常分数。主函数中有四个基本步骤(图2中的绿色)。1. encoderNAB:该过程的第一步是将输入到二进制语义表示,表示到集群/桶。非零重叠(内积)的数量与输入之间实现语义相似的策略取决于输入[14]。函数EncoderNAB有两种表示方法:一种表示线性范围的数字,如温度值,另一种表示周期范围,如一天中的小时数。2. spatialPosit:该函数采用每个输入的二进制语义表示,并使用Hebbian学习将其转换为SDR,如Hawkins等人所述。 [11 ]第10段。3. sequenceMemory:这是软件功能的核心性。 它可以识别序列,如A-B-C-D,还有X-B-C-Y序列存储器中的一组单元格形成图1中的每个微列。3层,与新皮层的2/3层相同。每个迷你列对应于SDR的位,其映射到SP的输出。每个迷你列中的单元彼此抑制,因此在稳态中只有一个单元可以是活动的。每个单元可以处于三种状态:非活动(OFF)、活动(ON)或预测。SM使用四种操作来构建高阶表示。功能(a) markActiveStates在从空间位置输入的相应位为“ON”时将单元识别为活动的(c)markPredictiveStates将细胞设置为预测性的,如果其树突满足来自当前活动细胞的“ON”突触的阈值(b)markLearnStates选择将要学习的细胞。(d)updateSynapses通过激活活跃的突触来模拟连接的加强和减弱,就像在大脑中发生的那样。通过赫布学习,所有标记为学习的细胞内的每个突触的持久性增加,而所有错误预测的细胞的持久性减少。4. temporalPoisson:时间Poisson(TP)接收活动和预测单元的重叠,然后将它们的加权平均值相加,以拒绝不同序列内的相似空间语义。它执行联合池(UP),减少序列内的变化,通过增加活动列随时间的当列没有预测时,此稳定性被发送到SM,为下一个实例分配预测单元[17,20]。通过赢家通吃计算,TP选择前20%的列来保持稀疏性。TP列通过三种不同的场景进行学习。当SM单元在预测之后活动以实现稳定性和唯一性时,以及当TP列连续活动以包括与序列相关的所有实例时,以及如果连接到TP列的先前突触在序列中活动以强制早期检测。I. 鲍蒂斯塔湾 Sarkar和S. Bhanja / SoftwareX 11(2020)1004915图五. 异常图表比较了以下图表:原始数据; matlabHTMrunNAB通过调用Numenta Anomaly Benchmark数据集上的main来运行HTM模型[22]。它包括两个附加功能(图中的红色)。( 2):5. sequentialAnomalyDetection:根据Ahmad等人 [21]解释的计算,将原始分数序列中的实验结果标准化。输入是来自main的原始分数的向量,输出是二进制向量。每个异常增量递归关系将原始分数标准化,有助于估计平均值和标准差。在最终分数归一化之后,短期滤波器在计算尾部异常可能性之前平滑原始分数[23]。此外,请注意,系统忽略了Lavin等人指定的训练分数。 [22 ]第20段。6. computeScore:计算最终分数,真阳性、假阴性和假阳性的国家[24].除了来自每个系统的分数之外,完美分数和零分数作为参考。最后,matlabHTM会引导最终分数的方差估计,这有助于在呈现结果时识别统计差异。2.2. 软件功能HTM MATLAB软件应该产生两个主要用途:一个在教育和研究环境中,另一个在应用领域中。MatlabHTM可以作为神经科学家和计算机工程师的软件工具集。神经科学家可以使用该代码通过验证神经科学实验的观察和测量来例如,神经学家可以模拟模块损伤定位和分类患者通过软件实现的可视化(图4和5)将帮助科学家了解HTM模型随着时间的推移的运作。计算机工程师可以使用该软件,充分利用基于神经结构的方法来提高机器智能研究神经形态设备的研究人员可以使用该软件来模拟使用新型设备的神经元,树突和突触。由于matlabHTM没有任何外部软件依赖,它是一个轻量级的代码,可以很容易地跨计算平台移植。通信带宽是物联网设备互连的主要问题之一随着物联网设备的激增,通信渠道成为瓶颈。然而,发送和接收的通用数据不需要持续通信,而异常数据的收集是至关重要的。异常数据的收集推动了边缘计算的概念,物联网设备可以参与计算以识别异常活动。MatlabHTM在这一领域的应用,因为预测,检测和从异常中学习深深嵌入其核心操作中该HTM软件可以在线工作,以检测一系列领域中的异常,例如,tweets、pay-per-clicks、server/CPUutilization、traffic、room/machine temperature和stock。2.3. User此HTM代码适用于MATLAB 2012或更高版本。该代码存在于宏matlabHTM [25]上。描述的版本是通过脚本nabScrpit初始化的1.0。有17个MATLAB文件,每个文件包含一个函数。 EncoderNAB和markLearnState 分 别 包 含 额 外 的 函 数 encoderScalar 和 ( f )getBestMatchingCell。功能完成后,用户应根据自己的特定需求或偏好定制代码。两个中心功能连接方法中定义的所有其他子功能:7. runNAB:通过读取数据并通过main初始化所有参数来启动进程。它还通过bootstrapping处理所有分数。8. main:所有参数:数组大小、阈值、奖励、惩罚、永久性等。最重要的是,该函数通过上面更详细描述的其他函数传递信息。2.3.1.运行代码要生成表1中提供的结果,用户必须下载文件夹matlabHTM[25]。nabScript是一个可执行的文件,需要满足特定平台的参数。 txt应该包含指向目标基准的正确路径(在本例中由Lavin等人提供)。 [22、24])。关闭时,可使用该模型标记来复制结果6I. 鲍蒂斯塔湾 Sarkar和S. Bhanja / SoftwareX 11(2020)100491表1每个Numenta Anomaly Benchmark数据集的异常评分数据集matlabHTMNUPICNUPIC随机原始分值原始分值&原始分值&&异常NAB异常matlabHTM可能性可能性异常可能性人工自举57.00五十六29 ±200660.29六十43 ± 169646.8143号。58 ±2003–AdExchange67.25 54.68 62.85 5.5266. honor 66± 7。7053.27±11 8863岁20± 7。04AWSCloudwatch 64.3168.65 57.93 11.6664. honor 12± 7。0768. 86± 6。415893±6。八十八已知原因58.24 57.00 58.68 3.2858. honor 15± 7 4856. 07± 9。8157.15± 8。九十三交通76.88 68.24 68.52 8.3776. honor 02± 5。7768. 35± 5。7869. 16±5。35推特64.00 66.26 58.59 6.5063. honeymoon 18± 6。0066. 12± 4。7658. 47±6。三十八全部59.62 60.55 53.89 6.3059. honor 60± 3。266041± 3。5745415 ±3。80同时保持最佳架构。 DisplayFlag提供了如图1和图2所示的视觉表示。图4和图5示出了实现SM列的快照和每个单元的即时状态的示例。3. 异常检测:评分比较Numenta Anomaly Benchmark(NAB)测试了该软件的功能。在处理每个数据集之后,分数决定了系统检测异常的能力。 为了获得相关的结果,几组基准测试有助于对每个系统进行排名。出于测试目的,有58个基准(人工和真实)[22,24]:artificial(11个数据集)、realAdEx- change(6个数据集)、realAWSCloudwatch(17个数据集)、real-KnownCause(7个数据集)、realTraffic(7个数据集)和realTweets(10个 数据集)。为了进一步证明matlabHTM与Numenta的ex-textPython实现的保真度,现有的NAB任务对验证结果很有用下表1包含每组基准测试的结果NAB和matlabHTM都在Ubuntu 16.04.4中运行,以便在系统之间进行公平的比较MatlabHTM可以在不同的平台上运行,但NAB不支持在Windows 10上运行表1显示matlabHTM在AdExchange、KnownCause和流量数据集中表现更好。NAB在Artificial、AWSCloudwatch和Tweets基准测试中确实表现得更有效。matlabHTM的主要优点此外,MATLAB版本没有任何可能需要数小时安装和调试的依赖项,Numenta的异常检测器也是如此MatlabHTM支持引入更新和更通用的数据集,同时促进新编码器的测试。总体而言,结果确立了matlabHTM在检测异常的同时以简单,快速和有组织的方式处理在线数据。4. 影响MatlabHTM是一个独立的系统,可以让研究人员专注于研究新皮层。这个模型可以帮助科学家分析人和机器的行为。在机器内部,这种分析可以帮助改进系统的算法。此外,它鼓励编码方法的平滑实现和测试,而无需额外的包裹。总体而言,HTM是一个独立于应用程序的系统,有望促进对机器智能的理解。MatlabHTM提供了一个易于安装,学习和使用的框架,简化了用户Python [8]、C++ [9]和Java [10]是其他具有HTM实现的平台。然而,它们依赖于许多其他软件包,这可能会给编程经验很少的研究人员带来不便。出于这些原因,matlabHTM应该有助于改善教育系统,这将有助于扩大新皮层内的研究。MatlabHTM通过将其性能与其他可用的实现进行比较,证明了对Numenta Anomaly Benchmark的忠诚度。MatlabHTM应该成为流行的教育和集成的可用性。截至2020年5月,NumentaAI和计算机科学领域更喜欢使用Python。然而,工程教育继续通过生成教科书,在线资源和复杂问题的示例代码来通过课程采用MATLAB,否则Python无法实现5. 结论本文提出了一种基于新皮层的matlabHTM异常检测器。该代码是轻量级的,只有1200行,这应该有助于MATLAB深度学习社区使用HTM。所进行的实验表明,matlabHTM的输出与PythonHTM的实现类似该系统支持引入更新和更通用的数据集,同时促进新编码器的测试。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作致谢这项工作得到了美国国家科学基金会佛罗里达州-乔治亚州路易斯斯托克斯少数民族参与联盟(FGLSAMP)的资金支持博士人力资源开发#1400837,国家科学基金会计算和通信基金会#1619027,以及阿尔弗雷德·斯隆基金会大学示范指导中心(UCEM)#2014-3-07。引用[1] 放大图片作者:Hawkins J,Ahmad S.为什么神经元有成千上万的突触,新皮层序列记忆理论。2016年;10.网址http://journal.frontiersin.org/article/10.3389/fncir.2016.00023/full。[2]Oberlaender M , de Kock CP , Bruno RM , Ramirez A , Meyer HS ,Dercksen VJ,Helmstaedter M,Sakmann B.大鼠触须皮质柱中丘脑皮质回路的细胞类型特异性三维结构。大脑皮层2011;22(10):2375-91。[3]Constantinople CM , Bruno RM. 深 层 皮 层 直 接 被 激 活丘 脑 。Science2013;340(6140):1591-4.[4]Yamawaki N , Shepherd GM. 皮 质 丘 脑 运 动 神 经 元 的 突 触 回 路 组 织 。 JNeurosci2015;35(5):2293-307。[5]哈里斯KD,谢泼德GM。新皮质回路:主题与变化。Nature Neurosci2015;18(2):170.[6]吉耶里河关于丘脑在皮质-皮质通讯中作用的解剖学证据:简要回顾。J Anat1995;187(Pt 3):583.[7]张志文,Deschenes M.大鼠初级躯体感觉皮层第六层细胞的皮层内轴突投射:单细胞标记研究。神经科学杂志1997;17(16):6365-79.I. 鲍蒂斯塔湾 Sarkar和S. Bhanja / SoftwareX 11(2020)1004917[8]Numenta Numenta智能计算平台是一个分层时态存储器(HTM)(NUPIC)的实现。2016年,网址https://github.com/numenta/nupic网站。[9]Numenta 核 心 NuPIC 算 法 的 C++ 实 现 ( nupic.core ) 。 2018 年 ,URLhttps://github.com/numenta/nupic.core。[10]Numenta Hierarchical Temporal Memory(HTM)的Java版本。2017年,URLhttps://github.com/numenta/htm.java。[11]放大图片作者:Hawkins J,Ahmad S,Purdy S,Lavin A.生物和机器智能(BAMI)。2016年,首次在线发布0.4。网址https://numenta.com/biological-and-machine-intelligence/。[12]Favorov OV,Diamond ME。猫SI中离散位置定义的柱分离的演示。《比较神经学杂志》1990;298(1):97-112。[13]Mountcastle VB.新皮层的柱状组织。脑神经学杂志1997;120(4):701-22。[14]珀迪S HTM系统的编码数据。2016年,arXiv预印本arXiv:1602.05925。[15] Ahmad S,Hawkins J.,神经元如何在稀疏分布表示上操作?稀疏性、神经元和活跃树突的数学理论。2016年,arXiv预印本arXiv:1601.00720。[16]苏 普 尔 角 在 NuPIC 中 实 现 的 皮 层 学 习 算 法 。 2014 年 ,URLhttp://chetansurpur.com/slides/2014/5/4/cla-in-nupic.html。[17]博利格湾暂时的权力概述。2015年,URLhttps://github.com/numenta/htmresearch/wiki/Overview-of-the-Temporal-Poetry。[18]麦 考 尔 RJ 。 联 合 概 率 算 法 伪 代 码 。 2015 年 , URL https : //github 。com/numenta/htmresearch/wiki/Union-Poplar-Psuedocode.[19]作 者 : JiangY.HTM 研 究 结 合 时 态 的 算 法 。 2016 年 ,URLhttps://github.com/numenta/htmresearch/blob/master/htmresearch/algorithms/union_temporal_poison.py。[20]苏普尔C,罗马诺N,刘易斯M,崔Y. HTM研究框架联盟时间池实验。https://github.com/numenta/htmresearch/blob/master/htmresearch/frameworks/union_temporal_pooling/union_temporal_pooling_experiment.py。[21]Ahmad S, Purdy S.用 于流 分析 的实 时异 常检 测。 2016年 , arXiv预 印本arXiv:1607.02480。网址https://arxiv.org/abs/1607。02480[22]Lavin A , Ahmad S. Numenta Anomaly Benchmark [白 皮 书 ]。 2015 年 ,URLhttps://github.com/numenta/NAB/wiki。[23]NumentaNumenta异常基准。2014年,URLhttps://github.com/numenta/NAB。[24]Lavin A,Ahmad S.评估实时异常检测算法:numenta异常基准。在:机器学习和应用(ICMLA),2015年IEEE第14届国际会议上。IEEE; 2015,p.38比44[25]萨卡湾MATLAB分层时间存储器。2016年,https://github.com/SudeepSarkar/matlabHTM和http://www.cse.usf.edu/~sarkar/。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功