一种“真正智能”的机器学习模型——HTM由Dileep George和Jeff Hawkins提出。因为HTM网络的结构在空间和时间上都是分层的,所以适合于建模和学习数据特性之间的空间和时间关系[1]。目前,HTM技术已被有效的用于模式识别问题。疲劳驾驶检测也属于模式识别问题。因此,将HTM技术应用到该领域是可行的。驾驶过程中产生的疲劳特征数据具有顺序、庞大、快速和连续等性质。如何实时连续的提供基于多时间段的疲劳驾驶检测成为亟待解决的一个关键问题。本文提出了一种新的节点类型。新节点由一个空间池、一个时间池、一个监督分类器和一个特殊的循环队列组成。文中,我们详细介绍了节点的各部分的功能和操作原理,特别是在集成的HTM网络中对节点进行的训练和识别的过程。
1 集成的HTM网络
集成的HTM网络由节点、分类器、数据输入装置和数据输出装置四部分组成,如图1 集成的HTM网络结构图所示。其中,节点是HTM网络对数据进行建模和学习的基本组件。分类器提供数据的分类信息。节点在学习过程中可以基于分类器的分类信息进行有监督的学习。数据输入装置负责从文件中读取数据,并将数据实时连续的输入到HTM网络底层节点中。数据输出装置是一个输出执行器,它接收来自每一层基于不同时间段的分析处理结果,并验证这些输入是否有效。
图1 集成的HTM网络结构
集成的HTM网络以一种不同于最初HTM理论的方式进行学习和识别。首先,集成的HTM网络的不同层节点处理不同时间段长度的数据。此外,我们只让每一层最左端的第一个节点执行学习和建模。学习完成后,该节点的结构顺序“克隆”给同层每一个节点,以确保数据的空间和时间的连续性。因此,数据输入装置将数据输入给第一层左端第一个节点,而不是第一层所有节点。位于高一层左端的第一个节点接收的数据来自一个或多个低一层子节点的输出。因此,随着网络层次的递增,位于每一层左端第一个节点接收的数据的时间段长度也会随之增长。如图1集成的HTM网络结构所示,位于第二层左端的第一个节点的输入来自于第一层4个子节点。除了从数据输入装置或孩子节点接收数据外,每层左端第一个节点还可以从分类器中读取类别信息,在监督下进行学习。在集成的HTM网络中,每层左端的第一个节点产生两个输出。其中一个作为输入数据给高一层左端的第一个节点。另一个通过数据输出装置输出。除了导出多个预测结果的任务外,数据输出装置还负责计算每层左端第一个节点输出结果的数量,以验证高一层左端第一个节点的输入数据是否有效。这些输入计数存储在名为“count”的容器中。
2 新节点结构
本文提出的新节点由一个空间池、一个时间池、一个监督分类器和一个特殊的循环队列组成。新节点中的空间池、时间池和监督分类器三个模块与原始HTM网络中节点的组成部分几乎完全相同。对这三个模块的结构和工作原理的详细描述可以参考Numenta白皮书。新节点中的特殊循环队列不同于传统的循环队列。传统的循环队列是一个长度固定首尾相连的缓冲区,它有两个指针指向队列中数据输入位置和输出位置。新节点中的循环队列也是一个大小固定的缓冲区。但是这个特殊队列没有两个指针。我们仅使用一个插入指针来表示数据输入的位置。特殊队列的优势是,当队列中的多个数据被读出时,它不需要被打乱。
3 集成HTM网络工作原理
基于新节点集成的HTM网络有两种不同的工作模式:训练和识别。训练过程中,HTM网络中每一层的新节点接收不同时间段长度数据的训练,并要基于分类其中的分类信息对接收的数据进行建模。足够的训练后,HTM网络将切换到识别阶段。识别阶段,HTM网络每层的新节点都将实时连续不间断的生成基于不同时间段长度的数据识别结果。
3.1 训练模式
基于新节点集成的HTM网络与原始的HTM网络的训练相同,都是层级训练。第一层的节点首先进入训练阶段。训练完成之后,第一层的新节点切换进入识别模式。与此同时,第二层的新节点进入学习模式。这个过程在层次结构中不断重复,直到顶层的新节点也完成训练进入识别模式。
如图2所示,学习的第一阶段,只有第一层的新节点被激活并进入学习模式中。数据进入到空间池构建数据的压缩集合。空间池集合中的数据以索引形式被同时输入给时间池和监督分类器。时间池接收数据索引值,捕捉数据的时间紧密度并分组。同时,监督分类器将接收的索引值与分类传感器中的分类进行比对归类。在学习过程中,时间池和监督分类器都不会发送任何输出,同时特殊的循环队列被禁用。在第一层新节点完成学习后,新节点的空间池和时态池结构被克隆到同等级的克隆节点上。
图2 学习模式下的第一层新节点
如图3所示,学习的第二阶段,第二层新节点及它在第一层的所有孩子节点被激活。第二层新节点进入学习模式,它在第一层的孩子节点进入识别模式。图4中第一层有四个节点进入识别模式。位于第二层的新节点接受来自第一层四个孩子节点的输出作为输入数据。第二层节点学习的数据的时间段长度与第一层节点学习的数据的时间段长度不同。当第二层新节点也完成学习,则进入识别模式。
图3 学习模式下的第二层新节点
这个过程在层次结构中重复,直到所有的节点都被激活,并且顶部节点也完成学习,如图4所示。
图4 学习模式下的第三层新节点
3.2 识别模式
在识别阶段,集成的HTM网络的每层只有一个新节点构成。每个新节点都有一个数据模型,但是是基于不同的时间段长度的。
“识别”类似于模式推理。在第一层的新节点在t1-0中接受输入数据,其长度与训练数据长度相同。
经过计算,图5第一层新节点中特殊循环队列的大小、读取数量和读取位置分别是3,3,[0,1,2]。如果当前队列中没有数据,那么队列的每个输出都默认为0值。所以,时间池和队列输出的结果应该是Pt1-0,0,0,0,同时该输出作为第二层新节点的输入数据。第二层的新节点接收来自孩子节点的第一个输入执行与第一层新节点相同的但是基于不同时间段长度数据处理的操作。
图5 识别模式下的第一层新节点
4分钟后,在第一层的新节点的分类器生成了一个分布值。这个值该节点在t4-3上的识别结果。时间池在t4-3的组中也生成了一个值,并将其与队列的输出连接起来,以便将t0到t4的信息上传给它的父节点。第二层的新节点接收它的第4个输入数据,即在t0到t4的时间间隔的数据。此时,第二层的新节点的输出数量等于第二层处理数据的时间长度值。因此,第一层和第二层的识别输出都是有效的。但第三层节点的输出是无效的,如图6所示。
图6 识别模式下的第二层新节点
12分钟后,第一层的新节点生成t12-11的识别结果,第二层的新节点生成pt12-8的识别结果。第二层的新节点的时间池生成了t12-8的组分步信息,并将其与队列pt8-4和pt4-0的输出合并,将pt12-0的信息上传给它位于第三层的父节点。此同,第三层的新节点接收第12个输入数据,即t0到t12之间的数据值,并生成t12-0的识别结果。第三层新节点的输入值的数量值与第三层处理数据的时间段长度值相同。因此,第三层的输出是有效的。整个过程将在层次结构中重复执行,直到所有层级完成,如图7所示。
图7 识别模式下的第三层新节点
4 结论
本文提出了一种新的节点类型,利用新节点集成的HTM网络能够实时并连续地基于不同时间段长度进行检测。新节点结合了HTM网络原有节点的配置,并添加了一个特殊的循环队列。模拟实验证明,本文提出的方法适用于处理动态变化中的数据。
参考文献
[1]H. Ahmadi.Testability of the arbitrage pricing theory by neural networks[J].Ijcnn International Joint Conference on Neural Networks,2012,(1).
[2]Numenta.Introduction to Numenta Technology.Numenta Inc,2007.http://www.numenta.com/about-numenta/numenta-technology.php.
[3]J. Hawkins,D. George.Hierarchical Temporal Memory: Concepts,Theory,and Terminology.Numenta Inc,2006.http://www.numenta.com/Numenta_HTM_Concepts.pdf.
[4]Numenta.Images Example.Numenta Inc,2007.http://www.numenta.com/mediawiki/index.php/Images_Application.
[5]J.Doremalen,L.Boves.Spoken Digit Recognition using a Hierarchical Temporal Memory.Centre for Language and Speech Technology,University of Nijmegen,Netherlands,2008.
[6]D. George,B. Jaros.Zata1 Algorithms Reference.Numenta,Aug. 2007.http://www.numenta.com/for-developers/education/Zeta1AlgorithmsReference.pdf.
[7]D. George,B. Jaros.The HTM Learning Algorithms.Numenta Inc,Mar. 2007.http://www.numenta.com/for-developers/education/Numenta_HTM_Learning_Algos.pdf.
[8]Numenta.Numenta HTM Home page.Numenta Inc, 2007.http://numenta.com/.
[9]T. Robert,D. Duane.Trading equity index futures with a neural network [J].Journal of Portfolio Management,1992,19(1).
[10]L. Duke,J. Long.Neural network futures trading—a feasibility study [J].Society for worldwide interbank financial telecomunications,adaptive intelligent systems,1993.
[11]Sandhya B,Shendkar C,Mahadevappa M.Single Channel Event Related ( De ) Synchronization (ER D/ERS) Analysis of Motor Execution in Stroke Affected Foot Drop Subjects[C]//Proceedings of 2014 Inter-national Conference on Medical Imaging,m-Health and Emerging Communication Systems.Washington D.C.,USA:IEEE Press,2014.
[12]Zhong Jingang,Huang Yu. Time-frequency RepresentationBased on an Adaptive Short-time Fourier Transform[J].IEEE Transactions on Signal Processing,2010,58(10).
[13]Upadhyay D.Classification of EEG Signals Under Different Mental Tasks Using Wavelet Transform and Neural Network with One Step Secant Algorithm[J].International Journal of Scientific Engineering & Technology,2013,2(4).
基金项目:辽宁省高等学校科学研究一般项目(L2014455);辽宁省社科规划基金项目一般项目(L17BTQ005);辽宁省大连外国语大学校级项目(2016XJJS34,2016XJJS30)。
(作者刁建华供职于大连外国语大学软件学院)