用于神经语言行为识别系统的映射器组件转让专利

申请号 : CN201580068033.2

文献号 : CN107111610A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 萧铭俊徐刚杨韬W·K·科布

申请人 : 全方位人工智能股份有限公司

摘要 :

公开了用于基于输入数据为神经语言模型生成符号序列的技术。模型可以由行为识别系统使用以分析输入数据。行为识别系统中的神经语言模块的映射器组件接收从输入数据生成的一个或多个标准化向量。映射器组件基于标准化向量的统计分布生成一个或多个簇。映射器组件评估统计信息并且识别统计相关的簇。映射器组件为每个识别出的簇分配不同的符号。

权利要求 :

1.一种用于基于从输入数据生成的标准化向量的流来生成符号序列的方法,所述方法包括:接收从输入数据生成的特征值的标准化向量,每个特征值与多个特征中的一个特征相关联;

对于所述标准化向量中的每个特征值:

评估与关联于所述特征值的所述多个特征中的一个特征对应的簇空间中的一个或多个簇的分布,以及基于所述分布将所述特征值映射到所述簇中的一个簇。

2.如权利要求1所述的方法,还包括:

接收从第二输入数据生成的特征值的第二标准化向量;以及对于所述第二标准化向量中的每个特征值:将所述第二标准化向量映射到对应的簇,

基于所述映射更新所述对应的簇的分布,以及当基于更新后的分布确定所述对应的簇具有统计显著性时,输出与该簇相关联的多个符号中的一个符号。

3.如权利要求1所述的方法,还包括:当基于所评估的所述簇中的每个簇的分布而确定所述簇中的两个或更多个簇在所述簇空间中重叠时,合并所述两个或更多个簇。

4.如权利要求1所述的方法,其中每个簇的统计显著性基于统计显著性分数来确定,所述统计显著性分数指示随着时间的推移映射到该簇的特征值的指定量。

5.如权利要求4所述的方法,还包括:当确定基于时间的函数映射到簇的特征值在一段时间之后没有被接收到时,衰减该簇的统计显著性。

6.如权利要求1所述的方法,其中每个簇的统计信息包括均值、方差和标准偏差。

7.如权利要求1所述的方法,其中标准化向量中的每个值在0和1的范围内,该范围包括

0和1。

8.一种存储指令的计算机可读存储介质,当所述指令在处理器上执行时,执行用于基于从输入数据生成的标准化向量的流生成符号序列的操作,所述操作包括:接收从输入数据生成的特征值的标准化向量,每个特征值与多个特征中的一个特征相关联;

对于所述标准化向量中的每个特征值:

评估与关联于所述特征值的所述多个特征中的一个特征对应的簇空间中的一个或多个簇的分布,以及基于所述分布将所述特征值映射到所述簇中的一个簇。

9.如权利要求8所述的计算机可读存储介质,其中所述操作还包括:接收从第二输入数据生成的特征值的第二标准化向量;以及对于所述第二标准化向量中的每个特征值:将所述第二标准化向量映射到对应的簇,

基于所述映射更新所述对应的簇的分布,以及当基于更新后的分布确定所述对应的簇具有统计显著性时,输出与该簇相关联的多个符号中的一个符号。

10.如权利要求8所述的计算机可读存储介质,其中所述操作还包括:当基于所评估的所述簇中的每个簇的分布而确定所述簇中的两个或更多个簇在所述簇空间中重叠时,合并所述两个或更多个簇。

11.如权利要求8所述的计算机可读存储介质,其中每个簇的统计显著性基于统计显著性分数来确定,所述统计显著性分数指示随着时间的推移映射到该簇的特征值的指定量。

12.如权利要求11所述的计算机可读存储介质,其中所述操作还包括:当确定基于时间的函数映射到簇的特征值在一段时间之后没有被接收到时,衰减该簇的统计显著性。

13.如权利要求8所述的计算机可读存储介质,其中每个簇的统计信息包括均值、方差和标准偏差。

14.如权利要求8所述的计算机可读存储介质,其中标准化向量中的每个值在0和1的范围内,该范围包括0和1。

15.一种系统,包括:

处理器;以及

存储器,所述存储器存储一个或多个应用程序,所述一个或多个应用程序被配置为执行用于基于从输入数据生成的标准化向量的流生成符号序列的操作,所述操作包括:接收从输入数据生成的特征值的标准化向量,每个特征值与多个特征中的一个特征相关联,对于所述标准化向量中的每个特征值:

评估与关联于所述特征值的所述多个特征中的一个特征对应的簇空间中的一个或多个簇的分布,以及基于所述分布将所述特征值映射到所述簇中的一个簇。

16.如权利要求15所述的系统,其中所述操作还包括:接收从第二输入数据生成的特征值的第二标准化向量;以及对于所述第二标准化向量中的每个特征值:将所述第二标准化向量映射到对应的簇,

基于所述映射更新所述对应的簇的分布,以及当基于更新后的分布确定所述对应的簇具有统计显著性时,输出与该簇相关联的多个符号中的一个符号。

17.如权利要求15所述的系统,其中所述操作还包括:当基于所评估的所述簇中的每个簇的分布而确定所述簇中的两个或更多个簇在所述簇空间中重叠时,合并所述两个或更多个簇。

18.如权利要求15所述的系统,其中每个簇的统计显著性基于统计显著性分数来确定,所述统计显著性分数指示随着时间的推移映射到该簇的特征值的指定量。

19.如权利要求18所述的系统,其中所述操作还包括:当确定基于时间的函数映射到簇的特征值在一段时间之后没有被接收到时,衰减该簇的统计显著性。

20.如权利要求15所述的系统,其中标准化向量中的每个值在0和1的范围内,该范围包括0和1。

说明书 :

用于神经语言行为识别系统的映射器组件

技术领域

[0001] 本文描述的实施例一般而言涉及数据分析系统,并且更具体而言,涉及基于输入数据生成要在神经语言行为识别系统中使用的符号。

背景技术

[0002] 许多当前可用的监控和监视系统(例如,视频监控系统、SCADA监视系统等)被训练成观察特定的活动或模式并且当检测到预定义的活动或模式出现时向管理员发出警报。然而,这种系统需要提前了解要观察的动作和/或对象。这些活动可以被硬编码到底层应用中,或者系统可以基于提供的定义对自己进行训练。换句话说,除非底层代码包括对某些行为的描述,否则系统不能识别这些行为。
[0003] 此外,许多监控系统(例如,视频监控系统)需要大量的计算资源,包括处理器能力、存储和带宽。例如,由于视频数据的典型尺寸,典型的视频监控系统每相机馈送需要大量的计算资源。考虑到资源的成本,这些系统难以扩展。

发明内容

[0004] 本文给出的一个实施例包括用于基于从输入数据生成的标准化向量的流来生成符号序列的方法。该方法一般地包括接收从输入数据生成的特征值的标准化向量。每个特征值与多个特征之一相关联。对于标准化向量中的每个特征值,评估与关联于该特征值的多个特征中的一个特征对应的簇空间中的一个或多个簇的分布,并且基于该分布将该特征值映射到簇中的一个簇。
[0005] 本文给出的另一个实施例包括存储指令的计算机可读存储介质,当指令在处理器上执行时,执行用于基于从输入数据生成的标准化向量的流来生成符号序列的操作。操作本身一般地包括接收从输入数据生成的特征值的标准化向量。每个特征值与多个特征之一相关联。对于标准化向量中的每个特征值,评估与关联于该特征值的多个特征中的一个特征对应的簇空间中的一个或多个簇的分布,并且基于该分布将该特征值映射到簇中的一个簇。
[0006] 本文给出的另一个实施例包括具有处理器和存储器的系统,存储器存储一个或多个应用程序,这一个或多个应用程序被配置为执行用于基于从输入数据生成的标准化向量的流来生成符号序列的操作。操作本身一般地包括接收从输入数据生成的特征值的标准化向量。每个特征值与多个特征之一相关联。对于标准化向量中的每个特征值,评估与关联于该特征值的多个特征中的一个特征对应的簇空间中的一个或多个簇的分布,并且基于该分布将特征值映射到簇中的一个簇。

附图说明

[0007] 因此,可以详细理解本公开的上述特征的方式、对以上简要概括的本公开的更具体的描述可以通过参考实施例获得,其中一些实施例在附图中示出。然而,应当注意的是,附图仅仅示出示例性实施例,并且因此不应当被认为是限制其范围,可以承认其它同等有效的实施例。
[0008] 图1示出根据一个实施例的用于神经语言行为识别系统的示例计算环境。
[0009] 图2示出根据一个实施例的神经语言行为识别系统的系统体系架构。
[0010] 图3示出根据一个实施例的用于收集在神经语言行为识别系统中使用的传感器数据的方法。
[0011] 图4示出根据一个实施例的用于在神经语言行为识别系统中的映射器组件的学习阶段期间更新簇分布的方法。
[0012] 图5示出根据一个实施例的示例簇分布。
[0013] 图6示出根据一个实施例的用于将符号发送到神经语言行为识别系统中的词法分析器组件的方法。
[0014] 为了便于理解,在可能的情况下,使用相同的标号来指明各图共同的相同元件。可以设想的是,一个实施例的元件和特征可以有利地并入其它实施例中,而无需进一步的叙述。

具体实施方式

[0015] 本文给出的实施例描述了行为识别系统。行为识别系统可以配置有从不同数据源收集原始数据值(例如,视频数据、构建管理数据、SCADA数据)的一个或多个数据收集器组件。例如,行为识别系统可以被配置用于视频监控。行为识别系统可以包括实时取回视频帧、将前景对象与背景对象分离、并且逐帧跟踪前景对象的数据收集器组件。数据收集器组件可以将视频帧数据标准化为数值(例如,相对于给定数据类型落入从0到1的范围内)。
[0016] 在一个实施例中,行为识别系统包括对收集到的数据执行基于神经网络的语言分析的神经语言模块。具体而言,对于由传感器监视的每种类型的数据,神经语言模块创建并细化标准化数据的语言模型。即,神经语言模块构建用于描述标准化数据的语法(grammer)。语言模型包括充当语法的构建块的符号。神经语言模块识别符号的组合以构建单词的词典。一旦词典被构建,神经语言模块就识别包括词典中的单词的各种组合的短语(phrase)。行为识别系统使用这种语言模型来描述正在观察什么。语言模型允许行为识别系统区分输入数据中观察到的正常活动和异常活动。因此,每当异常活动发生时,行为识别系统可以发出警报。
[0017] 为了生成语言模型,神经语言模块接收标准化数据值并将这些数据组织成簇(cluster)。神经语言模块评估每个簇的统计信息,并且识别统计相关(statistically relevant)的簇。此外,神经语言模块生成对应于每个统计相关的簇的符号(例如,字母(letter))。因此,映射到给定簇的输入值可以对应于符号。
[0018] 基于在输入数据中识别出的符号的统计分布,神经语言模块生成观察到的符号组合的词汇表(lexicon)(即,构建单词(word)的词典)。具体而言,神经语言模块可以识别输入数据中不同发生频率的符号模式。此外,神经语言模块可以识别不同长度(例如,从一个符号到最大符号单词长度)的统计相关的符号组合。神经语言模块可以将这种统计相关的符号组合包括在词典中,用于识别用于语言模型的短语。
[0019] 使用来自词典的单词,神经语言模块基于在观察到附加数据时每个单词相对于其它单词顺次出现的概率关系生成短语。例如,神经语言模块可以识别与给定的四个字母的单词频繁顺次出现的给定的三个字母的单词之间的关系,等等。神经语言模块基于识别出的短语来确定句法(syntax)。
[0020] 句法允许行为识别系统在没有预定义的活动的帮助或指导的情况下学习、识别和辨别行为模式。与基于规则的监控系统(其包含要识别或观察的内容的预定义的模式)不同,行为识别系统通过对输入进行概括(generalize)以及构建所观察到的内容的行为记忆来学习模式。随着时间的推移,行为识别系统使用这些记忆来区分观察到的数据中反映的正常行为和异常行为。
[0021] 例如,神经语言模块构建字母、单词、短语,并且为每个识别出的字母、单词或短语估计“罕见性(unusualness)分数”。(在输入数据中观察到的字母、单词或短语的)罕见性分数提供对该字母、单词或短语相对于过去的观察结果有多不频繁地出现的度量。因此,行为识别系统可以使用罕见性分数来度量当前句法相对于稳定的符号(即,字母)模型、从符号构建的稳定的单词模型(即,词典)以及从单词构建的稳定的短语模型(即,句法)(统称为神经语言模型)有多罕见。
[0022] 随着神经语言模块继续接收输入数据,神经语言模块可以衰减、加强以及生成字母模型、单词模型和句法模型。按机器学习领域的说法,神经语言模块在接收到新的数据并且给定类型的输入数据的出现增加、减少、出现或消失时进行“在线学习”。
[0023] 图1示出根据一个实施例的行为识别系统100的组件。如所示的,行为识别系统100包括一个或多个输入源设备105、网络110以及一个或多个计算机系统115。网络110可以将由源设备105输入的数据传送到计算机系统115。一般而言,计算环境100可以包括经由网络(例如,互联网)连接的一个或多个物理计算机系统115。可替代地,计算机系统115可以是由网络连接的云计算资源。说明性地,计算机系统115包括一个或多个中央处理单元(CPU)120、一个或多个图形处理单元(GPU)121、网络和I/O接口122、存储装置124(例如,磁盘驱动器、光盘驱动器等)以及存储器123,存储器123包括传感器管理模块130、感测记忆组件135和机器学习引擎140。存储装置124包括模型储存库145。
[0024] CPU 120取回并执行存储在存储器123中的编程指令,以及存储和取回驻留在存储装置124中的应用数据。在一个实施例中,GPU 121实现计算统一设备体系架构(Compute Unified Device Architecture,CUDA)。此外,GPU 121被配置为使用GPU 121的并行吞吐量体系架构提供通用处理,以更高效地取回和执行存储在存储器123中的编程指令以及还存储和取回驻留在存储装置124中的应用数据。并行吞吐量体系架构提供数千个核心用于处理应用和输入数据。因此,GPU 121利用数千个核心以大规模并行方式执行读操作和写操作。利用GPU 121的并行计算元件允许行为识别系统100更好地处理大量的传入数据(例如,来自视频和/或音频源的输入)。因此,行为识别系统100可以以相对较小的难度进行扩展。
[0025] 传感器管理模块130提供一个或多个数据收集器组件。收集器组件中的每一个与特定输入数据源(例如,视频源、SCADA(监督控制和数据采集)源、音频源等)相关联。收集器组件以指定的时间间隔(例如,每分钟一次、每三十分钟一次、每三十秒一次等)从每个源取回(或接收,取决于传感器)输入数据。传感器管理模块130控制数据源之间的通信。此外,传感器管理模块130对输入数据进行标准化,并将标准化数据发送到感测记忆组件135。
[0026] 感测记忆组件135是将大量数据从传感器管理模块130转移到机器学习引擎140的数据存储库。感测记忆组件135将数据存储为记录。每个记录可以包括标识符、时间戳和数据有效载荷。此外,感测记忆组件135以时间排序的方式聚合传入数据。将来自数据收集器组件中的每一个的传入数据存储在数据可在其中聚合的单个位置中允许机器学习引擎140高效地处理数据。此外,计算机系统115可以在生成用于异常活动的警报中参考存储在感测记忆组件135中的数据。在一个实施例中,感测记忆组件135可以经由存储器123中的虚拟存储器文件系统来实现。在另一个实施例中,使用键-值共享来实现感测记忆组件135。
[0027] 机器学习引擎140接收从传感器管理模块135输出的数据。一般而言,机器学习引擎140的组件生成标准化向量的语言表示。如下面进一步描述的,为了这样做,机器学习引擎140对具有相似特征的标准化值进行簇集(cluster),并向每个簇分配不同的符号。机器学习引擎140然后可以识别数据中重现的符号组合(即,单词)。然后,机器学习引擎140类似地识别数据中重现的单词组合(即,短语)。
[0028] 然而,要注意的是,图1仅仅示出行为识别系统100的一个可能的布置。例如,虽然输入数据源105被示为经由网络110连接到计算机系统115,但是并不总是存在或需要网络110(例如,诸如视频相机的输入源可以直接连接到计算机系统115)。
[0029] 图2示出根据一个实施例的行为识别系统的系统体系架构。如所示的,传感器管理模块130和机器学习引擎140经由持久层210进行通信。
[0030] 持久层210包括维护由计算机系统115的组件使用的信息的数据存储库。例如,持久层210包括维护描述数据收集器模块202的属性、系统属性(例如,计算机系统115的序列号、可用存储器、可用容量等)以及源驱动器的属性(例如,与每个数据源相关联的活动传感器、活动插件118、标准化设置等)的信息的数据存储库。其它数据存储库可以维护学习模型信息、系统事件和行为警报。此外,感测记忆组件135驻留在持久层210中。
[0031] 机器学习引擎140本身包括神经语言模块215和认知模块225。神经语言模块215执行对标准化输入数据的基于神经网络的语言分析,以构建观察到的输入数据的神经语言模型。行为识别系统可以使用语言模型来描述后续观察到的活动。然而,神经语言模块215不是基于预定义的对象和动作来描述活动,而是基于从输入数据生成的符号、单词和短语来开发自定义语言。如所示的,神经语言模块215包括数据事务存储器(DTM)组件216、分类分析器组件217、映射器组件218、词法分析器组件219和感知联想记忆(PAM)组件220。
[0032] 在一个实施例中,DTM组件216从感测记忆组件135取回输入数据的标准化向量,并在由GPU 121提供的流水线体系架构中对输入数据进行分级(stage)。分类分析器组件217评估由DTM组件216组织的标准化数据并将数据映射到神经网络上。在一个实施例中,神经网络是自组织映射(self-organizing map,SOM)和自适应共振理论(adaptive resonance theory,ART)网络的组合。
[0033] 映射器组件218基于彼此关联地重复出现的值对数据流进行簇集。此外,映射器组件218为每个输入特征生成簇集合。例如,假设输入数据对应于视频数据,那么特征可以包括位置、速度、加速度等。映射器组件218将为这些特征中的每一个生成单独的簇集合。映射器组件218基于簇集的输入数据来识别符号(即,构建字母的字母表)。具体而言,映射器组件218确定数据在每个簇中的统计分布。例如,映射器组件218确定值在簇中的分布的均值、方差和标准偏差。当更多的标准化数据被接收时,映射器组件218还更新这些统计信息。此外,每个簇可以与统计显著性分数相关联。给定簇的统计显著性随着接收到映射到该簇的更多数据而增加。此外,当映射器组件218随着时间的推移较不经常地观察到映射到簇的数据时,映射器组件218使该簇的统计显著性衰减。
[0034] 在一个实施例中,映射器组件218将符号集合分配给具有统计显著性的簇。如果超过了映射到簇的输入数据的阈值量,那么该簇具有统计显著性。符号可以被描述为用于创建在对输入数据的神经语言分析中使用的单词的字母表的字母。符号提供属于给定簇的数据的“模糊”表示。
[0035] 此外,映射器组件218是自适应的。即,随着从标准化数据生成的新簇随时间的推移被加强(从而导致这些簇相对于从输入数据中显现的其它簇达到统计显著性的级别),映射器组件218可以识别与这些簇对应的新符号。映射器组件218在线学习,并且可以将相似的观察结果合并成更概括的簇。映射器组件218可以给结果得到的簇分配不同符号的集合。
[0036] 一旦簇已经达到统计显著性(即,观察到的作为映射到该簇的数据已经达到点数的阈值量),映射器组件219就响应于映射到该簇的标准化数据开始向词法分析器组件219发送对应的符号。在一个实施例中,映射器组件218将可以被发送到词法组件219的符号限制到统计上最显著的簇。在实践中,输出分配给前32个簇的符号(即,字母)已表明是有效的。然而,其它数量(诸如前64个或前128个最频繁重现的簇)也可以证明是有效的。注意的是,随着时间的推移,最频繁观察到的符号可能由于簇的统计显著性的增加(或减少)而改变。因此,给定的簇有可能失去统计显著性。随着时间的推移,用于簇的统计显著性的阈值可能增加,并且因此,如果观察到的映射到给定簇的数据的量不能满足阈值,那么该簇失去统计显著性。
[0037] 在一个实施例中,映射器组件218评估每个符号的罕见性分数。罕见性分数基于随着时间的推移给定符号相对于在输入数据流中观察到的其它符号的频率。随着神经语言模块215接收到附加的数据,罕见性分数可以随时间推移而增加或减少。
[0038] 映射器组件218向词法分析器组件219发送符号(例如,字母)流、时间戳数据、罕见性分数和统计数据(例如,与给定符号相关联的簇的表示)。词法分析器组件219基于从映射器组件218输出的符号构建词典。在实践中,映射器组件218可能需要大约5000个观察结果(即,输入数据的标准化向量)以生成稳定的符号字母表。
[0039] 词法分析器组件219从由映射器组件218传送的符号构建包括共现(co-occuring)符号的组合(例如,单词)的词典。词法分析器组件219识别从映射器组件218输出的字母的重复共现并且计算整个符号流中该共现的频率。符号的组合可以在语义上表示特定的活动、事件等。
[0040] 在一个实施例中,词法分析器组件219限制词典中单词的长度,以允许词法分析器组件219识别若干可能的组合而不会不利地影响计算机系统115的性能。此外,词法分析器组件219可以使用基于级别的学习模型来分析符号组合以及学习单词。词法分析器组件219在递增的级别处学习单词直到最大符号组合长度,即,其中在第一级别处学习一个字母的单词,在第二级别处学习两个字母的单词,等等。在实践中,将单词限制为最多五个或六个符号(即,在最多五个或六个级别处学习)已表明是有效的。
[0041] 类似于映射器组件218,词法分析器组件219是自适应的。即,随着时间的推移,词法分析器组件219可以学习并生成词典中的单词。当词法分析器组件219随着时间的推移接收到后续的符号流时,词法分析器组件219还可以使词典中的单词的统计显著性加强或衰减。此外,词法分析器组件219可以基于单词在数据中有多频繁地重现来确定每个单词的罕见性分数。随着神经语言模块215处理附加的数据,罕见性分数可以随时间的推移而增加或减少。
[0042] 此外,当附加的观察结果(即,符号)被传递到词法分析器组件219并被识别为是给定的单词的一部分时,词法分析器组件219可以确定该单词模型已经成熟。一旦单词模型已经成熟,词法分析器组件219就可以将模型中的这些单词的观察结果输出到PAM组件219。在一个实施例中,词法分析器组件219将被发送到PAM组件320的单词限制为统计上最显著的单词。在实践中,对于每个单个样本,输出最频繁出现的单词中的前32个单词的出现已表明是有效的(而存储在模型中的最频繁出现的单词可以数量达到数千个单词)。注意的是,随着时间的推移,最频繁观察到的单词可能由于传入字母的观察结果的频率变化(或者由于映射器组件218对输入数据进行簇集而显现新的字母)而改变。
[0043] 一旦词法分析器组件219已经构建词典(即,识别出已经达到预定义的统计显著性的单词),词法分析器组件219就将在输入流中后续观察到的单词的出现发送到PAM组件220。PAM组件220从由词法分析器组件219输出的单词构建短语的句法。在实践中,词法分析器组件219可以在接收到大约15000个观察结果(即,来自映射器组件218的输入字母)之后构建出有用的单词词典。
[0044] PAM组件220基于从词法分析器组件219输出的单词的序列来识别短语的句法。具体而言,PAM组件220接收由词法分析器组件219识别出的单词、生成连接图,其中图的节点表示单词,并且边表示单词之间的关系。PAM组件220可以基于单词在数据流中彼此连接的频率使链接加强或衰减。
[0045] 类似于映射器组件218和词法分析器组件219,PAM组件220基于短语在语言数据中有多频繁地重现来确定每个识别出的短语的罕见性分数。随着神经语言模块215处理附加的数据,罕见性分数可以随着时间的推移而增加或减少。
[0046] 类似于词法分析器组件219,PAM组件220可以限制给定短语的长度,以允许PAM组件220能够识别若干可能的组合而不会不利地影响计算机系统115的性能。
[0047] PAM组件220通过从词法分析器组件219输出的单词的观察结果来识别句法短语。随着单词的观察结果累积,PAM组件220可以确定给定的短语已经成熟,即,短语已经达到统计显著性的度量。PAM组件220然后将该短语的观察结果输出到认知模块225。PAM组件220将包括符号流、单词、短语、时间戳数据、罕见性分数和统计计算结果的数据发送到认知模块
325。在实践中,PAM组件220可以在从词法分析器组件219观察到大约5000个单词之后获得有意义的短语集合。
[0048] 在成熟之后,生成的字母、单词和短语形成输入数据的稳定神经语言模型,计算机系统115使用该模型将字母、单词和短语的后续观察结果与稳定模型进行比较。当接收到新的数据时,神经语言模块215更新语言模型。此外,神经语言模块215可以将当前观察到的句法与模型进行比较。即,在构建稳定的字母集合之后,神经语言模块215可以构建稳定的单词模型(例如,词典)。继而,神经语言模块215可以用于构建稳定的短语模型(例如,句法)。此后,当神经语言模块215后续接收到标准化数据时,模块215可以输出符号、单词和短语的有序流,所有这些可以与稳定模型进行比较,以识别感兴趣的模式或检测在输入数据流中出现的偏差。
[0049] 如所示的,认知模块226包括工作空间226、语义记忆(sematic memory)230、小代码(codelet)模板235、情景记忆(episodic memory)240、长期记忆(long term memory)245和异常检测组件250。语义记忆230存储上述稳定的神经语言模型,即,来自映射器组件218、词法分析器组件219以及PAM组件220的稳定副本。
[0050] 在一个实施例中,工作空间226为机器学习引擎140提供计算引擎。工作空间226执行计算(例如,异常建模计算)并且存储来自计算的中间结果。
[0051] 工作空间226从PAM组件220取回神经语言数据,并根据需要将该数据传播(disseminate)到认知模块225的不同部分。
[0052] 情景记忆240存储与刚过去的特定情景相关的语言观察结果,并且可以对诸如特定事件的“内容(what)”以及“时间(when)”之类的具体细节进行编码。
[0053] 长期记忆245存储语言数据的概括结果(generalization),其中特定的情景细节被剥离。以这种方式,当出现新的观察结果时,来自情景记忆240和长期记忆245的记忆可以用于关联和理解当前事件,即,可以将新的事件与(如由先前观察到的语言数据表示的)过去的经验进行比较,从而导致存储在长期记忆245中的信息随着时间的推移而加强、衰减和调整。在特定实施例中,长期记忆245可以被实现为ART网络和稀疏分布的记忆数据结构。然而,重要的是,这种方法不需要提前定义事件。
[0054] 小代码模板235提供可执行的小代码或小代码片段的汇集,这些可执行的小代码或小代码片段评估不同的事件序列以确定一个序列可以如何跟随(或以其它方式关联到)另一个序列。小代码模板325可以包括确定性小代码以及随机性小代码。更一般而言,小代码可以从输入数据的语言表示中检测感兴趣的模式。例如,小代码可以将当前观察结果(即,具有过去已经观察到的内容的当前短语实例)与先前观察到的活动进行比较。
[0055] 异常检测组件250评估由神经语言模块215发送的罕见性分数,以确定是否响应于由罕见性分数指示的一些异常活动而发出警报。具体而言,异常检测组件250提供表示罕见性分数的概率直方图模型例如,罕见词汇表分数模型、罕见句法分数模型和异常模型。罕见词汇表分数模型和罕见句法分数模型是基于从词法分析器组件219和PAM组件220发送的罕见性分数而生成的。异常模型从罕见词汇表分数模型和罕见句法分数模型接收输入百分位数(percentiles),并基于这些百分位数生成绝对的罕见性分数。异常检测组件250评估这些分数并确定是否基于给定的分数发送警报。异常检测组件250可以向输出设备发送警报数据,管理员可以例如经由管理控制台在该输出设备处查看警报。
[0056] 认知模块225通过将新观察结果与保留在语义记忆230中的稳定的神经语言模型中习得的模式进行比较并且然后估计这些新观察结果的稀有性来对输送给语义记忆230的语言内容(即,识别出的符号、单词、短语)执行学习分析。
[0057] 具体而言,异常检测组件250评估符号、单词和短语中的每一个的罕见性分数,以识别观察到的数据中的异常出现。一旦已经识别出异常观察结果,异常组件就可以发出警报(例如,通知计算机系统115的用户或管理员)。
[0058] 图3示出根据一个实施例的用于收集用在神经语言行为识别系统中的传感器数据的方法300。更具体而言,方法300描述用于数据收集器从相关联的输入设备取回数据并将数据发送到神经语言模块215的方法。针对此示例,假设数据收集器模块202是以给定的帧速率捕捉图像数据的视频源。当然,可以使用各种数据收集器组件202。
[0059] 方法300在步骤305处开始,其中数据收集器模块202从源输入设备取回(或接收)数据。在这种情况下,数据收集器模块202可以从视频源(诸如被定位成观察诸如宾馆大厅的特定位置的视频相机)取回视频帧。此外,数据收集器模块202识别要发送到感测记忆组件135的数据值。为了这样做,数据收集器模块202可以评估视频帧以将前景对象与背景对象分离、测量识别出的前景对象的外观和运动信息,并且跟踪横跨场景(即,相机的视野)移动的前景对象。因此,数据收集器模块202生成描述视频帧中描绘的对象的外观和运动方面的特性的数据值集合。
[0060] 在步骤310处,数据收集器模块202将每个数据值相对于该数据值的类型标准化为落入在范围内(例如,在0到1之间,包括0和1)的数值。例如,与运动特征相关联的值相对于与运动特征相关联的其它值被标准化为从0到1。这样做将每个值转换成公共格式并且允许神经语言模块215辨识视频流中的重现事件。
[0061] 在对值进行标准化之后,在步骤315处,数据收集器模块202识别与标准化值相关联的附加数据,诸如给定值的时间戳、与值的数据类型(例如,运动特征、外观特征、地点、位置等)相关联的平均值、以及该数据类型的历史高值和历史低值。这样做允许数据收集器模块202在视频源被修改的情况下重新调整标准化。具体而言,数据收集器模块202参考识别出的历史值和平均值来重新调整标准化。
[0062] 在步骤320处,数据收集器模块202将标准化值的向量和相关联的数据发送到感测记忆组件135。如所述的,感测记忆组件135存储标准化值和相关联的数据。然后,神经语言模块215可以从感测记忆组件135取回标准化值并在此后执行语言分析。
[0063] 图4示出根据一个实施例的用于在映射器组件218的学习阶段期间更新簇分布的方法400。具体而言,在学习阶段期间,映射器组件218基于从感测记忆组件135发送的标准化向量生成簇。映射器组件218在神经网络(例如,自适应谐振理论(ART)网络)上生成这些簇。此外,在该阶段期间,映射器组件218识别统计上显著的簇,即,具有已经被观察到具有阈值数量的点的数据的簇。
[0064] 方法400在步骤405处开始,其中映射器组件218接收特征值的标准化向量。如所述的,每个向量包括与输入数据的特征相关联的值。例如,用于视频数据的特征可以包括x、y位置、速度、加速度等。每个特征与不同的簇空间相关联。即,映射器组件218为与其它簇无关的每个簇生成簇集合。在一个实施例中,每个特征值被标准化为在0和1之间(包括0和1)的值。此外,每个值映射到特征空间中的点。
[0065] 对于标准化向量中的每个特征值,映射器组件218执行以下步骤。在步骤410处,映射器组件218评估相关联的特征空间的当前簇分布。即,映射器组件218评估每个簇的点分布统计信息,诸如均值、方差和标准偏差。在映射器组件218的初始化时,每个特征空间包括一个簇。观察到的该特征空间的第一个值被映射到该簇并且用作均值。
[0066] 在步骤415处,映射器组件218将特征值映射到对应的簇。一般而言,如果特征值落在给定的簇的方差之内,那么该值映射到该簇。如果特征值不映射到特定簇,那么映射器组件218可以生成新簇并将该值映射到该簇。一旦值被映射,映射器组件218就更新簇分布。基于更新后的分布,映射器组件218可以确定簇是否已变得统计上显著。即,如果映射器组件218观察到映射到给定簇的阈值量的特征值,那么该簇具有统计显著性。在这种情况下,当后续观察到特征值时,映射器组件218可以输出与簇相关联的符号。在一个实施例中,映射器组件218可以基于映射到给定簇的特征值的观察结果的量对统计显著性进行评分。图5示出根据一个实施例的示例簇分布。说明性地,簇分布包括沿着0到1值范围(包括0和1)的簇A和簇B。簇A表示相对更接近0的值的分布,而簇B表示相对更接近1的值的分布。每个簇包括由线5051-2表示的均值。此外,每个簇包括由线5101-2表示的若干个值,其中每个值表示与均值隔开标准偏差的值。
[0067] 在该示例分布中,假设簇B已经达到统计显著性。在这种情况下,当映射器组件218后续观察到映射到簇B的特征值时,映射器组件218将与簇B相关联的符号集合中的一个符号输出到词法分析器组件219。输出到词法分析器组件219的符号取决于值映射到簇B内哪里。在一个实施例中,映射到均值附近(基于模糊的程度)的值对应于不同的符号。此外,(基于模糊的程度)映射在标准偏差值之一附近的值对应于不同的符号。在这种情况下,簇B与五个符号相关联。
[0068] 图6示出根据一个实施例的用于将符号发送到词法分析器组件219的方法600。更具体而言,方法600描述在映射器组件218后续接收到标准化向量时输出符号并更新簇。方法600在步骤605开始处,其中映射器组件218接收输入特征值的标准化向量。如所述的,标准化向量包括在0到1范围内(包括0和1)的输入值。
[0069] 对于每个特征值,映射器组件218执行以下步骤。在步骤610处,映射器组件218评估相关联的特征空间的当前簇分布(即,均值、方差、标准偏差等)。这样做允许映射器组件218确定将特征值映射到哪个簇。
[0070] 在步骤615处,映射器组件218将特征值映射到对应的簇。一旦特征值被映射,映射器组件218就更新该簇的分布,诸如均值、方差和标准偏差。此外,映射器组件218使用更新后的分布来确定簇是否应该与另一个簇合并(例如,如果基于更新后的分布簇开始彼此重叠)。映射器组件218还使用更新后的分布来确定是否创建附加的簇。注意的是,有可能特征值不映射到任何特定的簇。在这种情况下,映射器组件218可以将这种实例作为未知的内容报告给词法分析器组件219。此外,映射器组件218基于更新后的分布来确定对应的簇是否是统计上显著的(在步骤625处)。在一个实施例中,映射器组件218可以基于映射到给定簇的特征值的观察结果的量对统计显著性进行评分。
[0071] 如果簇是统计上显著的,那么映射器组件218将对应的符号输出到词法分析器组件219。如所述的,映射器组件218相对于特征值被映射到簇的哪里(例如,相对于均值、标准偏差)来确定对应的符号。然而,在步骤635处,如果特征值映射到统计上不显著的簇(或者如果特征值根本没有映射到簇),那么映射器组件218将特征值作为未知内容输出到词法分析器组件219。
[0072] 此外,映射器组件218向词法分析器组件219发送附加的统计信息(诸如时间戳信息、罕见性分数、出现的频率等)以附随符号。继而,词法分析器组件219通过借助识别符号的组合来构建单词的词典从而继续对输入进行神经语言分析。词法分析器组件219然后可以将单词的词典输出到PAM组件220。PAM组件220基于彼此一起出现的单词的统计频率来识别短语。一旦短语被识别,PAM组件220就将语言信息(即,符号、单词和短语)输出到认知模块220。如所述的,认知模块220分析语言信息以学习和分析发送到行为识别系统的正常活动和异常活动。
[0073] 本公开的一个实施例被实现为与计算机系统一起使用的程序产品。程序产品的(一个或多个)程序定义实施例(包括本文描述的方法)的功能,并且可以被包含在各种计算机可读存储介质上。计算机可读存储介质的示例包括(i)在其上永久存储信息的不可写存储介质(例如,计算机内的只读存储器设备,诸如可由光学介质驱动器读取的CD-ROM或DVD-ROM盘);(ii)在其上存储可改变信息的可写存储介质(例如,硬盘驱动器或软盘驱动器内的软盘)。当承载引导本公开的功能的计算机可读指令时,这种计算机可读存储介质是本公开的实施例。其它示例介质包括通过其信息被运送到计算机(诸如通过包括无线通信网络的计算机网络或电话网络)的通信介质。
[0074] 一般而言,为了实现本公开的实施例而执行的例程可以是操作系统或具体应用、组件、程序、模块、对象或指令序列的一部分。本公开的计算机程序典型地由许多指令组成,这些指令将由本机计算机转换为机器可读格式并因此转换成可执行指令。此外,程序由变量和数据结构组成,这些变量和数据结构或者驻留在程序本地,或者可以在存储器或存储设备中找到。此外,本文描述的各种程序可以基于在本公开的具体实施例中实现这些程序所针对的应用来识别。然而,应当领会的是,以下的任何特定程序命名法仅仅是为了方便而使用,并且因此本公开不应限于仅在由这种命名法识别和/或暗示的任何具体应用中使用。
[0075] 如上所述,本文的实施例提供用于经由神经语言行为识别系统从源自输入源(例如,视频源、SCADA源、网络安全源等)的数据生成符号的技术。一旦符号被生成,行为识别系统就使用符号构建单词的词典并且建立句法,这形成用于对由行为识别系统观察到的输入数据进行描述的语言模型的基础。行为识别系统基于语言模型分析和学习行为,以区分观察到的数据中的正常活动和异常活动。有利地,这种方法不依赖于预定义的模式来识别行为和异常,而是通过观察场景并生成关于它观察到的内容的信息来学习模式和行为。
[0076] 虽然前述内容针对本公开的实施例,但是可以在不脱离其基本范围的情况下设计本公开的其它实施例和进一步实施例,并且其范围由以下的权利要求来确定。