一、什么是层级时空记忆模型
世界上的许多数据都是流式的时间序列数据,在这些数据中,异常在关键情况下提供了重要的信息。然而,检测流式数据中的异常是一项艰巨的任务,需要探测器实时处理数据,并在进行预测的同时学习。基于在线序列记忆算法的异常检测技术——分层时间记忆(HTM)解决了这个问题。
二、使用HTM实现异常检测
典型的流应用涉及分析实时发生的连续数据流。 此类应用包含一些独特的挑战。 我们将此形式化如下。 设矢量xtxt表示时刻tt的实时系统的状态。 该模型接收连续的输入流:
⋯,xt−2,xt−1,xt,xt+1,xt+2,⋯⋯,xt−2,xt−1,xt,xt+1,xt+2,⋯
例如,考虑监控数据中心的任务。的组件可能包括各种服务器的CPU使用率,带宽测量值,服务请求的延迟等。在每个时间点tt,我们希望确定系统的行为是否异常。 关键挑战之一是必须实时地进行确定,即在时间t+1t+1之前并且没有任何前瞻。 在实际应用中,系统的统计数据可以动态变化。 例如,在生产数据中心,可能会随时安装软件升级,从而改变系统的行为。 模型的任何重新训练必须在时间t+1t+1之前在线完成。最后,各个测量不是独立的,并且包含可以被利用的重要时间模式。
HTM是一种似乎与上述约束相匹配的学习算法。 HTM网络不断学习和模拟其输入的时空特征。 HTM已被证明可以很好地用于预测任务,但HTM网络不直接输出异常分数。为了执行异常检测,我们利用HTM中可用的两种不同的内部表示。给定输入xtxt,向量a(xt)a(xt)是表示当前输入的稀疏二进制代码。我们还利用内部状态向量π(xt)π(xt)表示对a(xt+1)a(xt+1)的预测&#x