CN102013040A - 信息处理设备、信息处理方法以及程序 - Google Patents
信息处理设备、信息处理方法以及程序 Download PDFInfo
- Publication number
- CN102013040A CN102013040A CN2010102724457A CN201010272445A CN102013040A CN 102013040 A CN102013040 A CN 102013040A CN 2010102724457 A CN2010102724457 A CN 2010102724457A CN 201010272445 A CN201010272445 A CN 201010272445A CN 102013040 A CN102013040 A CN 102013040A
- Authority
- CN
- China
- Prior art keywords
- module
- state
- achmm
- hmm
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Image Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种信息处理设备、信息处理方法以及程序,所述信息处理设备包括:似然值计算单元,被配置为:把要连续提供的观测值的时间序列作为要用于学习的被学习数据,并且对于构建以隐式马尔可夫模型为最小组件模块的学习模型的每个模块,获得在所述模块处可以观测到所述被学习数据的似然值;对象模块确定单元,被配置为:基于所述似然值把学习模型的单个模块、或者新模块确定为对象模块,即隐式马尔可夫模型参数要被更新的对象模块;以及更新单元,被配置为:使用被学习数据来执行用于对对象模块的隐式马尔可夫模型参数进行更新的学习。
Description
技术领域
本发明涉及信息处理设备、信息处理方法以及程序,更具体而言,本发明涉及的信息处理设备、信息处理方法以及程序使得能够对于建模对象获得具有适当规模的学习模型。
背景技术
用于感测建模对象(要由传感器建模的对象)以及使用观测值对要由该传感器输出的传感器信号进行建模(学习模型的学习)的方法包括用于对传感器信号(观测值)进行聚类的k-means聚类方法以及SOM(自组织映射)。
例如,通过k-means聚类方法和SOM,如果我们认为建模对象的某个状态(内部状态)对应于聚类,则在传感器信号的信号空间(观测值的观测空间)内设置状态作为代表向量。
也就是说,对于k-means聚类方法的学习,在信号空间内适当地设置作为初始值的代表向量(质心向量)。此外,在向量(充当每个时间点的传感器信号)作为输入数据的情况下,把输入数据(向量)分配给到该输入数据距离最近的代表向量。随后,根据分配给每个代表向量的输入数据的均值向量,重复代表向量的更新。
对于SOM的学习,把作为初始值的代表向量适当地提供给构建SOM的节点。此外,在向量(充当传感器信号)作为输入数据的情况下,把具有到输入数据距离最近的代表向量的节点确定为优胜节点。随后,执行以下竞争近邻学习:其中,对包括优胜节点的相邻节点的代表向量进行更新,以使得节点的代表向量距优胜节点越近,其代表向量越受输入数据的影响(T.Kohonen,“Self-Organization Map(自组织映射)”(Springer-Verlag东京))。
存在与SOM有关的大量研究,提出了用于在连续增加状态(代表向量)的同时执行学习的被称为“Growing Grid(生长的网络)”的学习方法等(B.Fritzke,“生长的网格-具有恒定邻域范围和适应强度的自组织网络”,神经处理快报(1995),第2卷,第5期,第9-13页(B.Fritzke,“Growing Grid-a self-organizing network with constant neighborhoodrange and adaptation strength”,Neural Processing Letters(1995),Vol.2,No.5,Page 9-13))。
对于诸如上述k-means聚类方法、或者SOM方法的学习,只把状态(代表向量)简单地设置于传感器信号的信号空间内,不获得状态转变信息(关于状态如何改变的信息)。
此外,由于不获得状态转变信息,因此,不容易处理被称为感知混淆的问题,即,以下问题:其中,在即使在建模对象的状态不同时要从建模对象观测的传感器信号也相同的情形中,不容易区分这一点。
具体地,例如,在包括摄像设备的移动机器人通过摄像设备观测景象图像作为传感器信号的情况下,当环境中存在观测到同一景象图像的多个位置时,发生不容易区分这些位置的问题。
另一方面,对HMM(隐式马尔可夫模型)的利用被提出为以下方法:其中,要从建模对象观测的传感器信号被作为时间序列数据来处理,以及使用该时间序列数据,建模对象被学习为具有状态和状态转变的概率模型。
HMM是广泛用于音频识别的模型中的一个模型,并且是在以状态转变概率表示状态可以改变的概率、以输出概率密度函数表示作为观测概率(在每个状态中,当状态改变时,可以观测到某个观测值)的概率密度等的情况下定义的状态转变模型(L.Rabiner,B.Juang,“隐式马尔可夫模型的介绍”,IEEE声学、语言及信号处理杂志,1986年1月,第3卷,第1期,第1部分,第4-16页(L.Rabiner、B.Juang,“An introductionto hidden Markov models”,ASSP Magazine,IEEE,Jan.1986,Volume:3,Issue:1,Part 1,pp.4-16))。
估算HMM的参数(即,状态转变概率,输出密度函数等)以使似然值最大化。作为用于HMM参数(模型参数)的估算方法,广泛采用Baum-Welch重估方法(Baum-Welch算法)。
HMM是能够通过状态转变概率从每个状态改变为另一状态的状态转变模型,根据HMM,在状态改变时对(从)建模对象(观测到的传感器信号)进行建模作为处理。
然而,对于HMM,以概率方式确定要观测的传感器信号对应于哪个状态。因此,作为用于基于要观测的传感器信号来确定似然值变得最高的状态转变过程(即,使似然值最大化的一系列状态(最大似然值状态序列(在下文中,也称作“最大似然值路径”))的方法,广泛采用维特比(Viterbi)算法。
根据维特比算法,可以沿着最大似然值路径唯一地确定与每个时间点的传感器信号相对应的状态。
根据HMM,即使在要从建模对象观测的传感器信号在不同情形(状态)中变得相同时,也可以根据该时间点之前和之后传感器信号的时间改变过程的差别的处理将相同的传感器信号处理为不同的状态转变过程。
注意,对于HMM,没有完全解决感知混淆问题,而是可以把不同状态分配给同一信号,相比于SOM而言建模对象可以被更详细地建模。
顺带提及,对于HMM的学习,在状态的数量和状态转变的数量增加的情况下,没有适当地(正确地)估算参数。
特别地,Baum-Welch重估方法不一定是用于确保最佳参数确定的方法,因此,随着参数数量增大,估算适当的参数变得极其困难。
另外,在建模对象是未知对象的情形中,难以适当地设置HMM的配置、参数的初始值,这也变成妨碍估算适当参数的原因。
对于音频识别,许多年来HMM被有效地用来获得大量研究结果的关键因素包括:要处理的传感器信号限于音频信号、可得到与音频有关的大量发现、左向右型配置的配置对于用于对音频进行适当建模的HMM的配置而言有效等。
因此,在建模对象是未知对象、以及没有预先给出用于确定HMM的初始值和配置的信息的情况下,使得大规模HMM作为实践模型工作是很难的问题。
注意,提出了用于确定HMM配置本身而非预先提供HMM配置的方法(Shiroh Ikeda,“通过HMM的结构搜索来生成音素模型”,电子协会,信息和通信工程论文杂志D-II,第J78-D-II卷,第1期,第10-18页,1995年1月(Shiroh Ikeda,“Generation of Phonemic models byStructure Search of HMM”,the Institute of Electronics,Information andCommunication Engineers paper magazine D-II,Vol.J78-D-II,No.1,pp.10-18,January))。
对于在Shiroh Ikeda,“Generation of Phonemic models by StructureSearch of HMM”,the Institute of Electronics,Information andCommunication Engineers paper magazine D-II,第J78-D-II卷,第一期,第10-18页,1995年1月中描述的方法,在重复以下处理的同时确定HMM的配置:其中,每当HMM状态的数量、或者状态转变的数量一次递增一,就执行参数的估算,并且使用被称为赤池信息准则(Akaike’sInformation Criteria(称作AIC))的估算标准来估算HMM。
在Shiroh Ikeda,“Generation of Phonemic models by StructureSearch of HMM”,the Institute of Electronics,Information andCommunication Engineers paper magazine D-II,第J78-D-II卷,第1期,第10-18页,1995年1月中描述的方法应用于诸如音素模型的小规模HMM。然而,其描述的方法不是把大规模HMM的参数估算考虑在内的方法,因此,难以适当地对复杂建模对象进行建模。
也就是说,通常,简单地执行用于一次添加一个状态和状态转变的校正不一定以单调方式确保评估标准的改进。
因此,对于用大规模HMM表示的复杂建模对象,即使在采用在Shiroh Ikeda,“Generation of Phonemic models by Structure Search ofHMM”,the Institute of Electronics,Information and CommunicationEngineers paper magazine D-II,第J78-D-II卷,第1期,第10-18页,1995年1月中描述的方法时也不一定确定HMM的适当配置。
对于复杂建模对象,提出了以下学习方法:其中,把小规模HMM作为模块即最小组件,以及执行一组模块(模块网络)的整体优化学习(日本待审专利申请公开No.2008-276290;Panu Somervuo,“CompetingHidden Markov Models on the Self-Organizing Map”(隐式马尔可夫模型对自组织映射的竞争),ijcnn(国际神经网络协会),第3169页,IEEE-INNS-ENNS International Joint Conference on Neural Networks(IJCNN′00)-第3卷,2000年;以及R.B.Chinnam,P.Baruah,“Autonomous Diagnostics and Prognostics Through CompetitiveLearning Driven HMM-Based Clustering”(通过竞争式学习驱动的基于HMM的聚类的自主诊断和预断),Proceedings of the International JointConference on Neural Networks(国际神经网络协会学报),2003年7月20-24日,第4卷第2466-2471页)。
对于在日本待审专利申请公开No.2008-276290;Panu Somervuo,“Competing Hidden Markov Models on the Self-Organizing Map”,ijcnn,第3169页,IEEE-INNS-ENNS International Joint Conference on NeuralNetworks(IJCNN′00)-第3卷,2000中描述的方法,把小规模HMM分配给每个节点的SOM被用作学习模型,以及执行竞争邻域学习。
在日本待审专利申请公开No.2008-276290;Panu Somervuo,“Competing Hidden Markov Models on the Self-Organizing Map”,ijcnn,第3169页,IEEE-INNS-ENNS International Joint Conference on NeuralNetworks(IJCNN′00)-第3卷,2000年中描述的学习模型是具有SOM聚类能力、以及HMM时间序列数据的结构特征的模型,但是必须预先设置SOM节点(模块)的数量,在预先不知道建模对象的规模的情形中,难以把这些内容应用于这种情形。
另外,对于在R.B.Chinnam,P.Baruah,“Autonomous Diagnosticsand Prognostics Through Competitive Learning Driven HMM-BasedClustering”,Proceedings of the International Joint Conference on NeuralNetworks,2003年7月20-24日,第4卷第2466-2471页中描述的方法,在以HMM为模块的情况下执行多个模块的竞争学习。也就是说,对于在R.B.Chinnam,P.Baruah,“Autonomous Diagnostics and PrognosticsThrough Competitive Learning Driven HMM-Based Clustering”,Proceedings of the International Joint Conference on Neural Networks,2003年7月20-24日,第4卷第2466-2471页中描述的方法,准备一定数量的HMM模块,对于输入数据计算每个模块的似然值。然后,通过把输入数据提供给获得最大似然值的(优胜者)模块的HMM来执行学习。
对于在R.B.Chinnam,P.Baruah,“Autonomous Diagnostics andPrognostics Through Competitive Learning Driven HMM-BasedClustering”,Proceedings of the International Joint Conference on NeuralNetworks,2003年7月20-24日,第4卷第2466-2471页中描述的方法,也以与对于在Panu Somervuo,“Competing HiddenMarkov Models onthe Self-Organizing Map”,ijcnn,第3169页,IEEE-INNS-ENNSInternational Joint Conference on Neural Networks(IJCNN′00)-第3卷,2000年中描述的方法相同的方式,必须预先设置模块的数量,在预先不知道建模对象的规模的情形中,难以将其应用于这种情形。
发明内容
使用根据相关领域的学习方法,在预先不知道建模对象的规模的情形中,特别地,例如,难以对大规模建模对象获得适当规模的学习模型。
因此,已经发现期望使得即使在预先不知道建模对象的规模时也能够对建模对象获得适当规模的学习模型。
根据本发明实施例的程序或信息处理设备是一种用于使计算机作为包括以下单元的信息处理设备的程序或信息处理设备:似然值计算单元,被配置为:把要被连续提供的观测值的时间序列作为要被用于学习的被学习数据,以及,对于构建具有HMM(隐式马尔可夫模型)作为模块(该模块是最小组件)的学习模型的每个模块,以获得可以在所述模块处观测到所述被学习数据的似然值;对象模块确定单元,被配置为:基于所述似然值把所述学习模型的单个模块、或者新模块确定为对象模块,该对象模块是HMM参数要被更新的对象模块;以及更新单元,被配置为:使用所述被学习数据来执行用于对所述对象模块的HMM参数进行更新的学习。
根据本发明实施例的信息处理方法是一种用于信息处理设备的信息处理方法,包括如下步骤:把要被连续提供的观测值的时间序列作为要被用于学习的被学习数据,以及,对于构建以HMM(隐式马尔可夫模型)为最小组件模块的学习模型的每个模块,以获得在所述模块处可以观测到所述被学习数据的似然值;基于所述似然值把所述学习模型的单个模块、或者新模块确定为对象模块,所述对象模块是HMM参数要被更新的对象模块;以及使用所述被学习数据执行用于对所述对象模块的HMM参数进行更新的学习。
对于上述配置,把要连续提供的观测值的时间序列作为要用于学习的被学习数据,以及,对于构建以HMM(隐式马尔可夫模型)为最小组件模块的学习模型的每个模块,获得在所述模块处可以观测到所述被学习数据的似然值,基于所述似然值把所述学习模型的单个模块、或者新模块确定为对象模块,所述对象模块是HMM参数要被更新的模块。随后,使用所述被学习数据执行用于对所述对象模块的HMM参数进行更新的学习。
注意,信息处理设备可以是独立设备,或者可以是构建单个设备的内部部件。
另外,可以通过经由传输介质传输、或者在记录介质中记录来提供程序。
根据上述配置,可以对建模对象获得适当规模的学习模型。特别地,例如,对大规模建模对象可以容易地获得适当的学习模型。
附图说明
图1是示出应用了根据本发明的信息处理设备的学习设备的第一实施例的配置示例的框图;
图2是描述要从观测时间序列缓存器提供给模块学习单元的观测值时间序列的图;
图3是示出HMM(隐马尔可夫模型)的示例的图;
图4是示出要用于音频识别的HMM的示例的图;
图5是示出小世界网络的示例的图;
图6是示出ACHMM(追加竞争隐马尔可夫模型)的示例的图;
图7是描述ACHMM学习(模块学习)的概况的图;
图8是示出模块学习单元的配置示例的框图;
图9是描述模块学习处理的流程图;
图10是描述对象模块确定处理的流程图;
图11是描述现有模块学习处理的流程图;
图12是描述新模块学习处理的流程图;
图13是示出按照高斯分布G1至G3中每个高斯分布的观测值的示例的图;
图14是示出用于启动高斯分布G1至G3的时序的示例的图;
图15是示出系数、均值向量之间的距离以及构建学习之后的ACHMM的模块的数量之间的关系的图;
图16是示出在学习之后的ACHMM的模块数量是3至5的情形中的系数以及均值向量之间的距离的图;
图17是描述模块学习处理的流程图;
图18是描述现有模块学习处理的流程图;
图19是描述新模块学习处理的流程图;
图20是示出识别单元的配置示例的框图;
图21是描述识别处理的流程图;
图22是示出转变信息管理单元的配置示例的框图;
图23是描述生成转变信息的转变信息管理单元的转变信息生成处理的图;
图24是描述转变信息生成处理的流程图;
图25是示出HMM配置单元的配置示例的框图;
图26是描述由HMM配置单元进行的组合的HMM配置方法的图;
图27是描述用于通过HMM配置单元获得组合的HMM的HMM参数的方法的具体示例的图;
图28是示出应用了学习设备的行动体的第一实施例的配置示例的框图;
图29是描述动作控制器获得动作函数的学习处理的流程图;
图30是描述动作控制处理的流程图;
图31是描述规划处理的流程图;
图32是描述由行动体进行的ACHMM学习的概况的图;
图33是描述由行动体进行的组合的HMM的重新配置的概况的图;
图34是描述由行动体进行的规划的概况的图;
图35是示出由在运动环境内移动的行动体进行的组合的HMM的重新配置、以及ACHMM学习的示例的图;
图36是示出由在运动环境内移动的行动体进行的组合的HMM的重新配置、以及ACHMM学习的另一示例的图;
图37是示出要通过行动体在运动环境内移动的情形中使用ACHMM的识别来获得的最大似然值模块的索引的时间序列的图;
图38是描述具有两个分级的分级结构的ACHMM的图,其中,低级ACHMM和高级ACHMM连接为分级结构;
图39是示出行动体的运动环境的示例的图;
图40是示出应用了根据本发明的信息处理设备的学习设备的第二实施例的配置示例的框图;
图41是示出ACHMM分级处理单元的配置示例的框图;
图42是示出ACHMM单元的ACHMM处理单元的配置示例的框图;
图43是描述由输出控制单元进行的输出数据输出控制的第一输出控制方法的图;
图44是描述由输出控制单元进行的输出数据输出控制的第二输出控制方法的图;
图45是描述在低级单元输出类型1和2中每个类型的识别结果信息的情形中高级单元的HMM状态的粒度的图;
图46是描述由输入控制单元进行的输入数据输入控制的第一输入控制方法的图;
图47是描述由输入控制单元进行的输入数据输入控制的第二输入控制方法的图;
图48是描述作为ACHMM模块的HMM的观测概率的扩展的图;
图49是描述单元生成处理的流程图;
图50是描述单元学习处理的流程图;
图51是示出应用了学习设备的行动体的第二实施例的配置示例的框图;
图52是示出除了最低等级以外的h分级等级的ACHMM单元的配置示例的框图;
图53是示出最低等级的ACHMM单元的配置示例的框图;
图54是描述要由目标状态指定单元的规划单元执行的动作控制处理的流程图;
图55是描述要由中间层单元的规划单元执行的动作控制处理的流程图;
图56是描述要由最低层单元的规划单元执行的动作控制处理的流程图;
图57是示意性地示出在分级ACHMM由三个分级等级的ACHMM单元配置成的情形中每个分级等级的ACHMM的图;
图58是描述要由模块学习单元执行的模块学习处理的另一示例的流程图;
图59是描述样本保存处理的流程图;
图60是描述对象模块确定处理的流程图;
图61是描述临时学习处理的流程图;
图62是描述ACHMM熵计算处理的流程图;
图63是描述用于基于后验概率确定对象模块的处理的流程图;
图64是示出应用了根据本发明的信息处理设备的学习设备的第三实施例的配置示例的框图;
图65是示出变成模块追加架构类型学习模型的模块的作为时间序列模式存储模型的RNN(递归神经网络)的示例的图;
图66是描述要由模块学习单元执行的模块追加架构类型学习模型的学习处理(模块学习处理)的流程图;以及
图67是示出应用了本发明的计算机的实施例的配置示例的框图。
具体实施方式
1.第一实施例
学习设备的配置示例
图1是示出应用了根据本发明的信息处理设备的学习设备的第一实施例的配置示例的框图。
在图1中,基于要从建模对象观测的观测值,学习设备学习用于提供建模对象的统计动态属性的学习模型(执行建模)。
现在,假定学习设备没有关于建模对象的初步知识,但是可以具有初步知识。
学习设备包括传感器11、观测时间序列缓存器12、模块学习单元13、识别单元14、转变信息管理单元15、ACHMM(追加竞争隐式马尔可夫模型)存储单元16以及HMM配置单元17。
传感器11在每个时间点感测建模对象以输出观测值,所述观测值是要在时间序列上从建模对象观测的传感器信号。
观测时间序列缓存器12暂时存储从传感器11输出的观测值的时间序列。把观测时间序列缓存器12中存储的观测值的时间序列连续提供给模块学习单元13和识别单元14。
注意,观测时间序列缓存器12至少具有足够存储后面所述窗口长度W的观测值的存储容量,在存储其观测值达存储容量之后,去除最旧的观测值,存储新的观测值。
模块学习单元13是以下学习模型:该学习模型把使用要从观测时间序列缓存器12连续提供的观测值的时间序列的、存储于ACHMM存储单元16中的HMM作为模块(最小组件),并执行后面所述的ACHMM(追加竞争隐式马尔可夫模型)的学习。
识别单元14使用在ACHMM存储单元16中存储的ACHMM来识别(辨识)要从观测时间序列缓存器12连续提供的观测值的时间序列,并输出表示其识别结果的识别结果信息。
把从识别单元14输出的识别结果信息提供给转变信息管理单元15。注意,可以把识别结果信息输出到(学习设备的)外部。
转变信息管理单元15生成转变信息,所述转变信息是在ACHMM存储单元16中存储的ACHMM的每个状态转变的频率信息,并把转变信息提供给ACHMM存储单元16。
ACHMM存储单元16存储ACHMM(的模型参数),ACHMM是把HMM作为模块(最小组件)的学习模型。
模块学习单元13、识别单元14以及转变信息管理单元15在适当时引用在ACHMM存储单元16中存储的ACHMM。
注意,ACHMM的模型参数中包括:HMM(构建ACHMM的模块)的模型参数(HMM参数)以及要由转变信息管理单元15生成的转变信息。
HMM配置单元17根据在ACHMM存储单元16中存储的ACHMM来配置(比作为构建ACHMM的模块的HMM)更大规模的HMM(在下文中,也称作组合的HMM)。
也就是说,HMM配置单元17使用在ACHMM存储单元16中存储的转变信息来组合构建ACHMM存储单元16中存储的ACHMM的多个模块,从而构成作为单个HMM的组合的HMM。
观测值
图2是描述图1中要从观测时间序列缓存器12提供给模块学习单元13(和识别单元14)的观测值的时间序列的图。
如上所述,传感器11(图1)按时间序列输出观测值(所述观测值是要从建模对象(环境、系统、现象等)观测的传感器信号),观测值的时间序列被从观测时间序列缓存器12提供给模块学习单元13。
现在,比如说:传感器11在时间点t输出观测值ot,则把最新观测值的时间序列(即,时间点t的时间序列数据Ot={ot-W+1、...、ot},自时间点t起的以往W个时间点的观测值的时间序列)从观测时间序列缓存器12提供给模块学习单元13。
现在,要被提供给模块学习单元13的时间序列数据Ot的长度W(在下文中,也称作窗口长度W)是关于以多少时间粒度将建模对象的动态属性划分成根据概率统计状态转变模型(此处,HMM)的状态的指标,并且被预先设置。
在图2中,窗口长度W是5。设想把窗口长度W设置为HMM(ACHMM的模块)的状态数量的1.5至2倍的值,例如,在HMM的状态数量是9的情形中,可以采用15等作为窗口长度W。
注意,要从传感器11输出的观测值可以是取连续值的向量(包括一维向量数量值),或者可以是取离散值的符号。
在观测值是向量(观测向量)的情形中,采用具有以下概率密度的连续HMM作为HMM(作为ACHMM的模块):观测值可以被观测作为参数(HMM参数)。另外,在观测值是符号的情形中,采用具有以下概率的离散HMM作为HMM(作为ACHMM的模块):观测值可以被观测作为HMM参数。
ACHMM
接下来,将对ACHMM进行描述,但是在此之前,将对作为ACHMM的模块的HMM进行简要描述。
图3是示出HMM的示例的图。
HMM是由状态和状态转变构建的状态转变模型。
图3中的HMM是具有三个状态s1、s2以及s3的HMM,在图3中,圆形标记表示状态,箭头表示状态转变。
HMM是通过状态转变概率aij、每个状态sj中的观测概率bj(x)以及每个状态si中的初始(状态)概率πi来限定的。
状态转变概率aij表示从状态si向状态sj可能发生状态转变的概率,初始概率πi表示发生状态转变之前的第一个状态可能是状态si的概率。
观测概率bi(x)表示在状态sj中可能观测到观测值x的概率。在观测值x是离散值(符号)的情形中(在HMM是离散HMM的情形中),作为概率的值被用为观测概率bj(x),但是在观测值x是连续值(向量)的情形中(在HMM是连续HMM的情形中),概率密度函数被用为观测概率bi(o)。
作为充当观测概率bj(x)的概率密度函数(在下文中,也称作输出概率密度函数),例如采用污染正态概率分布。例如,比如说:采用高斯分布的污染分布作为输出概率密度函数(观测概率)bj(x),则用表达式(1)表示输出概率密度函数bj(x)。
现在,比如说:在表达式(1)中,对于N[x,μjk,∑jk],观测值x是D维向量,则用D维向量μjk表示均值向量,协方差矩阵表示用D行×D列的矩阵∑jk表示的高斯分布。
此外,V表示要混合的高斯分布的总数量(混合体的数量),cjk表示在混合V个高斯分布时第k个高斯分布N[x,μjk,∑jk]的加权因子(混合加权因子)。
限定HMM的状态转变概率aij、输出概率密度函数(观测概率)bj(x)、以及初始概率πi是HMM的参数(HMM参数),在下文中,用λ=[aij,bj(x),πi,i=1、2、…、N,j=1、2、…、N]来表示HMM参数。注意,N表示HMM状态的数量(状态的数量)。
通常根据L.Rabiner、B.Juang,“An introduction to hidden Markovmodels(隐式马尔可夫模型的介绍)”,ASSP Magazine,IEEE,1986年1月,第3卷,第1期,第1部分,第4-16页等中描述的Baum-Welch算法(Baum-Welch重估方法)来执行HMM参数的估算,即,HMM的学习。
Baum-Welch算法是基于EM(最大期望值算法)算法的参数估算方法,在EM算法中,估算HMM参数λ,使得要从出现概率获得的对数似然值最大化,其中,基于时间序列数据x=x1、x2、…、xT,从HMM观测到(出现)该时间序列数据x。
此处,对于时间序列数据x=x1、x2、…、xT,x表示在时间点t的观测值,T表示时间序列数据的长度(构建时间序列数据的观测值xt的数量)。
注意,Baum-Welch算法是用于使对数似然值最大化的参数估算方法,但是不确保最佳性,因此,出现以下问题:其中,根据HMM的配置(HMM状态的数量、或者可用状态转变)或者HMM参数的初始值,HMM参数收敛于局部解。
对音频识别广泛采用了HMM,但是对于用于音频识别的HMM,常常预先调整状态的数量、状态转变等。
图4是示出对音频识别采用的HMM的示例的图。
图4中的是被称为左向右型的HMM,其中,只允许自身转变以及从当前状态向右边状态的状态转变作为状态转变。
图4中的HMM以与图3中的HMM相同的方式包括三个状态s1至s3,但是其状态转变限于以下配置:只允许自身转变以及从当前状态向右边状态的状态转变。
此处,对于图3中的上述HMM,状态转变没有限制,可获得向任意状态的状态转变,但是把可获得向任意状态的状态转变的这种HMM称作遍历HMM(遍历型HMM)。
即使在HMM的状态转变根据建模对象只限于部分状态转变时也可以执行(适当的)建模,但是此处,考虑了初步知识诸如建模对象的规模等(即,用于确定HMM配置的信息,诸如,对于建模对象的适当状态的数量、如何应用状态转变的限制等)预先可能是未知的,并且因此,假定:没有提供这种信息。
在此情形中,对于建模对象的建模,期望采用配置灵活性最高的遍历型HMM。
然而,对于遍历型HMM,状态数量的增加妨碍容易地执行HMM参数的估算。
例如,在状态的数量是1000的情形中,状态转变的数量是一百万种方式,并且因此,必须估算一百万个概率作为状态转变概率。
因此,在存在用于对建模对象进行适当(准确)建模的许多HMM状态的情形中,必须花费巨大的计算成本用于HMM参数的估算,作为其结果,不容易执行HMM学习。
因此,对于图1中的学习设备,采用包括HMM作为模块的ACHMM而非HMM本身作为用于建模对象进行建模的学习模型。
ACHMM是基于以下假想的学习模型:可以用小世界网络表示大多数自然现象。
图5是示出小世界网络的示例的图。
小世界网络由局部配置的重复存在网络(小世界)、以及小世界(局部配置)之间连接的细小网络构建。
对于ACHMM,用小规模HMM(具有少数状态)(与小世界网络的局部配置等同的模块)而非大规模遍历HMM来执行用于提供建模对象的概率统计动态属性的状态转变模型的模型参数估算。
此外,对于ACHMM,作为与用于连接小世界网络的局部配置的网络等同的局部配置之间的转变(状态转变)有关的模型参数,需要模块之间状态转变的频率等。
图6是示出ACHMM的示例的图。
ACHMM包括作为模块(最小组件)的HMM。
对于ACHMM,可以设想总共三个类型的状态转变:构建作为模块的HMM的状态之间的状态转变(状态之间的转变)、某个模块的状态与包括该模块的任意模块的状态之间的状态转变(模块状态之间的转变)、以及某个模块(的任意状态)与包括该模块的任意模块(的任意状态)之间的状态转变(模块之间的转变)。
注意,某个模块的HMM的状态转变是某个模块的状态与其模块的状态之间的状态转变,此后,模块状态之间的转变中在适当时包括这一点。
作为充当模块的模块,采用小规模HMM。
对于大规模HMM,即,状态的数量以及状态转变的数量大的HMM,必须花费巨大的计算成本用于HMM参数的估算,另外,妨碍HMM参数的准确估算以适当地表达建模对象。
采用小规模HMM作为充当模块的HMM,作为一组这些模块的ACHMM被用作用于对建模对象进行建模的学习模型,可以减少计算成本,另外,相比于采用大规模HMM作为学习模型的情形,可以执行HMM参数的准确估算。
图7是用于描述ACHMM学习(模块学习)的概况的图。
对于ACHMM学习(模块学习),例如,将窗口长度W的时间序列数据Ot作为要被用于在每个时间点t进行学习的被学习数据,通过竞争学习机制从构建ACHMM的模块中选择对于被学习数据Ot的一个最佳模块。
然后,把从构建ACHMM的模块中选择出的一个模块、或者新模块确定为对象模块,该对象模块是HMM参数要被更新的模块,连续执行该对象模块的追加学习。
因此,对于ACHMM学习,可以执行构建ACHMM的一个模块的追加学习,或者可以生成新模块以执行该新模块的追加学习。
注意,在ACHMM学习时,在转变信息管理单元15处执行后面所述的转变信息生成处理,还获得作为对于ACHMM而言每个状态转变的频率信息的转变信息,诸如,图6中描述的模块状态之间转变的信息(模块状态之间的转变信息)、或者模块之间转变的信息(模块之间的转变信息)。
作为构建ACHMM的模块(HMM),采用小规模HMM(具有少数状态的HMM)。对于本实施例,例如,采用状态数量为9的遍历HMM。
此外,对于本实施例,假定:采用混合体数量为1(即,单个概率密度)的高斯分布作为HMM(作为模块)的输出概率密度函数bj(x),作为每个状态sj的输出概率密度函数bj(x)的高斯分布的协方差矩阵∑j(诸如表达式(2)中所表示的那样)是除了对角线分量以外的分量均为零的矩阵。
此外,如果以协方差矩阵∑j的对角线分量σ2 j1、σ2 j2、...、σ2 jD作为分量的向量被称作离差(向量)σ2 j,并且此外,用向量μj表示作为输出概率密度函数bj(x)的高斯分布的均值向量,则使用均值向量μi以及离差σ2 j通过λ={aij,μi,σ2 j,πi,i=1、2、...、N,j=1、2、...、N}而非输出概率密度函数bj(x)表示HMM参数λ。
对于ACHMM学习(模块学习),估算HMM参数λ={aij,μi,σ2 j,πi,i=1、2、...、N,j=1、2、...、N}。
模块学习单元13的配置示例
图8是示出图1中模块学习单元13的配置示例的框图。
模块学习单元13执行ACHMM(把小规模HMM(模块化状态转变模型)作为模块的学习模型)的学习(模块学习)。
对于由模块学习单元13进行的模块学习,采用以下模块架构:其中,在每个时间点对被学习数据Ot获得构建ACHMM的每个模块的似然值,连续执行用于对具有最大似然值的模块(在下文中,也称作最大似然值模块)的HMM参数进行更新的竞争学习型学习(竞争学习)、或者用于对新模块的HMM参数进行更新的模块追加型学习。
因此,对于模块学习,混合了执行竞争学习型学习的情形以及执行模块追加型学习的情形,并且因此,对于本实施例,把以下学习模型称作追加竞争HMM(ACHMM):该学习模型把HMM作为充当这种模块学习对象的模块。
采用这种模块架构,由此可以用ACHMM(一组小规模HMM)来表示(因此,便于参数的估算)未使用大规模HMM表示(因此,妨碍参数的估算)的建模对象。
另外,对于模块学习,除了竞争学习型学习之外,还执行模块追加型学习,并且因此,在以下情况下可以执行学习,以使得人建立他的/她的经验:对于要从建模对象观测的观测值的观测空间(要从传感器11(图1)输出的传感器信号的信号空间),预先不知道实际上可以观测到观测值的范围,并且随着ACHMM学习的推进,实际上要被观测的观测值的范围得以延伸。
在图8中,模块学习单元13包括似然值计算单元21、对象模块确定单元22以及更新单元23。
在观测时间序列缓存器12中存储的观测值的时间序列被提供给似然值计算单元21。
似然值计算单元21把要从观测时间序列缓存器12连续提供的观测值的时间序列作为要用于学习的被学习数据,以及对于构建在ACHMM存储单元16中存储的ACHMM的每个模块,获得用该模块可以观测到被学习数据的似然值,并把该似然值提供给对象模块确定单元22。
此处,如果用oτ表示从时间序列数据的首部起的第τ个样本,则可以用O={oτ=1、...、oτ=L}来表示具有某一长度L的时间序列数据O。
对于似然值计算单元21,根据前向算法(前向处理)来获得作为HMM(用HMM参数λ限定的HMM)的模块λ对于时间序列数据O的似然值P(O|λ)。
对象模块确定单元22基于从似然值计算单元21提供的构建ACHMM的每个模块的似然值来将ACHMM的一个模块或者新模块确定为HMM参数要被更新的对象模块,并把表示(指定)该对象模块的模块索引提供给更新单元23。
被学习数据(即,与要从观测时间序列缓存器12提供给似然值计算单元21的观测值相同的观测值时间序列)从观测时间序列缓存器12被提供给更新单元23。
更新单元23使用来自观测时间序列缓存器12的被学习数据来执行用于对以下对象模块的HMM参数进行更新的学习,以使用更新之后的HMM参数来更新ACHMM存储单元16的存储内容:该对象模块即是要从对象模块确定单元22提供的模块索引表示的模块。
此处,对于更新单元23,执行追加学习(新时间序列数据(被学习数据)相对于已经获得的(时间序列)模式对HMM的影响的学习)作为用于对HMM参数进行更新的学习。
通常,通过以下处理(在下文中,也称作连续学习Baum-Welch算法处理)执行在更新单元23的追加学习:该处理用于把根据要以批处理方式执行的Baum-Welch算法的HMM参数估算处理扩展为要被连续执行的处理(在线处理)。
对于连续学习Baum-Welch算法处理,采用Baum-Welch算法(Baum-Welch重估方法),通过如下内容的加权相加来获得要被用于该HMM参数估算的新内部参数ρi new、vj new、ξj new、xij new以及ψi new:要根据被学习数据计算的前向概率αi(τ),被学习数据内部参数ρi、vj、ξj、xij以及ψi(作为要使用后向概率βi(τ)获得的内部参数),以及用于先前的HMM参数估算的内部参数的先前内部参数ρi old、vj old、ξj old、xij old以及ψi old(这些是要被用于HMM参数λ估λ估算的内部参数),并且使用新内部参数ρi new、vj new、ξj new、xij new、以及ψi new(重新)估算对象模块的HMM参数λ。
也就是说,更新单元23把用于在该估算时进行更新之前估算HMM参数λold的先前内部参数ρi old、vj old、ξj old、xij old以及ψi old(即,内部参数ρi old、vj old、ξj old、xij old、以及ψi old)预先存储于例如ACHMM存储单元16中。
此外,更新单元23根据作为被学习数据的时间序列数据O={oτ=1、...、oτ=L}、以及更新之前的HMM参数λold的HMM(λold)来获得前向概率αi(τ)和后向概率βi(τ)。
此处,前向概率αi(τ)是在HMM(λold)中观测到时间序列数据o1、o2、...、oτ的概率,状态si可以在时间点τ。
另外,后向概率βi(τ)是以下概率:在HMM(λold)中状态si在时间点τ,此后,可以观测到时间序列数据oτ+1、oτ+2、...、oL。
在获得前向概率αi(τ)和后向概率βi(τ)之后,更新单元23使用该前向概率αi(τ)和后向概率βi(τ)以分别按照表达式(3)、(4)、(5)、(6)以及(7)获得被学习数据内部参数ρi、vj、ξj、xij以及ψi。
此处,要根据表达式(3)至(7)获得的被学习数据内部参数ρi、vj、ξj、xij以及ψi与要在根据要按批处理执行的Baum-Welch算法估算HMM参数的情形中获得的内部参数相匹配。
然后,更新单元23通过根据表达式(8)、(9)、(10)、(11)以及(12)加权相加(即,通过如下内容的加权相加:ACHMM存储单元16中存储的、用于前次HMM参数估算的先前内部参数ρi old、vj old、ξj oid、xij old、以及ψi old,被学习数据内部参数ρi、vj、ξj、xij、以及ψi)来获得要用于此次HMM参数估算的新内部参数ρi new、vj new、ξj new、xij new以及ψi new。
ρi new=(1-γ)ρi old+γρi...(8)
vj new=(1-γ)vj old+γvj...(9)
ξj new=(1-γ)ξj old+γξj...(10)
xij new=(1-γ)xij old+γxi j...(11)
ψi new=(1-γ)ψi old+γψi...(12)
此处,表达式(8)至(12)中的γ是用于加权相加的权重,并且取0≤γ≤1的值。可以采用以下学习率作为权重γ:表示对于HMM已经对获得的(时间序列)模式影响新时间序列数据(被学习数据)O的程度。用于获得学习率γ的方法将在后面进行描述。
在获得新内部参数ρi new、vj new、ξj new、xij new以及ψi new之后,更新单元23根据表达式(13)、(14)、(15)以及(16)使用新内部参数ρi new、vj new、ξj new、xij new以及ψi new来获得HMM参数λnew={aij new,μi new,σ2 j new,πi new,i=1、2、...、N,j=1、2、...、N},从而把HMM参数λold更新为HMM参数λnew。
模块学习处理
图9是描述要由图8中的模块学习单元13执行的模块学习的处理(模块学习处理)的流程图。
在步骤S11中,更新单元23执行初始化处理。
此处,对于初始化处理,更新单元23生成预定数量N(例如,N=9等)个状态的遍历HMM,作为构建ACHMM的第一模块#1。
也就是说,对于作为模块#1的HMM(遍历HMM)的HMM参数λ={aij,μi,σ2 j,πi,i=1、2、...、N,j=1、2、...、N},更新单元23把N×N个状态转变概率aij设置为例如1/N(初始值),并且还把N个初始概率πi设置为例如1/N(初始值)。
此外,更新单元23把N个均值向量设置为观测空间内适当点的坐标(例如,随机坐标),并把N个离差σ2 i(以表达式(2)中的σ2 j1、σ2 j2、...、σ2 jD为分量的D维向量)设置为作为初始值的适当值(例如,随机值)。
注意,在传感器11可以对观测值ot进行归一化以输出此内容的情形中,即,在把D维向量(即传感器11(图1)输出的观测值ot)的D个分量中的每个分量归一化为例如范围在0与1之间的值的情形中,每个分量可以采用D维向量(例如0.5)作为均值向量μi的初始值。另外,每个分量可以采用D维向量(例如0.01)作为离差σ2 i的初始值。
此处,将会把构建ACHMM的第m个模块称作模块#m,还将会把作为模块#m的HMM的HMM参数称作λm。另外,对于本实施例,将会使用m作为模块#m的模块索引。
在生成模块#1之后,更新单元23把模块总量M(表示构建ACHMM的模块总数量的变量)设置为1,并且还把学习频率(或学习量)Nlearn[m=1](表示执行了模块#1的学习的次数(或量)的(阵列)变量)设置为作为初始值的0。
然后,在观测值ot从传感器11输出并且在观测时间序列缓存器12中存储之后,处理从步骤S11进入步骤S12,模块学习单元13把时间点t设置为1,处理进入步骤S13。
在步骤S13中,模块学习单元13判断时间点t是否等于窗口长度W。
在步骤S13中判断出时间点t不等于窗口长度W的情况下,即,在时间点t小于窗口长度W的情况下,处理在等到下一个观测值ot从传感器11输出并且在观测时间序列缓存器12中存储之后进入步骤S14。
在步骤S14中,模块学习单元13使时间点t递增一,处理返回步骤S13,此后,重复同样的处理。
另外,在步骤S13中判断出时间点t等于窗口长度W的情况下,即,在把时间序列数据Ot=W={o1、...、oW}(观测值时间序列的窗口长度W)存储于观测时间序列缓存器12中的情况下,对象模块确定单元22把由单个模块#1构建的ACHMM中的该模块#1确定为对象模块。
然后,对象模块确定单元22把表示作为对象模块的模块#1的模块索引m=1提供给更新单元23,处理从步骤S13进入步骤S15。
在步骤S15中,更新单元23使模块#1(用来自对象模块确定单元22的模块索引m=1表示的对象模块)的学习频率Nlearn[m=1]递增例如一。
此外,在步骤S15中,更新单元23根据表达式γ=1/(Nlearn[m=1]+1)获得作为对象模块的模块#1的学习率γ。
然后,更新单元23把观测时间序列缓存器12中存储的窗口长度W的时间序列数据Ot=W={o1、...、oW}作为被学习数据,并使用此被学习数据Ot=W来用学习率γ=1/(Nlearn[m=1]+1)执行作为对象模块的模块#1的追加学习。
也就是说,更新单元23根据上述表达式(3)至(16)来更新ACHMM存储单元16中存储的作为对象模块的模块#1的HMM 参数λm=1。
然后,在等到下一个观测值ot从传感器11输出并且在观测时间序列缓存器12中存储之后,处理从步骤S15进入步骤S16。在步骤S16中,模块学习单元13使时间点t递增一,处理进入步骤S17。
在步骤S17中,似然值计算单元21把观测时间序列缓存器12中存储的窗口长度W的最新时间序列数据Ot={ot-W+1、...、ot}作为被学习数据,并获得对于构建在ACHMM存储单元16中存储的ACHMM的所有模块#1至#M中的每个模块用模块#m可以观测到被学习数据Ot的似然值(在下文中,也称作模块似然值)P(Ot|λm)。
此外,在步骤S17中,似然值计算单元21把模块#1至#M的模块似然值P(Ot|λ1)、P(Ot|λ2)、...、P(Ot|λM提供给对象模块确定单元22,处理进入步骤S18。
在步骤S18中,对象模块确定单元22获得构建ACHMM的模块#1至#M中的最大似然值模块#m*=argmaxm[P(Ot|λm)],即来自似然值计算单元21的模块似然值P(Ot|λm)最大的模块。
此处,argmaxm[]表示使括号[]内的随索引(模块索引)m而改变的值最大化的索引m=m*。
对象模块确定单元22进一步获得最大似然值(最大对数似然值)(似然值的对数的最大值)maxLP=maxm[P(Ot|λm)],即来自似然值计算单元21的模块似然值P(Ot|λm)的最大值。
此处,maxm[]表示括号[]内的随索引m而改变的值的最大值。
在对象模块确定单元22获得最大似然值模块#m*以及最大对数似然值maxLP之后,处理从步骤S18进入步骤S19,在步骤S19中,对象模块确定单元22基于最大对数似然值maxLP执行后面描述的对象模块确定处理,该对象模块确定处理用于把最大似然值模块#m*或者新模块(要新生成的HMM)确定为HMM参数要被更新的对象模块。
随后,对象模块确定单元22把对象模块的模块索引提供给更新单元23,处理从步骤S19进入步骤S20。
在步骤S20中,更新单元23判断由来自对象模块确定单元22的模块索引表示的对象模块是最大似然值模块#m*还是新模块。
另外,在步骤S20中判断出对象模块是新模块的情况下,处理进入步骤S22,在步骤S22,更新单元23执行用于对新模块的HMM参数进行更新的新模块学习处理。
在步骤S21中的现有模块学习处理以及步骤S22中的新模块学习处理之后,在任一情形中,处理在等到下一个观测值ot从传感器11输出并在观测时间序列缓存器12中存储之后返回步骤S16,此后,重复同样的处理。
图10是描述要在图9中的步骤S19中执行的对象模块确定处理的流程图。
对于对象模块确定处理,在步骤S31中,对象模块确定单元22(图8)判断最大对数似然值maxLP(最大似然值模块#m*的对数似然值)是否例如等于或大于作为预定阈值的阈值似然值TH。
在步骤S31中判断出最大对数似然值maxLP等于或大于阈值似然值TH的情况下,即,在最大对数似然值maxLP(最大似然值模块#m*的似然值的对数)在某种程度上是较大值的情况下,处理进入步骤S32,在步骤S32中,对象模块确定单元22把最大似然值模块#m*确定为对象模块,处理返回。
另外,在步骤S31中判断出最大对数似然值maxLP小于阈值似然值TH的情况下,即,在最大对数似然值maxLP(最大似然值模块#m*的似然值的对数)是较小值的情况下,处理进入步骤S33,在步骤S33中,对象模块确定单元22把新模块确定为对象模块,处理返回。
图11是描述要在图9中的步骤S21中执行的现有模块学习处理的流程图。
对于现有模块学习处理,在步骤S41中,更新单元23(图8)使作为对象模块的最大似然值模块#m*的学习频率Nlearn[m*]递增例如一,处理进入步骤S42。
在步骤S42中,更新单元23根据表达式γ=1/(Nlearn[m*]+1)来获得作为对象模块的最大似然值模块#m*的学习率γ。
然后,更新单元23把观测时间序列缓存器12中存储的窗口长度W的最新时间序列数据Ot作为被学习数据,使用该被学习数据Ot以用学习率γ=1/(Nlearn[m*]+1)执行作为对象模块的最大似然值模块#m*的追加学习,处理返回。
图12是描述要在图9中的步骤S22中执行的新模块学习处理的流程图。
对于新模块学习处理,在步骤S51中,更新单元23(图8)以与图9中的步骤S11中的情形相同的方式生成作为构建ACHMM的第M+1个模块#M+1的新模块的HMM,并把该新模块#m=M+1(的HMM参数λM+1)存储于ACHMM存储单元16中作为构建ACHMM的模块,处理进入步骤S52。
在步骤S52中,更新单元23把新模块#m=M+1的学习频率Nlearn[m=M+1]设置为作为初始值的1,处理进入步骤S53。
在步骤S53中,更新单元23根据表达式γ=1/(Nlearn[m=M+1]+1)获得作为对象模块的新模块#m=M+1的学习率γ。
然后,更新单元23把观测时间序列缓存器12中存储的窗口长度W的最新时间序列数据Ot作为被学习数据,使用该被学习数据Ot以用学习率γ=1/(Nlearn[m=M+1]+1)执行作为对象模块的新模块#m=M+1的追加学习。
也就是说,更新单元23根据上述表达式(3)至(16)对ACHMM存储单元16中存储的新模块#m=M+1的HMM参数λM+1进行更新。
然后,处理从步骤S53进入步骤S54,在步骤S54中,更新单元23连同生成新模块作为构建ACHMM的模块一起使模块总数量递增一,处理返回。
如上所述,对于模块学习单元13,把要连续提供的观测值时间序列作为要用于学习的被学习数据,对于构建把HMM作为模块(最小组件)的ACHMM的每个模块,获得用该模块可以观测到被学习数据的似然值,基于该似然值,把作为ACHMM的一个模块的最大似然值模块、或者新模块确定为对象模块,即HMM参数要被更新的模块,并使用被学习数据执行用于更新对象模块的HMM参数的学习,因此,即使在预先不知道建模对象的规模时,也可以获得具有适合于建模对象的规模的ACHMM。
特别地,对于必须具有大规模HMM以用于建模的建模对象,采用通过作为模块的HMM获得的局部配置,可以获得合适规模(模块数量)的ACHMM。
阈值似然值TH的设置
对于图10中的对象模块确定处理,对象模块确定单元22根据最大对数似然值maxLP与阈值似然值TH之间的幅度相关性把最大似然值模块m*或新模块确定为对象模块。
通常,根据阈值的处理分支取决于阈值被设置为什么类型的值而大大影响处理的性能。
对于对象模块确定处理,阈值似然值TH是关于是否生成新模块的判定准则,在此阈值似然值TH不是合适值的情况下,构建ACHMM的模块以过量的方式或者以极其普通的方式生成,因此,无法获得规模适合于建模对象的ACHMM。
也就是说,在阈值似然值TH过大的情况下,会过量生成具有要在每个状态中观测到的观测值的过小离差的HMM。
另一方面,在阈值似然值TH太小的情况下,会以极其普通的方式生成具有要在每个状态中观测到的观测值的过大离差的HMM,即,没有生成足够用于建模对象的建模的新模块,作为其结果,构建ACHMM的模块的数量会变得过小,作为构建ACHMM的模块的HMM会变成具有要在每个状态中观测到的观测值的过大离差的HMM。
因此,例如可以把ACHMM的阈值似然值TH设置如下。
也就是说,对于ACHMM的阈值似然值TH,采用观测空间,可以根据实验经验获得适合于把用于对观测值进行聚类的粒度(聚类粒度)设置为某个期望粒度的阈值似然值TH(的分布)。
具体地,假设:作为观测值ot的向量在各分量之间是独立的,另外,要用作被学习数据的观测值时间序列在不同时间点之间是独立的。
阈值似然值TH与最大对数似然值maxLP进行比较,也把似然值(概率)的对数(对数似然值)与最大对数似然值maxLP相比较,当假设上述独立性时,关于观测值时间序列的对数似然值随着作为观测值的向量的维度数量D以及窗口长度W(观测值时间序列的长度(时间序列长度))而线性变化。
因此,可以用表达式TH=coef_th_new×D×W来表示阈值似然值TH,其中,使用与维度数量D以及窗口长度W成比例的作为比例常数的预定系数coef_th_new,因此,对系数coef_th_new的确定确定阈值似然值。
对于ACHMM,为了适当地生成新模块,必须把系数coef_th_new确定为适当的值,因此,系数coef_th_new、ACHMM以及生成新模块的情形之间的关系产生问题。
可以通过如下仿真来获得系数coef_th_new、ACHMM以及生成新模块的情形之间的关系。
具体地,对于仿真,例如,假设:在作为观测空间的二维空间内,离差是1,相互均值向量之间的距离(均值向量之间的距离)H是预定值,高斯分布是G1、G2、以及G3三个。
观测空间是二维空间,并且因此,观测值的维度数量是2。
图13是示出遵循高斯分布G1至G3中的每个高斯分布的观测值的示例的图。
图13示出如下这些观测值:其中,均值向量之间的距离H=2、4、6、8以及10遵循高斯分布G1至G3中的每个高斯分布。
注意,在图13中,分别地,圆形标记表示高斯分布G1,三角形标记表示高斯分布G2,x标记表示高斯分布G3。
均值向量之间的距离越大,(遵循)高斯分布G1至G3中的每个高斯分布(的观测值)分布于相互分开的位置中。
对于仿真,只启动高斯分布G1至G3的高斯分布中的一个高斯分布,生成了遵循所启动的高斯分布的观测值。
图14是示出用于启动高斯分布G1至G3的时序的示例的图。
在图14中,水平轴表示时间点,竖直轴表示要被启动的高斯分布。
根据图14,按每隔100个时间点G1、G2、G3、G1以此类推的次序重复启动高斯分布G1至G3。
对于仿真,例如图14中所示,启动高斯分布G1至G3,例如,生成作为5000个观测值时间点的二维向量时间序列。
此外,对于仿真,作为ACHMM的模块,采用具有状态数量N为1的HMM,窗口长度W例如为5,在把时间点t一次移位一个时间点的同时,从根据高斯分布G1至G3生成的5000个观测值时间点的时间序列中连续提取窗口长度W=5的时间序列数据作为被学习数据,由此执行ACHMM学习。
注意,通过在适当时改变系数coef_th_new以及均值向量之间的距离H中的每一个来执行ACHMM学习。
图15是示出作为上述仿真结果而获得的系数coef_th_new、均值向量之间的距离H以及构建学习之后的ACHMM的模块的数量之间的关系的图。
注意,图15还示出作为输出概率密度函数的高斯分布,其中,在关于学习之后的多个ACHMM的单个模块(HMM)状态中观测到观测值。
此处,对于仿真,采用单个状态的HMM作为模块,并且因此,在图15中,单个高斯分布等同于单个模块。
根据图15可以确认:如何生成根据系数coef_th_new而不同的模块。
用于仿真的被学习数据是根据三个高斯分布G1至G3生成的时间序列数据,因此,期望分别使用与三个高斯分布G1至G3等同的三个模块来构建学习之后的ACHMM,但是此处可想到:在考虑一些裕度时期望以3至5作为学习之后的ACHMM的模块数量。
图16是示出在学习之后的ACHMM的模块数量是3至5的情形中的系数coef_th_new以及均值向量之间的距离H的图。
根据图16,可以按实验预期值的方式确认:在学习之后的ACHMM的模块数量是3至5的情形中,对于系数coef_th_new以及均值向量之间的距离H,存在用表达式coef_th_new=-0.4375H-5.625表示的关系。
也就是说,可以用线性表达式coef_th_new=-0.4375H-5.625把与观测值的聚类粒度相对应的均值向量之间的距离H以及系数coef_th_new(阈值似然值TH成比例的比例常数)相关联。
注意,对于仿真,即使在把窗口长度W设置为不同于5的值(例如15)的情况下,也确认了:对于系数coef_th_new以及均值向量之间的距离H存在用表达式coef_th_new=-0.4375H-5.625表示的关系。
如上所述,比如说以下聚类粒度是期望粒度:凭借该聚类粒度,均值向量之间的距离H变成例如4.0左右,则系数coef_th_new被确定为-7.5至-7.0左右,要使用此系数coef_th_new根据表达式TH=coef_th_new×D×W获得的阈值似然值TH(与系数coef_th_new成比例的阈值似然值TH)变成适合于获得期望聚类尺寸的值。
可以把要如上所述获得的值设置成阈值似然值TH。
使用可变长度的被学习数据的模块学习处理
图17是用于描述模块学习处理的另一示例的流程图。
现在,对于图9中的模块学习处理,把窗口长度W(固定长度)的最新观测值时间序列作为被学习数据,连续执行每个时间点t处的ACHMM学习。
在此情形中,对于时间点t处的被学习数据以及时间点t-1处的被学习数据,复制时间点t-W+1至时间点t-1的W-1个观测值,因此,在时间点t-1变成最大似然值模块#m*的模块即使在时间点t也容易变成最大似然值模块#m*。
因此,执行了对于单个模块的最新观测值的时间序列的过量学习,其中,在某个时间点变成最大似然值模块#m*的模块将会然后变成最大似然值模块#m*,因此,对象模块以及只有该模块的HMM参数得以逐渐更新,使得对于窗口长度W的最新观测值的时间序列而言似然值最大化(误差最小化)。
然后,对于执行了过量学习的模块,在窗口长度W的被学习数据中尚未包括与在以往学习中获得的时间序列模式相对应的观测值的时间序列的情况下,迅速忘记该时间序列模式。
对于ACHMM,为了在维持以往存储(以往获得的时间序列模式的存储)的同时添加新时间序列模式的存储,必须做出如下布置:其中,在适当时生成新模块,把不同的时间序列模式存储于单独模块中。
注意,可以例如通过如下方式防止执行多余学习:针对每隔与窗口长度W相同长度的W个时间点的时间点把窗口长度W的最新观测值的时间序列作为被学习数据,而非针对每一个时间点把窗口长度W的最新观测值的时间序列作为被学习数据。
然而,在针对每隔与窗口长度W相同长度的W个时间点的时间点把窗口长度W的最新观测值的时间序列作为被学习数据的情况下,即,在把观测值时间序列分段(划分)成窗口长度W的单元并把将其作为被学习数据的情况下,用于将观测值时间序列划分成窗口长度W的单元的划分点和与观测值时间序列中包括的时间序列模式相对应的时间序列的划分点不匹配,作为其结果,这妨碍在观测值时间序列中包括的时间序列模式被适当地划分并在模块中存储。
因此,对于模块学习处理,采用长度可变的最新观测值时间序列而非窗口长度W(固定长度)的最新观测值时间序列作为被学习数据,从而可以执行ACHMM学习。
此处,还把采用长度可变的最新观测值时间序列作为被学习数据的ACHMM学习,即,采用长度可变的被学习数据的模块学习,称作可变窗口学习。此外,还把采用窗口长度W(固定长度)的最新观测值时间序列作为被学习数据的ACHMM模块学习称作固定窗口学习。
图17是用于描述根据可变窗口学习的模块学习处理的流程图。
对于根据可变窗口学习的模块学习处理,在步骤S61至S64中,执行与图9中的步骤S11至S14几乎同样的处理。
具体地,在步骤S61中,更新单元23(图8)执行:生成作为构建ACHMM的第一个模块#1的遍历HMM并且把模块总数量M设置为1作为初始值。
随后,在等到观测值ot从传感器11输出并且在观测时间序列缓存器12中存储之后,处理从步骤S61进入步骤S62,在步骤S62中,模块学习单元13(图8)把时间点t设置为1,处理进入步骤S63。
在步骤S63中,模块学习单元13判断时间点t是否等于窗口长度W。
在步骤S63中判断出时间点t不等于窗口长度W的情况下,处理在等到下一个观测值ot从传感器11输出并且在观测时间序列缓存器12中存储之后进入步骤S64。
在步骤S64中,模块学习单元13使时间点t递增一,处理返回步骤S63,此后,重复同样的处理。
另外,在步骤S63中判断出时间点t等于窗口长度W的情况下,即,在把时间序列数据Ot=W={o1、...、oW}(观测值时间序列的窗口长度W)存储于观测时间序列缓存器12中的情况下,对象模块确定单元22把只由单个模块#1构建的ACHMM中的模块#1确定为对象模块。
然后,对象模块确定单元22把表示模块#1(对象模块)的模块索引m=1提供给更新单元23,处理从步骤S63进入步骤S65。
在步骤S65中,更新单元23把表示模块#1(用来自对象模块确定单元22的模块索引m=1表示的对象模块)的学习频率(或量)的(阵列)变量Qlearn[m=1]设置为1.0作为初始值。
此处,对于采用窗口长度W(固定长度)的被学习数据的模块#m的学习,上述图9中描述的模块#m的学习频率Nlearn[m]将递增一。
然后,在图9中,要用于模块#m的学习的被学习数据是窗口长度W(固定长度)的时间序列数据,因此,学习频率Nlearn[m]一次递增一,即,变成整数值。
另一方面,在图17中,通过采用可变长度的最新观测值时间序列作为被学习数据来执行模块#m的学习。
在采用窗口长度W(固定长度)的被学习数据作为参考的模块#m的学习递增一的情况下,必须使如下变量Qlearn[m]递增W′/W:该变量表示对于采用任意长度W′的观测值时间序列作为被学习数据来执行的模块#m的学习而言,执行模块#m的学习的频率。
因此,变量Qlearn[m]变成实数。
现在,比如说:把采用窗口长度W的被学习数据的模块#m的学习计为一次学习,则采用任意长度W′的被学习数据的模块#m的学习具有W′/W次学习的实际效果,因此,变量Qlearn[m]也称作有效学习频率。
在步骤S65中,更新单元23根据表达式γ=1/(Qlearn[m=1]+1.0)来获得作为对象模块的模块#1的学习率γ。
然后,更新单元23把观测时间序列缓存器12中存储的窗口长度W的时间序列数据Ot=W={o1、...、oW}作为被学习数据,并使用此被学习数据Ot=W用学习率γ=1/(Qlearn[m=1]+1.0)来执行模块#1(对象模块)的追加学习。
也就是说,更新单元23根据上述表达式(3)至(16)对ACHMM存储单元16中存储的模块#1(对象模块)的HMM参数λm=1进行更新。
此外,更新单元23把被学习数据Ot=W缓存于其内置存储器(未示出)中保存的缓存器buffer_winner_sample(用于缓存观测值的变量)中。
另外,更新单元23把其内置存储器中保存的优胜时段信息cnt_since_win设置为作为初始值的1,优胜时段信息cnt_since_win是表示以下时段的变量:在该时段,模块在一个时间点以前是最大似然值模块。
此外,更新单元23把其内置存储器中保存的上一优胜信息past_win设置为作为模块#1的模块索引的1作为初始值,上一优胜信息past_win是表示一个时间点以前(模块是)最大似然值模块的变量。
然后,处理在等到下一观测值ot从传感器11输出并且在观测时间序列缓存器12中存储之后从步骤S65进入步骤S66,此后,在步骤S66至S70中,执行与图9中的步骤S16至S20相同的处理。
也就是说,在步骤S66中,模块学习单元13使时间点递增一,处理进入步骤S67。
在步骤S67中,似然值计算单元21把观测时间序列缓存器12中存储的窗口长度W的最新时间序列数据Ot={ot-W+1、...、ot}作为被学习数据,并对构建ACHMM存储单元16中存储的ACHMM的所有模块#1至#M中的每个模块获得模块似然值P(Ot|λm),并将其提供给对象模块确定单元22。
然后,处理从步骤S67进入步骤S68,在步骤S68中,对象模块确定单元22获得构建ACHMM的模块#1至#M中的最大似然值模块#m*=argmaxm[P(Ot|λm)],即来自似然值计算单元21的模块似然值P(Ot|λm)最大的模块。
此外,对象模块确定单元22根据来自似然值计算单元21的模块似然值P(Ot|λm)获得最大对数似然值maxLP=maxm[P(Ot|λm)](最大似然值模块#m*的模块似然值的对数),处理从步骤S68进入步骤S69。
在步骤S69中,对象模块确定单元22基于最大对数似然值maxLP执行对象模块确定处理,其中,把最大似然值模块#m*或者新模块(要新生成的HMM)确定为HMM参数要被更新的对象模块。
然后,对象模块确定单元22把对象模块的模块索引提供给更新单元23,处理从步骤S69进入步骤S70。
在步骤S70中,更新单元23判断由来自对象模块确定单元22的模块索引表示的对象模块是最大似然值模块#m*还是新模块。
另外,在步骤S70中判断出对象模块是新模块的情况下,处理进入步骤S72,在步骤S72中,更新单元23执行用于对新模块的HMM参数进行更新的新模块学习处理。
在步骤S71中的现有模块学习处理以及步骤S72中的新模块学习处理之后,在任一情形中,处理在等到下一观测值ot从传感器11输出并且在观测时间序列缓存器12中存储之后返回步骤S66,此后,重复同样的处理。
图18是用于描述要在图17中的步骤S71中执行的现有模块学习处理的流程图。
对于现有模块学习处理,在步骤S91中,更新单元23(图8)判断上一优胜信息past win和作为对象模块的最大似然值模块#m*的模块索引是否匹配。
在步骤S91中判断出上一优胜信息past_win和作为对象模块的最大似然值模块#m*的模块索引匹配的情况下,即,在时间点t-1(当前时间点t的一个时间点以前)是最大似然值模块的模块恰好在当前时间点t变成最大似然值模块并且因此变成对象模块的情况下,处理进入步骤S92,在步骤S92中,更新单元23判断是否满足表达式mod(cnt_since_win,W)=0。
此处,mod(A,B)表示A除以B时的余数。
在步骤S92中判断出不满足表达式mod(cnt_since_win,W)=0的情况下,处理跳过步骤S93和S94以进入步骤S95。
另外,在步骤S92中判断出满足表达式mod(cnt_since_win,W)=0的情况下,即,在优胜时段信息cnt_since_win被窗口长度W除尽没有余数,并且因此在当前时间点t成为最大似然值模块的模块#m*在窗口长度W的整数倍期间连续成为最大似然值模块的情况下,处理进入步骤S93,在步骤S93中,更新单元23使在当前时间点t作为对象模块的最大似然值模块#m*的有效学习频率Qlearn[m*]递增例如1.0,处理进入步骤S94。
在步骤S94中,更新单元23根据表达式γ=1/(Qlearn[m*]+1.0)获得作为对象模块的最大似然值模块#m*的学习率γ。
然后,更新单元23把观测时间序列缓存器12中存储的窗口长度W的最新时间序列数据Ot作为被学习数据,使用该被学习数据Ot来用学习率γ=1/(Qlearn[m*]+1.0)执行作为对象模块的最大似然值模块#m*的追加学习。
然后,处理从步骤S94进入步骤S95,在步骤S95中,更新单元23以追加方式把观测时间序列缓存器12中存储的在当前时间点t处的观测值ot缓存于缓存器buffer_winner_sample中,处理进入步骤S96。
在步骤S96中,更新单元23使优胜时段信息cnt_since_win递增一,处理进入步骤S108。
另一方面,在步骤S91中判断出上一优胜信息past_win和作为对象模块的最大似然值模块#m*的模块索引不匹配的情况下,即,在当前时间点t时的最大似然值模块#m*与当前时间点t的一个时间点以前的时间点t-1时的最大似然值模块不同的情况下,处理进入步骤S101,此后,执行直到时间点t-1为止是最大似然值模块的模块以及在当前时间点t时的最大似然值模块#m*的学习。
具体地,在步骤S101中,更新单元23使直到时间点t-1为止是最大似然值模块的模块(即,以上一优胜信息past_win为模块索引的模块(在下文中,也称作“上一优胜模块”)#past_win)的有效学习频率Qlearn[past_win],递增例如LEN[buffer_winner_sample]/W,处理进入步骤S102。
此处,LEN[buffer_winner_sample]表示在缓存器buffer_winner_sample中缓存的观测值的长度(数量)。
在步骤S102中,更新单元23根据表达式γ=1/(Qlearn[past_win]+1.0)获得上一优胜模块#past_win的学习率γ。
然后,更新单元23把缓存器buffer_winner_sample中缓存的观测值时间序列作为被学习数据,并使用该学习数据以用学习率γ=1/(Qlearn[past_win]+1.0)执行上一优胜模块#past_win的追加学习。
也就是说,更新单元23根据上述表达式(3)至(16)对ACHMM存储单元16中存储的上一优胜模块#past_win的HMM参数λpast_win进行更新。
然后,处理从步骤S102进入步骤S103,在步骤S103中,更新单元23使当前时间点t时的最大似然值模块#m*(对象模块)的有效学习频率Qlearn[m*]递增例如1.0,处理进入步骤S104。
在步骤S104中,更新单元23根据表达式γ=1/(Qlearn[m*]+1.0)获得作为对象模块的最大似然值模块#m*的学习率γ。
然后,更新单元23把观测时间序列缓存器12中存储的窗口长度W的最新时间序列数据Ot作为被学习数据,并使用该被学习数据Ot以用学习率γ=1/(Qlearn[m*]+1.0)执行最大似然值模块#m*(对象模块)的追加学习。
然后,处理从步骤S104进入步骤S105,在步骤S105,更新单元23清空缓存器buffer_winner_sample,处理进入步骤S106。
在步骤S106中,更新单元23把窗口长度W的最新被学习数据Ot缓存于缓存器buffer_winner_sample中,处理进入步骤S107。
在步骤S107中,更新单元23把优胜时段信息cnt_since_win设置为1作为初始值,处理进入步骤S108。
在步骤S108中,更新单元23把上一优胜信息past_win设置为当前时间点t时的最大似然值模块#m*的模块索引m*,处理返回。
图19是用于描述要在图17中的步骤S72中执行的新模块学习处理的流程图。
对于新模块学习处理,生成新模块,在以该新模块为对象模块的情况下执行学习,但是在新模块的学习之前,执行迄今为止(直到时间点t-1)成为最大似然值模块的模块的学习。
具体地,在步骤S111中,更新单元23使直到时间点t-1为止成为最大似然值模块的模块(即,上一优胜模块#past_win,其是以上一优胜信息past_win为模块索引的模块)的有效学习频率Qlearn[past_win]递增例如LEN[buffer_winner_sample]/W,处理进入步骤S112。
在步骤S112中,更新单元23根据表达式γ=1/(Qlearn[past_win]+1.0)获得上一优胜模块#past_win的学习率γ。
然后,更新单元23把缓存器buffer_winner_sample中缓存的观测值时间序列作为被学习数据,并使用该学习数据以用学习率γ=1/(Qlearn[past_win]+1.0)执行上一优胜模块#past_win的追加学习。
也就是说,更新单元23根据上述表达式(3)至(16)对ACHMM存储单元16中存储的上一优胜模块#past_win的HMM参数λpast_win进行更新。
然后,处理从步骤S112进入步骤S113,在步骤S113中,更新单元23(图8)以与图9中的步骤S11中的情形相同的方式生成HMM作为构建ACHMM的第M+1个模块#M+1的新模块。此外,更新单元23把新模块#m=M+1(的HMM参数λM+1)存储于ACHMM存储单元16中,处理从步骤S113进入步骤S114。
在步骤S114中,更新单元23把新模块#m=M+1的有效学习频率Qlearn[m=M+1]设置为作为初始值的1.0,处理进入步骤S115。
在步骤S115中,更新单元23根据表达式γ=1/(Qlearn[m=M+1]+1.0)获得作为对象模块的新模块#m=M+1的学习率γ。
然后,把观测时间序列缓存器12中存储的窗口长度W的时间序列数据Ot作为被学习数据,并使用该被学习数据Ot以用学习率γ=1/(Qlearn[m=M+1]+1.0)执行作为对象模块的新模块#m=M+1的追加学习。
也就是说,更新单元23根据上述表达式(3)至(16)对ACHMM存储单元16中存储的作为对象模块的新模块#m=M+1的HMM参数λM+1进行更新。
然后,处理从步骤S115进入步骤S116,在步骤S116中,更新单元23清空缓存器buffer_winner_sample,处理进入步骤S117。
在步骤S117中,更新单元23把窗口长度W的最新被学习数据Ot缓存于缓存器buffer_winner_sample中,处理进入步骤S118。
在步骤S118中,更新单元23把优胜时段信息cnt_since_win设置为1作为初始值,处理进入步骤S119。
在步骤S119中,更新单元23把上一优胜信息past_win设置为新模块#M+1的模块索引M+1,处理进入步骤S120。
在步骤S120中,更新单元23连同生成新模块作为构建ACHMM的模块一起使模块总数量M递增一,处理返回。
如上所述,对于根据可变窗口学习的模块学习处理(图17至图19),在最大似然值模块#m*(对象模块)和上一优胜模块#past_win(对于一个时间点以前的被学习数据而言似然值最大的模块)匹配的情况下,在以窗口长度W的最新观测值时间序列作为每个窗口长度W(固定时间)的被学习数据的情况下执行最大似然值模块#m*(对象模块)的学习(图18中的步骤S94),把最新观测值ot缓存于缓存器buffer_winner_sample中。
然后,在对象模块和上一优胜模块#past_win不匹配的情况下,即,在对象模块变成与构建ACHMM的模块或者新模块的上一优胜模块#past_win不同的模块的情况下,在以缓存器buffer_winner_sample中缓存的观测值时间序列为被学习数据的情况下执行(图18中的步骤S102、以及图19中的步骤S112)上一优胜模块#past_win的学习,在以窗口长度W的最新观测值时间序列为被学习数据的情况下执行(图18中的步骤S104、以及图19中的步骤S115)对象模块的学习。
也就是说,对于变成对象模块的模块,只要此模块(连续地)是对象模块,则自对象模块第一次出现起,就在以窗口长度W的观测值时间序列为被学习数据的情况下执行学习,并把该时间期间的观测值缓存于缓存器buffer_winner_sample中。
然后,当对象模块相对于迄今为止成为对象模块的模块而言的另一模块时,在以缓存器buffer_winner_sample中缓存的观测值时间序列为被学习数据的情况下执行迄今为止成为对象模块的模块的学习。
作为其结果,按照根据可变窗口学习的模块学习处理,可以改进:在以窗口长度W(固定长度)的最新观测值时间序列为被学习数据在每个时间点t相继执行ACHMM学习的情形中引起的不好效果,以及在通过划分成窗口长度W的单元把观测值时间序列作为被学习数据的情形中引起的不好效果。
现在,对于图9中的模块学习处理,相对于采用窗口长度W(固定长度)的被学习数据的学习而言使模块#m的学习频率Nlearn[m]递增一。
另一方面,对于图17中的模块学习处理,在对象模块变成了不同于上一优胜模块#past_win的模块的情况下,在以缓存器buffer_winner_sample中缓存的观测值时间序列(即,可变长度时间序列数据)为被学习数据的情况下执行上一优胜模块#past_win的学习,相应地,执行用于把有效学习频率Qlearn[m]增加通过如下方式获得的除法值的自适应控制(依据缓存器buffer_winner_sample中缓存的观测值的长度LEN[buffer_winner_sample]的自适应控制):用缓存器buffer_winner_sampl中缓存的观测值的长度LEN[buffer_winner_sample]除以窗口长度W(图18中的步骤S101以及图19中的步骤S111)。
例如,在窗口长度W是5以及要用于上一优胜模块#past_win的学习的缓存器buffer_winner_sample中缓存的观测值的长度LEN[buffer_winner_sample]是10的情况下,使上一优胜模块#past_win的有效学习频率Qlearn[m]递增2.0(=LEN[buffer_winner_sample]/W)。
识别单元14的配置示例
图20是用于示出图1中的识别单元14的配置示例的框图。
识别单元14执行识别处理,其中,使用ACHMM存储单元16中存储的ACHMM来识别(辨识)(分类)要从观测时间序列缓存器12连续提供的观测值的时间序列数据,即,以下时间序列数据:要用于由模块学习单元13进行的学习的被学习数据Ot={ot-W+1、...、ot};并输出表示其识别结果的识别结果信息。
具体地,识别单元14包括似然值计算单元31和最大似然值估算单元32,并识别时间序列数据即要用于由模块学习单元13进行的学习的被学习数据Ot={ot-W+1、...、ot},作为表示其识别结果的识别结果信息,获得构建ACHMM的模块中的最大似然值模块#m*(的模块索引m*)和最大似然值状态序列最大似然值模块#m*是可以观测到时间序列数据(被学习数据)Ot的似然值最大的模块,最大似然值状态序列是HMM的状态序列,其中状态转变以可观测到时间序列数据Ot的最大似然值发生。
此处,对于识别单元14,可以使用要由执行学习的模块学习单元13连续更新的ACHMM来执行要用于由模块学习单元13进行的学习的被学习数据Ot的识别,此外,在由模块学习单元13进行的ACHMM学习进展足够后并且没有执行ACHMM的更新,可以使用该ACHMM来执行在观测时间序列缓存器12中存储的任意长度时间序列数据(观测值时间序列)的识别(状态识别)。
从观测时间序列缓存器12向似然值计算单元31相继提供与要提供给模块学习单元13的似然值计算单元21(图8)的观测值时间序列相同的观测值时间序列(窗口长度W的时间序列数据)Ot={ot-W+1、...、ot}。
似然值计算单元31使用要从观测时间序列缓存器12连续提供的时间序列数据(此处,作为被学习数据),以与图8中的似然值计算单元21相同的方式对于构建在ACHMM存储单元16中存储的ACHMM的模块#1至#M获得可以在模块#m处观测到时间序列数据Ot的似然值(模块似然值)P(Ot|λm),并将其提供给最大似然值估算单元32。
此处,可以由单个似然值计算单元作为似然值计算单元31以及图8中的模块学习单元13的似然值计算单元21。
构建ACHMM的模块#1至#M的模块似然值P(Ot|λ1)至P(Ot|λM)被从似然值计算单元31提供给最大似然值估算单元32,另外,窗口长度W的时间序列数据(被学习数据)Ot={ot-W+1、...、ot}被从观测时间序列缓存器12提供给最大似然值估算单元32。
最大似然值估算单元32获得构建ACHMM的模块#1至#M中的最大似然值模块#m*=argmaxm[P(Ot|λm)],最大似然值模块#m*=argmaxm[P(Ot|λm)]是来自似然值计算单元31的模块似然值P(Ot|λm)最大的模块。
此处,模块#m*是最大似然值模块等同于:在以自组织方式把观测空间划分成与模块等同的部分空间的情况下,在该部分空间中,在与模块#m*对应的部分空间中识别出(分类出)了时间点t时的时间序列数据Ot。
在获得最大似然值模块#m*之后,对于最大似然值模块#m*,最大似然值估算单元32根据维特比(viterbi)算法来获得最大似然值状态序列最大似然值状态序列是HMM的状态序列,其中发生观测到时间序列数据Ot的似然值最大的状态转变。
此处,用或者简化为 或者在最大似然值模块#m*是明显的情形中用st={st-W+1、...、st}来表示作为最大似然值模块#m*的HMM对于时间序列数据Ot={ot-W+1、...、ot}的最大似然值状态序列。
另外,在存在以识别结果信息为输入的随后部件的情形中,当该随后部件请求一维符号作为输入时,可以使用数值作为索引m*和把识别结果信息(二维符号)转换成对于构建ACHMM的所有模块均不重复的一维符号值,诸如,值以用于输出。
识别处理
图21是用于描述要由图20中的识别单元14执行的识别处理的流程图。
识别处理是在时间点t到达时间点W之后开始的。
在步骤S141中,似然值计算单元31使用在观测时间序列缓存器12中存储的窗口长度W的最新(时间点t)时间序列数据Ot={ot-W+1、...、ot},来获得构建ACHMM存储单元16中存储的ACHMM的每个模块#m的模块似然值P(Ot|λm),并将其提供给最大似然值估算单元32。
然后,处理从步骤S141进入步骤S142,在步骤S142中,最大似然值估算单元32获得构建ACHMM的模块#1至#M中的最大似然值模块#m*=argmaxm[P(Ot |λm)],最大似然值模块#m*=argmaxm[P(Ot|λm)]的来自似然值计算单元31的模块似然值P(Ot|λm)是最大的,处理进入步骤S143。
在步骤S144中,最大似然值估算单元32输出W+1维符号 即最大似然值模块#m*和最大似然值状态序列 的集合,作为时间点t时的时间序列数据Ot={ot-W+1、...、ot}的识别结果信息,或者输出二维符号即最大似然值模块#m*和最大似然值状态序列的最终状态的集合,作为时间点t时的观测值ot的识别结果信息。
然后,在等到把最新观测值存储于观测时间序列缓存器12中之后,处理进入步骤S141,此后,重复同样的处理。
转变信息管理单元15的配置示例
图22是用于示出图1中的转变信息管理单元15的配置示例的框图。
转变信息管理单元15基于来自识别单元14的识别结果信息生成转变信息,即ACHMM存储单元16中存储的ACHMM处的每个状态转变的频率信息,并将其提供给ACHMM存储单元16以对ACHMM存储单元16中存储的转变信息进行更新。
具体地,转变信息管理单元15包括信息时间序列缓存器41以及信息更新单元42。
信息时间序列缓存器41暂时存储从识别单元14输出的识别结果信息
注意,对于数量等于窗口长度W的后面描述的阶段,信息时间序列缓存器41至少具有用于存储两个时间点的识别结果信息的存储容量。
另外,把窗口长度W的时间序列数据Ot={ot-W+1、...、ot}的识别结果信息而非某一个时间点的观测值从识别单元14提供给转变信息管理单元15的信息时间序列缓存器41。
信息更新单元42根据在信息时间序列缓存器41中存储的识别结果信息以及在ACHMM存储单元16中存储的转变信息来生成新转变信息,并使用该新转变信息来更新记录了在ACHMM存储单元16中存储的转变信息的后面描述的模块间状态转变频率表。
图23是描述图22中的生成转变信息的转变信息管理单元15的转变信息生成处理的图。
根据在模块学习单元13(图1)的模块学习,把要从建模对象观测的观测值的观测空间划分成与模块等同的局部配置(小世界)(部分空间),并通过局部配置内的HMM获得某个时间序列模式。
为了通过小世界网络表示建模对象,必须通过学习获得局部配置之间的(状态)转变,即,模块之间转变的模型(转变模型)。
另一方面,根据从识别单元14输出的识别结果信息,可以确定观测到任意时间点t的观测值ot的(HMM的)状态,因此,不仅可以获得模块内的状态转变也可以获得模块之间的状态转变。
因此,转变信息管理单元15使用从识别单元14输出的识别结果信息来获得作为转变模型(的参数)的转变信息。
具体地,转变信息管理单元15基于从识别单元14输出的识别结果信息确定某些连续时间点t-1和时间点t中每个时间点的(HMM的)状态和模块,把时间上在前的时间点t-1的状态和模块作为转变源状态和转变源模块,并把时间上在后的时间点t的状态和模块作为转变目的状态和转变目的模块。
此外,转变信息管理单元15生成(表示)转变源模块、转变源状态、转变目的模块以及转变目的状态(的索引),并且生成1作为从转变源模块的转变源状态向转变目的模块的转变目的状态的状态转变的(发生)频率,作为模块状态间转变信息,即转变信息之一,并把这些模块状态间转变信息记录为模块状态间转变频率表的一个记录(一个条目)(一行)。
然后,在发生了作为模块状态间转变频率表中已经记录的模块状态间转变信息的同一转变源模块、转变源状态、转变目的模块以及转变目的状态的情况下,转变信息管理单元15使这些模块状态间转变信息的频率递增1以生成模块状态间转变信息,并通过该模块状态间转变信息对模块状态间转变频率表进行更新。
具体地,对于转变信息管理单元15(图22),根据用时间点t除以窗口长度W的情形中的余数f把时间点t分类到各阶段中,因此,在信息时间序列缓存器41(图22)中保证与阶段的数量等同(与窗口长度W等同)的存储区域。
阶段#f(f=0、1、...、W-1)的存储区域至少具有用于存储两个时间点的识别结果信息的存储容量,比如说阶段#f的识别结果信息的两个最新时间点(即,阶段#f的最新时间点t是时间点t=τ),则时间点τ的识别结果信息以及时间点τ-W的识别结果信息被存储了。
现在,图23示出窗口长度W是5的情形中信息时间序列缓存器41的存储内容,因此,通过划分成五个阶段#0、#1、#2、#3以及#4来存储识别结果信息。
注意,在图23中,以数字被划分成两级的方式描述的矩形表示一个时间点的识别结果信息。另外,在作为一个时间点的识别结果信息的矩形内的两级数字中,上一级的一个数字表示已是最大似然值模块的模块(的模块索引),下一级的五个数字表示以右边缘为最新时间点状态的(构建)最大似然值状态序列(的状态的索引)。
在当前时间点(最新时间点)t是例如分类到阶段#1中的时间点的情况下,当前时间点t的识别结果信息被从识别单元14向信息时间序列缓存器41提供,并且以追加方式在信息时间序列缓存器41的阶段#1的存储区域中存储。
作为其结果,至少把当前时间点t的识别结果信息以及时间点t-W的识别结果信息存储于信息时间序列缓存器41的阶段#1的存储区域中。
此处,要从识别单元14输出给信息时间序列缓存器41的在时间点t时的识别结果信息,如上所述,并非时间点t的观测值ot而是时间点t的时间序列数据Ot={ot-W+1、...、ot}的识别结果信息 这包括时间点t-W+1至时间点t中每个时间点的状态和模块(的信息)。
在把当前时间点t的识别结果信息以及时间点t-W的识别结果信息存储于阶段#1的存储区域中的情况下,信息更新单元42(图22)时间点次序连接当前时间点t的识别结果信息以及时间点t-W的识别结果信息,诸如图23中的虚线箭头所示例。
此外,在连接之后的识别结果信息中,即,在时间点t-2W+1至时间点t中每个时间点的识别值的时间序列系列的阵列(在下文中,也称作连接后信息)中,对于时间点t-W至时间点t的W+1个识别值的相邻识别值的W个集合(在下文中,也称作识别值集合),信息更新单元42检查是否在ACHMM存储单元16中存储的模块状态间转变频率表中记录了把这些识别值集合作为转变源模块和转变源状态的集合以及转变目的模块和转变目的状态的集合的模块状态间转变信息。
在ACHMM存储单元16中存储的模块状态间转变频率表中没有记录把这些识别值集合作为转变源模块和转变源状态的集合以及转变目的模块和转变目的状态的集合的模块状态间转变信息的情况下,信息更新单元42新生成以下模块状态间转变信息:其中,把识别值集合中的时间在前的模块和状态集合以及时间在后的模块和状态集合分别作为转变源模块和转变源状态集合以及转变目的模块和转变目的状态集合,另外,把频率设置为1作为初始值。
然后,信息更新单元42把新生成的模块状态间转变信息记录为ACHMM存储单元16中存储的模块状态间转变频率表的一个新记录。
现在,比如说:当开始在模块学习单元13(图1)的模块学习处理时,把没有记录的模块状态间转变频率表存储于ACHMM存储单元16中。
此外,在转变源模块和转变源状态集合以及转变目的模块和转变目的状态集合匹配的情况下,即,恰好在诸如以上所述的自身转变的情况下,信息更新单元42新生成模块状态间转变信息,并将其记录在模块状态间转变频率表中。
另一方面,在ACHMM存储单元16中存储的模块状态间转变频率表中记录了把识别值集合作为转变源模块和转变源状态的集合以及转变目的模块和转变目的状态的集合的模块状态间转变信息的情况下,信息更新单元42使这些模块状态间转变信息的频率递增一以生成模块状态间转变信息,并通过所生成的模块状态间转变频率表对ACHMM存储单元16中存储的模块状态间转变频率表进行更新。
此处,在通过连接当前时间点t的识别结果信息和时间点t-W的识别结果信息获得的连接后信息中,不采用时间点t-2W+1至时间点t-W的W个识别值中的相邻识别值之间的W-1个识别值集合用于要由转变信息管理单元15执行的转变信息生成处理中的频率计数(递增)。
这是因为:时间点t-2W+1至时间点t-W的W个识别值中的相邻识别值之间的W-1个识别值集合,已被用于采用通过连接时间点t-W的识别结果信息以及时间点t-2W的识别结果信息而获得的连接后信息的转变信息生成处理中的频率计数,因此,必须防止多余地执行频率计数。
注意,对于信息更新单元42,在模块状态间转变频率表的更新之后,诸如图23中所示例地使更新后模块状态间转变频率表的模块状态间转变信息相对于状态(信息)被边缘化,从而可以生成并可以在ACHMM存储单元16中存储以下模块间转变频率表:其中,记录模块间转变信息,即某个模块(的任意状态)和包括该模块的任意模块(的任意状态)之间的状态转变(模块间转变)的转变信息。
此处,模块间转变信息由(表示)转变源模块和转变目的模块(的索引)以及从转变源模块向转变目的模块的状态转变的频率构建。
转变信息生成处理
图24是描述要由图22中的转变信息管理单元15执行的转变信息生成处理的流程图。
在步骤S152中,转变信息管理单元15获得时间点t的阶段#f=mod(t,W),处理进入步骤S153。
在步骤S154中,转变信息管理单元15的信息更新单元42使用在信息时间序列缓存器41的阶段#f的存储区域中存储的在时间点t时的识别结果信息以及在时间点t-W时的识别结果信息,来检测表示从时间点t-W到时间点t的每个状态转变的W个识别值集合。
也就是说,诸如图23中所示,信息更新单元42按时间点顺序连接时间点t时的识别结果信息以及时间点t-W时的识别结果信息,以生成连接后信息,即时间点t-2W+1至时间点t中的每个时间点处的识别值的时间序列系列的阵列。
此外,对于作为连接后信息的识别值的阵列,信息更新单元42检测时间点t-W至时间点t的W+1个识别值中的相邻识别值之间的W个集合,作为表示从时间点t-W到时间点t的每个状态转变的W个识别值集合。
然后,处理从步骤S154进入步骤S155,在步骤S155中,信息更新单元42使用表示从时间点t-W到时间点t的每个状态转变的W个识别值集合来生成模块状态间转变信息,并通过所生成的模块状态间转变信息来更新ACHMM存储单元16中存储的模块状态间转变频率表(图23)。
也就是说,信息更新单元42关注于W个识别值集合中的某个识别值集合作为所关注的识别值集合,并检查是否在ACHMM存储单元16中存储的模块状态间转变频率表中已记录了以下模块状态间转变信息(在下文中,也称作与所关注的识别值集合相对应的模块状态间转变信息):其中,在所关注的识别值集合中,把时间上在前的识别值作为转变源模块和转变源状态,并把时间上在后的识别值作为转变目的模块和转变目的状态。
然后,在模块状态间转变频率表中尚未记录与所关注的识别值集合相对应的模块状态间转变信息的情况下,信息更新单元42新生成以下模块状态间转变信息:其中,在所关注的识别值集合中,把时间上在前的模块和状态以及时间上在后的模块和状态分别作为转变源模块和转变源状态、以及转变目的模块和转变目的状态,并把频率设置为1作为初始值。
此外,信息更新单元42把新生成的模块状态间转变信息记录为ACHMM存储单元16中存储的模块状态间转变频率表的一个新记录。
另外,在模块状态间转变频率表中已记录了与所关注的识别值集合相对应的模块状态间转变信息的情况下,信息更新单元42生成以下模块状态间转变信息:其中,使与所关注的识别值集合相对应的模块状态间转变信息的频率递增一;并通过模块状态间转变信息对ACHMM存储单元16中存储的模块状态间转变频率表进行更新。
在模块状态间转变频率表的更新之后,处理从步骤S155进入步骤S156,在步骤S156,信息更新单元42对于更新后的模块状态间转变频率表的模块状态间转变信息的状态执行边缘化以生成模块间转变信息,即某个模块(的任意状态)与包括该模块的任意模块(的任意状态)之间的状态转变(模块之间的转变)的转变信息。
然后,信息更新单元42生成以下模块间转变信息表(图23):其中,记录了用更新后的模块状态间转变频率表生成的模块间转变信息;并在ACHMM存储单元16中存储(在存储了旧的模块间转变信息表的情形中:覆盖)这些模块间的转变信息表。
然后,在等到下一个时间点处的识别结果信息从识别单元14输出给转变信息管理单元15之后,处理从步骤S156返回步骤S151,此后,重复同样的处理。
注意,对于图24中的转变信息生成处理,可以跳过步骤S156。
HMM配置单元17的配置示例
图25是示出图1中HMM配置单元17的配置示例的框图。
现在,作为局部配置(小世界),对于采用小规模HMM的ACHMM学习,以自适应方式执行竞争学习型学习(竞争学习)、或者对新模块的HMM参数进行更新的模块追加型学习,并且因此,即使在建模对象是必须具有大规模HMM以用于建模的对象时,ACHMM学习的收敛性相比于大规模HMM的学习而言也是极好(高)的。
另外,对于ACHMM,把要从建模对象观测的观测值的观测空间划分成与模块等同的部分空间,此外,把部分空间更加细分(状态划分)成与HMM(HMM是与该部分空间等同的模块)的状态等同的单元。
因此,根据ACHMM,对于观测值,可以执行粗略密度两级配置的识别(状态识别),即,模块递增过程中的粗略识别,HMM状态递增过程中的精细(密集)识别。
另一方面,用模块学习处理(图9和图17)以及转变信息生成处理(图24)(性质不同的学习)分别获得HMM(用于学习局部配置的模块)的HMM参数以及转变信息(ACHMM中每个状态转变的频率信息),作为ACHMM的模型参数,但是用于对图1中学习设备的后续阶段执行处理的部件可以方便地整合这些HMM参数和转变信息以把整个ACHMM重新表示成概率状态转变模型。
这种方便情形的示例包括把图1中的学习设备应用于自主动作(执行动作)的行动体的情形,诸如后面所描述的那样。
因此,HMM配置单元17通过组合ACHMM的模块来配置(重新配置)组合的HMM,即规模比作为单个模块的HMM大的单个HMM。
具体地,HMM配置单元17包括连接单元51、归一化单元52、频率矩阵生成单元53、频率单元54、平均单元55以及归一化单元56。
此处,比如说:用λU={aU ij,μU i,(σ2)U i,πU i,i=1、2、...、N×M,j=1、2、...、N×M}来表示组合的HMM的模型参数λU。aU ij、μU i、(σ2)U i、以及πU i分别表示组合的HMM的状态转变概率、均值向量、离差以及初始概率。
HMM(ACHMM存储单元16中存储的ACHMM的模块)的HMM参数λm的均值向量μm i、离差(σ2)m j以及初始概率πm i被提供给连接单元51。
连接单元51通过连接来自ACHMM存储单元16的ACHMM的所有模块的均值向量μm i来获得和输出组合的HMM的均值向量μU i。
另外,连接单元51通过连接来自ACHMM存储单元16的ACHMM的所有模块的离差(σ2)m i来获得和输出组合的HMM的离差(σ2)U i。
此外,连接单元51连接来自ACHMM存储单元16的ACHMM的所有模块的初始概率πm i以把其连接结果提供给归一化单元52。
归一化单元52通过对来自连接单元51的、ACHMM的所有模块的初始概率πm i的连接结果进行归一化以使得总和变成1.0来获得和输出组合的HMM的初始概率πU i。
在ACHMM存储单元16中存储的ACHMM的模型参数中,记录了转变信息(模块状态之间的转变信息)的模块状态间转变频率表(图23)被提供给频率矩阵生成单元53。
频率矩阵生成单元53参考来自ACHMM存储单元16的模块状态间转变频率表以生成频率矩阵,即把ACHMM的(每个模块的)任意状态之间状态转变的频率(次数)作为分量的矩阵,并将其提供给频率单元54和平均单元55。
除了频率矩阵之外,把HMM(即ACHMM存储单元16中存储的ACHMM的模块)的HMM参数λm的状态转变概率am ij从频率矩阵生成单元53提供给频率单元54。
频率单元54基于来自频率矩阵生成单元53的频率矩阵把来自ACHMM存储单元16的状态转变概率am ij转换成相应状态转变的频率,并把以这些频率作为分量的频率转变矩阵提供给平均单元55。
平均单元55对来自频率矩阵生成单元53的频率矩阵以及来自频率单元54的频率转变矩阵求平均,并把作为其结果获得的平均频率矩阵提供给归一化单元56。
归一化单元56对作为平均频率矩阵的分量的频率进行归一化,以使得:在作为来自平均单元55的平均频率矩阵的分量的频率中,从ACHMM的一个状态向ACHMM所有状态中每个状态的状态转变的频率总和变成1.0,从而把频率随机化成概率,并且因此获得和输出组合的HMM的状态转变概率aU ij。
图26是描述通过图25中的HMM配置单元17配置组合的HMM的方法(即,用于获得组合的HMM的HMM参数——状态转变概率aU ij、均值向量μU i、离差(σ2)U i以及初始概率πU i的方法)的图。
注意,在图26中,假设:ACHMM由三个模块#1、#2和#3配置成。
首先,描述如何获得用于规定组合的HMM的观测概率的均值向量μU i以及离差(σ2)U i。
在观测值是D维向量的情况下,可以用分别把第d行中的分量作为向量μm i和离差(σ2)m i的d维分量的D维列向量来表示用于规定单个模块#m的观测概率的均值向量μm i以及离差(σ2)m i。
此外,在单个模块#m的HMM状态的数量是N的情况下,可以用把第i列中的分量作为均值向量μm i(D维列向量)的D行N列矩阵来表示(对于)单个模块#m的(所有状态si的)均值向量μm i的组。
类似地,可以用把第i列中的分量作为离差(σ2)m i(D维列向量)的D行N列矩阵来表示(对于)单个模块#m的(所有状态si的)离差(σ2)m i的组。
连接单元51(图25)通过在列方向(即水平方向)上的阵列中按模块索引m的升序(如图26中所示)连接ACHMM的所有模块#1至#3的均值向量μ1 i至μ3 i的D行N列矩阵,来获得组合的HMM的均值向量μU i的矩阵。
类似地,连接单元51通过在列方向上的阵列中按模块索引m的升序(如图26中所示)连接ACHMM的所有模块#1至#3的离差(σ2)1 i至(σ2)3 i的D行N列矩阵来获得组合的HMM的离差(σ2)U i的矩阵。
此处,组合的HMM的均值向量μU i的矩阵以及组合的HMM的离差(σ2)U i的矩阵均由D行3N列矩阵构建。
接下来,描述如何获得组合的HMM的初始概率πU i。
如上所述,在单个模块#m的HMM状态的数量是N的情况下,可以用把状态si的初始概率πm i作为第i行中的分量的N维列向量来表示单个模块#m的初始概率πm i的组。
连接单元51(图25)在行方向(即竖直方向)上的阵列中按模块索引m的升序连接N维列向量,即ACHMM的所有模块#1至#3的初始概率π1 i至π3 i,诸如图26中所示,并把作为连接结果的3×N维列向量提供给归一化单元52。
归一化单元52(图25)通过对3×N维列向量(即来自连接单元51的连接结果)的分量进行归一化以使得这些分量的总和变成1.0来获得3×N维列向量,即组合的HMM的初始概率πU i的组。
接下来,描述如何获得组合的HMM的状态转变概率aU ij。
如上所述,在单个模块#m的HMM状态的数量是N的情况下,由三个模块#1至#3构建的ACHMM的状态的总数量是3×N,因此,存在从3×N个状态向3×N个状态的状态转变。
频率矩阵生成单元53(图25)参考模块状态间转变频率表以生成把状态转变的频率作为分量的以下频率矩阵:其中,把3×N个状态中的每个状态作为转变源状态,并把自转变源状态的3×N个状态中的每个状态作为转变目的状态。
频率矩阵是以从3×N个状态中的第i个状态向第j个状态的状态转变的频率为第i行第j列的分量的3×N行3×N列矩阵。
现在,比如说:对于3×N个状态的次序,三个模块#1至#3的状态被按模块索引m的升序排列并且被计数。
在此情形中,对于3×N行3×N列的频率矩阵,第一行至第N行的分量表示以模块#1的状态为转变源状态的状态转变的频率。类似地,第N+1行至第2×N行的分量表示以模块#2的状态为转变源状态的状态转变的频率,第2×N+1行至弟3×N行的分量表示以模块#3的状态为转变源状态的状态转变的频率。
另一方面,频率单元54基于在频率矩阵生成单元53生成的频率矩阵把构建ACHMM的三个模块#1至#3的状态转变概率a1 ij至a3 ij转换成相应状态转变的频率,并生成把这些频率作为分量的频率转变矩阵。
平均单元55通过对在频率矩阵生成单元53处生成的频率矩阵以及在频率单元54处生成的频率转变矩阵求平均,来生成3×N行3×N列平均频率矩阵。
归一化单元56把频率(即在平均单元55处生成的平均频率矩阵的分量)随机化成概率,从而获得把组合的HMM的状态转变概率aU ij作为第i行第j列的分量的3×N行3×N列矩阵。
图27是描述用于通过图25中的HMM配置单元17获得组合的HMM的HMM参数——状态转变概率aU ij、均值向量μU i、离差(σ2)U i以及初始概率πU i的方法的具体示例的图。
注意,在图27中,以与图26相同的方式,比如说:ACHMM由三个模块#1、#2和#3配置成。
此外,在图27中,比如说:观测值的维数D是二维,单个模块#m的HMM状态数量N是3。
另外,在图27中,上标T表示转置。
首先,描述如何获得用于规定组合的HMM的观测概率的均值向量μU i以及离差(σ2)U i。
在观测值的维数D是二维并且单个模块#m的HMM状态数量N是3的情况下,诸如图26中所示,用把第d行的分量作为均值向量μm i的d维分量的二维列向量来表示单个模块#m的均值向量μm i,用把第i列的分量作为均值向量μm i(二维列向量)的2行3列矩阵来表示(关于)单个模块#m的(所有状态si的)均值向量μm i的组。
类似地,用把第d行的分量作为离差(σ2)m i的d维分量的二维列向量来表示单个模块#m的离差(σ2)m i,用把第i列的分量作为离差(σ2)m i(二维列向量)的2行3列矩阵来表示(关于)单个模块#m的(所有状态si的)离差(σ2)m i的组。
注意,在图27中,作为均值向量μm i的组的矩阵以及作为离差(σ2)m i的组的矩阵均被转置,并且用3行2列矩阵表示。
连接单元51(图25)通过在列方向(水平方向)上的阵列中按模块索引m的升序连接ACHMM的所有模块#1至#3的均值向量μ1 i至μ3 i的2行3列矩阵来获得作为组合的HMM的均值向量μU i的矩阵的2行9(=3×3)列矩阵。
类似地,连接单元51通过在列方向上的阵列中按模块索引m的升序连接ACHMM的所有模块#1至#3的离差(σ2)1 i至(σ2)3 i的2行3列矩阵,来获得作为组合的HMM的离差(σ2)U i的矩阵的2行9列矩阵。
注意,在图27中,作为均值向量μm i的组的矩阵以及作为离差(σ2)m i的组的矩阵均被转置,因此,在行方向(垂直方向)上执行连接。此外,作为其结果,组合的HMM的均值向量μU i的矩阵以及离差(σ2)U i的矩阵由从2行9列矩阵转置的9行2列矩阵构建。
接下来,描述如何获得组合的HMM的初始概率πU i。
在单个模块#m的HMM状态数量N是3的情况下,诸如图26中所述,用把状态si的初始概率πm i作为第i行中的分量的三维列向量来表示单个模块#m的初始概率πm i的组。
连接单元51(图25)在行方向(竖直方向)上的阵列中按模块索引m的升序连接作为ACHMM的所有模块#1至#3的初始概率π1 i至π3 i的三维列向量,并把作为其连接结果的9(3×3)维列向量提供给归一化单元52。
归一化单元52(图25)通过对作为来自连接单元51的连接结果的9维列向量的分量进行归一化以使得这些分量的总和变成1.0,来获得作为组合的HMM的初始概率πU i的组的9维列向量。
接下来,描述如何获得组合的HMM的状态转变概率aU ij。
在单个模块#m的HMM状态数量N是3的情况下,由三个模块#1至#3构建的ACHMM的状态的总数量是9(3×3),因此,存在从9个状态向9个状态的状态转变。
频率矩阵生成单元53(图25)参考模块状态间转变频率表以生成以下频率矩阵,该频率矩阵是把状态转变的频率作为分量的矩阵,其中,把9个状态中的每个状态作为转变源状态,并把来自这些转变源状态的9个状态中的每个状态作为转变目的状态。
频率矩阵是以从9个状态中的第i个状态向第j个状态的状态转变的频率为第i行第j列分量的9行9列矩阵。
现在,把构建ACHMM的单个模块#m的从第i个状态向第j个状态的状态转变概率am ij作为第i行第j列分量的N行N列矩阵,称作转变矩阵。
在单个模块#m的HMM状态数量N是3的情况下,模块#m的转变矩阵是3行3列矩阵。
诸如图26中所示,比如说:按模块索引m的升序排列三个模块#1至#3的状态,并对ACHMM的9个状态的次序进行计数,则对于9行9列频率矩阵,第一行至第三行、以及具有第一列至第三列的复制部分的3行3列矩阵(在下文中,也称作“部分矩阵”)对应于模块#1的转变矩阵。
类似地,对于9行9列频率矩阵,第四行至第六行、以及具有第四列至第六列的复制部分的3行3列部分矩阵对应于模块#2的转变矩阵,第七行至第九行、以及具有第七列至第九列的复制部分的3行3列部分矩阵对应于模块#3的转变矩阵。
对于频率矩阵,基于与模块#1的转变矩阵对应的3行3列部分矩阵(在下文中,也称作“模块#1的对应部分矩阵”),频率单元54把作为模块#1的转变矩阵的分量的状态转变概率a1 ij转换成与作为模块#1的对应部分矩阵的分量的频率等同的频率;并生成把这些频率作为分量的模块#1的3行3列频率转变矩阵。
也就是说,频率单元54获得频率(模块#1的对应部分矩阵的第i行中的分量)的总和,并把状态转变概率a1 ij(模块#1的转变矩阵的第i行中的分量)乘以该总和,从而把状态转变概率a1 ij(模块#1的转变矩阵的第i行中的分量)转换成频率。
因此,例如,诸如图27中所示,在第一行至第三行以及第一列至第三列之间的复制部分中,频率矩阵中的(作为模块#1的相应转变矩阵的第一行中的分量的)频率是29、8和5,(作为模块#1的转变矩阵的第一行中的分量的)状态转变概率a1 ij是0.7、0.2和0.1,模块#1的相应转变矩阵的第一行中的频率的总和是42(=29+8+5),因此,把(作为模块#1的转变矩阵的第一行的状态转变概率a1 ij的)0.7、0.2和0.1分别转换成频率29.4(=0.7×42)、8.4(=0.2×42)和4.2(=0.1×42)。
频率单元54还以与模块#1的频率转变矩阵相同的方式生成作为构建ACHMM的其它模块的模块#2和#3的频率转变矩阵。
然后,平均单元55对在频率矩阵生成单元53处生成的9行9列频率矩阵以及在频率单元54处生成的模块#1至#3的频率转变矩阵求平均,从而生成9行9列平均频率矩阵。
也就是说,对于9行9列频率矩阵,平均单元55使用模块#1的对应部分矩阵的每个分量的平均值来更新(覆盖)该分量,其中,模块#1的频率转变矩阵的分量对应于该分量。
类似地,对于9行9列频率矩阵,平均单元55使用模块#2的对应部分矩阵的每个分量的平均值来更新该分量,其中,模块#2的频率转变矩阵的分量对应于该分量,还使用模块#3的对应部分矩阵的每个分量的平均值来更新该分量,其中,模块#3的频率转变矩阵的分量对应于该分量。
归一化单元56把作为9行9列平均频率矩阵(即诸如以上所描述地那样在平均单元55处用平均值更新后的频率矩阵)的分量的频率随机化成概率,从而获得以组合的HMM的状态转变概率aU ij为第i行第j列的分量的9行9列矩阵。
也就是说,归一化单元56对9行9列平均频率矩阵每行的分量进行归一化,以使得该行的总和变成1.0,从而获得以组合的HMM的状态转变概率aU ij为第i行第j列的分量的9行9列矩阵(此矩阵也称为转变矩阵)。
注意,在图26和图27中,使用模块状态间转变频率表以及模块的HMM的状态转变概率获得了组合的HMM的状态转变概率aU ij,但是可以仅使用模块状态间转变频率表来生成组合的HMM的状态转变概率aU ij。
也就是说,在图26和图27中,根据模块状态间转变频率表生成的频率矩阵以及根据模块#1至#3的转变矩阵生成的频率转变矩阵被取平均了,并把作为其结果获得的平均频率矩阵随机化成了概率,从而获得组合的HMM的状态转变概率aU ij,但是可以只通过把根据模块状态间转变频率表生成的频率矩阵本身归一化成概率来获得组合的HMM的状态转变概率aU ij。
如上所述,可以根据ACHMM来重新配置组合的HMM,因此,容易只通过大规模(高表示性能)HMM表示的建模对象首先被ACHMM有效地学习,根据此ACHMM重新配置组合的HMM,从而可以以规模适当的HMM的形式以及适当的网络配置(状态转变)有效地获得建模对象的统计(概率)状态转变模型。
注意,潜在地,在重新配置组合的HMM之后,在以该组合的HMM(的HMM参数)为初始值的情况下执行依据Baum-Welch重估方法等的普通HMM学习,从而可以获得用于以更适当的方式表示建模对象的更高精度的HMM。
另外,组合的HMM是比单模块HMM更大规模的HMM,由于较大的规模导致没有有效地执行大规模HMM的追加学习。因此,在必须执行追加学习的情形中,用ACHMM来执行追加学习,在必须在考虑把ACHMM的所有状态为对象的状态转变(诸如,后面描述的规划处理)的同时以高精度来估算状态序列(最大似然值状态序列)的情况下,可以(在追加学习之后)用ACHMM的要重新配置的组合的HMM来执行这些状态序列的估算。
此处,在上述情形中,在HMM配置单元17处配置了用于连接构建ACHMM的所有模块的组合的HMM,但是对于HMM配置单元17,可以配置用于连接作为构建ACHMM的一部分模块的多个模块的组合的HMM。
应用了学习设备的行动体的配置示例
图28是示出应用了图1的学习设备的行动体的实施例(第一实施例)的配置示例的框图。
图28中的行动体是能够以自主方式进行动作的行动体,例如,用于感测要从可移动环境(运动环境)观测的观测值以基于感测到的观测值来执行动作(诸如,移动)的可移动机器人,基于从运动环境观测到的观测值以及要提供给致动器(诸如,马达)的动作信号(用于使行动体执行动作)来建立运动环境模型,在该模型上执行用于实现任意内部感测状态的动作。
然后,图28中的行动体使用ACHMM来执行运动环境模型的构建。
在使用ACHMM来执行运动环境模型的构建的情况下,行动体无需获得关于行动体本身所处的运动环境的配置和规模的初步知识。行动体在运动环境内移动,执行ACHMM学习(模块学习)作为用于获取经验的过程,并构建作为运动环境的状态转变模型的ACHMM,构建该ACHMM的模块的数量适合于运动环境的规模。
也就是说,行动体在运动环境内移动的同时通过ACHMM相继学习要从运动环境观测的观测值。通过ACHMM学习获得用于确定行动体在观测的各种观测值的时间序列时所处的状态(内部状态)的信息作为模块的HMM参数以及转变信息。
另外,与ACHMM学习同时,对于每个状态转变(或每个状态),行动体学习:出现其状态转变时观测到的观测值和所执行动作的动作信号(要提供给致动器以用于执行某个动作的信号)之间的关系。
然后,在给出ACHMM状态中的一个状态作为充当目标的目标状态后,行动体使用要根据ACHMM重新配置的组合的HMM来执行以下规划以根据当前状态得到目标状态:该规划用于获得从与行动体在运动环境内的当前位置相对应的状态(当前状态)到目标状态的某个状态序列。
此外,行动体通过基于通过学习获得的关于每个状态转变的动作信号与观测值之间的关系执行引起作为规划的状态序列的状态转变的动作,来从当前位置移动到与目标状态相对应的运动环境内的位置。
为了执行通过ACHMM进行的这种运动环境的学习、关于每个状态转变的动作信号与观测值之间的关系的学习、规划以及依据规划的动作,图28中的行动体包括传感器71、观测时间序列缓存器72、模块学习单元73、识别单元74、转变信息管理单元75、ACHMM存储单元76、HMM配置单元77、规划单元81、动作控制器82、驱动单元83和致动器84。
以与图1中的学习设备的传感器11至HMM配置单元17相同的方式分别配置传感器71至HMM配置单元77。
注意,对于传感器71,可以采用距离传感器,距离传感器在包括前、后、左和右四个方向的多个方向上测量运动环境内从行动体到屏障的距离。在此情形中,传感器71输出以多个方向上的距离为分量的向量作为观测值。
此外,把组合的HMM从HMM配置单元77提供给规划单元81。
此处,例如,通过外部指定或者通过在行动体内配备以下激励系统,根据用户的操作等把目标状态提供给规划单元81:该激励系统用于根据以ACHMM状态中的多个观测值的观测概率高的状态诸如此类为目标状态的激励等来设置目标状态,并且通过该激励系统等来设置目标状态。
另外,对于使用ACHMM的识别(状态识别),通过构建识别结果信息的最大似然值模块#m*的模块索引以及最大似然值模块#m*的HMM状态中一个的状态的索引来确定ACHMM状态中作为当前状态的状态,但是此后,也将会通过只使用识别结果信息的的“状态”来表示(作为)所有ACHMM状态的当前状态(的状态)。
规划单元81把通过规划获得的规划提供给动作控制器82。
此处注意,作为在采用ACHMM的当前时间点t处的观测值ot的识别结果获得的、最大似然值模块#m*的状态概率最大的状态被用作要用于规划的当前状态,但是作为在采用组合的HMM的当前时间点t处的观测值ot的识别结果获得的、组合的HMM的状态概率最大的状态可以用作要用于规划的当前状态。
对于组合的HMM,在依据维特比方法获得了以下状态序列(最大似然值状态序列)的情况下:其中发生可以观测到当前时间点t处的时间序列数据Ot的似然值最大的状态转变,状态概率最大的状态成为最大似然值状态序列的最终状态。
除了从规划单元81向动作控制器82提供规划之外,还向动作控制器82提供来自观测时间序列缓存器72的当前时间点t的观测值ot、来自识别单元74的当前时间点t的观测值ot的识别结果信息以及紧接着观测到当前时间点t的观测值ot之后从驱动单元83提供给致动器84的动作信号At。
例如,在ACHMM学习等时,对于每个状态转变,动作控制器82学习:在出现状态转变时观测到的观测值以及所执行的动作的动作信号之间的关系。
具体地,动作控制器82使用来自识别单元74的识别结果信息 来识别从一个时间点以前的时间点t-1到当前时间点t出现的状态转变(从一个时间点以前的时间点t-1处的当前状态向当前时间点t处的当前状态的状态转变)(在下文中,也称作“时间点t-1处的状态转变”)。
此外,动作控制器82以与时间点t-1处的状态转变相关联的方式存储来自观测时间序列缓存器72的时间点t-1处的观测值ot-1、以及来自驱动单元83的时间点t-1处的动作信号At-1的集合,即,发生时间点t-1的状态转变时观测到的观测值ot-1、以及所执行的动作的动作信号At-1的集合。
然后,在进行ACHMM学习的同时,对于每个状态转变,在执行了收集发生该状态转变时观测到的观测值、以及所执行的动作的动作信号之间的大量集合之后,动作控制器82对每个状态转变使用与该状态转变相关联的动作信号和观测值的集合来获得动作函数,即用于输入观测值以输出动作信号的函数。
也就是说,例如,在某个观测值o只与一个动作信号A构建集合的情况下,动作控制器82获得用于对于观测值o输出动作信号A的动作函数。
另外,例如,在某个观测值o与某个动作信号A构建集合、以及与另一信号A′构建集合的情况下,动作控制器82对观测值o与动作信号A之间的集合数量c进行计数,对观测值o与另一动作信号A′之间的集合数量c′进行计数,以及还获得以下动作函数:该动作函数用于对于观测值o以百分比c/(c+c′)输出动作信号A,以百分比c′/(c+c′)输出另一动作信号A′。
在对每个状态转变获得动作函数之后,为了使从规划单元81提供作为规划的最大似然值状态序列的状态转变,动作控制器82把观测值ot从观测时间序列缓存器72提供给与该状态转变有关的动作函数作为输入,从而获得要从动作函数输出的动作信号作为要由行动体接下来执行的动作的动作信号。
然后,动作控制器82把该动作信号提供给驱动单元83。
在没有从动作控制器82提供动作信号的情况下,即,在动作控制器82处没有获得动作函数的情况下,例如,驱动单元83把依据预定规则的动作信号提供给致动器84,从而驱动致动器84。
也就是说,通过预定规则,例如,在观测到每个观测值时规定行动体移动的方向,因此,驱动单元83把用于执行以下动作的动作信号提供给致动器84:该动作用于在规则规定的方向上移动。
注意,除了致动器84之外,驱动单元83还把依据预定规则的动作信号提供给动作控制器82。
另外,在从动作控制器82提供动作信号的情况下,驱动单元83把该动作信号提供给致动器84,从而驱动致动器84。
致动器84是例如用于驱动用于移动行动体的轮子和腿部的电机等,并按照来自驱动单元83的动作信号来驱动它们。
用于获得动作函数的学习的处理
图29是用于描述图28中的动作控制器82的获得动作函数的学习处理的流程图。
在步骤S161中,在等到从观测时间序列缓存器72提供当前时间点t的(最新)观测值ot之后,动作控制器82接收该观测值ot,处理进入步骤S162。
在步骤S163中,动作控制器82将以下集合和状态转变相关联:该集合是一个时间点以前在步骤S161中从观测时间序列缓存器72接收的观测值(在下文中,也称作“上一观测值”)ot-1、以及一个时间点以前在步骤S164(将在后面进行描述)中从驱动单元83接收的动作信号(在下文中,也称作“上一动作信号”)At-1的集合,该状态转变是从根据一个时间点以前在步骤S162中从识别单元74接收的识别结果信息确定的一个时间点以前的当前状态(在下文中,也称作“上一状态”)向根据在紧接此前的步骤S162中从识别单元74接收的识别结果信息确定的当前状态的状态转变(时间点t-1的状态转变);并将其暂时存储作为用于动作函数学习的数据(在下文中,也称作“动作被学习数据”)。
然后,在等到把当前时间点t的动作信号At从驱动单元83提供给动作控制器82之后,处理从步骤S163进入步骤S164,在步骤S164,动作控制器82接收驱动单元83按照预定规则输出的当前时间点t处的动作信号At,处理进入步骤S165。
在步骤S165中,动作控制器82判断是否已获得足够数量(例如,预定数量)的动作被学习数据以便获得动作函数。
在步骤S165中确定出尚未获得足够数量的动作被学习数据的情况下,处理返回步骤S161,此后,重复同样的处理。
另外,在步骤S165中确定出已获得足够数量的动作被学习数据的情况下,处理进入步骤S166,在步骤S166,动作控制器82对于每个状态转变使用与状态转变相关联的、构建动作被学习数据中的集合的动作信号和观测值,来获得用于输入观测值以输出动作信号的动作函数,处理结束。动作控制处理
图30是描述用于对规划单元81、动作控制器82、驱动单元83以及致动器84在图28中执行的行动体动作进行控制的动作控制处理的流程图。
在步骤S171中,在等到提供要从HMM配置单元77提供的组合的HMM的状态中的一个状态被提供为目标状态#g(索引是g的状态)之后,规划单元81接收目标状态#g,处理进入步骤S172。
在步骤S172中,在等到从观测时间序列缓存器72提供当前时间点t处的观测值ot之后,规划单元81接收该观测值ot,处理进入步骤S173。
在步骤S174中确定出当前状态与目标状态#g不匹配的情况下,处理进入步骤S175,在步骤S175,规划单元81例如根据维特比方法来执行规划的以下处理(规划处理):用于在从HMM配置单元77提供的组合的HMM中获得从当前状态向目标状态#g的状态转变的似然值最大的状态序列(最大似然值状态序列)作为从当前状态到达目标状态#g的规划。
规划单元81把通过规划处理获得的规划提供给动作控制器82,处理从步骤S175进入步骤S176。
注意,对于规划处理,可以不获得规划。在没有获得规划的情况下,规划单元81把意思如此的消息提供给动作控制器82。
在步骤S176中,动作控制器82判断是否在规划处理中获得了规划。
在步骤S176中确定出没有获得规划的情况下,即,在没有从规划单元81向动作控制器82提供规划的情况下,处理结束。
另外,在步骤S176中确定出获得了规划的情况下,即,在从规划单元81向动作控制器82提供了规划的情况下,处理进入步骤S177,在步骤S177,动作控制器82把来自观测时间序列缓存器72的观测值ot提供给关于规划的初始状态转变(即,从当前状态向下一状态的状态转变)的动作函数作为输入,从而获得从动作函数输出的动作信号作为要由行动体执行的动作的动作信号。
然后,动作控制器82把该动作信号提供给驱动单元83,处理从步骤S177进入步骤S178。
在步骤S178中,驱动单元83把来自动作控制器82的动作信号提供给致动器84,从而驱动致动器84,处理返回步骤S172。
如上所述,行动体通过驱动致动器84来执行用于在运动环境内移动到与目标状态#g相对应的位置的动作。
注意,对于图30中的动作控制处理,每当获得最新观测值ot(步骤S172)(即,在每个时间点t),判断当前状态是否与目标状态#g相匹配(步骤S174),在当前状态与目标状态#g不匹配的情况下,执行规划处理以便获得规划(步骤S175),但是可以做出以下布置:其中,并非在每个时间点t执行而是在提供目标状态#g时执行一次规划处理;此后,在动作控制器82处输出要在一次规划处理中获得的规划的、引起从第一个状态向最后一个状态的状态转变的动作信号。
图31是描述图30中的步骤S175中的规划处理的流程图。
在步骤S182中,规划单元81把组合的HMM的状态转变概率aU ij中等于或大于预定阈值(例如,0.01等)的状态转变概率aU ij设置为例如作为高概率的0.9,以及还把其它状态转变概率aU ij设置为例如作为低概率的0.0。
在步骤S182之后,处理进入步骤S183,在步骤S183,规划单元81把在时间点τ处的每个状态#i的状态概率以及与组合的HMM的每个状态#j(索引是j的状态)有关的状态转变概率aU ij相乘,并把在时间点τ+1处的状态#j的状态概率设置为作为其结果获得的相乘值的最大值。
也就是说,对于状态#j,规划单元81把时间点τ的每个状态#i作为转变源状态,并在向状态#j的状态转变时检测使状态#j的状态概率最大化的状态转变,以及把该状态转变的转变源状态#i的状态概率、以及该状态转变的状态转变概率aU ij之间的相乘值作为状态#j在时间点τ+1的状态概率。
然后,处理从步骤S183进入步骤S184,在步骤S184,对于时间点τ+1的每个状态#j,规划单元81把转变源状态#i存储于作为内置存储器的状态序列缓存器(未示出)中,处理进入步骤S185。
在步骤S185中,规划单元81判断目标状态#g(在时间点τ+1)的状态概率的值是否超过了0.0。
在步骤S185中判断出目标状态#g的状态概率的值并未超过0.0的情况下,处理进入步骤S186,在步骤S186,规划单元81判断是否已把转变源状态#i存储于状态序列缓存器中与以下值等同的预定次数:预先设置为要获得作为规划的最大似然值状态序列的长度阈值。
在步骤S186中判断出尚未把转变源状态#i存储于状态序列缓存器中预定次数的情况下,处理进入步骤S187,在步骤S187,规划单元81使时间点τ递增一。然后,处理从步骤S187返回步骤S183,此后,重复同样的处理。
另外,在步骤S186中判断出已把转变源状态#i存储于状态序列缓存器中预定次数的情况下,即,在从当前状态到目标状态#g的最大似然值状态序列的长度等于或大于阈值的情况下,处理返回。
注意,在此情形中,规划单元81把意思是没有获得规划的消息提供给动作控制器82。
另一方面,在步骤S185中判断出目标状态#g的状态概率的值超过了0.0的情况下,处理进入步骤S188,在步骤S188,规划单元81选择目标状态#g作为从当前状态到目标状态#g的最大似然值状态序列中时间点τ处的状态,处理进入步骤S189。
在步骤S189中,规划单元81把最大似然值状态序列的状态转变的转变目的状态#j(时间点τ的状态#j)设置为目标状态#g,处理进入步骤S190。
在步骤S190中,规划单元81从状态序列缓存器检测到时间点τ处的状态#j的状态转变的转变源状态#i,并选择它作为最大似然值状态序列在时间点τ-1处的状态,处理进入步骤S191。
在步骤S191中,规划单元81使时间点τ递减一,处理进入步骤S192。
在步骤S192中,规划单元81判断时间点τ是否是0。
在步骤S192中判断出时间点τ不是0的情况下,处理进入步骤S193,在步骤S193,规划单元81把在紧接在前的步骤S190中选择作为最大似然值状态序列的状态#i设置成最大似然值状态序列的转变状态的转变目的状态#j(时间点τ处的状态#j),处理返回步骤S190。
另外,在步骤S192中判断出时间点τ是0的情况下,即,在已获得从当前状态到目标状态#g的最大似然值状态序列的情况下,规划单元81把该最大似然值状态序列提供给动作控制器82(图28)作为规划,处理返回。
图32是描述由图28中的行动体进行的ACHMM学习的概况的图。
行动体酌情在运动环境内移动,并在此时使用通过传感器71获得的、要从运动环境观测的观测值来执行ACHMM的学习,从而通过ACHMM获得运动环境的地图。
图33是描述由图28中的行动体进行的组合的HMM的重新配置的概况的图。
注意,除了提供目标状态的情形之外,还可以例如在以下任意时刻执行根据ACHMM对组合的HMM的重新配置:诸如周期性时刻,在事件发生而使得对ACHMM的模型参数进行更新时的时刻等。
图34是描述由图28中的行动体进行的规划的概况的图。
行动体依据规划以按照对于每个状态转变预先获得的动作函数来输出引起该规划的状态转变的动作信号。
根据这种ACHMM,对于预先未确定HMM的初始值和配置的未知建模对象的配置学习问题可以采用HMM。特别地,可以适当地确定大规模HMM的配置,另外,可以估算HMM参数。此外,可以有效地执行HMM参数的重新估计的计算、以及状态识别的计算。
另外,根据装配在自主演变的行动体上的ACHMM,行动体在行动体所位于的运动环境内移动,并在行动体建立其经验的过程中重复ACHMM中已经包括的现有模块的学习或者要使用的新模块的添加,作为其结果,在没有关于运动环境的配置和规模的初步知识的情况下配置:由适用于运动环境规模的大量模块配置成的、作为运动环境的状态转变模型的ACHMM。
注意,除了能够自主执行动作的行动体(如,移动机器人)之外,还可以把ACHMM广泛应用于人工智能、控制、系统识别等等中的模型学习。
第二实施例
如上所述,把ACHMM应用于自主执行动作的行动体,使用要从运动环境观测的观测值时间序列在行动体处执行ACHMM学习,从而可以通过ACHMM获得运动环境的地图。
此外,对于行动体,根据ACHMM重新配置组合的HMM,使用组合的HMM获得规划,即从当前状态到目标状态#g的最大似然值状态序列,按照该规划执行动作,从而行动体可以在运动环境内从与当前状态对应的位置移动到与目标状态#g对应的位置。
顺带提及,对于根据ACHMM重新配置的组合的HMM,并未真正实现的状态转变可以如同以概率方式实现那样表示。
具体地,图35是示出组合的HMM的重新配置、以及由在运动环境内移动的行动体进行的ACHMM学习的示例的图。
使用了要从运动环境观测的观测值时间序列的行动体执行ACHMM学习,从而作为表示状态网络(作为模块的HMM)与模块(的状态)之间状态转变的转变信息,运动环境的配置(地图)可以被获得。
在图35中,ACHMM由8个模块A、B、C、D、E、F、G和H配置成。此外,模块A获得了以运动环境的位置PA为中心的局部区域的配置,模块B获得了以运动环境的位置PB为中心的局部区域的配置。
类似地,模块C、D、E、F、G和H分别获得了以运动环境的位置PC、PD、PE、PF、PG和PH为中心的局部区域的配置。
行动体可以根据这种ACHMM来重新配置组合的HMM以使用该组合的HMM来获得规划。
图36是示出组合的HMM的重新配置、以及由在运动环境内移动的行动体进行的ACHMM学习的另一示例的图。
在图36中,ACHMM由5个模块A至E配置成。
进一步地,在图36中,模块A获得了以运动环境的位置PA为中心的局部区域的配置以及以运动环境的位置PA′为中心的局部区域的配置。
另外,模块B获得了以运动环境的位置PB为中心的局部区域的配置以及以运动环境的位置PB′为中心的局部区域的配置。
进一步地,模块C、D和E分别获得了以运动环境的位置PC、PD和PE为中心的局部区域的配置。
具体地,当以宏观方式用一定的粒度查看图36中的运动环境时,以位置PA为中心的局部区域以及以位置PA′为中心的局部区域在配置上匹配(类似)。
进一步地,以位置PB为中心的局部区域以及以位置PB′为动作环境的中心的局部区域在配置上匹配。
对于以图36中的运动环境为对象的ACHMM学习、以及对于其中利用了ACHMM的优点并且配置匹配的以位置PA为中心的局部区域以及以位置PA′为中心的局部区域,通过单个模块A获得了配置。
进一步地,对于其中配置匹配的以位置PB为中心的局部区域以及以位置PB′为中心的局部区域,通过单个模块B获得了配置。
如上所述,对于ACHMM,对于位置不同但是配置匹配的多个局部区域,通过单个模块获得了配置(局部配置)。
也就是说,对于ACHMM学习,在未来(接下来)观测到与由ACHMM的某个模块已经获得的配置相同的局部配置的情况下,该局部配置并非由新模块学习(获得),共享获得了与局部配置相同配置的模块,并以递增方式执行学习。
如上所述,对于ACHMM学习,执行模块的共享,因此,对于根据ACHMM重新配置的组合的HMM,可以如同以概率方式实现那样表示并未真正实现的状态转变。
具体地,在图36中,对于ACHMM的重新配置成的组合的HMM,对于模块B的状态(其状态),会出现相对于模块C的状态的状态转变(状态转变概率不是0.0(包括可以被视为0.0的非常接近0.0的值)的状态转变)以及相对于模块E的状态的状态转变。
然而,在图36中,行动体可以从以位置PB为中心的局部区域(在下文中,也称作位置PB的局部区域)直接移动到位置PC的局部区域(空间),但是不能直接移动到位置PE的局部区域,以及在不穿过位置PC的局部区域的情况下不能移动到那儿。
另外,行动体可以从位置PB′的局部区域直接移动到位置PE的局部区域,但是不能直接移动到位置PC的局部区域,以及在不穿过位置PE的局部区域的情况下不能移动到那儿。
另一方面,在图36中,即使在行动体位于位置PB的局部区域或者位置PB′的局部区域中时,当前状态也是模块B的状态。
然后,在行动体位于位置PB的局部区域中的情况下,行动体可以直接移动到位置PC的局部区域,相应地,发生从模块B(模块B获得了位置PB的局部区域的配置)的状态向模块C(模块C获得了位置PC的局部区域的配置)的状态的状态转变。
然而,在行动体位于位置PB的局部区域中的情况下,行动体不能直接移动到位置PE的局部区域,因此,不发生(不应该发生)从模块B(模块B获得了位置PB的局部区域的配置)的状态向模块E(模块E获得了位置PE的局部区域的配置)的状态的状态转变。
另一方面,在行动体位于位置PB′的局部区域中的情况下,行动体可以直接移动到位置PE的局部区域,因此,发生从模块B(该模块B获得了位置PB′的局部区域的配置)的状态向模块E(该模块E获得了位置PE的局部区域的配置)的状态的状态转变。
然而,在行动体位于位置PB′的局部区域中的情况下,行动体不能直接移动到PC的局部区域,因此,不发生从模块B(模块B获得了位置PB′的局部区域的配置)的状态向模块C(模块C获得了位置PC的局部区域的配置)的状态的状态转变。
另外,如上所述,对于位置不同但是配置相同的多个局部区域的配置,在要作为采用要通过单个模块获得的ACHMM的(状态)识别的结果而获得的状态(当前状态)、或者具有该状态的模块(最大似然值模块)的索引被输出作为(可以在外部观测到的)观测值的情况下,同一观测值被输出给多个不同局部区域,相应地,出现感知混淆问题。
图37示出:在行动体在与图36相同的运动环境内从位置PA的局部区域通过位置PB、PC、PD、PE和PB′的局部区域移动到位置PA′的局部区域的情况下,通过采用ACHMM的识别获得的最大似然值模块的索引的时间序列。
在行动体位于位置PA的局部区域中的情况下,以及在行动体位于位置PA′的局部区域中的情况下,在任一情形中,模块A都是最大似然值模块,因此,不确定行动体是位于位置PA的局部区域中还是位于位置PA′的局部区域中。
类似地,在行动体位于位置PB的局部区域中的情况下,以及在行动体位于位置PB′的局部区域中的情况下,在任一情形中,模块B都是最大似然值模块,因此,不确定行动体是位于位置PB的局部区域中还是位于位置PB′的局部区域中。
如上所述,对于用于防止发生不可能的状态转变以及还用于消除感知混淆问题的方法,存在如下这种方法:其中,除了用于学习要从运动环境观测的观测值的ACHMM之外,还准备另一ACHMM,用于学习要从运动环境观测的观测值的ACHMM作为低级别的ACHMM(在下文中,也称作“低级ACHMM”),把另一ACHMM作为高级别的ACHMM(在下文中,也称作“高级ACHMM”),低级ACHMM和高级ACHMM以分级结构相连。
图38是描述具有由两个分级等级构建的分级结构的ACHMM的图,其中,低级ACHMM和高级ACHMM以分级结构相连。
在图38中,对于低级ACHMM,学习要从运动环境观测的观测值。进一步地,对于低级ACHMM,识别要从运动环境观测的观测值,在作为识别结果的低级ACHMM的模块中,以时间序列方式输出最大似然值模块的模块索引。
对于高级ACHMM,以要从低级ACHMM输出的模块索引为观测值来执行与对于低级ACHMM相同的学习。
此处,在图38中,高级ACHMM由单个模块配置成,作为单个模块的HMM具有7个状态#1、#2、#3、#4、#5、#6和#7。
对于作为高级ACHMM的模块的HMM,根据要从低级ACHMM输出的模块索引的时间上下文关系,可以获得行动体位于位置PA的局部区域中的情形、以及行动体位于位置PA′的局部区域中的情形作为不同状态。
作为其结果,根据在高级ACHMM处的识别,可以确定行动体是位于位置PA的局部区域中还是位于位置PA′的局部区域中。
顺带提及,对于高级ACHMM,在高级ACHMM处的识别结果被输出作为可以在外部观测到的观测值的情况下,仍然出现感知混淆问题。
也就是说,即使在把具有分级结构的ACHMM的分级等级数量设置为任何数量时,在分级的数量尚未达到适合于作为建模对象的运动环境的配置和规模的数量的情况下,就出现感知混淆问题。
图39是示出行动体的运动环境的示例的图。
对于图39中的运动环境,在局部区域R11、R12、R13、R14和R15被以局部区域R11至R15的粒度查看时具有相同配置的情况下,因此,可以通过单个模块有效地获得局部区域R11至R15的配置。
然而,对于局部区域R11至R15,在以比局部区域R11至R15的粒度更宏观一级的局部区域R21、R22和R23的粒度查看时,期望把局部区域R11至R15确定为不同的局部区域,以不引起感知混淆问题。
此外,对于局部区域R21、R22和R23,在以局部区域R21至R23的粒度查看时,局部区域R21、R22和R23具有相同的配置,因此,可以通过单个模块有效地获得局部区域R21至R23的配置。
然而,对于局部区域R21至R23,在以比局部区域R21至R23的粒度更宏观一级的局部区域R31和R32的粒度查看时,期望把局部区域R21至R23确定为不同的局部区域,以便不引起感知混淆问题。
另外,对于局部区域R31和R32,在以局部区域R31和R32的粒度查看时,局部区域R31和R32具有相同的配置,因此,可以通过单个模块有效地获得局部区域R31和R32的配置。
因此,在以分级方式在多个位置观测局部表达物(真实世界的现象常常符合这种情形)的情况下,难以只通过单个等级ACHMM的学习来适当地获得环境配置,因此,期望把ACHMM扩展为分级架构,以使得以分级方式从时空粒度精细的分级等级到时空粒度粗略的分级等级逐渐建立粒度。此外,对于这种分级架构,期望酌情自动新生成更高等级的ACHMM。
注意,用于分级地配置HMM的方法的示例包括在S.Fine、Y. Singer、N.Tishby,“The Hierarchical Hidden Markov Model:Analysis andApplications(分级隐式马尔可夫模型:分析和应用)”,Machine Learning(机器学习),第32卷,第1期,第41-62页(1998)中描述的分级HMM。
对于分级HMM,每个分级等级的HMM的每个状态可以不具有输出概率(观测概率)而是具有较低等级的HMM。
分级HMM基于的前提是预先固定在每个分级等级的模块数量、预先固定分级等级的数量,并进一步采用用于在整个分级HMM执行模块参数优化的学习规则,因此,(当发展分级等级时,分级HMM变成具有共同松散耦合的HMM),通过分级等级的数量以及模块数量的增加来增加模型的灵活性,因此,模型参数的学习收敛性会恶化。
此外,分级HMM并非适用于对不能够预先确定分级等级数量以及模块数量的未知建模对象进行建模的模型。
另外,例如,对于N.Oliver、A.Garg、E.Horvitz,“Layeredrepresentations for learning and inferring office activityfrom multiplesensory channels,Computer Vision and Image Understanding”(从多个传感通道学习和推断办公室活动的分层表示,计算机视觉和图像理解),第96卷,第2期,第163-180页(2004),提出了被称为分层HMM的HMM分级架构。
对于分层HMM,把较少固定数量的HMM集合的似然值作为向高级HMM的输入。然后,低级HMM各自采用不同模态来构建事件识别器,高级HMM实现用于整合这些模态的动作识别器。
分层HMM基于的前提是预先确定低级HMM的配置,并且不能够处理新添加低级HMM的情形。因此,分层HMM并非适用于对不能够预先确定分级等级数量以及模块数量的未知建模对象进行建模的模型。学习设备的配置示例
图40是示出应用了根据本发明的信息处理设备的学习设备的第二实施例的配置示例的框图。
注意,在图中,与图1的情形相对应的部分附加了同样的附图标记,此后,将酌情略去其描述。
对于图40中的学习设备,分级ACHMM(该分级ACHMM是用于以分级方式组合(连接)以ACHMM为基本组件的单元的分级架构)被用作用于建模对象建模的学习模型。
根据分级ACHMM的采用,随着层级从低等级升至高等级,状态转变模型(HMM)的时空粒度变得粗略,这是特征,因此,对于包括大量的分级和共同局部配置的系统(如,真实世界事件)可以以良好的存储效率和学习效率执行学习。
也就是说,根据分级ACHMM,对于要从建模对象重复观测的同一局部配置(如,不同位置),通过每个分级等级的ACHMM在同一模块执行学习,因此,可以以良好的存储效率和学习效率执行学习。
注意,应该用在以一级宏观方式查看时划分的状态来表示同一局部配置的不同位置,但是对于分级ACHMM,状态被高一级的分级等级的ACHMM划分。
在图40中,学习设备包括传感器11、观测时间序列缓存器12以及ACHMM分级处理单元101。
ACHMM分级处理单元101生成包括ACHMM的后面描述的ACHMM单元,并通过将ACHMM单元连接为分级配置来进一步配置分级ACHMM。
然后,通过分级ACHMM,执行采用从观测时间序列缓存器12提供的观测值的时间序列(时间序列数据Ot)的学习。
图41是示出图40中ACHMM分级处理单元101的配置示例的框图。
如上所述ACHMM分级处理单元101生成ACHMM单元,并通过将ACHMM单元连接为分级配置来配置分级ACHMM。
在图41中,生成三个ACHMM单元1111、1112和1113,分级ACHMM被配置如下:以ACHMM单元1111、1112和1113分别为最低等级ACHMM单元、自最低等级起的第二个分级等级以及最高等级(此处,自最低等级起的第三个分级等级)。
ACHMM单元111h是第h个分级等级的ACHMM单元(自最低等级起朝向最高等级的第h个分级等级),并且包括输入控制单元121、ACHMM处理单元122以及输出控制单元123。
来自观测时间序列缓存器12(图40)的观测值,或者来自分级等级比ACHMM单元111h低一个分级等级的ACHMM单元111h-1(连接到ACHMM单元111h的ACHMM单元111h-1)的ACHMM识别结果信息,被提供给输入控制单元121作为要从外部提供的观测值。
输入控制单元121容纳输入缓存器121A。输入控制单元121把要从外部提供的观测值暂时存储于输入缓存器121A中,并执行输入控制用于把输入缓存器121A中存储的观测值时间序列输出给ACHMM处理单元122作为要提供给ACHMM的输入数据。
ACHMM处理单元122执行:采用来自输入控制单元121的输入数据的ACHMM学习(模块学习);以及采用ACHMM的处理(在下文中,也称作“ACHMM处理”),诸如采用ACHMM的输入数据识别。
另外,ACHMM处理单元122把要作为采用ACHMM的输入数据识别的结果而获得的识别结果信息提供给输出控制单元123。
输出控制单元123容纳输出缓存器123A。输出控制单元123执行输出控制用于把要从ACHMM处理单元122提供的识别结果信息暂时存储于输出缓存器123A中,以及把输出缓存器123A中存储的识别结果信息输出作为要输出到(ACHMM单元111h)外部的输出数据。
把要从输出控制单元123输出作为输出数据的识别结果信息提供给比ACHMM单元111h高一个分级等级的ACHMM单元111h+1(连接到ACHMM单元111h的ACHMM单元111h+1)。
图42是示出图41中的ACHMM单元111h的ACHMM处理单元122的配置示例的框图。
ACHMM处理单元122包括模块学习单元131、识别单元132、转变信息管理单元133、ACHMM存储单元134和HMM配置单元135。
以与学习设备1的模块学习单元13至HMM配置单元17相同的方式配置模块学习单元131至HMM配置单元135。
因此,对于ACHMM处理单元122,执行与要在图1中的模块学习单元13至HMM配置单元17处执行的处理相同的处理。
然而,为了执行由模块学习单元131进行的ACHMM学习、以及由识别单元132进行的采用ACHMM的识别,把输入数据(要提供给ACHMM的时间序列数据)从输入控制单元121(的输入缓存器121A)提供给ACHMM处理单元122。
也就是说,在ACHMM单元111h是最低等级的ACHMM单元1111的情况下,把来自观测时间序列缓存器12(图40)的观测值提供给输入控制单元121作为要从外部提供的观测值。
输入控制单元121把作为要从外部提供的观测值的来自观测时间序列缓存器12(图40)的观测值暂时存储于输入缓存器121A中。
然后,在存储时间点t处的观测值ot(即在输入缓存器121A中的最新观测值)之后,输入控制单元121从输入缓存器121A读取出时间点t处的时间序列数据Ot={ot-W+1、...、ot}(即自时间点t起的过去W个时间点即窗口长度W的观测值时间序列)作为输入数据,并将其提供给ACHMM处理单元122的模块学习单元131和识别单元132。
另外,在ACHMM单元111h是不同于最低等级的ACHMM单元1111的ACHMM单元的情况下,把识别结果信息从分级等级比ACHMM单元111h低一个分级等级的ACHMM单元111h-1(在下文中,也称作“低级单元”)提供给输入控制单元121作为要从外部提供的观测值。
输入控制单元121把作为要从外部提供的观测值的来自低级单元111h-1的观测值暂时存储于输入缓存器121A中。
然后,在把最新观测值存储于输入缓存器121A中之后,输入控制单元121从输入缓存器121A读取出时间序列数据O={o1、...、oL}(即包括最新观测值的过去L个样本(时间点)的L个观测值时间序列)作为输入数据,并将其提供给ACHMM处理单元122的模块学习单元131和识别单元132。
现在,如果只关注单个ACHMM单元111h,并且在时间序列数据O={o1、...、oL}中,把最新观测值oL作为时间点t处的观测值ot,则可以把时间序列数据O={o1、...、oL}作为时间点t处的时间序列数据Ot={ot-L+1、...、ot},即自当前时间点t起的过去L个时间点的观测值时间序列。
此处,对于除了最低等级以外的分级等级的ACHMM单元111h,作为输入数据的时间序列数据Ot={ot-L+1、...、ot}的长度是可变长度。
将HMM作为模块的ACHMM被以与图1中的ACHMM存储单元16相同的方式存储于ACHMM处理单元122的ACHMM存储单元134中。
然而,对于最低等级的ACHMM单元1111,根据作为输入数据的观测值分别采用连续HMM或离散HMM(即,要从传感器11输出的观测值是连续值或离散值)作为是模块的HMM。
另一方面,对于除了最低等级以外的分级等级的ACHMM单元111h,作为输入数据的观测值是作为离散值的来自低级单元111h-1的识别结果信息,因此,采用离散HMM作为HMM,即ACHMM的模块。
另外,对于ACHMM处理单元122,把要作为采用ACHMM由识别单元132进行的输入数据识别的结果而获得的识别结果信息提供给转变信息管理单元133并且还提供给输出控制单元123(的输出缓存器123A)。
然而,在观测值时间序列(时间点t处的输入数据)中,识别单元132把最新观测值(即,时间点t处的观测值的识别结果信息)提供给输出控制单元123。
也就是说,在构建ACHMM存储单元134中存储的ACHMM的模块中,识别单元132把最大似然值模块#m*(的模块索引m*)和最大似然值状态序列的最后状态的(的索引)的集合提供给输出控制单元123作为识别结果信息,其中最大似然值模块#m*的似然值对于观测值时间序列(即时间点t处的时间序列数据Ot={ot-L+1、...、ot})而言是最大的,对最大似然值状态序列 而言,最大似然值模块#m*的可以观测到观测值时间序列(即时间点t的输入数据)的似然值是最大的。
识别单元132把最大似然值模块#m*、以及最大似然值状态序列 的最后状态的索引的集合提供给输出控制单元123作为识别结果信息,也可以只把最大似然值模块#m*的索引(模块索引)[m*]提供给输出控制单元123作为识别结果信息。
如上所述,输出控制单元123把要从ACHMM处理单元122(的识别单元132)提供的识别结果信息暂时存储于输出缓存器123A中。然后,当满足预定输出条件时,输出控制单元123输出在输出缓存器123A中存储的识别结果信息作为要输出到(ACHMM单元111h)的外部的输出数据。
把要从输出控制单元123输出作为输出数据的识别结果信息提供给比ACHMM单元111h高一个分级等级的ACHMM单元(在下文中,也称作“高级单元”)111h+1。
对于高级单元111h+1的输入控制单元121,以与ACHMM单元111h的情形相同的方式,把来自低级单元111h的作为输出数据的识别结果信息存储于输入缓存器121A中作为要从外部提供的观测值。
然后,对于高级单元111h+1,在以该高级单元111h+1的输入控制单元121的输入缓存器121A中存储的观测值时间序列作为输入数据的情况下执行ACHMM处理(采用ACHMM的处理,诸如,ACHMM学习(模块学习),或者采用ACHMM对输入数据的识别)。
输出数据的输出控制
图43是描述由图42中的输出控制单元123进行的输出数据输出控制的第一方法(第一输出控制方法)的图。
对于第一输出控制方法,输出控制单元123把要从ACHMM处理单元122(的识别单元132)提供的识别结果信息暂时存储于输出缓存器123A中,并输出预定时刻的识别结果信息作为输出数据。
也就是说,对于第一输出控制方法,把预定时刻的识别结果信息作为输出数据的输出条件,并输出例如作为预定时刻的每个预定采样间隔时刻的识别结果信息作为输出数据。
图43示出在采用T=5作为采样间隔T的情形中的第一输出控制方法。
在此情形中,输出控制单元123重复用于把要从ACHMM处理单元122提供的识别结果信息暂时存储于输出缓存器123A中的处理,并输出比紧接之前输出的识别结果信息晚五份的识别结果信息作为输出数据。
根据第一输出控制方法,把如上所述的输出数据(即每五份中的识别结果信息)提供给高级单元。
注意,在图43中(对于后面描述的图44、图46和图47也是如此),为了防止图变得复杂,采用一维符号作为识别结果信息。
图44是描述由图42中的输出控制单元123进行的输出数据输出控制的第二方法(第二输出控制方法)的图。
对于第二输出控制方法,输出控制单元123把要从ACHMM处理单元122(的识别单元132)提供的识别结果信息暂时存储于输出缓存器123A中,以及在以它作为输出数据的输出条件(即最新识别结果信息与上一识别结果信息不匹配)的情况下,输出最新识别结果信息作为输出数据。
因此,对于第二输出控制方法,在与某个时间点输出作为输出数据的识别结果信息相同的识别结果信息持续的情况下,只要该相同的识别结果信息持续,就不把输出数据输出。
另外,对于第二输出控制方法,在每个时间点的识别结果信息与紧接的前一个的时间点的识别结果信息不同的情况下,输出每个时间点处的识别结果信息作为输出数据。
根据第二输出控制方法,以上述方式,把相同的识别结果信息不持续的输出数据提供给高级单元。
注意,在输出控制单元123通过第二输出控制方法把输出数据输出的情况下,要由接收该输出数据的供给的高级单元执行的ACHMM学习等同于:应用了图40中学习设备的行动体把由于观测值(即通过执行动作从传感器11输出的传感器信号)的改变所引起的ACHMM的状态转变作为事件、在以事件的切换为单位时间的情况下要执行的时间序列配置的学习;并且适合于使真实世界的事件有效地结构化。
根据第一和第二输出控制方法中的任一方法,把稀疏化了几份(使时间粒度粗略)的在ACHMM处理单元122处获得的识别结果信息提供给高级单元作为输出数据。
然后,高级单元使用作为输出数据被提供的识别结果信息作为输入数据来执行ACHMM处理。
顺带提及,上述类型1识别结果信息在最大似然值模块#m*的最大似然值状态序列的最后一个状态不同时是不同的信息,但是:与类型1识别结果信息不同,类型2识别结果信息即使在最大似然值模块#m*的最大似然值状态序列的最后一个状态不同时也不是不同的信息、并且是不理会最大似然值模块#m*状态差别的信息。
因此,在低级单元111h输出类型2识别结果信息作为输出数据的情况下,高级单元111h+1通过ACHMM学习以自组织方式获得的状态粒度(用于在观测空间对观测值进行聚类的聚类的粒度,对应于是模块的HMM的状态)相比于输出类型1识别结果信息作为输出数据的情形而言更粗略。
图45是描述以下内容的图:在低级单元111h输出类型1和2中每个类型的识别结果信息作为输出数据的情况下,高级单元111h+1通过ACHMM学习获得的作为模块的HMM的状态粒度。
现在,为了简化描述,比如说:低级单元111h通过第一和第二输出控制方法中的第一输出控制方法把每隔一定采样间隔T的识别结果信息提供给高级单元111h+1作为输出数据。
在低级单元111h的输出控制单元123输出类型1识别结果信息作为输出数据的情况下,高级单元111h+1通过ACHMM学习获得的作为模块的HMM的状态粒度比低级单元111h通过ACHMM学习获得的作为模块的HMM的状态粒度粗略T倍,T是采样间隔。
图45示意性示出:在采样间隔T是例如3的情况下,低级单元111h的HMM的状态粒度以及高级单元111h+1的HMM的状态粒度。
在采用例如类型1识别结果信息的情况下,当最低等级的ACHMM单元1111使用要从应用了图10中学习设备的行动体的运动环境观测的观测值时间序列来执行ACHMM处理时,ACHMM单元1111的高级单元1112的HMM状态对应于以下区域:宽度为ACHMM单元1111(即低级单元)的HMM所处理的局部区域的三倍。
另一方面,在低级单元111h的输出控制单元123输出类型2识别结果信息作为输出数据的情况下,高级单元111h+1处的HMM的状态粒度是在采用上述类型1识别结果信息的情形中作为模块的HMM的状态数量N的倍数。
也就是说,在采用类型2识别结果信息的情况下,高级单元111h+1的HMM的状态粒度是比低级单元111h的HMM的状态粒度更粗略T×N倍的粒度。
因此,在采用类型2识别结果信息的情况下,比如说:采样间隔T诸如以上所描述地为例如3、以及作为模块的HMM的状态数量N为例如5,则高级单元111h+1的HMM的状态粒度是比低级单元111h的HMM的状态粒度更粗略15倍的粒度。
输入数据的输入控制
图46是描述由图42中的输入控制单元121进行的输入数据输入控制的第一方法(第一输入控制方法)的图。
对于第一输入控制方法,输入控制单元121把作为要从外部提供的作为观测值的识别结果信息(或者要从传感器11经由观测时间序列缓存器12提供的观测值)(即要从低级单元(的输出控制单元123)通过上述第一或第二输出控制方法提供的输出数据)暂时存储于输入缓存器121A中,以及当存储来自低级单元的最新输出数据时,输出固定长度L的最新输出数据的时间序列作为输入数据。
图46示出在固定长度L为例如3的情形中的第一输入控制方法。
输入控制单元121把来自低级单元的输出数据暂时存储于输入缓存器121A中作为要从外部提供的观测值。
对于第一输入控制方法,当把来自低级单元的最新输出数据存储于输入缓存器121A中时,输入控制单元121从输入缓存器121A读取出时间序列数据O={o1、...、oL}(即包括最新输出数据的过去L个样本(时间点)的输出数据的L =3份时间序列)作为输入数据,并将其提供给ACHMM处理单元122的模块学习单元131和识别单元132。
注意,在图46中(对于后面描述的图47也是如此),将会通过第二输出控制方法把来自低级单元的输出数据提供给高级单元的输入控制单元121。
另外,在图46中(对于后面描述的图47也是如此),通过对其附加下标h把第h个分级等级的ACHMM单元111h的ACHMM处理单元122(图42)描述成ACHMM处理单元122h。
图47是描述由图42中的输入控制单元121进行的输入数据输入控制的第二方法(第二输入控制方法)的图。
对于第二输入控制方法,当把来自低级单元的最新输出数据存储于输入缓存器121A中时,输入控制单元121从输入缓存器121A读取出从返回过去直到值不同的输出数据出现预定次数L为止(直到作为唯一操作结果的输出数据样本的数量达到L为止)的点的输出数据到最新输出数据作为输入数据,并将其提供给ACHMM处理单元122的模块学习单元131和识别单元132。
因此,要从输入控制单元121提供给ACHMM处理单元122的输入数据样本的数量根据第一输入控制方法是L个样本,但是根据第二输入控制方法,是等于或大于L个样本的可变值。
注意,对于最低等级的ACHMM单元1111,在采用第一输入控制方法时,采用窗口长度W作为固定长度L。
另外,在作为输出数据的识别结果信息是类型1识别结果信息(即最大似然值模块#m*和状态的索引的集合)的情况下,例如,如图20中所描述的,高级单元111h+1的输入控制单元121把是二维符号的识别结果信息转换成对于构建低级单元111h的ACHMM的所有模块均不重复的一维符号值(如,值),并作为输入数据处理一维符号值。
此处,在把图40中的学习设备应用于行动体以使用要从行动体所位于的运动环境观测的观测值以自组织方式获得运动环境的地图的情况下,期望在输入控制单元121采用第一和第二输入控制方法中的第二输入控制方法。
也就是说,运动环境是如下这种可逆系统:其中,由于以某个方向Dir为移动方向的仅仅预定移动量的移动m1′而发生作为模块的HMM的状态的状态转变,以及发生状态由于以与方向Dir相反的方向为移动方向的仅仅预定移动量的移动(返回原始状态的移动)m1′而返回原始状态的状态转变。
现在,比如说:行动体执行了与移动m1和m1′不同的移动m2,随后交替重复多次移动m1和m1’,并在重复的最后一个移动m1′之后,执行用于对于移动m2返回的移动m2′。
进一步地,比如说:根据这种移动m2,对于作为低级单元111h的ACHMM的模块的HMM,作为三个状态#1、#2和#3之间的状态转变,发生如下这些状态转变:如,自状态#3起在状态#1与#2之间摇摆的“3→2→1→2→1→2→1→2→1→2→1→2→1→2→1→2→3”。
对于状态转变“3→2→1→2→1→2→1→2→1→2→1→2→1→2→1→2→3”,相比于状态#2与#3之间的状态转变而言出现极多的状态#1与#2之间的状态转变。
进一步地,此处,为了简化描述,不做改变地提供状态转变“3→2→1→2→1→2→1→2→1→2→1→2→1→2→1→2→3”中状态的所有索引作为从低级单元111h向高级单元111h+1的输出数据。
现在,对于高级单元111h+1,如果例如在以固定长度L为3的情况下采用第一输入控制方法,则高级单元111h+1的输入控制单元121首先把“3→2→1”作为输入数据,随后按顺序把“2→1→2”、“1→2→1”、...、“1→2→1”、“2→1→2”以及“1→2→3”作为输入数据。
现在,为了简化描述,对于作为高级单元111h+1的ACHMM的模块的HMM,例如,比如说:对于输入数据“3→2→1”以与输入数据相同的方式发生状态转变“3→2→1”。
在此情形中,对于在高级单元111h+1处作为对象模块的的HMM的追加学习,通过与输入数据“2→1→2”和“1→2→1”的呈现频率成比例的量使用随后出现的大量输入数据“2→1→2”和“1→2→1”更新状态#1与#2之间状态转变的状态转变概率,来稀释(或遗忘)在采用第一输入数据“3→2→1”时从状态#3向状态#2的状态转变的状态转变概率。
也就是说,在状态#1至#3中,例如,当关注状态#2时,对于状态#2,大量输入数据“2→1→2”和“1→2→1”增加了对于状态#1的状态转变的状态转变概率,但是另一方面,对于除了状态#1以外的状态(即,包括状态#3的其它状态)的状态转变概率减小。
另一方面,对于高级单元111h+1,如果例如在以固定数量L为3的情况下采用第二输入控制方法,则高级单元111h+1的输入控制单元121首先把“3→2→1”作为输入数据,然后依次把“3→2→1→2”、“3→2→1→2→1”、...、“3→2→1→2→1→2→1→2→1→2→1→2→1→2→1→2”以及“1→2→3”作为输入数据。
在此情形中,对于在高级单元111h+1处作为对象模块的HMM的追加学习,除了第一个输入数据“3→2→1”之外还使用随后的输入数据执行从状态#3向状态#2的状态转变的状态转变概率的更新,并且因此,对于状态#2,对于状态#1的状态转变的状态转变概率增加,另外,对于状态#3的状态转变的状态转变概率有所增加,对于除了状态#1和#3以外的状态的状态转变概率相对减小。
以上述方式,根据第二输入控制方法,可以减少程度要被稀释(遗忘)的从状态#3向状态#2的状态转变的状态转变概率的更新。
HMM的观测概率的扩展
图48是描述HMM(即ACHMM的模块)的观测概率的扩展的图。
对于分级ACHMM,在HMM(即ACHMM的模块)是离散HMM的情况下,输入数据可以包括未观测到的值,即从未观测到的观测值。
也就是说,特别地,可以向ACHMM添加新模块,因此,在对于除了最低等级以外的分级等级的ACHMM单元111h的情况下,表示作为要从低级单元111h-1提供的识别结果信息的索引的最大似然值模块#m*是尚未提供的新模块,在此情形中,要由ACHMM单元111h的输入控制单元121输出的输入数据包括与新模块的索引等同的未观测到的值。
此处,如上所述,对于新模块#m的索引m,在以1为初始值的情况下采用顺序的整数,相应地,在表示作为要从低级单元111h-1提供的识别结果信息的索引的最大似然值模块#m*是尚未提供的新模块的情况下,对于ACHMM单元111h,与该新模块的索引等同的未观测到的值是超过迄今为止已观测到的观测值的最大值的值。
ACHMM单元111h的ACHMM处理单元122(图42)的模块学习单元131,在HMM(即ACHMM的模块)是离散HMM的情况下,在要从输入控制单元121提供的输入数据包括未观测到的值(即从未观测到的观测值时),执行扩展处理用于扩展HMM(即ACHMM的模块)的HMM参数中可以观测到观测值的观测概率的观测概率矩阵,以包括未观测到的值的观测概率。
也就是说,在要从输入控制单元121提供的输入数据包括超过迄今为止已观测到的观测值的最大值K的未观测到的值K1的情况下,使用扩展处理,诸如图48中所示出的,模块学习单元131把行方向(竖直方向)作为状态#i的索引i,以及还把列方向(水平方向)作为观测值k,对于状态#i,改变(扩展)以可以观测到观测值k的观测概率为分量的观测概率矩阵中、从观测值K到除了未观测到的值K1以外的值K2的列方向上观测值的最大值。
进一步地,对于扩展处理,把对于观测概率矩阵的HMM的每个状态的值K1至K2(即非观测值)的观测概率初始化成例如数量级为1/(100×K)的随机微小值。
然后,执行用于对观测概率矩阵每行的观测概率进行归一化的对于概率的随机化,以使得观测概率矩阵一行观测概率的总和(可以观测到每个观测值的观测概率的总和)变成1.0,扩展处理结束。
注意,在以构建ACHMM的所有模块(HMM)的观测概率矩阵为对象的情况下执行扩展处理。
单元生成处理
图49是描述要由图40中的ACHMM分级处理单元101执行的单元生成处理的流程图。
ACHMM分级处理单元101(图40)酌情生成ACHMM单元111,并进一步执行用于将ACHMM单元111连接到分级结构中以配置分级ACHMM的处理。
也就是说,对于单元生成处理,在步骤S211中,ACHMM分级处理单元101生成最低等级的ACHMM单元1111,并在只以最低等级的ACHMM单元1111作为分量的情况下配置一个等级的分级ACHMM,处理进入步骤S212。
此处,ACHMM单元的生成等同于:例如,对于面向对象程序设计,准备ACHMM单元的类以及生成该ACHMM单元的类的示例。
在步骤S212中,ACHMM分级处理单元101判断是否从ACHMM单元111中没有高级单元的ACHMM单元输出了输出数据。
具体地,现在,比如说:分级ACHMM由H(分级等级)个ACHMM单元1111至111H配置成,在步骤S212中,判断是否从最高等级的ACHMM单元111H(的输出控制单元123(图42))输出了输出数据。
在步骤S212中判断出从最高等级的ACHMM单元111H输出了输出数据的情况下,处理进入步骤S213,在步骤S213,ACHMM分级处理单元101生成作为ACHMM单元111H的高级单元的最高等级的新ACHMM单元111H+1。
具体地,在步骤S213中,ACHMM分级处理单元101生成新ACHMM单元(新单元)111H+1,并把该新单元111H+1连接到ACHMM单元111H作为迄今为止是最高等级的ACHMM单元111H的高级单元。因此,配置了由H+1个ACHMM单元1111至111H+1构建的分级HMM。
然后,处理从步骤S213返回步骤S212,此后,重复同样的处理。
另外,在步骤S212中判断出尚未从最高等级的ACHMM单元111H输出了输出数据的情况下,处理返回步骤S212。
如上所述,对于单元生成处理,在由H个ACHMM单元1111至111H构建的分级ACHMM中,当未连接到高级单元的ACHMM单元(在下文中,也称作“未连接单元”)(即,最高等级的ACHMM单元111H)输出了输出数据时,生成新单元。然后,把新单元作为高级单元,把未连接单元作为低级单元,连接新单元和未连接单元,配置由H+1个ACHMM单元1111至111H+1构建的分级HMM。
作为其结果,根据单元生成处理,分级ACHMM的分级等级的数量增加,直到它达到适合于建模对象的规模或配置的数量为止,进一步地,诸如图45中所描述的,距高等级ACHMM单元111h越近,作为模块的HMM的状态的粒度(时空粒度)越粗略,从而可以消除感知混淆问题。
注意,对于新单元执行与图9中的步骤S11以及图17中的步骤S61中的处理相同的初始化处理,ACHMM由单个模块构建。
另外,对于输出控制单元123,在采用第一输出控制方法(图43)的情况下,最高等级的ACHMM单元111H(即未连接单元)的ACHMM由单个模块(HMM)配置成,另外,在要在ACHMM单元111H的识别单元132处获得的识别结果信息的状态处于具体单一状态中的情况下,即使在从最高等级的ACHMM单元111H输出了输出数据时,也跳过步骤S213,不生成新的最高等级的ACHMM单元111H+1。
单元学习处理
图50是描述要由图42中的ACHMM单元111h执行的处理(单元学习处理)的流程图。
在步骤S221中,在等到从ACHMM单元111h-1即ACHMM单元111h的低级单元(然而,在ACHMM单元111h是最低等级的ACHMM单元1111的情况下,观测时间序列缓存器12(图40))提供作为来自外部的观测值的输出数据之后,ACHMM单元111h的输入控制单元121将其暂时存储于输入缓存器121A中,处理进入步骤S222。
在步骤S222中,输入控制单元121通过第一或第二输入控制方法根据输入缓存器121A中存储的输出数据配置要提供给ACHMM的输入数据,并将其提供给ACHMM处理单元122(的模块学习单元131和识别单元132),处理进入步骤S223。
在步骤S223中,ACHMM处理单元122的模块学习单元131判断作为来自输入控制单元121的输入数据的观测值时间序列中是否包括在HMM(即ACHMM存储单元134中存储的ACHMM的模块中)尚未观测到的观测值。
在步骤S223中判断出输入数据中包括未观测到的值的情况下,处理进入步骤S224,在步骤S224,模块学习单元131执行图48中描述的扩展处理以扩展观测概率的观测概率矩阵,以包括未观测到的值的观测概率,处理进入步骤S225。
另外,在步骤S223中确定输入数据中不包括非观测值的情况下,处理跳过步骤S224进入步骤S225,在步骤S225,ACHMM处理单元122使用来自输入控制单元121的输入数据执行模块学习处理、识别处理以及转变信息生成处理,处理进入步骤S226。
具体地,对于ACHMM处理单元122,模块学习单元131使用来自输入控制单元121的输入数据执行图9中模块学习处理的步骤S16和此后的处理、或者图17中步骤S66和此后的处理。
然后,对于ACHMM处理单元122,识别单元132使用来自输入控制单元121的输入数据执行图21中的识别处理。
然后,对于ACHMM处理单元122,转变信息管理单元133使用要作为在识别单元132处使用输入数据执行的识别处理的结果而获得的识别结果信息来执行图24中的转变信息生成处理。
在步骤S226中,输出控制单元123把要作为在识别单元132处使用输入数据执行的识别处理的结果而获得的识别结果信息暂时存储于输出缓存器123A中,处理进入步骤S227。
在步骤S227中,输出控制单元123判断是否满足图43和图44中描述的输出数据的输出条件。
在步骤S227中判断出不满足输出数据的输出条件的情况下,处理跳过步骤S228返回步骤S221。
另外,在步骤S227中判断出满足输出数据的输出条件的情况下,处理进入步骤S228,在步骤S228,输出控制单元123把输出缓存器123A中存储的最新识别结果信息作为输出数据,并将其输出给ACHMM单元111h+1即ACHMM单元111h的高级单元,处理返回步骤S221。
应用了学习设备的行动体的配置示例
图51是示出应用了图40中学习设备的行动体的实施例(第二实施例)的配置示例的框图。
注意,在图中,与图28的情形相对应的部分附加了相同的附图标记,此后,将酌情略去其描述。
图51中的行动体与图28的情形的共同之处在于:它包括传感器71、观测时间序列缓存器72、动作控制器82、驱动单元83以及致动器84。
然而,图51中的行动体与图28的情形的不同之处在于:它包括ACHMM分级处理单元151而非图28中的模块学习单元73至HMM配置单元77以及规划单元81。
在图51中,ACHMM分级处理单元151以与图40中的ACHMM分级处理单元101相同的方式生成ACHMM单元,以将其连接至分级结构中,从而配置分级ACHMM。
然而,ACHMM分级处理单元151生成的ACHMM单元除了图40中的ACHMM分级处理单元101生成的ACHMM单元的功能之外还具有用于执行规划的功能。
注意,在图51中,以与ACHMM分级处理单元151分开的方式提供动作控制器82,但是ACHMM分级处理单元151生成的ACHMM单元中可以包括动作控制器82。
然而,动作控制器82执行用于输入要在传感器71处观测到的观测值以输出关于最低等级ACHMM单元每个状态转变的动作信号的动作函数的学习,因此,不必提供给构建分级ACHMM的所有ACHMM单元,可以只提供给最低等级的ACHMM。
此处,图28中的行动体执行用于按照预定规则移动的动作,在运动环境(即建模对象)的移动目的地处使用要在传感器71处观测到的观测值时间序列来执行ACHMM学习,执行用于输入观测值以输出关于每个状态转变的动作信号的动作函数的学习。
然后,图28中的行动体使用由学习之后的ACHMM配置成的组合的HMM获得从当前状态到目标状态的最大似然值状态序列作为从当前状态到达目标状态的规划,并按照在ACHMM学习时获得的动作函数执行引起作为该规划的最大似然值状态序列的状态转变的动作,从而从与当前状态对应的位置移动到与目标状态对应的位置。
另一方面,图51中的行动体还执行用于按照预定规则移动的动作,对于最低等级的ACHMM单元,以与图28中的行动体相同的方式,在移动目的地执行用于使用要在传感器71处观测到的观测值时间序列执行ACHMM学习的单元学习处理(图50),另外,对于ACHMM的每个状态转变执行用于输入观测值以输出动作信号的动作函数的学习。
进一步地,对于图51中的行动体,对于除了最低等级以外的分级等级的ACHMM单元,作为时间序列的输入数据根据在低级单元获得的、被提供作为来自该低级单元的输出数据的识别结果信息配置,使用该输入数据作为要从外部提供的观测值时间序列来执行用于执行ACHMM学习的单元学习处理(图50)。
注意,对于图51中的行动体,在执行单元学习处理的情况下,单元生成处理(图49)酌情生成新单元。
如上所述,对于图51中的行动体,在每个分级等级的ACHMM单元执行单元学习处理(图50),因此,分别:在高分级等级ACHMM单元的ACHMM处以自组织方式获得更全局运动环境的配置,在低分级等级ACHMM单元的ACHMM处以自组织方式获得更局部运动环境的配置。
然后,对于图51中的行动体,在每个分级等级ACHMM单元的ACHMM学习进展到一定程度时,当提供在构建分级ACHMM的ACHMM单元中的所关注的ACHMM单元(即所关注的分级等级ACHMM单元)的状态中的一个状态作为目标状态时,对于所关注的ACHMM单元,使用由ACHMM构建的组合的HMM获得从当前状态到目标状态的最大似然值状态序列作为规划。
在所关注的ACHMM单元是最低等级的ACHMM单元的情况下,图51中的行动体以与图28中的行动体相同的方式按照在ACHMM学习时获得的动作函数来执行引起作为规划的最大似然值状态序列的状态转变的动作,从而从与当前状态对应的位置移动到与目标状态对应的位置。
另外,在所关注的ACHMM单元是除了最低等级以外的分级等级的ACHMM单元的情况下,图51中的行动体参考要在最大似然值状态序列(作为要在所关注的ACHMM单元获得的规划)的第一状态(当前状态)的下一状态中观测到的观测值的观测概率,把由观测概率等于或大于预定阈值的观测值表示的低级单元的ACHMM的状态作为在低级单元的目标状态的候选(目标状态候选),对于低级单元,获得从当前状态到目标状态候选的最大似然值状态序列作为规划。
注意,在采用类型1识别结果信息作为识别结果信息的情况下,要在HMM(即所关注的ACHMM单元的ACHMM的模块)处观测到的观测值是识别结果信息即所关注的ACHMM单元的低级单元的ACHMM的最大似然值模块#m*、以及状态的索引的集合,因此,用这种识别结果信息表示的低级单元的状态是由识别结果信息确定的低级单元的ACHMM的模块#m*的状态
另外,在采用类型2识别结果信息作为识别结果信息的情况下,要在HMM(即所关注ACHMM单元的ACHMM的模块)处观测到的观测值是识别结果信息[m*],即所关注的ACHMM单元的低级单元的ACHMM的最大似然值模块#m*的索引。用这种识别结果信息[m*]表示的低级单元的状态是由识别结果信息[m*]确定的低级单元的ACHMM的模块#m*的任意状态、多个状态或所有状态。
对于图51中的行动体,在低分级等级ACHMM处递归执行与所关注的ACHMM单元的低级单元相同的处理。
进一步地,对于最低等级的ACHMM单元,以与图28中的行动体相同的方式,获得规划。然后,行动体按照在ACHMM学习时获得的动作函数执行引起作为规划的最大似然值状态序列的状态转变的动作,从而从与当前状态对应的位置移动到与目标状态对应的位置。
也就是说,对于分级ACHMM,在高分级等级的ACHMM单元处获得的规划的状态转变是全局状态转变,因此,图51中的行动体把在高分级等级的ACHMM单元处获得的规划传播给低分级等级的ACHMM单元,最终,执行引起在最低等级的ACHMM单元处获得的规划的状态转变的移动作为动作。
ACHMM单元的配置示例
图52是示出由图51中的ACHMM分级处理单元151生成的除了最低等级的ACHMM单元200以外的第h个分级等级的ACHMM单元200h的配置示例的框图。
ACHMM单元200h包括输入控制单元201h、ACHMM处理单元202h、输出控制单元203h以及规划单元221h。
输入控制单元201h包括输入缓存器201Ah,并执行与图42中的输入控制单元121相同的输入控制。
ACHMM处理单元202h包括模块学习单元211h、识别单元212h、转变信息管理单元213h、ACHMM存储单元214h以及HMM配置单元215h。
以与图42中的模块学习单元131至HMM配置单元135相同的方式配置模块学习单元211h至HMM配置单元215h,因此,ACHMM处理单元202h执行与图42中的ACHMM处理单元122相同的处理。
输出控制单元203h包括输出缓存器203Ah,并执行与图42中的输出控制单元123相同的输出控制。
把用于请求最新观测值识别的识别处理请求从ACHMM单元200h的低级单元200h-1提供给规划单元221h。
另外,把最新观测值的识别结果信息从识别单元212h提供给规划单元221h,把组合的HMM从HMM配置单元215h提供给规划单元221h。
进一步地,在高级单元200h+1的全部ACHMM(的作为模块的HMM)中观测概率等于或大于要在ACHMM单元200h的高级单元200h+1中观测到观测值的预定阈值的观测值的列表(观测值列表),被提供给规划单元221h。
此处,要从高级单元200h+1提供的观测值列表的观测值是在ACHMM单元200h获得的识别结果信息,并且因此,表示ACHMM单元200h的ACHMM的状态或模块。
在从低级单元200h-1提供了识别结果请求的情况下,规划单元221h要求:采用包括最新观测值的输入数据O={o1、o2、...、oL}作为来自识别单元212h的最新样本oL的识别处理。
然后,规划单元221h把由来自高级单元200h+1的观测值列表中观测值或者由观测值表示的模块的所有状态表示的状态作为目标状态候选(ACHMM单元200h的分级等级(第h个分级等级)的目标状态的候选),并判断一个或更多个目标状态候选中的一个目标状态候选是否与由来自识别单元212h的识别结果信息确定的当前状态匹配。
然后,规划单元221h从对于一个或更多个目标状态候选中每个目标状态候选的最大似然值状态序列中,选择例如状态的数量最少的最大似然值状态序列作为规划。
进一步地,规划单元221h生成要在当前状态的下一个状态中观测到的观测值中观测概率等于或大于阈值的一个或更多个观测值的观测值列表,并将其提供给ACHMM单元200h的低级单元200h-1。
注意,可以不以观测列表的形式、而是以与提供给图28中行动体的规划单元81的目标状态相同的方式把目标状态(候选)从ACHMM单元200h的高级单元200h+1提供给规划单元221h,可以通过来自外部的对目标状态的指定、或者通过激发系统对目标状态的设置把ACHMM单元200h的ACHMM的任意单个状态提供给规划单元221h作为目标状态。
现在,比如说:把要以此方式提供给规划单元221h的目标状态称作外部目标状态,则在提供外部目标状态的情况下,规划单元221h在以外部目标状态为目标状态候选的情况下执行同样的处理。
图53是示出由图51中的ACHMM分级处理单元151生成的ACHMM单元200中最低等级的ACHMM单元2001的配置示例的框图。
ACHMM单元2001以与除了最低等级以外的分级等级的ACHMM单元200h相同的方式包括输入控制单元2011、ACHMM处理单元2021、输出控制单元2031以及规划单元2211。
然而,不存在ACHMM单元2001的低级单元,因此,对于规划单元2211,没有从低级单元提供识别处理请求,没有生成要提供给低级单元的观测值列表。
相反,规划单元2211把从规划的第一状态(当前状态)向下一状态的状态转变提供给动作控制器82。
另外,对于最低等级的ACHMM单元2001,要从识别单元2121输出的识别结果信息、以及作为输入控制单元2011提供给ACHMM处理单元2021的输入数据的传感器71的观测值时间序列的最新观测值,被提供给动作控制器82。
动作控制处理
图54是描述在把外部目标状态提供给了图52中第h个分级等级的ACHMM单元200h的情况下要由该ACHMM单元(在下文中,也称作“目标状态指定单元”)200h的规划单元221h执行的用于控制行动体动作的动作控制处理的流程图。
注意,在把外部目标状态提供给了最低等级的ACHMM单元2001的情况下,执行与图28中的行动体相同的处理,因此,现在,比如说:目标状态指定单元200h是除了最低等级以外的分级等级的ACHMM单元。
另外,比如说:对于图51中的行动体,由每个分级等级的ACHMM单元200h进行的单元学习处理(图50)进展到某个程度,由动作控制器82对动作函数的学习已经完成了。
在步骤S241中,规划单元221h等待提供目标状态指定单元200h的ACHMM的状态中的一个状态作为外部目标状态#g,接收该外部目标状态#g,要求来自识别单元212h的识别处理,处理进入步骤S242。
在步骤S242中,在等到识别单元212h输出要通过执行采用要从输入控制单元201h提供的最新输入数据的识别处理来获得的识别结果信息之后,规划单元221h接收该识别结果信息,处理进入步骤S243。
在步骤S243中,规划单元221h判断要根据来自识别单元212h的识别结果信息确定的当前状态(用作为最大似然值模块的HMM观测到输入数据的最大似然值状态序列的最后一个状态)和外部目标状态#g是否匹配。
在步骤S243中判断出当前状态和外部目标状态#g不匹配的情况下,处理进入步骤S244,在步骤S244,规划单元221h执行规划处理。
具体地,在步骤S244中,规划单元221h以与图31中的情形相同的方式用要从HMM配置单元215h提供的组合的HMM获得从当前状态向目标状态#g的状态转变的似然值最大的状态序列(最大似然值状态序列),作为从当前状态到达目标状态#g的规划。
注意,在图31中,在从当前状态到目标状态#g的最大似然值状态序列的长度等于或大于阈值的情况下,判断出尚未获得作为规划的最大似然值状态序列,但是对于要由图51中的行动体执行的规划处理,为了简化描述,比如说:必须通过采用足够大的值作为阈值来获得最大似然值状态序列。
然后,处理从步骤S244进入步骤S245,在步骤S245,规划单元221h通过参考规划中的第一状态(即,当前状态的下一状态)的观测概率来生成要在下一状态中观测到的观测值中观测概率等于或大于阈值的一个或更多个观测值的观测值列表,并将其提供给目标状态指定单元200h的低级单元200h-1(的规划单元221h-1)。
此处,要在(HMM即)目标状态指定单元200h的ACHMM(的模块)的状态中观测到的观测值是在该目标状态指定单元200h的低级单元200h-1处获得的识别结果信息,并且因此,是表示低级单元200h-1的ACHMM的状态或模块的索引。
另外,对于要用于生成观测值列表的观测值的阈值,例如,可以采用固定阈值。进一步地,可以适应性地设置观测值的阈值,以使得预定数量观测值的观测概率等于或大于阈值。
在规划单元221h在步骤S245中把观测值列表提供给低级单元200h-1之后,处理进入步骤S246,在步骤S246,规划单元221h等待从低级单元200h-1(的规划单元221h-1)提供识别处理请求,并接收此内容。
然后,规划单元221h按照来自低级单元200h-1的识别处理请求来要求采用包括最新观测值的输入数据O={o1、o2、...、oL}作为来自识别单元212h的最新样本oL的识别处理。
然后,处理从步骤S246返回步骤S242,在步骤S242,在等到识别单元212h通过采用要从输入控制单元201h提供的最新输入数据执行识别处理来输出最新观测值的识别结果信息,规划单元221h接收该识别结果信息,此后,重复同样的处理。
然后,在步骤S243中判断出当前状态和目标状态#g匹配的情况下,即,在行动体在运动环境内移动了并且到达了与外部目标状态#g对应的位置的情况下,处理结束。
图55是描述要由以下规划单元221h执行的用于控制行动体动作的动作控制处理的流程图:比目标状态指定单元更低分级等级的ACHMM单元中除了最低层的ACHMM单元2001以外的ACHMM单元(在下文中,也称作“中间层单元”)200h(图52)的规划单元221h。
在步骤S251中,规划单元221h等待以及接收从中间单元200h的高级单元200h+1(的规划单元221h+1)提供的观测值列表,处理进入步骤S252。
在步骤S252中,规划单元221h根据来自高级单元200h+1的观测值列表来获得目标状态候选。
具体地,要从高级单元200h+1提供的观测值列表的观测值是表示中间层单元200h的ACHMM的状态或模块的索引,规划单元221h把HMM(该HMM是用索引(即观测值列表的一个或更多个观测值)中每个索引表示的中间层单元200h的ACHMM的状态或模块)的所有状态,作为目标状态候选。
在步骤S252中获得一个或更多个目标状态候选之后,规划单元221h要求来自识别单元212h的识别处理,处理进入步骤S253。在步骤S253中,在等到识别单元212h输出要通过采用要从输入控制单元201h提供的最新输入数据执行识别处理来获得的识别结果信息之后,规划单元221h接收该识别结果信息,处理进入步骤S254。
在步骤S254中,规划单元221h判断要根据来自识别单元212h的识别结果信息确定的当前状态(用作为最大似然值模块的HMM可以观测到输入数据的最大似然值状态序列的最后一个状态)和一个或更多个目标状态候选中的一个目标状态候选是否匹配。
在步骤S254中确定当前状态与一个或更多个目标状态候选中的任何目标状态候选均不匹配的情况下,处理进入步骤S255,在步骤S255,规划单元221h执行对于一个或更多个目标状态候选中每个目标状态候选的规划处理。
具体地,在步骤S255中,规划单元221h以与图31中对于一个或更多个目标状态候选中每个目标状态候选的情形相同的方式,用要从HMM配置单元215h提供的组合的HMM获得从当前状态向目标状态候选的状态转变的似然值最大的状态序列(最大似然值状态序列)。
然后,处理从步骤S255进入步骤S256,在步骤S256,规划单元221h从对于一个或更多个目标状态候选获得的最大似然值状态序列中,选择例如状态的数量最小的单个最大似然值状态序列作为最终规划,处理进入步骤S257。
在步骤S257中,规划单元221h通过参考规划中的第一状态(当前状态)的下一状态的观测概率,生成要在下一状态中观测到的观测值中观测概率等于或大于阈值的一个或更多个观测值的观测值列表,并将其提供给中间层单元200h的低级单元200h-1(的规划单元221h-1)。
此处,要在(HMM即)中间层单元200h的ACHMM(的模块)的状态中观测到的观测值是在该中间层单元200h的低级单元200h-1获得的识别结果信息,并且因此,是表示低级单元200h-1的ACHMM的状态或模块的索引。
在规划单元221h把观测值列表提供给低级单元200h-1之后,处理进入步骤S258,在步骤S258,规划单元221h等待以及接收从低级单元200h-1(的规划单元221h-1)提供的识别处理请求。
然后,规划单元221h根据来自低级单元200h-1的识别处理请求来要求采用包括最新观测值的输入数据作为来自识别单元212h的最新样本的识别处理。
然后,处理从步骤S258返回步骤S253,在步骤S253,在等到识别单元212h通过采用要从输入控制单元201h提供的最新输入数据执行识别处理来输出最新观测值的识别结果信息之后,规划单元221h接收该识别结果信息,此后,重复同样的处理。
然后,在步骤S254中判断出当前状态与一个或更多个目标状态候选中的一个目标状态候选匹配的情况下,即,在行动体在运动环境内移动了并且到达了与一个或更多个目标状态候选中一个目标状态候选对应的位置的情况下,处理进入步骤S259,在步骤S259,规划单元221h把识别处理请求提供(发送)给中间层单元200h的高级单元200h+1(的规划单元221h+1)。
然后,处理从步骤S259返回步骤S251,在步骤S251,如上所述,规划单元221h等待以及接收从中间层单元200h的高级单元200h+1提供的观测值列表,此后,重复同样的处理。
注意,中间层单元200h的动作控制处理在目标状态指定单元的动作控制处理(图54)结束的情况下(在图54中的步骤S243中判断出当前状态和外部目标状态#g匹配的情况下)结束。
图56是描述要由最低层ACHMM单元(在下文中,也称作“最低层单元”)2001(图53)的规划单元2211执行的用于控制行动体动作的动作控制处理的流程图。
对于最低层单元2001,在步骤S271至S276中,分别执行与图55中的步骤S251至S256相同的处理。
具体地,在步骤S271中,规划单元2211等待以及接收从最低层单元2001的高级单元2002(的规划单元2212)提供的观测值列表,处理进入步骤S272。
在步骤S272中,规划单元2211根据来自高级单元2002的观测值列表获得目标状态候选。
具体地,要从高级单元2002提供的观测值列表的观测值是表示最低层单元2001的ACHMM的状态或模块的索引,规划单元2211把HMM(该HMM是用索引(即观测值列表的一个或更多个观测值)中每个索引表示的最低层单元2001的ACHMM的状态或模块)的所有状态,作为目标状态候选。
在步骤S272中获得一个或更多个目标状态候选之后,规划单元2211要求来自识别单元2121的识别处理,处理进入步骤S273。在步骤S273中,在等到识别单元2121输出要通过采用要从输入控制单元2011提供的最新输入数据(要在传感器71观测的观测值时间序列)执行识别处理来获得的识别结果信息之后,规划单元2211接收该识别结果信息,处理进入步骤S274。
在步骤S274中,规划单元2211判断要根据来自识别单元2121的识别结果信息确定的当前状态和一个或更多个目标状态候选中的一个目标状态候选是否匹配。
在步骤S274中确定当前状态与一个或更多个目标状态候选中的任何目标状态候选均不匹配的情况下,处理进入步骤S275,在步骤S275,规划单元2211执行对于一个或更多个目标状态候选中每个目标状态候选的规划处理。
具体地,在步骤S275中,规划单元2211以与图31中关于一个或更多个目标状态候选中每个目标状态候选的情形相同的方式,用要从HMM配置单元2151提供的组合的HMM获得从当前状态到目标状态候选的最大似然值状态序列。
然后,处理从步骤S275进入步骤S276,在步骤S276,规划单元221从对于一个或更多个目标状态候选获得的最大似然值状态序列中选择例如状态的数量最小的单个最大似然值状态序列作为最终规划,处理进入步骤S277。
在步骤S277中,规划单元2211把表示规划的第一状态转变(即,从规划中当前状态向其下一状态的状态转变)的信息(状态转变信息)提供给动作控制器82(图51和图53),处理进入步骤S278。
此处,规划单元2211把状态转变信息提供给动作控制器82,从而动作控制器82把要从输入控制单元201提供的最新观测值(当前时间点的观测值)提供给关于由来自规划单元2211的状态转变信息表示的状态转变的动作函数作为输入,从而获得要从动作函数输出的动作信号作为要由行动体执行的动作的动作信号。
然后,动作控制器82把该动作信号提供给驱动单元83。驱动单元83把来自动作控制器82的动作信号提供给致动器84,从而驱动致动器84,因此,行动体执行例如用于在运动环境内移动的动作。
如上所述,在行动体在运动环境内移动之后,在步骤S278中,在移动之后的位置处,识别单元2121执行采用包括要在传感器71处观测的观测值(最新观测值)的输入数据作为最新样本的识别处理。在等到输出要通过识别处理获得的识别结果信息之后,规划单元2211接收要从识别单元2121输出的识别结果信息,处理进入步骤S279。
在步骤S279中,规划单元2211判断要根据来自识别单元2121的识别结果信息(在紧接此前的步骤S278中接收的识别结果信息)确定的当前状态是否与上一当前状态(即一个时间点以前的当前状态)匹配。
在步骤S279中确定当前状态与上一当前状态匹配的情况下,即,在与行动体移动了之后的位置对应的当前状态以及与行动体移动之前的位置对应的上一当前状态是同一状态、以及由于行动体的移动而在最低级ACHMM单元的ACHMM处尚未发生状态转变的情况下,处理返回步骤S277,此后,重复同样的处理。
另外,在步骤S279中确定当前状态与上一当前状态不匹配的情况下,即,由于行动体的移动而在最低级ACHMM单元的ACHMM处发生了状态转变的情况下,处理进入步骤S280,在步骤S280,规划单元2211判断要根据来自识别单元2121的识别结果信息确定的当前状态是否与一个或更多个目标状态候选中的一个目标状态候选匹配。
在步骤S280中确定当前状态与一个或更多个目标状态候选中的任何目标状态候选均不匹配的情况下,处理进入步骤S281,在步骤S281,规划单元2211判断当前状态是否与(作为)规划(的状态序列)上的状态中的一个状态匹配。
在步骤S281确定当前状态与规划上的状态中的一个状态匹配的情况下,即,在行动体位于与作为规划的状态序列的一个状态对应的位置中的情况下,处理进入步骤S282,在步骤S282,规划单元2211把规划改变成规划上的状态中从与当前状态匹配的状态(与当前状态匹配的状态,从第一状态朝向规划的最终状态最先出现)到规划的最终状态的状态序列,处理返回步骤S277。
在此情形中,使用改变后的规划来执行步骤S277中的处理和此后的处理。
另外,在步骤S281中确定当前状态与规划上的状态中的任何状态均不匹配的情况下,即,在行动体不位于与作为规划的状态序列的任何状态对应的位置中的情况下,处理返回步骤S275,此后,重复同样的处理。
在此情形中,对于一个或更多个目标状态候选中的每个目标状态候选,获得从新当前状态(要根据在紧接此前的步骤S278中接收的识别结果信息确定的当前状态)到目标状态的最大似然值状态序列(步骤S275),从关于一个或更多个目标状态候选中每个目标状态候选的最大似然值状态序列中选择最大似然值状态序列中的一个作为规划(步骤S276),从而执行规划的重新创建,此后,使用该规划执行同样的处理。
另一方面,在步骤S274或步骤S280中确定当前状态与一个或更多个目标状态候选中的一个目标状态候选匹配的情况下,即,在行动体在运动环境内移动了并且到达了与一个或更多个目标状态候选中一个目标状态候选对应的位置的情况下,处理进入步骤S283,在步骤S283,规划单元2211把识别处理请求提供(发送)给最低层单元2001的高级单元2002(的规划单元2212)。
然后,处理从步骤S283返回步骤S271,在步骤S271,如上所述,规划单元2211等待以及接收从最低层单元2001的高级单元2002提供的观测值列表,此后,重复同样的处理。
注意,以与中间层单元的动作控制处理相同的方式,最低层单元2001的动作控制处理在目标状态指定单元的动作控制处理(图54)结束的情况下(在图54中的步骤S243中确定当前状态和外部目标状态#g匹配的情况下)结束。
图57是示意性地示出了在分级ACHMM由三个分级等级的ACHMM单元#1、#2和#3配置成的情形中每个分级等级的ACHMM的图。
在图57中,椭圆表示ACHMM的状态。另外,分别地,大椭圆表示第三分级等级(最高等级)的ACHMM单元#3的ACHMM的状态,中椭圆表示第二分级等级的ACHMM单元#2的ACHMM的状态,小椭圆表示第一分级等级(最低等级)的ACHMM单元#1的ACHMM的状态。
图57示出了在行动体移动的运动环境的相应位置中每个分级等级的ACHMM的状态。
例如,在把第三分级等级(在图中用星形标记示例出)的ACHMM的某个状态提供给ACHMM单元#3作为外部目标状态#g的情况下,对于ACHMM单元#3,通过识别处理获得当前状态,对于第三分级等级的ACHMM(配置成的组合的HMM),获得从当前状态到外部目标状态#g的最大似然值状态序列作为规划(在图中用箭头示例出)。
然后,ACHMM单元#3生成要在规划的第一状态的下一状态中观测的观测值中观测概率等于或大于预定阈值的观测值的观测值列表,并将其提供给作为低级单元的ACHMM单元#2。
对于ACHMM单元#2,通过识别处理获得当前状态,另一方面,根据表示第二分级等级的ACHMM的状态(或模块)的索引,即来自ACHMM单元#3(高级单元)的观测值列表的观测值,获得由该索引表示的状态(在图中用星形标记示例出)作为目标状态候选,对于一个或更多个目标状态候选中的每个目标状态候选,在第二分级等级的ACHMM(配置成的组合的HMM)处获得从当前状态到目标状态候选的最大似然值状态序列。
进一步地,对于ACHMM单元#2,在对于一个或更多个目标状态候选中每个目标状态候选的最大似然值状态序列中,选择状态数量最小的最大似然值状态序列(在图中用箭头示例出)作为规划。
然后,对于ACHMM单元#2,在要在规划的第一状态的下一状态中观测的观测值中,生成并且向作为低级单元的ACHMM单元#1提供观测概率等于或大于预定阈值的观测值的观测值列表。
对于ACHMM单元#1,也以与ACHMM单元#2相同的方式,通过识别处理获得当前状态,另一方面,根据来自作为高级单元的ACHMM单元#2的观测值列表的观测值获得一个或更多个目标状态候选(在图中用星形标记示例出),对于一个或更多个目标状态候选中的每个目标状态候选,在第一分级等级的ACHMM(配置成的组合的HMM)处获得从当前状态到目标状态候选的最大似然值状态序列。
进一步地,对于ACHMM单元#1,在对于一个或更多个目标状态候选中每个目标状态候选的最大似然值状态序列中,选择状态数量最小的最大似然值状态序列(在图中用箭头示例出)作为规划。
然后,对于ACHMM单元#1,把表示规划的第一状态转变的状态转变信息提供给动作控制器82(图51),因此,行动体移动,以使得在第一分级等级的ACHMM处发生在ACHMM单元#1处获得的规划的第一状态转变。
然后,行动体移动到与第一分级等级的ACHMM的一个或更多个目标状态候选中一个目标状态候选对应的位置,在一个或更多个目标状态候选中一个目标状态候选的状态变成了当前状态的情况下,ACHMM单元#1把识别处理请求提供给作为高级单元的ACHMM单元#2。
对于ACHMM单元#2,响应于来自作为低级单元的ACHMM单元#1的识别处理请求,执行识别处理,重新要求当前状态。
进一步地,对于ACHMM单元#2,对于根据来自作为高级单元的ACHMM单元#3的观测值列表的观测值获得的一个或更多个目标状态候选中的每个目标状态候选,在第二分级等级的ACHMM处获得从当前状态到目标状态候选的最大似然值状态序列。
然后,对于ACHMM单元#2,在对于一个或更多个目标状态候选中每个目标状态候选的最大似然值状态序列中,选择状态数量最小的最大似然值状态序列作为规划,此后,重复同样的处理。
然后,对于ACHMM单元#2,在要通过要根据来自ACHMM单元#1(低级单元)的识别处理请求执行的识别处理获得的当前状态与要根据来自ACHMM单元#3(高级单元)的观测值列表的观测值获得的一个或更多个目标状态候选中的一个目标状态候选匹配的情况下,ACHMM单元#2把识别处理请求提供给作为高级单元的ACHMM单元#3。
对于ACHMM单元#3,执行识别处理以响应于来自ACHMM单元#2(低级单元)的识别处理请求重新获得当前状态。
进一步地,对于ACHMM单元#3,在第三分级等级的ACHMM处获得从当前状态到外部目标状态#g的最大似然值状态序列,此后,重复同样的处理。
然后,对于ACHMM单元#3,在要通过要根据来自ACHMM单元#2(低级单元)的识别处理请求执行的识别处理获得的当前状态与外部目标状态#g匹配的情况下,ACHMM单元#1至#3结束处理。
以此方式,行动体可以在运动环境内移动到与外部目标状态#g对应的位置。
如上所述,对于图51中的行动体,在用于实现把任意分级等级的目标状态的状态转变规划按顺序扩展到最低等级之后执行状态转变控制,从而行动体可以获得自主环境模型和任意状态实现能力。
第三实施例
图58是描述要由图8中的模块学习单元13执行的模块学习处理的另一示例的流程图。
注意,对于图58中的模块学习处理,执行图17中描述的可变窗口学习,但是也可以执行图9中描述的固定窗口学习。
对于图9和图17中的模块学习处理,诸如图10中所述,根据最大对数似然值maxLP(即最大似然值模块#m*的对数似然值)以及预定阈值似然值TH之间的大小相关性,把最大似然值模块#m*或新模块确定为对象模块。
具体地,在最大对数似然值maxLP等于或大于阈值似然值TH的情况下,最大似然值模块#m*变成对象模块,在最大对数似然值maxLP小于阈值似然值TH的情况下,把新模块确定为对象模块。
然而,在根据最大对数似然值maxLP与阈值似然值TH之间的大小相关性确定对象模块的情况下,实际上,即使在获得良好的ACHMM(例如,具有在识别单元14(图1)处可以获得正确识别结果信息的较高可能性的ACHMM)作为整体ACHMM来以最大似然值模块#m*为对象模块执行最大似然值模块#m*的追加学习是最好时,在最大对数似然值maxLP甚至只是略微小于阈值似然值TH的情况下,也以新模块为对象模块来执行新模块的追加学习。
类似地,实际上,即使获得良好的ACHMM作为整体ACHMM来在以新模块为对象模块执行新模块的追加学习较好时,在最大对数似然值maxLP与阈值似然值TH匹配、或者甚至只是略微大于阈值似然值TH的情况下,也以最大似然值模块#m*为对象模块来执行最大似然值模块#m*的追加学习。
因此,对于第三实施例,对象模块确定单元22(图8)在执行了最大似然值模块#m*的追加学习的情形以及执行了新模块的追加学习的情形中的每个情形中的ACHMM中,基于要通过贝叶斯估计获得的后验概率确定对象模块。
具体地,对象模块确定单元22计算例如在新模块学习处理之后的ACHMM(要在执行了新模块的追加学习的情形中获得的ACHMM)的后验概率相对于在现有模块学习处理之后的ACHMM(要在执行了最大似然值模块#m*的追加学习的情形中获得的ACHMM)的后验概率的改进量,以及基于该改进量,把最大似然值模块或新模块确定为对象模块。
以此方式,根据基于ACHMM的后验概率的改进量确定出的对象模块,以逻辑的和灵活的(适应性的)方式把新模块添加到ACHMM,从而相比于根据最大对数似然值maxLP与阈值似然值TH之间的大小相关性确定对象模块的情形而言,可以对于建模对象获得由合适数量的模块构建的ACHMM。作为其结果,可以获得良好的ACHMM。
此处,对于HMM学习,如上所述,对于通过HMM参数λ定义的HMM,估算HMM参数λ,以使可以观测到时间序列数据O(即被学习数据)的似然值P(O|λ)最大化。对于HMM参数λ的估算,通常,采用:采用EM算法的Baum-Welch重估方法。
另外,对于HMM参数λ的估算,例如,Brand,M.E.,“PatternDiscovery via Entropy Minimization”,Uncertainty99:InternationalWorkshop on Artificial Intelligence and Statistics(“通过熵最小化的模式发现”,不确定性99:国际人工智能和统计研讨会),1999年1月中描述了如下这种方法:用于通过估算HMM参数λ以使观测到了被学习数据O的HMM可以是通过HMM参数λ定义的HMM的后验似然值P(O |λ)最大化来改进HMM的精度。
对于用于估算HMM参数λ以使HMM的后验似然值P(λ|O)最大化的方法,估算HMM参数λ以使得通过关注于引入了根据HMM参数λ定义的熵H(λ)使HMM的后验似然值P(λ|O)=P(O|λ)×p(λ)/P(O)最大化,先验概率P(λ)(即通过HMM参数λ定义的HMM)具有与exp(-H(λ))成比例的关系(exp()表示底数是纳皮尔常数的幂函数)。
注意,根据HMM参数λ定义的熵H(λ)是用于衡量HMM配置的紧凑性的尺度,即,用于衡量如下这种更加结构化程度的尺度:其中,表达模糊性小,性质较接近确定性的区别,即,使用对任何观测值时间序列的输入的识别结果,最大似然值状态的似然值相比于其它状态的似然值而言也显著增加。
对于第三实施例,沿着用于估算HMM参数λ以使HMM的后验似然值P(λ|O)最大化的方法的思路,引入通过模型参数θ定义的ACHMM熵H(θ),使用比例常数prior_balance通过表达式log(P(θ))=-prior_balance×H(θ)定义ACHMM对数先验概率log(P(θ))。
如上所述,定义ACHMM对数先验概率log(P(θ))以及似然值P(O|θ),从而使用可以发生时间序列数据O的概率P(O)基于贝叶斯估计用P(θ|O)=P(O |θ)×P(θ)/P(O)可以表示ACHMM的后验概率P(θ|O)。
对于第三实施例,对象模块确定单元22(图8)基于在执行了最大似然值模块#m*的追加学习的情形中ACHMM的后验概率、以及在执行了新模块的追加学习的情形中ACHMM的后验概率把最大似然值模块或新模块确定为对象模块。
具体地,对于对象模块确定单元22,例如,在相对于要在执行了最大似然值模块#m*的追加学习的情形中获得的现有模块学习处理之后ACHMM的后验概率而言改进了要在执行了新模块的追加学习的情形中获得的新模块学习处理之后ACHMM的后验概率的情形中,把新模块确定为对象模块,执行作为该对象模块的新模块的追加学习。
另外,在未改进新模块学习处理之后ACHMM的后验概率的情况下,把最大似然值模块#m*确定为对象模块,执行作为该对象模块的最大似然值模块#m*的追加学习。
如上所述,根据基于ACHMM的后验概率确定的对象模块,以逻辑的和灵活的(适应性的)方式把新模块添加到ACHMM,作为其结果,相比于基于最大对数似然值maxLP与阈值似然值TH之间的大小相关性确定对象模块的情形而言可以防止过多或过少地执行新模块的生成。
模块学习处理
图58是描述用于在如上所述基于ACHMM后验概率确定对象模块的同时执行ACHMM学习的模块学习处理的流程图。
对于图58中的模块学习处理,在步骤S311至S322中,通常执行分别与图17中的模块学习处理的步骤S61至S72相同的处理。
然而,对于图58中的模块学习处理,在步骤S315中,执行与图17中的步骤S65相同的处理,另外,把被学习数据Ot缓存于后面描述的样本缓存器RSm中。
进一步地,在步骤S319中,在ACHMM由单个模块#1配置成的同时,以与图17中的步骤S69相同的方式,根据最大对数似然值maxLP与阈值似然值TH之间的大小相关性确定对象模块,但是在ACHMM由两个或更多个(多个)模块#1至#M配置成的情况下,基于ACHMM的后验概率确定对象模块。
另外,在步骤S321中执行与图17中的步骤S71相同的现有模块学习处理之后以及在步骤S322中执行与图17中的步骤S72相同的新模块学习处理之后,在步骤S323中,执行后面所述的样本保存处理。
具体地,对于图58中的模块学习处理,在步骤S311中,模块学习单元13的更新单元23(图8)执行生成作为构建ACHMM的第一个模块#1的遍历HMM作为初始化处理,以及把模块总数量M设置为作为初始值的1。
然后,在等到观测值ot从传感器11输出并且存储在观测时间序列缓存器12中之后,处理从步骤S311进入步骤S312,模块学习单元13(图8)把时间点t设置为1,处理进入步骤S313。
在步骤S313中,模块学习单元13判断时间点t是否等于窗口长度W。
在步骤S313中确定时间点t不等于窗口长度W的情况下,在等到下一个观测值ot从传感器11输出并且存储在观测时间序列缓存器12中之后,处理进入步骤S314。
在步骤S314中,模块学习单元13使时间点t递增一,处理返回步骤S313,此后,重复同样的处理。
另外,在步骤S313中确定时间点t等于窗口长度W的情况下,即,在时间序列数据Ot=W={o1、...、oW}(即窗口长度W的观测值时间序列)被存储于观测时间序列缓存器12中的情况下,对象模块确定单元22(图8)把只由单个模块#1构建的ACHMM中的该对象模块#1确定为对象模块。
然后,对象模块确定单元22把表示模块#1(即对象模块)的模块索引m=1提供给更新单元23,处理从步骤S313进入步骤S315。
在步骤S315中,更新单元23把模块#1(即用来自对象模块确定单元22的模块索引m=1表示的对象模块)的有效学习频率Qlearn[m=1]设置为作为初始值的1.0。
进一步地,在步骤S315中,更新单元23按照表达式γ=1/(Qlearn[m=1]+1.0)获得模块#1(即对象模块)的学习率γ。
然后,更新单元23把观测时间序列缓存器12中存储的窗口长度W的时间序列数据Ot=W={o1、...、oW}作为被学习数据,并使用该被学习数据Ot=W以用学习率γ=1/(Qlearn[m=1]+1.0)执行模块#1(即对象模块)的追加学习。
具体地,更新单元23按照上述表达式(3)至(16)对ACHMM存储单元16中存储的模块#1(即对象模块)的HMM参数λm=1进行更新。
进一步地,更新单元23把被学习数据Ot=W缓存于内置存储器(未示出)中保护的缓存器buffer_winner_sample(即用于缓存观测值的变量)中。
另外,更新单元23把内置存储器中保护的优胜时段信息cnt_since_win设置为作为初始值的1,cnt_since_win是表示在一个时间点以前已是最大似然值模块的模块是最大似然值模块的时段的变量。
进一步地,更新单元23把内置存储器中保证的上一优胜信息past_win设置为作为初始值的1,即模块#1的模块索引,past_win是表示一个时间点以前(是)最大似然值模块(的模块)的变量。
另外,对象模块确定单元22把模块#1(即对象模块)的追加学习所采用的被学习数据Ot=W以与每个模块#m相关联的方式缓存于更新单元23中容纳的存储器中保护的样本缓存器RSm(即用于缓存每个模块的追加学习所采用的被学习数据的变量)的样本缓存器RS1中,作为样本。
然后,在等到下一观测值ot从传感器11输出并且存储在观测时间序列缓存器12中之后,处理从步骤S315进入步骤S316,在步骤S316中,模块学习单元13使时间点t递增一,处理进入步骤S317。
在步骤S317中,似然值计算单元21(图8)把观测时间序列缓存器12中存储的窗口长度W的最新时间序列数据Ot={ot-W+1、...、ot}作为被学习数据,获得关于构建ACHMM存储单元16中存储的ACHMM的所有模块#1至#M中每个模块的模块似然值P(Ot|λm),并将其提供给对象模块确定单元22。
然后,处理从步骤S317进入步骤S318,在步骤S318,对象模块确定单元22从构建ACHMM的模块#1至#M中获得来自似然值计算单元21的模块似然值P(Ot|λm)最大的最大似然值模块#m*=argmaxm[P(Ot|λm)]。
进一步地,对象模块确定单元22根据来自似然值计算单元21的模块似然值P(Ot|λm)获得最大对数似然值maxLP=maxm[P(Ot|λm)],处理从步骤S318进入步骤S319。
在步骤S319中,对象模块确定单元22执行对象模块确定处理,用于基于最大对数似然值maxLP或ACHMM后验概率把最大似然值模块#m*或新模块确定为对象模块。
然后,对象模块确定单元22把对象模块的模块索引提供给更新单元23,处理从步骤S319进入步骤S320。
在步骤S320中,更新单元23判断用来自对象模块确定单元22的模块索引表示的对象模块是否是最大似然值模块#m*或者是新模块。
在步骤S320中确定对象模块是新模块的情况下,处理进入步骤S322,在步骤S322,更新单元23执行用于对新模块的HMM参数进行更新的新模块学习处理(图19)。
在步骤S321中的现有模块学习处理之后以及在步骤S322中的新模块学习处理之后,在任一情形中,处理进入步骤S323,在步骤S323,对象模块确定单元22执行样本保存处理,样本保存处理用于把对象模块#m的HMM参数的更新(对象模块#m的追加学习)所采用的被学习数据Ot缓存于与该对象模块#m对应的样本缓存器RSm中,作为被学习数据样本。
然后,在等到下一观测值ot从传感器11输出并且存储在观测时间序列缓存器12中之后,处理从步骤S323返回步骤S316,此后,重复同样的处理。
样本保存处理
图59是描述要由对象模块确定单元22(图8)在图58中的步骤S323中执行的样本保存处理的流程图。
在步骤S341中,对象模块确定单元22(图8)判断模块#m(即对象模块)的样木本缓存器RSm中缓存的被学习数据的数量(样本的数量)是否等于或大于预定数量R。
在步骤S341中确定模块#m(即对象模块)的样本缓存器RSm中缓存的被学习数据样本的数量既不等于也不大于预定数量R的情况下,即,在模块#m的样本缓存器RSm中缓存的被学习数据样本的数量小于预定数量R的情况下,处理跳过步骤S342和S343进入步骤S344,在步骤S344,对象模块确定单元22(图8)以追加方式把对模块#m(即对象模块)的学习所采用的被学习数据Ot缓存于模块#m的样本缓存器RSm中,处理返回。
另外,在步骤S341中确定模块#m(即对象模块)的样本缓存器RSm中缓存的被学习数据样本的数量等于或大于预定数量R的情况下,处理进入步骤S342,在步骤S342,对象模块确定单元22(图8)判断是否满足如下这种样本替换条件,由此用已变成对象模块的模块#m的学习所采用的被学习数据Ot来替换模块#m的样本缓存器RSm中缓存的被学习数据的R个样本的一个样本。
此处,对于样本替换条件,例如,可以采用如下这种第一条件:其中,在被学习数据向样本缓存器RSm的最后一次缓存之后,模块#m的学习是第SAMP_STEP(预定频率)个学习。
在采用第一条件作为样本替换条件的情况下,在样本缓存器RSm中缓存的被学习数据样本的数量达到R之后,每当执行模块#m的学习SAMP_STEP次时,执行样本缓存器RSm中缓存的被学习数据的替换。
另外,对于样本替换条件,可以采用如下这种第二条件:其中,预先设置用于执行样本缓存器RSm中缓存的被学习数据的替换的替换概率p,当以概率p随机生成两个数值中的一个并且以概率1-p随机生成另一数值时,所生成的数值是这些数值中的一个数值。
在采用第二条件作为样本替换条件的情况下,取替换概率p为1/SAMP_STEP,因此,在样本缓存器RSm中缓存的被学习数据样本的数量达到R之后,从期望值的角度来看,以与第一条件相同的方式,每当执行模块#m的学习SAMP_STEP次时,执行样本缓存器RSm中缓存的被学习数据的替换。
在步骤S342中确定不满足样本替换条件的情况下,处理跳过步骤S343和S344返回。
在步骤S342中确定满足样本替换条件的情况下,处理进入步骤S343,在步骤S343,对象模块确定单元22(图8)随机选择模块#m(即对象模块)的样本缓存器RSm中缓存的被学习数据的R个样本的一个样本,并从样本缓存器RSm将其消除。
然后,处理从步骤S343进入步骤S344,在步骤S344,对象模块确定单元22(图8)以追加方式把对模块#m(即对象模块)的学习采用的被学习数据Ot缓存于样本缓存器RSm中,从而,把样本缓存器RSm中缓存的被学习数据样本的数量设置为R,处理返回。
如上所述,对于样本保存处理,直到执行模块#m的第R次学习(追加学习)为止,把迄今为止模块#m的学习所采用的所有被学习数据都缓存于样本缓存器RSm中,当模块#m学习的频率超过R次时,把迄今为止模块#m的学习所采用的被学习数据的一部分缓存于样本缓存器RSm中。对象模块的确定
图60是描述要在图58中的步骤S319中执行的对象模块确定处理的流程图。
在步骤S351中,对象模块确定单元22执行如下这种临时学习处理:其中,对于在以新模块为对象模块临时地执行新模块学习处理(图19)的情形、以及在以最大似然值模块为对象模块临时地执行现有模块学习处理(图18)的情形中的每个情形,获得ACHMM的对数似然值log(P(Ot|θ))和熵H(θ)。
注意,临时学习处理的详细内容将在后面进行描述,但是使用ACHMM存储单元16(图8)中当前存储的ACHMM的模型参数的副本执行临时学习处理。因此,临时学习处理不改变(更新)ACHMM存储单元16中存储的ACHMM的模型参数。
在步骤S351中的临时学习处理之后,处理进入步骤S352,在步骤S352,对象模块确定单元22(图8)判断ACHMM的模块总数量M是否是1。
此处,作为在步骤S352中用于确定模块总数量M的ACHMM不是临时学习处理之后的ACHMM而是ACHMM存储单元16中当前存储的ACHMM。
在步骤S352中确定ACHMM的模块总数量M是1的情况下,即,在ACHMM只由单个模块#1配置成的情况下,处理进入步骤S353,此后,在步骤S353至S355中,以与图10中的步骤S31至S33相同的方式,基于最大对数似然值maxLP与阈值似然值TH之间的大小相关性确定对象模块。
具体地,在步骤S353中,对象模块确定单元22(图8)判断最大对数似然值maxLP(即最大似然值模块#m*的对数似然值)是否等于或大于如图13至图16中所述地设置的阈值似然值TH。
在确定最大对数似然值maxLP等于或大于阈值似然值TH的情况下,处理进入步骤S354,在步骤S354,对象模块确定单元22把最大似然值模块#m*确定为对象模块,处理返回。
另外,在确定最大对数似然值maxLP小于阈值似然值TH的情况下,处理进入步骤S355,在步骤S355,对象模块确定单元22把新模块确定为对象模块,处理进入步骤S356。
在步骤S356中,对象模块确定单元22使用ACHMM的熵H(θ)获得比例常数prior_balance,用于按照表达式log(P(θ))=-priorbalance×H(θ)获得ACHMM的对数先验概率log(P(θ)),处理返回。
现在,比如说:用ETPnew和LPROBnew分别表示在临时地执行了新模块学习处理(图19)的情况下要在上述步骤S351中执行的临时学习处理中获得的ACHMM的熵H(θ)和对数似然值log(P(Ot|θ))。
进一步地,比如说:用ETPwin和LPROBwin分别表示在以临时学习处理中获得的最大似然值模块为对象模块临时地执行了现有模块学习处理(图18)的情形中ACHMM的熵H(θ)和对数似然值log(P(Ot|θ))。
在步骤S356中,对象模块确定单元22使用在临时地执行了新模块学习处理(图19)之后ACHMM的熵ETPnew和对数似然值LPROBnew、以及临时地执行了现有模块学习处理(图18)之后ACHMM的熵ETPwin和对数似然值LPROBwin,按照表达式prior_balance =(LPROBnew-LPROBwin)/(ETPnew-ETPwin)获得比例常数prior_balance。
另一方面,在确定ACHMM的模块总数量M不是1的情况下,即,在ACHMM由两个或模块#1至M配置成的情况下,处理进入步骤S357,在步骤S357,对象模块确定单元22基于要通过使用步骤S356中获得的比例常数获得的ACHMM的先验概率(的改进量)来执行对象模块确定处理,处理返回。
此处,根据使用ACHMM的时间序列数据O、似然值P(O|θ)以及先验概率P(θ)可能发生的概率(先验概率)P(O)的表达式P(θ|O)=P(O |θ)×P(θ)/P(O),可以基于贝叶斯估计获得通过模型参数θ定义的ACHMM的后验概率P(θ|O)。
对于表达式P(θ|O)=P(O|θ)×P(θ)/P(O),如果对两侧均取对数,则此表达式变成表达式log(P(θ|O))=log(P(O |θ))+log(P(θ))-log(P(O))。
现在,比如说:在临时地执行了新模块学习处理(图19)的情况下,用θnew表示该新模块学习处理之后ACHMM的模型参数θ,另外,在临时地执行了现有模块学习处理(图18)的情况下,用θwin表示该现有模块学习处理之后ACHMM的模型参数θ。
在此情形中,用表达式log(P(θnew|O))=log(P(O|θnew))+log(P(θnew))-log(P(O))表示新模块学习处理之后ACHMM的(对数)后验概率log(P(θnew|O))。
另外,用表达式log(P(θwin|O))=log(P(O|θwin))+log(P(θwin))-log(P(O))表示现有模块学习处理之后ACHMM的(对数)后验概率log(P(θwin|O))。
因此,用表达式ΔAP=log(P(θnew|O))-log(P(θwin|O))
=log(P(O θnew))+log(P(θnew))-log(P(O))
-{(log(P(O |θwin))+log(P(θwin))-log(P(O)))}
=log(P(O|θnew))-log(P(O|θwin))+log(P(θnew))-log(P(θwin))表示:相对于现有模块学习处理之后ACHMM的后验概率log(P(θwin |O))而言新模块学习处理之后ACHMM的后验概率log(P(θnew |O))的改进量ΔAP。
另外,用表达式log(P(θ))=-prior_balance×H(θ)表示对数先验概率log(P(θ))。因此,用表达式ΔAP=log(P(O|new))-log(P(O|θwin))-prior_balance×(H(θnew)-H(θwin))
=(LPROBnew-LPROBwin)-prior_balance×(ETPnew-ETPwin)表示上述后验概率的改进量ΔAP。
另一方面,在图60中,在确定ACHMM的模块总数量M是1(步骤S352)、确定最大对数似然值maxLP小于阈值似然值TH(步骤S353)、并且因此把首先生成的新模块确定为对象模块(步骤S355)的情况下执行步骤S356中比例常数prior_balance的计算。
因此,在ACHMM是由单个模块配置成的情况下,当该模块的对数似然值(即,最大对数似然值maxLP)小于阈值似然值TH时,在紧接之前执行的步骤S351中的临时学习处理中获得的在新模块学习处理之后ACHMM的熵ETPnew和对数似然值LPROBnew,是要通过在ACHMM中第一次添加新模块以及执行被学习数据的追加学习获得的ACHMM的熵和对数似然值。
另外,在ACHMM由单个模块配置成的情况下,当该模块的对数似然值(即,最大对数似然值maxLP)小于阈值似然值TH时,在紧接之前执行的步骤S351中的临时学习处理中获得的在现有模块学习处理之后ACHMM的熵ETPwin和对数似然值LPROBwin,是要通过使用构建ACHMM的单个模块执行被学习数据的追加学习获得的ACHMM的熵和对数似然值。
在步骤S356中,对于要按照表达式prior_balance=(LPROBnew-LPROBwin)/(ETPnew-ETPwin)获得的比例常数prior_balance的计算,如上所述,采用在新模块学习处理之后ACHMM的熵ETPnew和对数似然值LPROBnew以及在现有模块学习处理之后ACHMM的熵ETPwin和对数似然值LPROBwin。
在步骤S356中,要按照表达式prior_balance=(LPROBnew-LPROBwin)/(ETPnew-ETPwin)获得的比例常数prior_balance是在用表达式ΔAP=(LPROBnew-LPROBwin)-prior_balance(ETPnew-ETPwin)表示的后验概率的改进量ΔAP是0的情况下的prior_balance。
具体地,在步骤S356中,要按照表达式prior balance=(LPROBnew-LPROBwin)/(ETPnew-ETPwin)获得的比例常数prior_balance是以如下情况下后验概率的改进量ΔAP为0的prior_balance:对于由单个模块构建的ACHMM,该模块的对数似然值小于阈值似然值TH,并且第一次添加新模块。
因此,在使用这种比例常数prior_balance、以及要按照表达式ΔAP=(LPROBnew-LPROBwin)-prior_balance(ETPnew-ETPwin)获得的后验概率的改进量ΔAP超过0的情况下,把新模块确定为对象模块,在改进量ΔAP不超过0的情况下,把最大似然值模块确定为对象模块,从而相比于如下这种情形而言可以改进ACHMM的后验概率:对于观测空间,使用适合于获得用于对观测值进行聚类的期望聚类粒度的阈值似然值TH来确定对象模块。
此处,比例常数prior_balance是用于把ACHMM的熵H(θ)变换成对数先验概率log(P(θ))=-prior_balance×H(θ)的变换系数,但是对数先验概率log(P(θ))影响(对数)后验概率log(P(θ|O)),因此,比例常数priorbalance是用于控制熵H(θ)影响ACHMM的后验概率log(P(θ|O))的程度的参数。
进一步地,根据是否改进了要使用比例常数prior_balance获得的ACHMM的后验概率把最大似然值模块或新模块确定为对象模块,因此,比例常数prior_balance影响如何把新模块添加到ACHMM。
在图60中,使用阈值似然值TH执行对象模块的确定,即,确定是否把新模块添加到ACHMM,直到把新模块第一次添加到ACHMM为止,在以把新模块第一次添加到新模块时ACHMM的后验概率的改进量ΔAP为0(参考)的情况下,使用该阈值似然值TH获得比例常数prior_balance。
可以把如此获得的比例常数prior_balance设想为以下系数:该系数用于把用于对观测值进行聚类的聚类粒度转换成熵H(θ)影响要通过贝叶斯估计获得的后验概率P(θ|O)的程度(发生的程度)。
基于要使用比例常数prior_balance获得的后验概率的改进量ΔAP来执行随后对象模块的确定,因此,以逻辑的和灵活的(适应性的)方式把新模块添加到ACHMM,以实现期望的聚类粒度,可以获得由对于建模对象而言足够数量的模块构建的ACHMM。
图61是描述要在图60中的步骤S351中执行的临时学习处理的流程图。
对于临时学习处理,在步骤S361中,对象模块确定单元22(图8)控制更新单元23生成如下这种变量的副本:例如,要用于ACHMM存储单元16中存储的ACHMM(的模型参数)的复制、以及ACHMM学习的buffer_winner_sample。
此处,对于临时学习处理,使用步骤S361中生成的变量的副本以及ACHMM执行如下处理。
在步骤S361之后,处理进入步骤S362,在步骤S362,对象模块确定单元22控制更新单元23使用变量的副本和ACHMM来执行新模块学习处理(图19),处理进入步骤S363。
此处,把要使用变量的副本和ACHMM执行的新模块学习处理也称作新模块临时学习处理。
在步骤S363中,对象模块确定单元22获得在新模块临时学习处理中生成的新模块#M处可以观测到最新(当前时间点t)被学习数据Ot的对数似然值log(P(Ot|λM)),作为新模块临时学习处理之后ACHMM的对数似然值LPROBnew=log(P(Ot|θnew)),处理进入步骤S364。
此处,对于步骤S362中的新模块临时学习处理(图19),重复执行图19中的步骤S115中新模块#m的追加学习(按照表达式(3)至(16)对参数的更新),直到新模块#m变成最大似然值模块为止。
因此,当在步骤S363中获得新模块临时学习处理之后的对数似然值LPROBnew=log(P(Ot|θnew))时,新模块#m变成最大似然值模块,获得新模块#m(即该最大似然值模块)的对数似然值(最大对数似然值)作为在新模块临时学习处理之后ACHMM的对数似然值LPROBnew=log(P(Ot|θnew))。
注意,步骤S362中的新模块临时学习处理中新模块#m的追加学习的重复频率被限制在预定频率(例如,20次等),在按照表达式γ=1/(Qlearn[m]+1.0)更新学习率γ的同时重复新模块#m的追加学习,直到新模块#m变成最大似然值模块为止。
然后,在新模块#m即使在重复新模块#m的追加学习预定次数时也未变成最大似然值模块的情况下,在步骤S363中,获得最大似然值模块而非新模块#m的对数似然值(最大对数似然值)作为在新模块临时学习处理之后ACHMM的对数似然值LPROBnew=log(P(Ot|θnew))。
对于图58中步骤S322中的新模块学习处理,也以与步骤S362中新模块临时学习处理相同的方式,通过把重复频率限制在预定频率来重复新模块#m的追加学习,直到新模块#m变成最大似然值模块为止。
在步骤S364中,对象模块确定单元22控制更新单元23以在新模块临时学习处理之后的ACHMM为对象来执行ACHMM的熵H(θ)的计算处理,从而获得在新模块临时学习处理之后的ACHMM的熵ETPnew=H(θnew),处理进入步骤S365。
此处,ACHMM的熵H(θ)的计算处理将在后面进行描述。
在步骤S365中,对象模块确定单元22控制更新单元23使用变量的副本和ACHMM来执行现有模块学习处理(图18),处理进入步骤S366。
此处,把要使用变量的副本和ACHMM执行的现有模块学习处理也称作现有模块临时学习处理。
在步骤S366中,对象模块确定单元22获得在现有模块学习处理中变成了最大似然值模块的模块#m*处可以观测到最新(当前时间点t)被学习数据Ot的对数似然值作为现有模块临时学习处理之后的ACHMM的对数似然值LPROBwin=log(P(Ot|θwin)),处理进入步骤S367。
在步骤S367中,对象模块确定单元22控制更新单元23以在现有模块临时学习处理之后的ACHMM为对象来执行ACHMM的熵H(θ)的计算处理,从而获得在现有模块临时学习处理之后的ACHMM的熵ETPwin=H(θwin),处理返回。
图62是描述要在图61中的步骤S364和S367中执行的ACHMM的熵H(θ)的计算处理的流程图。
在步骤S371中,对象模块确定单元22(图8)控制更新单元23从与构建ACHMM的M个模块#1至#M相关联的样本缓存器RS1至RSM中提取预定Z个样本的被学习数据,作为用于熵H(θ)计算的数据,处理进入步骤S372。
此处,对于用于从样本缓存器RS1至RSM中提取的用于计算的数据的数量Z,可以取任意值,但是期望采用相比于构建ACHMM的模块的数量而言足够大的值。例如,在构建ACHMM的模块的数量是200左右的情况下,可以采用1000左右作为值Z。
另外,对于用于从样本缓存器RS1至RSM中提取作为用于计算的数据的Z个样本的被学习数据的方法,例如,可以采用如下这种方法:其中,从样本缓存器RS1至RSM中随机选择出一个样本缓存器RSm,随机重复提取该样本缓存器RSm中存储的被学习数据的一个样本的被学习数据Z次。
注意,可以做出如下这种布置:其中,把通过执行了模块#m的追加学习的频率(模块#m变成了对象模块的频率)除以所有模块#1至#M的追加学习的频率总和获得的值作为概率ωm,用概率ωm执行从样本缓存器RS1至RSM中选择出样本缓存器RSm。
此处,在从样本缓存器RS1至RSM提取的Z个样本的用于计算的数据中,用SOi表示用于计算的第i个数据。
在步骤S372中,对象模块确定单元22获得模块#1至#M中每个模块对于Z个样本的用于计算的数据SOi中每个数据的似然值P(SOi|λm),处理进入步骤S373。
在步骤S373中,对于Z个样本的用于计算的数据SOi中的每个数据,对象模块确定单元22把每个模块#m对于用于计算的数据SOi的似然值P(SOi|λm)随机化成对于构建ACHMM的所有模块#1至#M的总和可以是1.0的概率(对概率分布的归一化)。
具体地,现在,如果比如说:把Z行×M列的矩阵作为以似然值P(SOi|λm)为第i行第m列分量的似然值矩阵,则在步骤S373中,针对似然值矩阵的每一行对似然值P(SOi|λ1)、P(SOi|λ2)、...、P(SOi|λM)中的每个似然值进行归一化,以使得似然值P(SOi|λ1)、P(SOi|λ2)、...、P(SOi|λM)(即该行分量)的总和是1.0。
更具体地,如果比如说:用φm(SOi)表示要通过对似然值P(SOi|λm)进行随机化获得的概率,则在步骤S373中,按照表达式(17)把似然值P(SOi|λm)随机化成概率φm(SOi)。
此处,表达式(17)中对于变量m的总和(∑)是通过改变变量m从整数1至M获得的总和。
在步骤S373之后,处理进入步骤S374,在步骤S374,对象模块确定单元22按照表达式(18)以概率φm(SOi)作为可以发生用于计算的数据SOi的出现概率来获得用于计算的数据SOi的熵ε(SOi),处理进入步骤S375。
此处,表达式(18)中对于变量m的总和是通过改变变量m从整数1到M获得的总和。
在步骤S375中,对象模块确定单元22使用用于计算的数据SOi的熵ε(SOi)按照表达式(19)来计算模块#m的熵H(λm),处理进入步骤S376。
此处,表达式(19)中对于变量i的总和是通过改变变量i从整数1至Z获得的总和。
另外,在表达式(19)中,ωm(SOi)是作为用于计算的数据SOi的熵ε(SOi)影响模块#m的熵H(λm)的程度的权重,按照表达式(20)使用似然值P(SOi|λm)获得此权重ωm(SOi)。
此处,表达式(20)中关于变量i的求和是通过改变变量i从整数1至Z获得的总和。
在步骤S376中,对象模块确定单元22按照表达式(21)获得模块#m的熵H(λm)的关于模块#1至#M的总和作为ACHMM的熵H(θ),处理返回。
此处,表达式(21)中对于变量m的求和是通过改变变量m从整数1至M获得的总和。
注意,表达式(20)中获得的权重ωm(SOi)是用于使得用于改进模块#m的似然值P(SOi|λm)的用于计算的数据SOi的熵ε(SOi)影响模块#m的熵H(λm)的系数。
具体而言,模块#m的熵H(λm)在概念上是个尺度,该尺度表示在该模块#m的似然值P(SOi|λm)高时与模块#m不同的模块的似然值低的程度。
另一方面,它表示缺少ACHMM紧凑性的情形,即,接近具有用于计算的数据SOi的熵ε(SOi)高的较大表达模糊性的较随机属性的程度。
因此,在存在以下模块#m的情况下,对于该模块#m不存在只有该模块#m显著具有高似然值的计算数据:在该模块#m处,可以观测到熵ε(SOi)高的用于计算的数据SOi的似然值P(SOi|λm)比其它用于计算的数据高,该模块#m的存在生成整个ACHMM的冗余性。
具体地,以下模块#m的存在大大有助于使ACHMM具有缺少紧凑性的情形:在该模块#m处,可以观测到熵ε(SOi)高的用于计算的数据SOi的似然值P(SOi|λm)比其它用于计算的数据高。
因此,对于用于获得模块#m的熵H(λm)的表达式(19),为了使模块#m的似然值P(SOi|λm)高的用于计算的数据SOi的熵ε(SOi)影响熵H(λm),为熵ε(SOi)添加与高似然值P(SOi|λm)成比例的较大权重ωm(SOi)。
另一方面,以下模块#m对于使ACHMM具有缺少紧凑性的情形具有较小贡献:在该模块#m处,可以观测到熵ε(SOi)低的用于计算的数据SOi的似然值P(SOi|λm)低。
因此,对于用于获得模块#m的熵H(λm)的表达式(19),为模块#m的似然值P(SOi|λm)低的用于计算的数据SOi的熵ε(SOi)添加与低似然值P(SOi|λm)成比例的较小权重ωm(SOi)。
注意,根据表达式(20),对于可以观测到熵ε(SOi)小的用于计算的数据SOi的似然值P(SOi|λm)增大的模块#m,权重ωm(SOi)增大,在表达式(19)中,为小熵ε(SOi)添加这种大权重ωm(SOi),但是对于熵ε(SOi)的尺度,似然值P(SOi|λm)(即,权重ωm(SOi)的尺度)小,并且因此,表达式(19)中模块#m的熵H(λm)不太受这种小熵ε(SOi)的影响。
也就是说,在模块#m处可以观测到熵ε(SOi)高的用于计算的数据SOi的似然值P(SOi|λm)较高的情形中,表达式(19)中模块#m的熵H(λm)受到强烈的影响,其值增加。
图63是描述要在图60中的步骤S357中执行的基于后验概率的对象模块确定处理的流程图。
执行基于后验概率的对象模块确定处理,诸如图60中所描述的,在由单个模块构建ACHMM之后、以及当最大对数似然值maxLP(构建ACHMM的单个模块的对数似然值)变得小于阈值似然值TH时,新模块变成对象模块,获得比例常数prior_balance,因此,当ACHMM由两个或更多个(多个)模块配置成时,见下文。
对于基于后验概率的对象模块确定处理,在步骤S391中,对象模块确定单元22(图8)使用在紧接之前(图60中的步骤S351)执行的临时学习处理中获得的在现有模块临时学习处理之后的ACHMM的熵ETPwin和对数似然值LPROBwin、以及在新模块临时学习处理之后的ACHMM的熵ETPnew和对数似然值LPROBnew,获得在新模块临时学习处理之后ACHMM的后验概率相对于在现有模块临时学习处理之后ACHMM的后验概率的改进量ΔAP。
具体地,对象模块确定单元22按照表达式(22)获得在新模块临时学习之后的ACHMM的熵ETPnew相对于在现有模块临时学习处理之后的ACHMM的熵ETPwin的改进量ΔETP。
ΔETP=ETPnew-ETPwin...(22)
进一步地,对象模块确定单元22按照表达式(23)获得在新模块临时学习之后的ACHMM的对数似然值LPROBnew相对于在现有模块临时学习处理之后的ACHMM的对数似然值LPROBwin的改进量ΔLPROB。
ΔLPROB=LPROBnew-LPROBwin...(23)
然后,对象模块确定单元22使用熵改进量ΔETP、对数似然值改进量ΔLPROB以及比例常数prior_balance,按照与上述表达式ΔAP=(LPROBnew-LPROBwin)-prior_balance(ETPnew-ETPwin)匹配的表达式(24)来获得在新模块临时学习处理之后的ACHMM的后验概率相对于在现有模块临时学习处理之后的ACHMM的后验概率的改进量ΔAP。
ΔAP=ΔLPROB-prior_ba|ance×ΔETP...(24)
在步骤S391中获得ACHMM的后验概率的改进量ΔAP之后,处理进入步骤S392,在步骤S392,对象模块确定单元22判断ACHMM的后验概率的改进量ΔAP是否等于或小于0。
在步骤S392中确定ACHMM的后验概率的改进量ΔAP等于或小于0的情况下,即,在以新模块为对象模块执行了追加学习之后ACHMM的后验概率不高于以最大似然值模块为对象模块执行了追加学习之后ACHMM的后验概率的情况下,处理进入步骤S393,在步骤S393,对象模块确定单元22把最大似然值模块#m*确定为对象模块,处理返回。
另外,在步骤S392中确定ACHMM的后验概率的改进量ΔAP大于0的情况下,即,在以新模块为对象模块执行了追加学习之后ACHMM的后验概率高于以最大似然值模块为对象模块执行了追加学习之后ACHMM的后验概率的情况下,处理进入步骤S394,在步骤S394,对象模块确定单元22把新模块确定为对象模块,处理返回。
如上所述,把基于后验概率的对象模块确定方法应用于图28或图51中的行动体,其中,基于后验概率的改进量把最大似然值模块或新模块确定为对象模块,从而:通过行动体重复ACHMM中已经包括的现有模块的学习、添加要使用的新模块,行动体可以构建由适合于运动环境规模的模块数量配置成的、作为运动环境状态转变模型的ACHMM,作为行动体在行动体所位于的运动环境内移动以酌情采集经验的处理,而无需对于运动环境规模和配置的初步知识。
注意,除了应用于ACHMM之外,还可以把基于后验概率的对象模块确定方法应用于采用模块添加类型学习架构的学习模型(在下文中,也称作“模块追加架构类型学习模型”)。
对于模块追加架构类型学习模型,除了与采用HMM作为模块来以竞争追加方式学习时间序列数据的ACHMM相似的学习模型之外,例如,还存在采用时间序列模式存储模型作为模块的学习模型,诸如用于学习时间序列数据以存储时间序列模式的递归神经网络(RNN)等,用来以竞争追加方式学习时间序列数据。
也就是说,可以把基于后验概率的对象模块确定方法应用于采用时间序列模式存储模型(诸如,HMM或RNN等)、或者另一任意模型作为模块的模块追加架构类型学习模型。
图64是示出了应用了根据本发明的信息处理设备的学习设备的第三实施例的配置示例的框图。
注意,在图中,与图1的情形相对应的部分附加了相同的附图标记,此后,将酌情略去其描述。
在图64中,学习设备包括传感器11、观测时间序列缓存器12、模块学习单元310以及模块追加架构类型学习模型存储单元320。
对于图64中的学习设备,以上述窗口长度W的时间序列数据递增的方式把观测时间序列缓存器12中存储的观测值按顺序提供给模块学习单元310的似然值计算单元311和更新单元313。
模块学习单元310包括似然值计算单元311、对象模块确定单元312以及更新单元313。
对于窗口长度W的时间序列数据(即要从观测时间序列缓存器12连续提供作为要用于学习的被学习数据的观测值时间序列),对于构建模块追加架构类型学习模型存储单元320中存储的模块追加架构类型学习模型的每个模块,似然值计算单元311获得在该模块处可以观测到被学习数据的似然值,并将其提供给对象模块确定单元312。
对象模块确定单元312把模块追加架构类型学习模型存储单元320中存储的模块追加架构类型学习模型中的来自似然值计算单元311的似然值最大的最大似然值模块、或者新模块确定为对象模块,即用于对时间序列模式存储模型(即构建模块追加架构类型学习模型的模块)的模型参数进行更新的对象,并把表示该对象模块的模块索引提供给更新单元313。
具体地,基于使用被学习数据执行最大似然值模块的学习的情形、以及使用被学习数据执行新模块学习的情形中每个情形的模块追加架构类型学习模型的后验概率,对象模块确定单元312把最大似然值模块或新模块确定为对象模块,并把表示该对象模块的模块索引提供给更新单元313。
更新单元313使用来自观测时间序列缓存器12的被学习数据执行用于对时间序列模式存储模型(即用从对象模块确定单元312提供的模块索引表示的模块)的模型参数进行更新的追加学习,并使用更新后的模型参数对模块追加架构类型学习模型存储单元320的存储内容进行更新。
模块追加架构类型学习模型存储单元320存储具有用于存储时间序列模式的时间序列模式存储模型的模块追加架构类型学习模型,作为是最小组件的模块。
图65是示出了作为模块追加架构类型学习模型的模块的时间序列模式存储模型的示例的图。
在图65中,采用RNN作为时间序列模式存储模型。
在图65中,RNN由输入等级、中间等级(隐式等级)以及输出等级三个等级配置成。输入等级、中间等级以及输出等级各自由任意数量的与神经元等同的单元配置成。
对于RNN,从外部把输入向量xt输入(提供)到输入单元(输入等级的单元的一部分)。此处,输入向量xt表示时间点t处的样本(向量)。注意,对于本说明书,“向量”可以是具有一个分量的向量,即,标量值。
输入等级中的除了被输入了输入向量xt的输入单元以外的其余单元都是上下文单元,输出等级的一部分单元的输出(向量)被经由上下文回路反馈给上下文单元作为表示内部状态的上下文。
此处,把以下上下文描述成ct:要在时间点t的输入向量xt被输入到输入等级的输入单元时被输入到输入等级的上下文单元的在时间点t处的上下文。
中间等级的单元以要输入到输入等级的输入向量xt和上下文ct为对象使用预定权重执行加权相加,以加权相加的结果为自变量执行非线性函数的计算,并把其计算结果输出给输出等级的单元。
对于输出等级的单元,以要从中间等级的单元输出的数据为对象执行与中间等级的单元相同的处理。然后,下一时间点t+1处的上下文ct+1从输出等级的一部分单元诸如以上所描述地输出并反馈给输入等级。另外,输出向量对应于输入向量xt,即,在假设输入向量xt等同于函数的自变量时,从输出等级的其余单元输出与对于该自变量的函数值等同的输出向量。
此处,对于RNN的学习,例如,把某个时间序列数据在时间点t的样本提供给RNN作为输入向量,另外,把该时间序列数据在下一时间点t+1的样本提供给RNN作为输出向量的真值,并对权重进行更新,以减少输出向量对于真值的误差。
对于执行了这种学习的RNN,作为相对于输入向量xt的输出向量,输出该输入向量xt在下一时间点t+1的输入向量xt+1的预测值x* t+1。
注意,如上所述,对于RNN,对去往单元的输入进行加权相加,要用于此加权相加的权重是RNN的模型参数(RNN参数)。作为RNN参数的权重包括从输入单元到中间等级的单元的权重以及从中间等级的单元到输出等级的单元的权重。
在采用这种RNN作为模块的情况下,在该RNN的学习时,作为输入向量和输出向量的真值,例如,提供被学习数据Ot={ot-W+1、...、ot}即窗口长度W的时间序列数据。
然后,对于RNN的学习,例如通过BPTT(时间进化反传)方法获得以下权重:用于减少作为要在把被学习数据Ot={ot-W+1、...、ot}的每个时间点的样本提供给RNN作为输入向量时从RNN输出的输出向量的、在时间点t+1处的样本预测值的预测误差(的总和)。
此处,例如按照表达式(25)获得对于被学习数据Ot={ot-W+1、...、ot}、作为模块#m的RNN的预测误差Em(t)。
此处,在表达式(25)中,od(τ)表示输入向量oτ(即时间序列数据Ot在时间点τ的样本)的d维分量,o^d(τ)表示时间点τ的输入向量oτ的预测值(向量)o^τ(即要对于输入向量oτ-1从RNN输出的输出向量)的d维分量。
对于采用这种RNN作为模块的模块追加架构类型学习模型,可以按与ACHMM的情形相同的方式使用阈值(阈值似然值TH)在模块学习单元310(图64)确定对象模块。
具体地,在使用阈值确定对象模块的情况下,模块学习单元310按照表达式(25)获得模块追加架构类型学习模型每个模块#m对于被学习数据Ot的预测误差Em(t)。
进一步地,模块学习单元310按照表达式Ewin=minm[Em(t)]获得模块追加架构类型学习模型中每个模块#m的预测误差的Em(t)的最小预测误差Ewin。
此处,minm[]表示相对于索引m变化的括号内的值的最小值。
在最小预测误差Ewin等于或小于预定阈值Eadd的情况下,模块学习单元310把从其获得了该最小预测误差Ewin的模块确定为对象模块,以及在最小预测误差Ewin大于预定阈值Eadd的情况下,把新模块确定为对象模块。
对于模块学习单元310,除了如上所述地使用阈值来确定对象模块之外,还可以基于后验概率来确定对象模块。
在基于后验概率来确定对象模块的情况下,必须提供RNN(即模块#m)对于时间序列数据Ot的似然值。
因此,对于模块学习单元310,似然值计算单元311按照表达式(25)获得模块追加架构类型学习模型的每个模块#m的预测误差Em(t)。进一步地,似然值计算单元311通过按照表达式(26)把预测误差Em(t)随机化成概率来获得每个模块#m的似然值(通过RNN参数(权重)λm定义的RNN的似然值)P(Ot|λm),即0.0至1.0的实值并且其总和是1.0,并将其提供给对象模块确定单元312。
此处,如果比如说:作为模块追加架构类型学习模型θ(通过模型参数θ定义的模块追加架构类型学习模型)对于时间序列数据Ot的似然值P(Ot|θ),按照表达式P(Ot|θ)=maxm[P(Ot|λm)]采用模块追加架构类型学习模型的每个模块的似然值P(Ot|λm)的最大值,另外,作为模块追加架构类型学习模型θ的熵H(θ),以与ACHMM的情形相同的方式,采用要根据似然值P(Ot|λm)获得的熵,可以按照采用比例常数prior_balance的表达式log(P(θ))=-prior_balance×H(θ)获得模块追加架构类型学习模型θ的对数先验概率log(P(θ))。
进一步地,可以按与ACHMM的情形相同的方式使用先验概率P(θ)、P(Ot)以及似然值P(Ot|θ)基于贝叶斯估计按照表达式P(θ|Ot)=P(Ot|θ)×P(θ)/P(Ot)来获得模块追加架构类型学习模型θ的后验概率P(θ|Ot)。
因此,可以按与ACHMM的情形相同的方式获得模块追加架构类型学习模型θ的后验概率的改进量ΔAP。
对于模块学习单元310,对象模块确定单元312使用要从似然值计算单元311提供的似然值P(Ot|λm)如上所述地获得模块追加架构类型学习模型θ的基于贝叶斯估计的后验概率的改进量ΔAP,并基于该改进量ΔAP来确定对象模块。
图66是描述要由图64中的模块学习单元310执行的模块追加架构类型学习模型θ的学习处理(模块学习处理)的流程图。
注意,对于图66中的模块学习处理,执行图17中描述的可变窗口学习,但是可以执行图9中描述的固定窗口学习。
在图66中的模块学习处理的步骤S411至S423中,分别执行与图58中的模块学习处理的步骤S311至S323相同的处理。
然而,图66中的模块学习处理与把采用HMM作为模块的ACHMM作为对象的图58中的模块学习处理的不同之处在于:把采用RNN作为模块的模块追加架构类型学习模型作为对象,对于图66中的模块学习处理,由于这一点将会执行与图58中的模块学习处理部分不同的处理。
具体地,在步骤S411中,作为初始化处理,更新单元313(图64)执行:生成作为构建要存储于模块追加架构类型学习模型存储单元320中的模块追加架构类型学习模型的第一模块#1的RNN,把模块总数量M设置为作为初始值的1。
此处,对于RNN的生成,生成输入等级、中间等级和输出等级的预定数量的单元以及上下文单元,并且例如使用随机数对其权重进行初始化。
然后,在等到观测值ot从传感器11输出并且存储在观测时间序列缓存器12中之后,处理从步骤S411进入步骤S412,在步骤S412,模块学习单元310(图64)把时间点t设置为1,处理进入步骤S413。
在步骤S413中,模块学习单元310确定时间点t是否等于窗口长度W。
在步骤S413中确定时间点t不等于窗口长度W的情况下,在等到下一观测值ot从传感器11输出并且存储在观测时间序列缓存器12中之后,处理进入步骤S414。
在步骤S414中,模块学习单元310使时间点t递增一,处理返回步骤S413,此后,重复同样的处理。
另外,在步骤S413中确定时间点t等于窗口长度W的情况下,即,在把时间序列数据Ot=W={o1、...、oW}(即窗口长度W的观测值时间序列)存储于观测时间序列缓存器12中的情况下,对象模块确定单元312把由单个模块#1构建的模块追加架构类型学习模型中的该模块#1确定为对象模块。
然后,对象模块确定单元312把表示模块#1(即对象模块)的模块索引m=1提供给更新单元313,处理从步骤S413进入步骤S415。
在步骤S415中,更新单元313使用观测时间序列缓存器12中存储的窗口长度W的时间序列数据Ot=W={o1、...、oW}作为被学习数据,来执行模块#1(即由来自对象模块确定单元312的模块索引m=1表示的对象模块)的追加学习。
此处,在模块追加架构类型学习模型的模块是RNN的情况下,例如,可以采用日本待审专利申请公开No.2008-287626中描述的方法作为RNN的追加学习方法。
在步骤S415中,更新单元313把被学习数据Ot=W进一步缓存于缓存器buffer_winner_sample中。
另外,更新单元23把优胜时段信息cnt_since_win设置为作为初始值的1。
进一步地,更新单元313把上一优胜信息past_win设置为作为初始值的1,即模块#1的模块索引。
然后,更新单元313把被学习数据Ot缓存于样本缓存器RS1中。
然后,在等到下一观测值ot从传感器11输出并且存储在观测时间序列缓存器12中之后,处理从步骤S415进入步骤S416,在步骤S416,模块学习单元310使时间点t递增一,处理进入步骤S417。
在步骤S417中,似然值计算单元311把观测时间序列缓存器12中存储的窗口长度W的最新时间序列数据Ot={ot-W+1、...、ot}作为被学习数据,对于构建模块追加架构类型学习模型存储单元320中存储的模块追加架构类型学习模型的所有模块#1至#M中每个模块,获得模块似然值P(Ot|λm),并将其提供给对象模块确定单元312。
具体地,对于每个模块#m,似然值计算单元311把被学习数据Ot(的在每个时间点的样本oτ)提供给RNN(即模块#m,在下文中,也记作“RNN#m”)作为输入向量,并按照表达式(25)获得关于输入向量的输出向量的预测误差Em(t)。
进一步地,似然值计算单元311使用预测误差Em(t)按照表达式(26)获得模块似然值P(Ot|λm),即用RNN参数λm定义的RNN#m的似然值,并将其提供给对象模块确定单元312。
然后,处理从步骤S417进入步骤S418,在步骤S418,对象模块确定单元312获得构建模块追加架构类型学习模型的模块#1至#M中来自似然值计算单元311的模块似然值P(Ot|λm)最大的最大似然值模块#m*=argmaxm[P(Ot|λm)]。
进一步地,对象模块确定单元312根据来自似然值计算单元311的模块似然值P(Ot|λm)获得最大对数似然值maxLP=maxm[log(P(Ot|λm))](最大似然值模块#m*的模块似然值的对数),处理从步骤S418进入步骤S419。
在步骤S419中,对象模块确定单元312执行对象模块确定处理,用于把最大似然值模块#m*或新模块(即要新生成的RNN)确定为对象模块,以用于基于模块追加架构类型学习模型的后验概率、或者最大对数似然值maxLP对RNN参数进行更新。
然后,对象模块确定单元312把对象模块的模块索引提供给更新单元313,处理从步骤S419进入步骤S420。
此处,以与图60中描述的情形相同的方式执行步骤S419中的对象模块确定处理。
具体地,在模块追加架构类型学习模型只由单个模块#1构建的情况下,基于最大对数似然值maxLP与预定阈值之间的大小相关性,当最大对数似然值maxLP等于或大于阈值时,把最大似然值模块#m*确定为对象模块,当最大对数似然值maxLP小于阈值时,把新模块确定为对象模块。
进一步地,在模块追加架构类型学习模型只由单个模块#1构建的情况下,当把新模块确定为对象模块时,诸如图60中所描述地获得比例常数prior_balance。
另外,在模块追加架构类型学习模型由两个或更多个、M个模块#1至#M构建的情况下,诸如图60和图63中所描述的,使用比例常数prior_balance获得在新模块临时学习处理之后的模块追加架构类型学习模型的后验概率相对于在现有模块临时学习处理之后的模块追加架构类型学习模型的后验概率的改进量ΔAP。
然后,在后验概率的改进量ΔAP等于或小于0的情况下,把最大似然值模块#m*确定为对象模块。
另一方面,在后验概率的改进量ΔAP大于0的情况下,把新模块确定为对象模块。
此处,“模块追加架构类型学习模型的现有模块临时学习处理”是要使用在模块追加架构类型学习模型存储单元320中存储的模块追加架构类型学习模型、以及变量的副本执行的现有模块学习处理。
对于模块追加架构类型学习模型的现有模块学习处理,执行与如图18中所描述的相同的处理,除了:既不采用有效学习频率Qlearn[m]也不采用学习率γ,以RNN而非HMM为对象来执行追加学习。
类似地,“模块追加架构类型学习模型的新模块临时学习处理”是要使用在模块追加架构类型学习模型存储单元320中存储的模块追加架构类型学习模型、以及变量的副本执行的新模块学习处理。
对于模块追加架构类型学习模型的新模块学习处理,执行与如图19中所描述的相同的处理,除了:既不采用有效学习频率Qlearn[m]也不采用学习率γ,以RNN而非HMM为对象来执行追加学习。
在步骤S420中,更新单元313确定用来自对象模块确定单元312的模块索引表示的对象模块是最大似然值模块#m*还是新模块。
另外,在步骤S420中确定对象模块是新模块的情况下,处理进入步骤S422,在步骤S422,更新单元313执行用于对新模块的RNN参数进行更新的新模块学习处理。
在步骤S421中的现有模块学习处理之后以及在步骤S422中的新模块学习处理之后,在任一情形中,处理进入步骤S423,在步骤S423,对象模块确定单元312执行图59中描述的样本保存处理,其中,把用于更新(对象模块#m的追加学习)对象模块#m的RNN参数的被学习数据Ot缓存于与该对象模块#m对应的样本缓存器RSm中,作为被学习数据样本。
然后,在等到下一观测值ot从传感器11输出并且存储在观测时间序列缓存器12中之后,处理从步骤S423返回步骤S416,此后,重复同样的处理。
如上所述,即使在模块追加架构类型学习模型的模块是RNN时,也按照表达式(26)等把预测误差随机化成概率,从而转换成似然值,基于模块追加架构类型学习模型的使用该似然值获得的后验概率的改进量,确定对象模块,从而相比于根据最大对数似然值maxLP与阈值之间的大小相关性确定对象模块的情形而言以逻辑的和灵活的(适应性的)方式把新模块添加到模块追加架构类型学习模型,因此,对于建模对象可以获得由足够数量的模块构建的模块追加架构类型学习模型。
应用了本发明的计算机的描述
接下来,可以通过硬件或者通过软件执行上述一系列处理。在通过软件执行上述一系列处理的情形中,把构建软件的程序安装到通用计算机等中。
因此,图67示出了安装了用于执行上述一系列处理的程序的计算机的实施例的配置示例。
可以把程序预先记录在作为内置于计算机中的记录媒体的硬盘505或ROM 503中。
可替选地,可以把程序存储(记录)在可拆除记录介质511中。这种可拆除记录介质511可以提供为所谓封装软件。可拆除记录介质511的示例包括软盘、CD-ROM(压缩光盘只读存储器)盘、MO(磁光)盘、DVD(数字多功能盘)、磁盘以及半导体存储器。
除了诸如以上所描述地通过可拆除记录介质511安装到计算机之外,还可以经由通信网络或广播网络向计算机下载、以及向内置硬盘505安装程序。也就是说,可以例如从下载站点经由数字广播卫星向计算机无线地传送程序,或者经由诸如LAN(局域网)或互联网的网络通过线缆向计算机传送程序。
计算机在其中内置了CPU(中央处理单元)502,输入/输出接口510经由总线501连接到CPU 502。
在用户等经由输入/输出接口510操作输入单元507输入命令后,按照此内容,CPU 502执行在ROM(只读存储器)503中存储的程序,或者把硬盘505中存储的程序加载到RAM(随机访问存储器)504并执行程序。
从而,CPU 502执行遵照上述流程图的处理、或者由上述框图的配置执行的处理。然后,CPU 502酌情例如经由输入/输出接口510从输出单元506输出其处理结果、从通信单元508发送处理结果或者在硬盘505中进一步记录等等。
注意,输入单元507由键盘、鼠标、麦克风等配置成。另外,输出单元506由LCD(液晶显示器)、扬声器等配置成。
应当注意,对于本说明书,并非必须以遵照流程图中描述的次序的时间顺序执行计算机遵照程序执行的处理。也就是说,计算机遵照程序执行的处理也包括并行地或单独执行的处理(例如,并行处理或面向对象的处理)。
另外,可以通过单个计算机(处理器)来处理、或者可以通过多个计算机分散处理来处理程序。此外,程序可以向远程计算机传送并执行。
应当注意,本发明的实施例不限于上述实施例,可以在不脱离本发明精神和范围的情况下做出各种修改。
本申请包含的主题与2009年9月7日提交日本专利局的日本优先权专利申请JP 2009-206433中公开的主题相关,其全部内容经引用并入本文。
本领域技术人员应当理解,根据设计需要和其它因素,可以做出各种修改、组合、子组合和改变,只要它们在所附权利要求或其等同内容的范围内。
Claims (12)
1.一种信息处理设备,包括:
似然值计算装置,被配置为:把要被连续提供的观测值的时间序列作为要被用于学习的被学习数据,并且对于构建以隐式马尔可夫模型为最小组件模块的学习模型的每个模块,获得在所述模块处能够观测到所述被学习数据的似然值;
对象模块确定装置,被配置为:基于所述似然值把所述学习模型的单个模块、或者新模块确定为对象模块,所述对象模块是隐式马尔可夫模型参数要被更新的对象模块;以及
更新装置,被配置为:使用所述被学习数据来执行用于对所述对象模块的隐式马尔可夫模型参数进行更新的学习。
2.如权利要求1所述的信息处理设备,其中,所述似然值计算装置使用所述观测值的最新固定长度时间序列作为所述被学习数据来对所述模块获得似然值;
其中,所述更新装置:在所述对象模块与上一个优胜模块相匹配的情况下每隔固定长度的时间使用所述观测值的最新固定长度时间序列作为所述被学习数据来执行所述对象模块的学习,并且把所述最新观测值缓存于缓存器中,所述优胜模块是对于一个时间点以前的所述被学习数据而言似然值最大的模块,以及,当所述对象模块与所述上一个优胜模块不匹配时,使用所述缓存器中缓存的所述观测值的时间序列作为所述被学习数据来执行所述上一个优胜模块的学习,并且使用所述观测值的最新固定长度时间序列作为所述被学习数据来执行所述对象模块的学习。
3.如权利要求1所述的信息处理设备,其中,所述更新装置通过在被学习数据内部参数和上一个内部参数之间进行加权相加来获得要用于隐式马尔可夫模型参数的此次估算的新内部参数,并且使用所述新内部参数来估算所述对象模块的隐式马尔可夫模型参数,所述被学习数据内部参数是要使用待根据所述被学习数据计算的前向概率和后向概率获得的内部参数,是要在Baum-Welch重估方法中用于隐式马尔可夫模型参数估算的内部参数,所述上一个内部参数是用于隐式马尔可夫模型参数的上一个估算的内部参数。
4.如权利要求1所述的信息处理设备,还包括:
识别装置,被配置为获得最大似然值模块和最大似然值状态序列作为表示所述被学习数据的识别结果的识别结果信息,所述最大似然值模块是构建所述学习模型的模块中能够观测到所述被学习数据的似然值最大的模块,所述最大似然值状态序列是在所述最大似然值模块处出现能够观测到所述被学习数据的似然值最大的状态转变的所述隐式马尔可夫模型的状态序列。
5.如权利要求4所述的信息处理设备,还包括:
转变信息管理装置,被配置为:基于所述识别结果信息来生成转变信息,所述转变信息是在所述学习模型处每个状态转变的频率信息。
6.如权利要求5所述的信息处理设备,还包括:
隐式马尔可夫模型配置装置,被配置为用来配置组合的隐式马尔可夫模型,所述组合的隐式马尔可夫模型是使用所述学习模型的多个模块的隐式马尔可夫模型参数以及所述转变信息来组合所述学习模型的多个模块获得的单个隐式马尔可夫模型。
7.如权利要求6所述的信息处理设备,还包括:
规划装置,被配置为:在以所述组合的隐式马尔可夫模型的任意状态为目标状态的情况下获得最大似然值状态序列,作为从当前状态到达所述目标状态的规划,所述最大似然值状态序列是从所述当前状态向所述目标状态的状态转变的似然值最大的所述组合的隐式马尔可夫模型的状态序列,所述当前状态是状态概率最大的状态。
8.如权利要求1所述的信息处理设备,其中,所述对象模块确定装置:比较所述学习模型中每个模块的似然值中作为最大值的最大似然值以及作为阈值的阈值似然值;在所述最大似然值等于或大于所述阈值似然值的情形中把获得了所述最大似然值的模块确定为所述对象模块;以及在所述最大似然值小于所述阈值似然值的情形中把所述新模块确定为所述对象模块。
9.如权利要求8所述的信息处理设备,所述阈值似然值是与通过如下方式获得的比例常数成比例的值:根据在所述观测值的观测空间中把对所述观测值进行聚类时的聚类粒度与同所述阈值似然值成比例的比例常数相关联的线性表达式,获得对于预定聚类粒度的所述比例常数;以及获得与所述比例常数成比例的值。
10.一种用于信息处理设备的信息处理方法,包括如下步骤:
把要被连续提供的观测值的时间序列作为要被用于学习的被学习数据,并且对于构建以隐式马尔可夫模型为最小组件模块的学习模型的每个模块,获得在所述模块处能够观测到所述被学习数据的似然值;
基于所述似然值把所述学习模型的单个模块、或者新模块确定为对象模块,所述对象模块是隐式马尔可夫模型参数要被更新的对象模块;以及
使用所述被学习数据来执行用于对所述对象模块的隐式马尔可夫模型参数进行更新的学习。
11.一种程序,用于使计算机作为:
似然值计算装置,被配置为:把要被连续提供的观测值的时间序列作为要被用于学习的被学习数据,并且对于构建以隐式马尔可夫模型为最小组件模块的学习模型的每个模块,获得在所述模块处能够观测到所述被学习数据的似然值;
对象模块确定装置,被配置为:基于所述似然值把所述学习模型的单个模块、或者新模块确定为对象模块,所述对象模块是隐式马尔可夫模型参数要被更新的对象模块;以及
更新装置,被配置为:使用所述被学习数据来执行用于对所述对象模块的隐式马尔可夫模型参数进行更新的学习。
12.一种信息处理设备,包括:
似然值计算单元,被配置为:把要被连续提供的观测值的时间序列作为要被用于学习的被学习数据,并且对于构建以隐式马尔可夫模型为最小组件模块的学习模型的每个模块,获得在所述模块处能够观测到所述被学习数据的似然值;
对象模块确定单元,被配置为:基于所述似然值把所述学习模型的单个模块、或者新模块确定为对象模块,所述对象模块是隐式马尔可夫模型参数要被更新的对象模块;以及
更新单元,被配置为:使用所述被学习数据来执行用于对所述对象模块的隐式马尔可夫模型参数进行更新的学习。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009206433A JP2011059815A (ja) | 2009-09-07 | 2009-09-07 | 情報処理装置、情報処理方法、及び、プログラム |
JP2009-206433 | 2009-09-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102013040A true CN102013040A (zh) | 2011-04-13 |
Family
ID=43648463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102724457A Pending CN102013040A (zh) | 2009-09-07 | 2010-08-31 | 信息处理设备、信息处理方法以及程序 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20110060706A1 (zh) |
JP (1) | JP2011059815A (zh) |
CN (1) | CN102013040A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103326903A (zh) * | 2013-07-05 | 2013-09-25 | 华北电力大学 | 基于隐马尔科夫的Internet网络时延预测方法 |
CN107743630A (zh) * | 2015-07-27 | 2018-02-27 | 谷歌有限责任公司 | 使用循环神经网络预测满足条件的可能性 |
CN110457714A (zh) * | 2019-06-25 | 2019-11-15 | 西安电子科技大学 | 一种基于时序主题模型的自然语言生成方法 |
CN112328464A (zh) * | 2021-01-05 | 2021-02-05 | 北京基调网络股份有限公司 | 指标数据存储、相关性分析方法及计算机可读存储介质 |
CN113133001A (zh) * | 2019-12-30 | 2021-07-16 | 南京南瑞信息通信科技有限公司 | 基于230MHz电力专用频谱的智能频谱感知方法、装置和系统 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9015093B1 (en) | 2010-10-26 | 2015-04-21 | Michael Lamport Commons | Intelligent control with hierarchical stacked neural networks |
US8775341B1 (en) | 2010-10-26 | 2014-07-08 | Michael Lamport Commons | Intelligent control with hierarchical stacked neural networks |
US9477926B2 (en) * | 2012-11-20 | 2016-10-25 | Qualcomm Incorporated | Piecewise linear neuron modeling |
JP6425743B2 (ja) * | 2015-01-29 | 2018-11-21 | 株式会社日立製作所 | 計算機システム及びグラフィカルモデルの補正方法 |
US11610153B1 (en) * | 2019-12-30 | 2023-03-21 | X Development Llc | Generating reinforcement learning data that is compatible with reinforcement learning for a robotic task |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL155955A0 (en) * | 2003-05-15 | 2003-12-23 | Widemed Ltd | Adaptive prediction of changes of physiological/pathological states using processing of biomedical signal |
JP4639784B2 (ja) * | 2004-12-06 | 2011-02-23 | ソニー株式会社 | 学習装置および学習方法、並びにプログラム |
JP2011059817A (ja) * | 2009-09-07 | 2011-03-24 | Sony Corp | 情報処理装置、情報処理方法、及び、プログラム |
JP2011059816A (ja) * | 2009-09-07 | 2011-03-24 | Sony Corp | 情報処理装置、情報処理方法、及び、プログラム |
-
2009
- 2009-09-07 JP JP2009206433A patent/JP2011059815A/ja not_active Withdrawn
-
2010
- 2010-08-19 US US12/859,423 patent/US20110060706A1/en not_active Abandoned
- 2010-08-31 CN CN2010102724457A patent/CN102013040A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103326903A (zh) * | 2013-07-05 | 2013-09-25 | 华北电力大学 | 基于隐马尔科夫的Internet网络时延预测方法 |
CN103326903B (zh) * | 2013-07-05 | 2016-01-20 | 华北电力大学 | 基于隐马尔科夫的Internet网络时延预测方法 |
CN107743630A (zh) * | 2015-07-27 | 2018-02-27 | 谷歌有限责任公司 | 使用循环神经网络预测满足条件的可能性 |
CN110457714A (zh) * | 2019-06-25 | 2019-11-15 | 西安电子科技大学 | 一种基于时序主题模型的自然语言生成方法 |
CN110457714B (zh) * | 2019-06-25 | 2021-04-06 | 西安电子科技大学 | 一种基于时序主题模型的自然语言生成方法 |
CN113133001A (zh) * | 2019-12-30 | 2021-07-16 | 南京南瑞信息通信科技有限公司 | 基于230MHz电力专用频谱的智能频谱感知方法、装置和系统 |
CN113133001B (zh) * | 2019-12-30 | 2024-04-05 | 南京南瑞信息通信科技有限公司 | 基于230MHz电力专用频谱的智能频谱感知方法、装置和系统 |
CN112328464A (zh) * | 2021-01-05 | 2021-02-05 | 北京基调网络股份有限公司 | 指标数据存储、相关性分析方法及计算机可读存储介质 |
CN112328464B (zh) * | 2021-01-05 | 2021-03-26 | 北京基调网络股份有限公司 | 指标数据存储、相关性分析方法及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2011059815A (ja) | 2011-03-24 |
US20110060706A1 (en) | 2011-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102013040A (zh) | 信息处理设备、信息处理方法以及程序 | |
Boussabaine | The use of artificial neural networks in construction management: a review | |
Marinaki et al. | Honey bees mating optimization algorithm for financial classification problems | |
Lek et al. | Modelling community structure in freshwater ecosystems | |
Fernández-Riverola et al. | Employing tsk fuzzy models to automate the revision stage of a cbr system | |
Fielding | Machine learning methods for ecological applications | |
Razmjooy et al. | A study on metaheuristic-based neural networks for image segmentation purposes | |
US20230229891A1 (en) | Reservoir computing neural networks based on synaptic connectivity graphs | |
US20210201111A1 (en) | Predicting neuron types based on synaptic connectivity graphs | |
Pourpanah et al. | A Q-learning-based multi-agent system for data classification | |
Chen et al. | A feature discretization method based on fuzzy rough sets for high-resolution remote sensing big data under linear spectral model | |
CN105718999B (zh) | 一种启发式代谢共表达网络的构建方法及系统 | |
Verikas et al. | A general framework for designing a fuzzy rule-based classifier | |
Gromov et al. | Loss functions in the prediction of extreme events and chaotic dynamics using machine learning approach | |
Dadjoo et al. | The application of spatial domain in optimum initialization for clustering image data using particle swarm optimization | |
Sathya et al. | A search space enhanced modified whale optimization algorithm for feature selection in large-scale microarray datasets | |
Casillas et al. | Cooperative coevolution for learning fuzzy rule-based systems | |
Pimenta et al. | NSGA-DO: Non-dominated sorting genetic algorithm distance oriented | |
Galván et al. | Evolutionary Multi-objective Optimisation in Neurotrajectory Prediction | |
Shujaaddeen et al. | A New Machine Learning Model for Detecting levels of Tax Evasion Based on Hybrid Neural Network | |
Wong et al. | Rainfall prediction using neural fuzzy technique | |
Vinterbo | Predictive models in medicine: some methods for construction and adaptation | |
Abubakar | An optimal representation to Random Maximum k Satisfiability on the Hopfield Neural Network for High order logic (k≤ 3 | |
Ekblad et al. | Toward data-driven generation and evaluation of model structure for integrated representations of human behavior in water resources systems | |
Njah et al. | A Constrained Multi-Objective Learning Algorithm for Feed-Forward Neural Network Classifiers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110413 |