本发明属于人工智能类脑计算领域,具体涉及一种面向多核处理器的并发htm空间池设计方法。
背景技术:
htm模拟新脑皮层的结构和运作机理使其与传统人工神经网络模型相比,具有更加复杂的结构和计算过程,从而面临更加严峻的时间开销问题。htm空间池的主要工作过程为,通过计算htm微柱与输入空间的重叠值,线性搜索、选择与输入空间关联程度高的活跃微柱表征输入数据,并调整活跃微柱的近端树突的突触持久值。每个微柱拥有独立的近端树突与输入空间相连,且重叠值的计算和近端树突的调整并不依赖于htm中其他微柱的信息。在单个微柱进行重叠值计算或突触持久值调整时,其余微柱将等待计算资源的分配以完成计算,造成了训练效率的低下。
技术实现要素:
本发明针对现有技术的不足与缺点,提出了一种面向多核处理器的并发htm空间池设计方法,利用多核处理器的多个计算核心并行化空间池活跃微柱选取和学习过程,在不改变htm模型结构的基础上,提升空间池的训练效率。
为了实现上述目的,本发明所采用的技术方案如下:
一种面向多核处理器的并发htm空间池设计方法,包括以下步骤:
步骤1、依据需要选取的活跃微柱数量和计算核心数量确定空间池分区数量以及每个空间池分区中活跃微柱的选取数量;
步骤2、根据确定的分区数量和活跃微柱的选取数量,将htm中的微柱均匀分布到各个空间池分区中,由多个计算核心分别控制各个空间池分区独立、并行计算并选择活跃微柱;
步骤3、根据步骤2选择的活跃微柱,分别由多个cpu核心控制,各空间池分区并行调整活跃微柱的突触持久值,并发完成空间池的学习过程。
进一步,所述步骤1中,依据需要选取的活跃微柱数量和计算核心数量确定分区数量的方法为:
步骤1.1、当设定的活跃微柱数量n小于或等于计算核心数m时,htm将被划分为n个空间池分区;
步骤1.2、当设定的活跃微柱体数量n大于计算核心数m时,取n与m的最大公约数k,将htm空间池划分为k个空间池分区。
进一步,从所述步骤1.1中划分的每个空间池分区中选取1个活跃微柱;
进一步,从所述步骤1.2中划分的每个空间池分区中选取n/k个活跃微柱;
进一步,所述步骤2中选取各空间池分区中活跃微柱的方法为:
步骤2.1、由cpu中的多个计算核心控制、并行遍历各空间池分区中的每个微柱,将每个微柱的重叠值初始化为“0”,遍历微柱的近端树突中的突触,根据持久值将突触置为连通态或非连通态,记录处于连通态的突触,得到连通态突触的集合;
步骤2.2、遍历步骤2.1中得到的突触集合,当突触处于连通态且突触对应的输入位也为活跃态时,微柱的重叠值加“1”;
步骤2.3、当空间池分区所有微柱完成步骤2.1和步骤2.2后,对空间池分区内所有微柱的重叠值降序排列,并设定微柱活跃阈值;遍历分区内各个微柱的重叠值,若大于微柱活跃阈值则将该微柱置为活跃态,若小于等于微柱活跃阈值则将该微柱置为非活跃态,将第i分区得到的活跃微柱集合记为oi;
步骤2.4、当所有的空间池分区完成步骤2.1、步骤2.2和步骤2.3后,将各空间池分区得到的活跃微柱子集组合得到完整的空间池活跃微柱集合o={o1,o2,......,ok-1,ok}。
进一步,设定微柱活跃阈值的方法为:若需在此空间池分区内选取n个活跃微柱,将第n个微柱的重叠值大小作为微柱活跃阈值;
进一步,所述步骤3中,多个计算核心分别控制各个空间池分区并发完成空间池学习的过程如下:
步骤3.1、由cpu中的多个核心控制,并行遍历各空间池分区中每个微柱,查找活跃态微柱;
步骤3.2、查找到活跃态微柱后,遍历活跃态微柱近端树突中的突触,根据突触所连接的输入位调整突触持久值,若突触连接的输入位为“1”,则该突触的持久值将被增加,若突触连接的输入位为“0”,该突触的持久值将被减少;
步骤3.3、重复步骤3.2直至各空间池分区内所有活跃微柱都完成近端树突的调整。
步骤3.4、当所有空间池分区都完成活跃微柱的调整后,空间池完成对当前输入的学习;空间池接收后续输入并重复步骤2和步骤3,直至htm完成对于所有输入的空间池学习。
与现有技术相比,本发明的有益效果:
1.本发明采用基于分区的空间池微柱激活策略,利用多核处理器的并发计算能力将分区策略与多核计算相对应,将活跃微柱的选择由全局线性搜索、查找改进为多分区并行的查找,降低htm空间池训练的时间开销;
2.采用基于分区的空间池微柱激活策略,在降低了htm空间池的时间开销的同时,能使活跃微柱在htm中的分布更加均匀,避免了可能存在的“局部稠密”问题,可提高htm的容错性和鲁棒性;
3.利用cpu核心的并发计算能力,空间池学习方法可并行完成突触持久值的更新,提升htm空间池的训练效率。
附图说明
图1为本发明面向多核处理器的并发htm空间池的工作流程图;
图2为本发明基于分区的htm空间池微柱激活策略图;
图3为本发明并发的htm空间池学习策略图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
如图1所示的一种面向多核处理器的并发htm空间池设计方法的流程图,本发明的并发htm空间池设计方法包括如下步骤:
步骤1:初始化空间池分区:计算htm的空间池分区数量和以及每个空间池分区中活跃微柱的选取数量。
计算htm的空间池分区数量的方法为:在不同的情况下分两种方式计算,第一种是当设定的活跃微柱数量n小于或等于计算核心数m时,htm将被划分为n个空间池分区,从每个空间池分区中选取1个活跃微柱;第二种是当设定的活跃微柱体数量n大于计算核心数m时,取n与m的最大公约数k,将htm划分为k个空间池分区,每个空间池分区中选取n/k个活跃微柱。例如,需选取n=15个活跃微柱,而拥有m=20个计算核心时,htm将被划分为15个空间池分区,从每个空间池分区中选取1个活跃微柱,启用20个计算核心中的15个计算核心并行空间池计算过程。再例如,需选取n=60个活跃微柱,而拥有m=40个计算核心时,计算得到活跃微柱数量和计算核心数量的最大公约数为k=20,则htm将被划分为20个分区,从每个分区中选取3个活跃微柱,启用40个计算核心中的20个计算核心并行空间池计算过程。
步骤2:根据当前输入计算并选取活跃微柱如图2所示,在分区完成后进行并发的活跃微柱选取,设空间池微柱数量为100个,需选取10个活跃微柱。现采用基于空间池分区的空间池微柱激活策略,将100个微柱均匀划分入5个空间池分区,编号1-20的微柱为第一分区;编号21-40的微柱为第二分区;编号41-60的微柱为第三分区;编号61-80的微柱为第四分区;编号81-100的微柱为第五分区,从每个空间池分区中选取出2个活跃微柱。htm在接收到输入后遍历各空间池分区中每个微柱,将每个微柱的重叠值初始化为“0”,遍历微柱的近端树突中的突触,根据持久值将突触置为连通态或非连通态,记录处于连通态的突触,得到连通态突触的集合。遍历连通态突触集合,当突触处于连通态且突触对应的输入位也为活跃态时,微柱的重叠值加“1”。
计算完成后,对各空间池分区内所有微柱的重叠值大小排序降序排列,将第2个微柱的重叠值大小作为微柱的活跃阈值,遍历空间池分区内每个各个微柱的重叠值,若大于阈值则将该微柱置为活跃态,反之则将该微柱置为则为非活跃态,将各空间池分区内活跃微柱;由各空间池分区的活跃微柱共同组成完整的活跃微柱集合o={o1,o2,......,ok-1,ok}。例如在第一分区内的选取的活跃微柱为编号为5和15的微柱,则记为o1={c5,c15},第二、三、四、五分区选取的活跃微柱依次记为o2,o3,o4,o5,则基于分区的空间池微柱激活策略选取的活跃微柱集合为o={o1,o2,o3,o4,o5}。
步骤3:并发空间池学习如图3所示,用于调整各空间池分区中活跃微柱的近端树突,根据近端树突中突触所连接的输入位的活跃状态,提高或降低突触持久值,从而完成htm空间池的并发训练。并发空间池学习的具体过程为:
采用基于分区的空间池微柱激活策略得到选取的活跃微柱集合为o={o1,o2,o3,o4,o5},由cpu中的多个核心控制,并行遍历各分区中每个微柱,查找活跃态微柱并调整其近端树突。以第一分区为例,查找编号为5和15的微柱c5和c15,成功查找到活跃态微柱后c5,遍历其近端树突中的突触,根据突触所连接的输入位调整其持久值,若突触连接的输入位为“1”,则该突触的持久值将被增加设定的参数值大小,若突触连接的输入位为“0”,该突触的持久值将被减少设定的参数值大小,当查找到的第一个活跃微柱c5完成近端树突的调整后,继续查找活跃微柱并重复执行上述近端树突调整过程,直至分区内所有活跃微柱完成近端树突的调整。在第一分区执行上述空间池学习流程时,第二、三、四、五分区中也并行查找o2,o3,o4,o5中的活跃微柱并调整其近端树突,直至所有分区完成并发的空间池学习。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上实施例仅用于说明本发明的设计思想和特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,本发明的保护范围不限于上述实施例。所以,凡依据本发明所揭示的原理、设计思路所作的等同变化或修饰,均在本发明的保护范围之内。