本公开涉及一种用于对数据流执行事件检测的方法和系统,以及涉及一种用于管理对数据流执行的事件检测过程的方法和节点。本公开还涉及一种计算机程序和一种计算机程序产品,其被配置为当在计算机上运行时执行用于执行事件检测和管理事件检测过程的方法。
背景技术
“物联网”(IoT)是指能够进行通信网络连接的设备,使得可以远程管理这些设备,并且可以在各个设备之间以及设备与应用服务器之间交换设备所收集或所需要的数据。此类设备(其示例可以包括传感器和致动器)通常但不一定受到其操作环境或情况对处理能力、存储容量、能源供应、设备复杂度和/或网络连接性所施加的严格限制,因此可以称为受限设备。受限设备通常使用短程无线电技术经由网关连接到核心网络。然后可以使用从受限设备收集的信息在云环境中创造价值。
IoT被广泛认为是商业和工业数字化转型的推动者。IoT协助监测和管理设备、环境和工业过程的能力是实现这种数字化转型的关键组成部分。例如通过部署大量传感器来监测一系列物理条件和设备状态,可以实现基本连续的监测。由此类传感器收集的数据通常需要实时进行处理并转换为关于代表可用智能的受监测环境信息,并且可以是在受监测系统内执行的触发动作。来自各个IoT传感器的数据可以突出特定的、各个问题。然而,即使在由具有专业知识的人进行评估时,来自许多传感器的数据(在本文中称为高维数据)的并发处理也可以突出在单个读数中可能不明显的系统行为。
突出系统行为的能力可能与诸如智能载运工具和智能制造领域以及服务它们的通信网络(包括无线电接入网络在内)特别相关。在此类领域中,大量传感器和产生的大量数据意味着基于专业知识的方法可能很快变得繁琐。
在汽车和运输领域,传感器被部署来监测载运工具的状态和它们的环境以及运输的乘客或货物的状态。状态监测系统可以通过启用预测性维护、重新路由和加快易腐货物的交付以及基于合同要求优化运输路线来改进对载运工具及其货物的管理。类似地,在智能制造领域,由工业IoT设备收集的大量数据可以被状态监测系统用于设备预测性维护,从而减少设施和设备停机时间并提高产量。在无线电接入网络(RAN)中,从设备和传感器收集的数据可以用于计算反映网络当前状态和性能的特定关键性能指标(KPI)。快速处理源自RAN传感器的数据有助于识别影响延迟、吞吐量并导致分组损失的问题。
上面讨论的领域代表了其中过程用于数据监测的工业和商业活动的示例,这些过程需要尽可能“免提”,使得这些过程可以连续运行并适应受监测环境的变化,并且因此适应受监测数据的变化。这种变化可以包括数据分布中的漂移。将理解的是,任何一个领域的要求可能与另一领域的要求有很大不同。因此,可能需要用于驱动监测过程的智能来满足不同应用的非常不同的需求。IoT数据分析因此不适用于机器学习(ML)模型的设计和预加载到监测节点。IoT数据分析的用例和应用场景的范围很广,并且提供能够提供独立适应于不同用例的IoT数据分析的过程是一项持续的挑战。
技术实现要素:
本公开的目的是提供至少部分地解决上面讨论的挑战中的一个或多个挑战的方法、系统、节点和计算机可读介质。
根据本公开的第一方面,提供了一种用于对数据流执行事件检测的方法,该数据流包括来自通过通信网络连接的多个设备的数据。该方法包括使用自动编码器来浓缩数据流中的信息,其中自动编码器根据至少一个超参数进行配置并且从浓缩的信息中检测事件。该方法还包括基于检测到的事件与知识库之间的逻辑兼容性来产生对检测到的事件的评估,并使用强化学习(RL)算法来改进自动编码器的至少一个超参数,其中基于产生的评估来计算RL算法的奖励函数。
本公开的上述方面因此结合了来自浓缩数据的事件检测、使用强化学习来改进用于浓缩数据的超参数、以及使用逻辑验证来驱动强化学习的特征。用于改进模型超参数的公知方法依赖验证数据来触发和驱动学习。然而,在许多IoT和其他系统中,这种验证数据是简单不可用的。本公开的上述方面使用对与知识库的逻辑兼容性的评估来驱动强化学习以改进模型超参数。与基于数据的验证方式相反,这种逻辑验证的使用意味着上述方法可以应用于宽范围的用例和部署,包括验证数据不可用的用例和部署。此外,将理解的是,产生的对检测到的事件的评估用于改进用于信息浓缩的自动编码器的超参数,而不是用于改进可以用于事件检测本身的ML模型的超参数。以这种方式,基于可以对浓缩数据执行的事件检测的质量来调整数据浓缩的过程。
根据本公开的另一方面,提供了一种用于对数据流执行事件检测的系统,该数据流包括来自通过通信网络连接的多个设备的数据。该系统被配置为使用自动编码器来浓缩数据流中的信息,其中自动编码器被配置为根据至少一个超参数从浓缩的信息中检测事件,基于检测到的事件与知识库之间的逻辑兼容性来产生对检测到的事件的评估,以及使用强化学习(RL)算法来改进自动编码器的至少一个超参数,其中基于产生的评估来计算RL算法的奖励函数。
根据本公开的另一方面,提供了一种用于管理对数据流执行的事件检测过程的方法,数据流包括来自通过通信网络连接的多个设备的数据。该方法包括接收对检测到的事件的通知,其中,已经使用根据至少一个超参数进行配置的自动编码器从浓缩自数据流的信息中检测到事件。该方法还包括:接收对检测到的事件的评估,其中评估已经基于检测到的事件与知识库之间的逻辑兼容性来产生;以及使用强化学习(RL)算法来改进自动编码器的至少一个超参数,其中基于产生的评估来计算RL算法的奖励函数。
根据本公开的另一方面,提供了一种用于管理对数据流执行的事件检测过程的节点,该数据流包括来自通过通信网络连接的多个设备的数据。该节点包括处理电路和存储器,该存储器包含可由处理电路执行的指令,由此该节点可用于接收对检测到的事件的通知,其中,已经使用根据至少一个超参数进行配置的自动编码器从浓缩自数据流的信息中检测到事件。该节点还可用于:接收对检测到的事件的评估,其中评估已经基于检测到的事件与知识库之间的逻辑兼容性来产生;以及使用强化学习(RL)算法来改进自动编码器的至少一个超参数,其中基于产生的评估来计算RL算法的奖励函数。
根据本公开的另一方面,提供了一种包括计算机可读介质的计算机程序产品,计算机可读介质中包含计算机可读代码,计算机可读代码被配置为使得:在由合适的计算机或处理器执行时,使计算机或处理器执行根据本公开的任何方面或示例的方法。
根据本公开的示例,上述知识库可以包含规则和/或事实中的至少一个,可以评估与它们的逻辑兼容性。至少一个规则和/或事实可以从以下各项中的至少一项产生:多个设备中的至少一些设备的操作环境、多个设备中的至少一些设备的操作域、应用于多个设备中的至少一些设备的服务协议、以及/或者应用于多个设备中的至少一些设备的部署规范。根据这种示例,可以基于以下各项中的任何一个或多个来填充知识库:设备正在运行的物理环境、设备的操作域(通信网络运营商、第三方域等和可适用规则)、以及/或者服务水平协议(SLA)和/或由设备的管理员确定的系统和/或部署配置。即使在设备的验证数据集不可用时,关于与设备相关的上述因素的信息也可能可用。
根据本公开的示例,通过通信网络连接的多个设备可以包括多个受限设备。出于本公开的目的,受限设备包括符合RFC 7228第2.1节中针对“受限节点”规定的定义的设备。
根据RFC 7228中的定义,受限设备是这样的一种设备,其中“在撰写本文时几乎被视为理所当然的互联网节点的特性中的一些是无法实现的,这通常是由于成本限制和/或对诸如尺寸、重量、以及可用功率和能量的特性的物理限制。对功率、内存和处理资源的严格限制导致了状态、代码空间和处理周期的硬上限,从而使优化能源和网络带宽使用成为所有设计要求中的主要考虑因素。此外,可能缺少诸如完全连接和广播/多播的一些第2层服务”。受限设备因此明显区别于服务器系统、台式机、膝上型计算机或平板电脑、以及诸如智能手机之类的强大移动设备。受限设备可以例如包括机器型通信设备、电池供电设备或具有上面讨论的限制的任何其他设备。受限设备的示例可以包括例如在房间内或在运输和储存货物时测量温度、湿度和气体含量的传感器、用于控制灯泡的运动传感器、测量可以用于控制百叶窗的光的传感器、(持续监测血压等的)心率监测器和其他用于个人健康的传感器、执行器和连接的电子门锁。受限网络相应地包括“如下网络,该网络中在撰写本文时在互联网中普遍使用的链路层的几乎被认为是理所当然的特征中的一些是无法实现的”,并且更一般地可以包括:包括如上面所定义的一个或多个受限设备的网络。
附图说明
为了更好地理解本公开,并且为了更清楚地示出可以如何实现本公开,现在将通过示例的方式来参考以下附图,其中:
图1是示出了用于对数据流执行事件检测的方法的流程图;
图2a、图2b和图2c是示出了用于对数据流执行事件检测的方法的另一示例的流程图;
图3示出了自动编码器;
图4示出了堆叠的自动编码器;
图5图示了根据示例方法的事件检测;
图6示出了图形用户界面;
图7a和图7b示出了自适应循环;
图8示出了自适应知识检索;
图9示出了用于对数据流执行事件检测的系统中的功能;
图10是示出了根据本公开的方法的示例实施方式的框图;
图11是示出了用于管理事件检测过程的方法中的过程步骤的流程图;
图12是示出了节点中的功能单元的框图;
图13a、图13b和图13c示出了通过智能管道时的信息转换;
图14是智能管道的概念性表示;
图15示出了示例IoT设备的组成;
图16示出了智能执行单元的功能组成;
图17是智能管道的功能表示;
图18示出了IoT场景;以及
图19示出了用于在IoT场景内对数据流执行事件检测的方法的编排。
具体实施方式
人工智能(AI),并且具体是机器学习(ML),被广泛认为是满足工业和商业需求的自主解决方案的本质。然而,在许多AI系统中,ML模型的部署和模型超参数的调整仍然高度依赖人类工程师的输入和专业知识。将理解的是,模型的“超参数”是模型外部的参数,并且其值不能从由模型处理的数据中估计,但仍然决定了模型如何学习其内部参数。模型超参数可以针对给定的问题或用例进行调整。
在IoT生态系统中,机器能够不断地从数据流中学习和检索知识以支持工业自动化(也称为工业4.0)非常重要。高水平自主智能系统可以最小化对人类工程师输入和见解的需求。然而,IoT部署环境不断地变化,并且数据漂移随时可能发生,从而使现有人工智能模型失效。目前几乎通过工程师干预重新调整模型来手动解决这个问题。与包括例如机器视觉和自然语言处理在内的高度指定领域的许多其他AI场景不同,由于IoT应用领域的广泛性和IoT环境的异构性,很难找到适合于所有IoT数据的单个学习模型。因此,从IoT数据中学习和检索知识的自适应能力对于应对这些挑战是高度期待的。端到端自动化也是期待的,以最小化人工干预的需要。
与从IoT数据中检索智能相关的现有技术无法提供这种自动化和自适应性。
在具有自动化要求的部署环境中考虑时,传统的基于机器学习的知识检索解决方案有几个缺点:
-在加入相关硬件进行部署之前预先构建模型。在许多情况下,这种模型仍然高度依赖人类工程师的干预来更新模型以实时处理数据流。
-AI模型的部署,尤其是超参数调整,不是自动化的而是依赖于人工干预
-IoT环境产生种类繁多且是高度动态的数据。因此,预加载的静态模型可以容易地失去准确性。
-上述限制使从IoT部署中提取数据的单个模型的开发具有高度挑战性。
以下标准因此代表了可以有助于从IoT数据中检索智能的方法和系统的期待特征:
-数据处理算法应该是动态的,使得可以根据具体要求来调整输入大小和模型形状;
-算法本身应该基于数据处理节点的数量、数据源的数量和数据量进行扩展。
-分析应该在线进行,以实现快速事件检测和快速预测;
-应该最小化对先前领域知识(包括训练标签、验证数据和有用的数据模型)的依赖,因为此类知识在IoT系统中经常不可用。
当考虑到上述期待标准时,自动化知识检索的最近尝试都呈现出显著局限性。
例如,可以在靠近数据产生的地方实施的高度自动化的解决方案极为罕见。大多数自动化的解决方案将所有数据发送到云端,其中在下载结论以采取适当动作之前提取知识。此外,大多数现有解决方案仍需要大量人工干预,无法处理动态演变的数据,以及在核心算法中缺乏灵活性和可扩展性。国际专利申请PCT/EP2019/066395公开了一种寻求克服上述挑战中的一些的方法和系统。本公开寻求增强PCT/EP2019/066395中提出的解决方案的各个方面,具体是适应数据、受监测系统和环境变化的自主能力。
本公开的各方面因此提供了一种自动化解决方案,其在可用于从实时数据流中检索智能的方法和系统中实现自适应性。本公开的示例提供了对运行循环进行自动化以根据动态环境的变化(而无需用于训练的数据标签)来调整诸如神经网络的模型的超参数的可能性。本公开的示例因此是自适应的并且可以部署在广泛的多种用例中。本公开的示例最小化对领域专业知识的依赖。
本公开的示例的自适应性基于建立在强化学习代理和逻辑验证器上的迭代循环。特征提取允许减少对领域专业知识的依赖。基于可以在不需要特定领域知识的情况下填充的知识库,本公开的示例应用结果的逻辑验证。这种知识库可以从包括环境、物理和业务数据的数据中构建,并且因此可以被视为“常识”检查,该检查结果是否与已知的受监测系统和/或环境以及特定部署的业务需求一致。这种需求当应用于通信网络时可以例如在服务水平协议(SLA)中规定。本公开的示例提供了一种没有任何具体模型的解决方案;通过强化学习循环调整模型超参数。
图1和图2是示出了根据本公开的示例的用于对数据流执行事件检测的方法100、200的流程图,该数据流包括来自通过通信网络连接的多个设备的数据。图1和图2提供了这些方法的概述,其示出了如何实现上面讨论的功能。然后参考图3至图8详细讨论各个方法步骤,包括实施细节。
首先参考图1,方法100包括:在第一步骤110中使用自动编码器来浓缩数据流中的信息,其中自动编码器根据至少一个超参数来进行配置。该方法然后包括:在步骤120中从浓缩的信息中检测事件;以及在步骤130中基于检测到的事件与知识库之间的逻辑兼容性来产生对检测到的事件的评估。最后,在步骤140中,该方法包括使用强化学习RL算法来改进自动编码器的至少一个超参数,其中基于产生的评估来计算RL算法的奖励函数。
数据流可以包括来自多个设备的数据。这种设备可以包括用于环境监测的设备、用于有助于智能制造的设备、用于有助于智能汽车的设备、以及/或者在诸如无线电接入网络(RAN)的通信网络中的设备或连接到该通信网络的设备。在一些实施例中,该数据流可以包括来自网络节点的数据,或者包括软件和/或硬件收集的数据。具体设备的示例可以包括温度传感器、诸如相机、视频设备或麦克风的视听设备、接近传感器和设备监测传感器。
数据流中的数据可以包括实时或近实时数据。在一些示例中,方法100可以实时执行,使得在数据的收集与处理之间存在最小或很少的延迟。例如,在一些示例中,方法100可以以与数据流的数据产生的速率相当的速率执行,使得可观的积压数据不会开始累积。多个设备通过通信网络连接。通信网络的示例可以包括无线电接入网络(RAN)、无线局域网(WLAN或WIFI)和有线网络。在一些示例中,设备可以形成通信网络的一部分,例如RAN的一部分、WLAN的一部分或WIFI网络的一部分。在一些示例中,例如在智能制造或智能汽车部署中,设备可以通过通信网络进行通信。
参考步骤110,将理解的是,自动编码器是一种可以用于浓缩数据的机器学习算法。自动编码器被训练以获取输入特征的集合并降低该输入特征的维数,同时信息损失最少。训练自动编码器一般是无监督的过程,并且自动编码器划分为两个部分:编码部分和解码部分。编码器和解码器可以包括例如包括神经元层的深度神经网络。如果解码器能够以可容忍的数据损失来恢复原始数据流,则编码器成功地对数据进行了编码或压缩。训练可以包括减少描述输入(原始)与输出(被解码的)数据之间差异的丢失函数。训练编码器部分因此涉及优化编码器过程的数据损失。可以考虑使用自动编码器来浓缩数据(例如,与仅仅降低维数相反),因为数据中的本质或突出特征不会损失。将理解的是,根据方法100使用的自动编码器实际上可以包括多个自动编码器,这些自动编码器可以被配置为形成分布式堆叠的自动编码器,如下面进一步详细讨论的。堆叠的自动编码器包括两个或更多个单独的自动编码器,这些单独的自动编码器布置为使得一个自动编码器的输出作为输入提供给另一自动编码器。以这种方式,自动编码器可以用于顺序地浓缩数据流,在每个自动编码器操作中减少数据流的维数。分布式堆叠的自动编码器包括跨多个节点或处理单元实现的堆叠的自动编码器。因此,分布式堆叠的自动编码器提供了一种沿智能数据管道浓缩信息的扩张方式。此外,由于驻留在每个节点(或处理单元)中的每个自动编码器相互链接,分布式堆叠的自动编码器可用于根据输入数据尺寸的信息复杂度来增长。
参考步骤120,检测到的事件可以包括任何感兴趣的数据读数,包括例如统计上的异常数据点。在一些示例中,事件可以与异常有关。在其他示例中,事件可以与系统的性能指标(例如,关键性能指标(KPI))有关,并且可以指示异常或不期望的系统行为。事件的示例可以根据可实施本公开的示例的特定用例或领域而显著变化。在智能制造的领域,事件的示例可以包括温度、湿度或压力读数,这些读数超出了此类读数的操作窗口,操作窗口可以手动进行配置或基于此类参数的历史读数来建立。温度、压力、湿度或其他传感器的异常读数可以指示特定设备出现故障,或者过程不再在最佳参数范围内运行等。在通信网络领域,示例事件可以包括超出期待系统行为的窗口的KPI读数或无法达到诸如服务水平协议的业务协议中规定的目标的KPI读数。无线电接入网络的这种KPI的示例可以包括下载中的平均和最大小区吞吐量、上传中的平均和最大小区吞吐量、小区可用性、总上传业务量等。
参考步骤140,强化学习是一种开发自学习软件代理的技术,该代理可以学习和优化用于基于观察到的系统状态和为实现特定目标而量身定制的奖励系统来控制系统或环境(例如,方法100的自动编码器)的策略。在方法100中,目标可以包括改善对检测到的事件的评估,并且因此提高事件检测的准确性。当执行强化学习算法时,软件代理建立系统的状态St。基于系统的状态,软件代理选择要在系统上执行的动作,并且一旦动作已经执行,就会接收到动作产生的奖励rt。软件代理基于系统状态选择动作,目的是最大化预期的未来奖励。奖励函数可以被定义使得对于导致系统进入接近系统的目标结束状态的状态的动作接收到更大的奖励,这与管理系统的实体的总体目标一致。在方法100的情况下,自动编码器的目标结束状态可以是其中超参数使得浓缩的数据流中的事件检测已经达到期望的准确度阈值的状态,如产生的对检测到的事件的评估所指示。
图2a至图2c示出了流程图,其示出了用于对数据流执行的事件检测的方法200的另一示例中的过程步骤,该数据流包括来自通过通信网络连接的多个设备的数据。方法200的步骤示出了其中方法100的步骤可以被实施并被补充以便实现上面讨论的和附加的功能的一种示例方式。方法200可以由协作以实现该方法的不同步骤的多个设备来执行。该方法可以由管理功能或节点进行管理,该管理功能或节点可以编排并协调某些方法步骤,并且可以有助于该方法的扩展以适应产生数据的设备的数量、产生的数据量、节点的数量、可用于执行不同方法步骤的功能或过程等的变化。
首先参考图2a,在第一步骤202中,该方法包括从多个设备中收集一个或多个数据流。如图2a所示,在示例方法200中,设备是受限设备或IoT设备,尽管将理解的是方法200可以用于在由除了受限设备以外的设备产生的数据流中的事件检测。设备通过通信网络连接,该通信网络可以包括任何类型的通信网络,如上所述。在步骤204中,方法200包括:在累积聚合数据之前转换并聚合所收集的数据,并且在步骤206中,将累积的数据流划分为多个连续的窗口,每个窗口对应于不同时间间隔。
在步骤210中,方法200包括使用分布式堆叠的自动编码器来浓缩数据流中的信息,自动编码器根据至少一个超参数进行配置。至少一个超参数可以包括与时间窗口相关联的时间间隔、比例因子和/或层数减少率。分布式堆叠的自动编码器可以用于根据在步骤212中产生的时间窗口来浓缩窗口化数据中的信息。该步骤也称为特征提取,因为数据被浓缩使得最相关的特征被保持。如步骤210所示,使用分布式堆叠的自动编码器可以包括使用无监督学习(UL)算法基于与数据流相关联的参数和/或至少一个超参数中的至少一个来确定自动编码器中的层数和自动编码器的每一层中的神经元数。与数据流相关联的参数可以例如包括以下至少一个:与数据流相关联的数据传输频率和/或与数据流相关联的维数。下面提供了用于计算层数和每层神经元数的不同方程的完整讨论。UL过程可以实施上面讨论的训练,其中通过将原始输入数据与解码的输出数据进行比较来最小化编码损失。
如图2a所示,使用分布式堆叠的自动编码器的过程可以包括:在步骤210a中将数据流划分为一个或多个数据子流,在步骤210b中使用分布式堆叠的自动编码器的不同自动编码器来浓缩每个相应子流中的信息,以及在步骤210c中将浓缩的子流提供给堆叠的自动编码器的层级结构中的另一层的另一自动编码器。
在步骤212中,方法200包括:在步骤220中从浓缩的信息中检测事件(现参考图2b)之前,随时间累积数据流中的浓缩的数据。如步骤220所示,这可以包括比较所累积的浓缩的数据的不同部分。在一些示例中,可以使用余弦差来比较所累积的浓缩的数据的不同部分。在一些示例中,如图2b所示,检测事件还可以包括:在步骤220a中使用通过比较累积的浓缩数据的不同部分而检测到的至少一个事件为训练数据集产生标签,该训练数据集包括来自数据流的浓缩信息。检测事件然后还可以包括在步骤220b中使用训练数据集来训练监督学习(SL)模型,以及在步骤220c中使用SL模型从浓缩的信息中检测事件。在一些示例中,仅那些检测到的具有合适的评估分数(例如,高于阈值的分数)的事件可以用于为训练数据集产生标签,如下文进一步详细讨论的。
在步骤230中,方法200包括基于检测到的事件与知识库之间的逻辑兼容性来产生对检测到的事件的评估。在一些示例中,也可以基于在浓缩数据流中的信息或从浓缩的信息中检测事件中的至少一种期间产生的错误值来产生评估分数。下面提供了对检测到的事件的评估的机器学习组件的另外讨论。
如图2b所示,基于检测到的事件与知识库之间的逻辑兼容性来产生对检测到的事件的评估可以包括:在步骤230a中将对应于检测到的事件的参数值转换为逻辑上的断言,并在步骤230b中评估该断言与知识库的内容的兼容性,其中知识库的内容包括规则和/或事实中的至少一个。知识库可以包含一个或多个规则和/或事实,这些规则和/或事实可以从以下各项中至少一项产生:
多个设备中的至少一些设备的操作环境;
多个设备中的至少一些设备的操作域;
适用于多个设备中的至少一些设备的服务协议;以及/或者
适用于多个设备中的至少一些设备的部署规范。
因此,可以根据以下各项来填充知识库:设备正在运行的物理环境、设备的操作域(网络运营商、第三方域等和可适用规则)和/或诸如SLA的业务协议和/或由设备管理员确定的系统/部署配置。如上面所讨论的,当完整的验证数据集不可用时,在IoT部署事件的情况下,此类信息可能是可用的。
评估断言与知识库的内容的兼容性的步骤230b可以包括:针对断言与知识库中的事实或规则之间的每个逻辑冲突执行递增或递减评估分数中的至少一种。表明与知识库存在多个逻辑冲突的检测事件不太可能是正确检测到的事件。以这种方式评估事件并使用评估来改进用于浓缩数据流的模型超参数,可以因此导致以使准确事件检测的潜力最大化的方式来浓缩数据。
现在参考图2c,方法200还包括使用强化学习RL算法来改进自动编码器的至少一个超参数,其中基于产生的评估来计算RL算法的奖励函数。如图所示,这可以包括使用RL算法来试验至少一个超参数的不同值并确定与奖励函数的最大值相关联的至少一个超参数的值。步骤240a至240d示出了这可以如何实现。在步骤240a中,RL算法可以建立自动编码器的状态,其中自动编码器的状态由至少一个超参数的值表示。在步骤240b中,RL算法根据已建立的状态选择要在自动编码器上执行的动作,其中动作选自包括递增和递减至少一个超参数的值的动作集合。在步骤240c中,RL算法使所选动作在自动编码器上执行,而在步骤240d中,RL算法在执行所选动作之后计算奖励函数的值。动作选择可以由寻求最大化奖励函数的值的策略驱动。由于奖励函数基于产生的对检测到的事件的评估,因此最大化奖励函数的值将寻求最大化检测到的事件的评估分数,并且从而最大化检测事件的准确性。
在步骤242中,方法200包括更新知识库以包括在逻辑上与知识库兼容的检测事件。这可以包括将对应于检测到的事件的断言作为规则添加到知识库。以这种方式,正确检测到的事件可以有助于用于评估未来检测到的事件的知识。因此,与先前正确检测到的事件的冲突可以使未来检测到的事件的评估分数降低。最后,在步骤244中,方法200包括将检测到的事件暴露给用户。这可以以适合于特定部署或用例的任何实际方式来实现。检测到的事件可以用于触发一个或多个设备和/或部署设备的系统或环境中的动作。
上述方法100和200提供了本公开的各方面可以如何实现自适应和自主事件检测的概述,其可以用于从一个或多个数据流中获得可操作智能。这些方法可以在一系列不同的系统和部署中实现,现在介绍这些系统和部署的各个方面。然后详细讨论如何实施上述方法的步骤。
可以运行上面讨论的方法的系统或部署可以包括以下元件:
1)一个或多个设备,该设备可以是诸如IoT设备的受限设备。每个设备可以包括收集信息的传感器和传感器单元。该信息可以涉及物理环境、设备的运行状态、物理、电气和/或化学过程等。传感器的示例包括:环境传感器,包括温度、湿度、空气污染、声学、声音、振动等;用于导航的传感器,例如高度计、陀螺仪、内部导航仪和磁罗盘;光学设备,包括光传感器、热像仪、光电探测器等;以及许多其他传感器类型。每个设备还可以包括用于处理传感器数据并经由通信单元发送结果的处理单元。在一些示例中,设备的处理单元可以有助于执行上面讨论的方法步骤中的一些或全部。在其他示例中,设备可以简单地提供数据流的数据,而方法步骤在其他功能、节点和元件中以分布式方式执行。每个设备还可以包括用于发送由传感器单元提供的传感器数据的通信单元。在一些示例中,设备可以从处理组成单元发送传感器数据。
2)一个或多个计算单元,这些单元可以在诸如通信网络中的网关或其他节点的任何合适的装置中实现。计算单元可以附加地或备选地在云环境中实现。每个计算单元可以包括处理单元和通信单元,该处理单元用于实现一个或多个上述方法步骤并适当管理与其他计算单元的通信。通信单元可以经由不同的协议从异构无线电节点和(IoT)设备接收数据,在智能处理单元之间交换信息,以及将数据和/或见解、检测到的事件、结论等暴露给其他外部系统或其他内部模块。
3)通信代理,有助于设备传感器数据的收集和实体之间的信息交换。通信代理可以例如包括消息总线、持久存储单元、点对点通信模块等。
4)知识库的存储库。
方法100、200的步骤可以经由上面讨论的作为单独的智能执行单元的协作元件来实施,该单独的智能执行单元包括:
“数据输入”(数据源):定义如何检索数据。取决于具体方法步骤,数据可以变化,该数据包括传感器数据、监测数据、聚合数据、特征矩阵、缩减特征、距离矩阵等,
“数据输出\"(数据宿):定义如何发送数据。取决于具体方法步骤,数据可以如上面参考输入数据所讨论的那样变化。
“映射函数”:指定应该如何累积和预处理数据。这可以包括复杂事件处理(CEP)函数,如累积(acc)、窗口、平均值、最后一个、第一个、标准偏差、总和、最小值、最大值等。
“转换”:指在方法步骤中执行操作所需的任何类型的执行代码。取决于方法步骤的具体操作,转换操作可以是简单的协议转换函数、聚合函数或高级算法。
“间隔”:取决于协议,定义窗口大小以执行请求的计算可以是合适的。
上面讨论的智能执行单元可以连接在一起以形成智能(数据)管道。将理解的是,在所提出的方法中,每个步骤可以被认为是针对某个独立的智能执行单元的计算任务,并且集成的智能执行单元集合的自动化组成构成了智能管道。智能执行单元可以经由软件以“点击并运行”的方式部署,具有用于初始化的配置文件。数据处理模型的配置可以根据本文描述的方法在初始化之后进行自适应。智能激励单元可以分布在多个节点上进行资源编排,最大限度地提高节点的使用率和性能。此类节点可以包括设备、边缘节点、雾节点、网络基础设施、云等。以这种方式,也避免了中心故障点的存在。使用基于参与者的架构,可以使用初始配置文件容易地批量创建智能执行单元。以这种方式实现有助于本文提出的方法的可扩展性及其部署自动化。
将理解的是,分布式集群的部署可以在提供初始配置文件并且然后“点击以运行”的意义上实现自动化。配置文件提供软件架构的一般配置信息。该文件可以被一次提供给单个节点(根参与者)以创建整个系统。然后可以基于数据输入的形状来调整计算模型。还将理解的是,该方法的一些步骤可以与其他步骤结合以部署为单个智能执行单元。方法100、200的步骤一起形成交互式自主循环。循环可以响应于动态环境而不断地调整算法和模型的配置。
现在更详细地讨论上面介绍的方法100、200的某些步骤。将理解的是,以下细节涉及本公开的不同示例和实施方式。
步骤202:收集数据流(收集相关传感器数据或流中的任何相关数据)
IoT是数据驱动的系统。步骤202的目的是检索和收集要从中提取可操作智能的原始数据。该步骤可以包括从向数据流提供数据的所有设备收集可用数据。步骤202可以集成多个异构设备,该多个异构设备可以具有多个不同的通信协议、多个不同的数据模型和多个不同的序列化机制。该步骤因此可能需要系统集成商了解数据有效负载(数据模型和序列化),以便收集并统一数据格式。
存在协议、数据模型、以及数据的序列化的多种组合,其可以提供一种统一的方式在同一系统中从多个来源无缝收集传感器数据。在该步骤中,前面参考执行这些步骤的智能执行单元讨论的“源”和“转换函数”可能对产生一致和同质的数据特别有用。例如,在IoT设备“X”以特定格式发送原始数据而IoT设备“Y”发送JSON数据的系统中,步骤202将允许将来自设备“X”的数据转换为JSON。随后的处理单元可以无缝地管理数据,而无需附加的数据转换。某个单元将数据转发到下一个单元的方式在“宿”中进行定义。在上面的示例中,可以指定“宿”,以确保以JSON格式提供输出数据。
步骤204:转换并聚合流中的数据;
将理解的是,步骤202可以以分布式方式和并行方式执行,并且步骤204因此可以提供中心聚合以收集所有传感器数据,基于此可以创建高维据中的数据帧。
可以基于系统要求来聚合数据。例如,如果环境分析或某个业务过程的分析需要基于从特定的多个分布式传感器/数据源收集的数据,则应该聚合从这些传感器和源收集的所有数据。在许多情况下,收集到的数据将是稀疏的;随着收集到的数据内的类别的数量增加,输出最终可以成为高维稀疏数据帧。
将理解的是,智能执行单元的数量,并且在一些示例中,执行步骤202和24的处理的物理和/或虚拟节点的数量可以根据要从中收集和聚合数据的设备的数量以及这些设备产生的数据量而变化。
步骤206:累积高维数据并产生窗口
为了触发数据的浓缩并建立/改进合适的模型,应该定义特定大小的时间窗口,在该时间窗口内可以累积数据。该步骤根据窗口大小对小批量数据进行分组。窗口的大小可以特定于具体用例,并且可以根据不同的要求进行配置。取决于要求,数据可以累积在内存或持久存储设备中。根据对可以经由其实现本公开的示例的智能执行单元的说明,该步骤使用“映射函数”来实现。在一些示例中,该步骤的操作可以仅使用“映射函数”将数据累积到阵列中。
步骤110/210:(使用从该方法的先前迭代优化的超参数),建立基于深度自动编码器的模型,并对每个时间窗口的数据进行特征提取/信息浓缩
一旦在足够数量的窗口上累积了数据,就可以触发特征提取/数据浓缩。最初,基于累积的数据构建了深度自动编码器。然后通过将自动编码器模型应用于累积数据来执行特征提取,通过深度编码器的堆叠的自动编码器来处理数据。图3中示出了单个自动编码器300。如上所述,自动编码器包括编码器部分310和解码器部分320。高维输入数据330被输入到编码器部分,而来自自动编码器部分310的浓缩数据340从自动编码器300输出。浓缩数据被馈送到重构高维数据350的解码器部分320。输入高维数据330与重建的高维数据340之间的比较用于学习自动编码器模型的参数。
图4示出了堆叠的自动编码器400。堆叠的自动编码器400包括多个单独的自动编码器,每个自动编码器输出其浓缩的数据以输入到另一自动编码器,从而形成数据被连续浓缩所依据的分层布置。
在前面步骤中定义的每个滑动窗口都以时间顺序以某个定义的间隔输出数据帧。在步骤110/210中,可以在两个维度上执行特征提取:
(a)在时间维度上压缩数据所携带的信息。例如,部署的传感器可以每10毫秒发送数据。持续时间为10秒的滑动窗口因此将累积1000个数据项。特征提取可以通过减少数据帧的时间长度来实现汇总数据帧的信息并提供全面的信息。
(b)在特征维度上浓缩数据所携带的信息。由于传感器数据的高维特征,从IoT传感器收集的传感器数据可能非常复杂。在许多情况下,即使是领域专家,也几乎不可能通过查看收集的传感器数据集来了解整个IoT系统的运行状态。因此可以处理高维数据以提取最重要的特征并降低任何不必要的信息复杂度。从一个或一组深度自动编码器中提取的特征可以是另一深度自动编码器的输入。
当一个或几个深度自动编码器的输出被用作另一深度自动编码器的输入时,这将形成如上面所讨论并如图4所示的堆叠的深度自动编码器。堆叠的深度自动编码器提供了一种沿智能数据管道对信息进行浓缩的扩张方式。堆叠的深度自动编码器也可以根据输入数据维度的信息复杂度来增长,并且可以完全被分布以避免计算瓶颈。作为输出,步骤110/210发送收集的数据所携带的浓缩的和提取的信息。大量高维数据因此对于后续计算变得更易于管理。
如上面所讨论,自动编码器的每个编码器部分和解码器部分可以使用神经网络来实现。神经网络中的层数过多将引入不必要的计算负担并造成计算延迟,而层数过少则有削弱模型的表达能力的风险并可能影响性能。可以使用以下公式获得编码器的最佳层数:
Number_of_hidden_layers
=int(Sliding_windows_interval
*data_transmitting_frequency/(2*scaling_factor
*number_of_dimensions))
其中scaling_factor是可配置的超参数,其通常描述模型的形状将如何从短宽到长窄。
深度自动编码器还可以引入超参数layer_number_decreasing_rate(例如,0.25)来创建每一层的输出大小。对于编码器中的每一层:
Encoder_Number_of_layer_(N 1)=
int(Encoder_Number_of_layer_N*(1-
Layer_Number_Decreasing_Rate));
比例因子、时间间隔和层数减少率都是超参数的示例,这些超参数可能在方法100和/或200的先前迭代期间已经被优化。
解码器中每一层的数量对应于编码器中每一层的数量。构建堆叠的深度自动编码器的无监督学习过程的目的是通过从高维数据中提取特征来浓缩信息。自动编码器的计算精度/损失可以使用K折交叉验证进行,其中,除非提供了另外的配置,否则数K默认为5。可以在每个映射函数内部进行验证计算。对于堆叠的深度自动编码器,然后对每单个运行的自动编码器进行验证。
步骤212:累积所提取的特征(基于来自该方法的早期迭代的优化超参数)
可以使用如上所述的智能执行单元的“映射功能”来实现步骤212。映射函数在某段时间内或某个样本量中累积缩减的特征。在该步骤中,每个映射函数是如图4所示的深度自动编码器。如前面步骤所讨论,特征提取是链式的并且可以快速迭代地接近数据资源。提取的特征随着滑动窗口的移动而累积。例如,如果前面步骤中描述的特征提取是每10秒进行一次,则在该累积步骤期间可以设想系统需要在一小时的时间段内进行异常检测。缓冲样本的时间范围可以设置为60秒,并且将通过监测来累积360数据并从以每10毫秒产生的数据中提取特征。这样的累积为在时间维度上浓缩信息奠定了基础。从示例中可以看出,在堆叠的深度自动编码器的处理之后,每个数据块每10毫秒产生的原始数据被浓缩为每6个数据块1秒产生的数据。
步骤120/220:执行事件检测-从浓缩的数据/提取的特征中进行见解检索(基于来自该方法的早期迭代的优化超参数)
步骤120/220分析累积的缩减特征值并比较它们,以便评估在哪些时间窗口中出现了异常。例如,与其他时隙具有较大距离的时隙可以被建议为累积时间上的异常。该步骤基于先前提取的特征的累积来进行。事件检测可以分两个阶段进行:第一阶段基于距离计算和比较来检测事件。这些事件在步骤130/230中经受逻辑验证,并然后使用通过逻辑验证的那些事件来组装训练数据集的标签。训练数据集用于训练监督学习模型,其在事件检测的第二阶段对浓缩的、累积的数据执行事件检测。事件检测的两个阶段如图5所示。
在第一阶段,对于来自步骤110/210(以及212,如果执行)的结果,距离测量可以用于计算特征提取的累积输出中元素之间的成对距离。步骤110/210由单个深度自动编码器510表示,尽管将理解的是,在许多实施方式中,步骤110/210可以由如上所讨论的堆叠的深度自动编码器执行。自动编码器510的输出被输入到距离计算器520。在距离计算器520中计算的距离可以是余弦距离,并且成对的距离可以相应地形成距离矩阵。由于使用马尔可夫链蒙特卡罗(MCMC)方法来重构提取的特征,因此输出是随机产生的,其保持相同的概率分布特征。分布是未知的,这意味着测量距离(例如,欧几里得距离)在许多情况下可能没有意义。最感兴趣的是向量之间的角度,并且因此余弦距离可能是最有效的测量。
如果在示例中,前面的步骤已经累积了N个输出,标记为{F0,F1,F2,…Fn-1};然后可以通过以下方式计算距离矩阵:
表1:形成距离矩阵
在名为“距离Avg”的字段中,对于每个提取的特征,计算其在同一缓冲时间窗口中与其余提取的特征的平均距离。计算出的结果从缓存被写入存储设备中,可以便于可视化。
通过距离计算器中的距离比较而检测到的事件然后被传递到逻辑验证器530以评估与知识库540的内容的兼容性。该步骤将在下面更详细地讨论。然后使用已验证的事件为训练数据集产生标签。因此,与通过距离计算和比较而检测到的事件相对应的浓缩数据标记为对应于事件。在事件检测的第二阶段,以训练数据集形式的该标记数据被输入到监督学习模型,实现为例如神经网络550。因此使用训练数据来训练该神经网络550以检测浓缩的数据流中的事件。将理解的是,神经网络550的训练可以被延迟,直到已经通过使用距离计算的事件检测产生了合适大小的训练数据集。
步骤130/230:产生对检测到的事件的评估-逻辑验证以检测与知识库的冲突并为强化学习提供验证结果
该步骤对事件检测的第一阶段中检测到的事件进行逻辑验证,以排除检测到的与领域内现有的被组装到知识库中的常识有逻辑冲突的事件。事件的评估分数可以反映与知识库内容的逻辑冲突的数量。惩罚表可以通过将逻辑验证结果链接到当前配置来创建,并且可以驱动强化学习循环,通过该循环可以改进用于数据浓缩和可选事件检测的模型的超参数。
根据关于产生数据的设备的可用信息、设备的物理环境、设备的操作域、与设备相关的业务协议、应该如何运行部署的部署优先级或规则等,逻辑验证针对已经在知识库中被组装的事实和/或规则对检测到的事件执行逻辑冲突检查。无需专业领域知识即可填充该信息。例如,斯德哥尔摩六月的室外温度应该在0度以上。将理解的是,知识库因此与验证数据集非常不同,验证数据集通常用于检查现有事件检测解决方案中的事件检测算法。验证数据集能够将检测到的事件与真实事件进行比较,并且仅可以与领域专家的大量输入进行组装。此外,在许多IoT部署中,验证数据集的数据根本不可用。与验证数据集相比,本公开包括对检测到的事件与知识库之间的逻辑冲突的评估,该知识库包括从即使对于那些没有相关领域的专业知识的人也易于获得的信息产生的事实和/或规则。逻辑验证可以用于过滤掉错误的检测事件以及填充描述给定检测事件的逻辑冲突数量的惩罚表。惩罚表可以用作通过驱动强化学习来进行自适应模型改进的句柄,如下所述。
逻辑验证器可以包括推理器,该推理器基于二阶逻辑来验证所检测到的异常是否与现有知识有任何逻辑冲突,该现有知识与给定部署相关并填充到知识库中。来自上一步骤的检测事件以断言的形式流式传输到实现逻辑评估的处理器。
例如:考虑由标记为S={a,b,c,d…k}的参数的集合定义的系统,可以通过满足{a=XY,b=XXY,c=YY,d=YXY…k=Y}来检测可疑行为。该陈述容易转换为如下断言:Assertion=({a=XY,b=XXY,c=YY,d=YXY…k=Y}=0)。该断言可以基于现有知识库,通过运行基于逻辑的引擎来验证。知识库可以包括两部分:事实库和规则库。这两个部分都可以提供用于与用户交互的图形用户界面(GUI)。在本公开中,针对知识库提出的模式是基于封闭空间的假设,这意味着逻辑验证使用可称为“常识”的可用知识来进行,并且因此可以容易地从设备的已知特征、设备的环境和/或任何业务或运营原则或协议中获得。知识库的填充可以由如图6所示的GUI引导。
语义模式“Subject Verb Object”和“Subject Copula Predicative”可以映射到事实空间,如图6所示。例如,在智能制造用例中,生产线包括设计为旋转且温度不能超过100摄氏度的机械臂,这种关于生产线如何运行的“常识”知识可以转化为用于进行如下逻辑验证的事实空间:“正在旋转的机械臂是健康的”可以在语义上映射到(Roboticsrotate==True)=>(Roboticshealth==True),而“在100摄氏度以上的机械臂是不健康的”可以在语义上映射到(Roboticstemp≥100)=>(Roboticshealth==False)。在这种情况下,如果事件检测产生被表示为如下断言的异常:(Roboticsrotate==True)V(Robotictemp≥100)=>(Roboticshealth==False),逻辑验证将提供“错误”判断,因为该断言表示与旋转机械臂是健康以及健康的机械臂不能超过100摄氏度的事实的逻辑冲突。对于经由强化学习执行的自适应训练,在后面的步骤中,每个“错误”判断指示逻辑冲突,并且逻辑冲突的数量提供了与所提供的断言具有直接或间接冲突的事实和/或规则的数量。
逻辑验证可以用于产生JSON文档,该JSON文档描述了堆叠的自动编码器的当前超参数和检测到的逻辑冲突的数量,如下所示。例如,以下JSON可以针对后续自适应学习步骤定义输入配置。
步骤242:将已验证的见解更新到知识库中以支持监督学习;
在步骤212中,可以将验证之后的推荐断言更新到现有知识库。可以使用例如JSON格式来更新断言。数据存储库可以在其内包括知识库和数据标签,该标签从已验证的检测事件产生,并用于训练用于第二阶段事件检测的监督学习模型。更新到知识库的断言可以采用语义模式“Subject Verb Object”中描述的格式。
步骤140/240:使用RL算法改进超参数-自适应模型改进
该步骤通过强化学习对用于数据浓缩/特征提取的模型进行自适应改进。强化学习由惩罚表中的信息进行驱动,基于逻辑验证并且在某些示例中还基于ML错误根据对检测事件的评估来填充该惩罚表。强化学习改进了自动编码器模型的超参数,以优化浓缩数据中事件检测的有效性和准确性。在一些示例中,RL算法可以是Q学习,尽管也可以设想其他RL算法。
自适应循环通过使用强化学习的状态-动作-奖励-状态过程来形成。如上所述,RL可以使用各种不同的算法来执行。出于方法100、200的目的,RL算法期望满足以下条件:
(1)支持无模型强化学习,其可以应用于各种高动态环境
(2)支持基于价值的强化学习,其尤其旨在通过优化超参数来提高评估结果
(3)支持以时差方式更新,使得计算模型的配置可以在训练期间不断改进,直到找到最佳解决方案
(4)成本低并且便于快速迭代,这意味着对要运行算法的设备的资源和容量要求降低。
Q学习算法是基本满足上述条件的一种选择,并且可以经由对这些模型的超参数的优化与当前提出的方法的数据浓缩/特征提取模型进行集成。自适应模型改进过程加强了基于评估结果的超参数调整。然后将评估结果映射到如下所示的表。
表2:评估结果
lndr:层数递减率(layer_number_decreasing_rate);
scf:比例因子(scaling_factor);
swi:滑动窗口间隔(sliding_windows_interval);
mle:机器学习错误(ml error);
lge:逻辑错误(logic_error)
表的每一列表示对数据浓缩/特征提取自动编码器模型的超参数的调整操作。每一行分别表示在对应操作之后的机器学习错误和逻辑错误。每种状态的奖励γ是:
reward_for_mle=0-mle×100,和reward_for_lge=0–lge
可以根据贝尔曼方程计算给定状态下的动作的质量分数Q;配置上的每个调整动作被标记为d;错误状态被标记为e;以及每次迭代被标记为t。因此,当前状态下每个动作的Q函数值表示为Q(et,dt)。
初始状态Q(e0,d0)=0和Q更新为:
自适应的过程是迭代循环,在这个循环中Q(et,dt)被更新,直到Qupdated(et,dt)==Q(et,dt)。一旦达到该条件,就会输出具有当前调整的超参数值的浓缩特征,并且该过程继续进行到下一个滑动窗口。
自适应循环如图7a和图7b所示。最初参考图7a,深度堆叠自动编码器(由自动编码器710表示)根据某些超参数进行配置。自动编码器经由距离计算和比较(未示出)将浓缩数据720输出到事件检测。然后在逻辑验证器730中验证检测到的事件,在该逻辑验证器730中产生对检测到的事件的评估。该评估740的结果用于驱动强化学习,更新Q表740,该Q表740用于评估对超参数执行的调整动作,自动编码器710是根据该超参数来配置的。一旦Q分数的进一步增加可忽略不计,就已经找到了模型超参数的最佳值,并且可以将来自当前时间窗口760的所得浓缩数据输出到例如经由监督学习的事件检测,如上面参考步骤120/220所讨论的。
现在参考图7b,更详细地示出了由自动编码器710执行的数据浓缩,其中还示出了浓缩数据的时间累积。除了使用检测到的事件的验证结果来驱动自适应学习器760中自动编码器710的超参数优化之外,图7b还示出了使用检测到的验证事件为监督学习770产生训练数据集以检测浓缩数据中的事件。
自适应知识检索如图8所示。参考图8,呈现了堆叠深度自动编码器810的输入数据802。浓缩的数据/提取的特征被转发给检测事件的距离计算器820。在上述逻辑框架830内验证检测到的事件,并且该验证的输出被更新到知识库840。知识库840可以用于填充惩罚表850,该表中存储了自动编码器810的配置(即,超参数值)、对应于检测到的事件的断言、以及与逻辑评估之后的那些断言相对应的错误。惩罚表驱动自适应学习器860,该学习器上运行了RL算法以改进自动编码器810的超参数以便最大化检测到的事件的评估分数。在一些示例中,提供轻权重操作实现方式,对所描述的配置文件的更新可以仅在收集新数据时执行。更新是闭合迭代循环的一部分,根据该循环,配置文件中的超参数值基于评估结果来更新,如上所述。该迭代是时间冻结的,如图8所示,这意味着从相同时间窗口提取的相同数据帧将继续迭代,直到获得当前数据集的最佳配置,此时计算将转向考虑下一个时间窗口中的数据。
步骤244:暴露所获得的见解;
该步骤可以使用外部存储来实现和执行。在该步骤中,系统将数据暴露给其他组件,从而有助于所提出的方法与IoT生态系统的集成。例如,可以将结果暴露给数据库以供用户进行可视化。以这种方式,除了支持自动化分析之外,本文提出的方法还可以丰富人类知识以支持决策。通过与过程组件进行集成,这些方法可以附加地增强商业智能。检测到的事件和相关联的数据可以暴露给包括管理或企业资源规划(ERP)的其他系统,或者可以使同一计算单元内的致动或可视化系统(包括LED、LCD或向用户提供反馈的任何其他装置)可用。
如上所述,本公开的示例还提供了一种用于对数据流执行事件检测的系统,该数据流包括来自通过通信网络连接的多个设备的数据。这种系统900的示例在图9中示出并且被配置为使用自动编码器(可以是堆叠分布式自动编码器)来浓缩数据流中的信息,其中自动编码器根据至少一个超参数进行配置。系统900还被配置为从浓缩的信息中检测事件,并基于检测到的事件与知识库之间的逻辑兼容性来产生对检测到的事件的评估。系统900还被配置为使用强化学习RL算法来改进自动编码器的至少一个超参数,其中基于产生的评估来计算RL算法的奖励函数。
如图9所示,该系统可以包括:数据处理功能910,被配置为使用自动编码器来浓缩数据流中的信息,其中自动编码器根据至少一个超参数进行配置;以及事件检测功能920,被配置为从浓缩的信息中检测事件。该系统还可以包括:评估功能930,被配置为基于检测到的事件与知识库之间的逻辑兼容性来产生对检测到的事件的评估;以及学习功能940,被配置为使用RL算法来改进自动编码器的至少一个超参数,其中基于产生的评估来计算RL算法的奖励函数。
功能910、920、930和/或940中的一个或多个可以包括在云中运行的虚拟化功能,以及/或者可以分布在不同的物理节点上。
评估功能930可以被配置为通过以下方式基于检测到的事件与知识库之间的逻辑兼容性来产生对检测到的事件的评估:将对应于检测到的事件的参数值转换为逻辑上的断言,并评估该断言与知识库的内容的兼容性,其中知识库的内容包括规则和/或事实中的至少一个。评估函数还可以被配置为:通过针对断言与知识库中的事实或规则之间的每个逻辑冲突来执行递增或递减评估分数中的至少一种,基于检测到的事件与知识库之间的逻辑兼容性产生对检测到的事件的评估。
图10是示出了根据本公开的方法的示例实现方式的框图。图10的示例实现方式可以例如对应于智能制造用例,其可以被认为是本文提出的方法的可能应用。智能制造是涉及多个异构设备和/或地理上分布的设备的用例的示例,并且其中需要了解部署设备所沿循的自动化生产线的性能并检测异常行为。此外,期望从自动化工业制造系统中检索见解/知识的解决方案应该是自动化的,并且数据处理模型应该是自我更新的。
如上所述,领域专家经常无法提供数据和验证数据集的手动评估,尤其是在新引入或组装生产线时。此外,在现代工厂中,部署的设备/传感器设备的类别可能非常复杂并且经常更新或更改,其中这些更改会导致预先存在的数据处理模型的性能下降。设备/传感器设备可以服务于不同地理位置的不同生产单元(设备的异构性和分布式拓扑),并且生产可以针对不同的环境或业务优先级进行扩大和/或缩小。期望数据处理是实时的,并能快速产生结果。
参考图10,每个块可以对应于智能执行单元,如上所述,该单元可以被虚拟化、分布在多个物理节点等。图10的处理流程基本上如上所述,其中数据预处理在单元1002、1004、1006中执行,并且特征提取/数据浓缩由堆叠分布式自动编码器1008a、1008b执行。使用距离计算和比较在浓缩数据中检测到的事件在逻辑验证器1010中使用与知识库1012的内容的逻辑兼容性来进行评估。评估的结果用于驱动自适应学习器中的强化学习,该自适应学习器优化自动编码器1008的超参数。已验证的检测事件还用于为训练数据集产生标签,该训练数据集用于执行监督学习以检测浓缩数据中的事件。系统的性能在性能评估器1018中进行评估并经由可视化器1020呈现给用户。
将理解的是,方法100、200也可以通过对节点特定方法的单个节点或虚拟化功能的执行来实现。图11是示出了一种这样的方法1100中的过程步骤的流程图。参考图11,用于管理对数据流执行的事件检测过程的方法1100包括在第一步骤1110中接收对检测到的事件的通知,该数据流包括来自通过通信网络连接的多个设备的数据,其中已经使用根据至少一个超参数进行配置的自动编码器从浓缩自数据流的信息中检测到该事件。在步骤1120中,方法1100包括接收对检测到的事件的评估,其中已经基于检测到的事件与知识库之间的逻辑兼容性产生了该评估。在步骤1130中,该方法包括使用强化学习RL算法来改进自动编码器的至少一个超参数,其中基于产生的评估来计算RL算法的奖励函数。
图12是示出示例节点1200的框图,例如在从计算机程序1206接收到合适的指令时,该示例节点1200可以实现根据本公开的示例的方法1100。参考图12,节点1200包括处理器或处理电路1202,并且可以包括存储器1204和接口1208。处理电路1202可用于执行如上面参考图11所讨论的方法1100的步骤中的一些或全部。存储器1204可以包含可由处理电路1202执行的指令,使得节点1200可用于执行方法1100的步骤中的一些或全部。指令还可以包括用于执行一种或多种电信和/或数据通信协议的指令。指令可以以计算机程序1206的形式存储。在一些示例中,处理器或处理电路1002可以包括一个或多个微处理器或微控制器、以及可以包括数字信号处理器(DSP)、专用数字逻辑等的其他数字硬件。处理器或处理电路1202可以由任何类型的集成电路实现,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。存储器1204可以包括适合于处理器的一种或几种类型的存储器,例如只读存储器(ROM)、随机存取存储器、高速缓冲存储器、闪存设备、光存储设备、固态盘、硬盘驱动器等。
图13a、图13b和图13c示出了信息如何在通过由实现根据本公开方法的连接的智能执行单元形成的智能管道时被转换,如图10的示例实施方式中所示。智能管道从可以在地理上分布(例如,跨图10的实施方式的智能制造站点)的传感器接受数据。收集的数据表示来自不同生产组件及其环境的信息。在数据处理使得数据被转换为适当的格式并被归一化之后,获得高维数据集,如图13a所示。然后执行特征提取/数据浓缩,从而得到提取的特征,如图13b所示。在从时间窗口累积特征之后,成对计算提取的最终特征之间的距离,并且然后计算给定时隙中每个特征与其他特征的平均距离,如图13c所示。这些结果可以暴露给诸如Kibana的外部可视化工具。
图14提供了由一个或多个计算设备1402、1404形成的智能管道1400的概念表示,在一个或多个计算设备1402、1404上,智能执行单元1408对由IoT设备1406产生的数据实施方法100、200的步骤。
图15示出了可以产生数据流的数据的示例IoT设备的组成。IoT设备1500包括处理单元1502、传感器单元1504、存储设备/存储器单元1506和通信单元1508。
图16示出了智能执行单元1600的功能组成,其包括数据源1602、映射函数1604、变换函数1606和数据宿1608。
图17是智能管道的功能表示,其示出了处理器之间的点对点通信和使用外部代理的通信。
如上所述,本文公开的方法中的步骤中的每一步可以在不同的位置和/或不同的计算单元中实施。本文公开的方法的示例因此可以在由设备、边缘网关、基站、网络基础设施、雾节点和/或云组成的IoT环境内实现,如图18所示。图19示出了可以如何在IoT环境中编排实现根据本公开的方法的智能执行单元的智能管道的一个示例。
本公开的示例提供了一种应对在数据流中执行事件检测的挑战的技术解决方案,该解决方案能够独立地适应数据流中的变化以及不同类型、数量和复杂性的数据,最小化对领域专业知识的要求,是完全可扩展的、可重用的和可复制的。所提出的解决方案可以用于通过实施自动化智能数据管道为数据提供在线异常分析,该管道接受原始数据并以最少的人类工程师或领域专家的输入产生可操作的智能。
本公开的示例可以展示以下优点中的一个或多个:
·具有与数据密集型自主系统集成的丰富能力的自适应半监督学习。通过模型的自我修订来适应变化的能力。
·无需领域专业知识即可为模型的创建或训练提供数据标签;仅依赖于容易获得的“常识”信息来进行逻辑验证。
·为IoT数据流实时提供基于批处理的在线机器学习,而不仅限于使用流数据模型:对实时数据流持续应用半机器学习算法,以使用滑动窗口和浓缩时间和特征维度的数据来获得见解。
·易于部署的高度可扩展解决方案。可以通过向根节点提供初始配置文件来创建集群。然后可以根据产生数据的设备的数量以及数据的数量和复杂度来扩大/缩小包括模型本身和底层计算资源编排在内的集群。机器学习模型被自动改进和更新。
·高度可重用和可复制的解决方案。
本公开的示例在半监督方法中应用深度学习以用于从原始数据中检索知识并经由逻辑验证来检查见解。然后通过使用强化代理优化模型超参数来调整用于数据浓缩的模型配置,从而确保这些方法能够适应不断变化的环境和广泛变化的部署场景和用例。
本文提出的示例方法使用堆叠的深度自动编码器提供基于批处理的在线机器学习,以从高维数据中获得见解。所提出的解决方案是动态可配置的、可在模型和系统架构上扩展的,而不依赖于领域专业知识,并且因此在不同的部署和用例中具有高度的可复制性和可重用性。
本文提出的示例方法首先应用无监督学习(堆叠的深度自动编码器)以从原始数据集提取和浓缩特征。这种无监督学习不需要任何预先存在的标签来训练模型。示例方法然后应用常识逻辑验证来排除检测到的与相关领域中的常识有逻辑冲突的事件,并形成Q表。基于Q表,可以进行Q学习以获得无监督学习模型(自动编码器)的最佳配置,并且然后更新现有模型。此外,经验证的检测事件可以用作监督学习的标签,以在浓缩的数据中执行事件检测。本文公开的示例方法因此可以用于被标记的训练数据不可用的用例。
本公开的方法可以以硬件来实现,或者作为在一个或多个处理器上运行的软件模块来实现。该方法还可以根据计算机程序的指令来执行,并且本公开还提供了一种计算机可读介质,该计算机可读介质上存储有用于执行本文描述的任一方法的程序。体现本公开的计算机程序可以存储在计算机可读介质上,或者它可以例如具有信号(例如从互联网网站提供的可下载数据信号)的形式,或者它可以具有任何其它形式。
应当注意,上述示例说明而非限制本公开,并且本领域技术人员将能够设计很多备选实施例而不脱离所附权利要求的范围。词语“包括”不排除存在除了权利要求中所列出的元素或步骤之外的元素或步骤,“一”或“一个”不排除多个,并且单个处理器或其它单元可以完成权利要求中记载的若干单元的功能。权利要求中的任何附图标记不应理解为对其范围的限制。