基于LSTM-AutoEncoder的室内空气质量时间序列数据异常检测

news2024/9/21 16:46:57

摘要中的图片

基于LSTM-AutoEncoder的室内空气质量时间序列数据异常检测

LSTM-Autoencoder-Based Anomaly Detection for Indoor Air Quality Time-Series Data

DOI: 10.1109/JSEN.2022.3230361

摘要——室内空气质量(IAQ)数据的异常检测已成为研究的重要领域,因为空气质量与人类健康和福祉密切相关。然而,在IAQ领域中,传统的统计学和浅层机器学习(ML)方法无法检测涉及多个数据点之间关联观察(即通常称为长期依赖)的异常。为了解决这个问题,我们提出了一种混合深度学习模型,将长短期记忆(LSTM)与自动编码器(AE)相结合,用于IAQ中的异常检测任务。在我们的方法中,LSTM网络由多个LSTM单元组成,这些单元协同工作,以学习时间序列数据中的长期依赖关系。AE基于对所有时间序列数据进行重建损失率的评估,确定最优阈值。我们基于新西兰学校实际部署获取的但尼丁二氧化碳(CO2)时间序列数据集的实验结果表明,该方法具有非常高且稳健的准确率(99.50%),优于其他类似模型。

关键词——异常检测,自动编码器(AE),CO2,室内空气质量(IAQ),长短期记忆(LSTM),时间序列。

I. 引言

室内空气质量(IAQ)与人类健康、生产力和工作效率密切相关[1]。对于大部分时间都在学校度过的儿童来说,良好的空气质量更为重要。在课堂环境中为儿童提供新鲜空气对他们的健康和福祉至关重要。然而,二氧化碳(CO2)的形成,被认为是室内空气污染物的主要成分,容易在教室内的儿童学习/玩耍以及地板和其他表面的排放中积聚[2]。正如[3]和[4]中的研究所述,暴露于CO2可能会产生一系列不良健康影响,如注意力不集中、记忆力减退、头痛和疲劳等症状,从而导致学业表现下降。

包括测量CO2水平在内的IAQ的持续监测在许多国家(包括经济合作与发展组织(OECD)成员国)都是一个难题,因为大规模监测IAQ对预算紧张的学校来说太过昂贵。为了解决这一问题,梅西大学的研究团队与新西兰国家水与大气研究所(NIWA)合作开发了一种低成本监测设备,名为SKOol MOnitoring BOx(SKOMOBO)[4]、[5]、[6]。SKOMOBO单元是一个小型盒子,大约为100 × 100 × 100毫米,设计用于容纳多个低成本传感器,这些传感器可以捕捉与IAQ相关的多种数据,如颗粒物(PM2.5和PM10)、温度、相对湿度、CO2以及教室中的人类活动。

由于IAQ数据读数的波动以及数据质量问题(例如,在非静止或不受控制的环境中部署),IAQ的监测充满挑战[7]。此外,罕见或持续的污染事件也可能损害数据质量(如火灾、洪水和雷暴等自然灾害)。因此,利用人工智能(AI)技术的最新进展,提出了许多检测IAQ中异常事件的建议。例如,许多研究尝试使用统计方法(如使用均值、标准差和高斯q分布)[8]、[9]以及其他浅层机器学习(ML)技术的组合(如k近邻(KNN)、k均值和回归)[10]、[11]、[12],以找到IAQ的正常行为模式,并以此为基础检测异常事件或提高预测能力,如[13]、[14]。然而,这些现有方法无法检测需要观察多个相关数据点的异常。

在这项研究中,我们提出了一种混合深度学习模型,结合了长短期记忆(LSTM)和自动编码器(AE)的功能,基于对样本数据中长期依赖关系的理解来检测IAQ数据集中的异常数据点。

我们提出模型的主要贡献如下:

原创贡献总结

  1. 我们提出了一种混合深度学习模型,将LSTM和AE结合在一起。在我们提出的模型中,LSTM网络由多个LSTM单元组成,每个单元可以保留序列中的重要特征值(如CO2值),并与其他LSTM单元协同工作,以理解每个序列的模式。此外,AE通过降维实现更高效的训练,并计算与每个时间序列相关的最佳阈值。然后,使用最佳阈值检测偏离时间序列典型模式的上下文异常。
  2. 我们将所提出的模型应用于从新西兰多所小学和中学的实际部署中获取的但尼丁CO2数据集。
  3. 我们将提出的模型性能与使用LSTM和/或AE不同方面的其他类似方法进行了比较。基于一套全面的评估标准,我们的实验结果表明,所提出的模型能够有效检测异常,检测准确率超过99%。

本文其余部分结构如下。第二部分介绍了IAQ领域的相关研究工作。第四部分介绍了我们提出模型的详细内容。第五部分展示了基于但尼丁CO2数据集的实验设置和结果分析。第七部分总结了本文并展望了未来的研究工作。

II. 相关工作

我们回顾了在IAQ数据集上检测异常的现有先进技术。

Ottosen和Kumar [10] 引入了两种使用KNN和自回归积分滑动平均(ARIMA)来分别检测低成本空气质量数据集中的点异常和上下文异常的方法。在他们的点异常检测方法中,他们简单地利用平均欧几里得距离计算与其余点的相似性,并为单个点分配异常分数。ARIMA则通过计算模型与测量之间残差的绝对值来检测上下文异常,并为每个数据点分配异常分数。然后,K-means聚类将点异常和上下文异常分类为两个簇——正常和异常。

Wei等人[8] 提出了一种均值和标准差(MSD)-K-means的混合模型,用于检测室内PM10数据集中的异常。他们首先使用MSD的统计方法来消除噪声数据,以减少噪声对聚类的影响。然后,他们应用K-means算法来实现更好的局部最优聚类。他们的提案显示出97.6%的检测准确率和91.9%的F1分数。

Li等人[11] 提出了一种基于聚类的模糊C均值方法。在他们的方法中,作者使用重建准则来基于多变量子序列数据重建最佳簇中心和分区矩阵。他们还使用重建误差作为粒子群优化(PSO)算法的适应度函数,以定义多变量数据中检测异常的水平。然而,所提算法由于PSO算法陷入局部最优的问题,无法揭示高维多变量时间序列的结构。

Sharma等人[13] 提出了一种名为IndoAirSense的低成本框架,用于在大学选定教室中估算和预测IAQ。他们首先使用多层感知器(MLP)和极限梯度提升回归(XGBR)来估算实时IAQ。然后,他们使用没有遗忘门的长短期记忆(LSTM-wF)来减少LSTM的复杂性,以预测室内空气污染物。显然,由于没有使用保持长期记忆的遗忘门,这种模型无法检测时间序列数据集中的异常。

Mumtaz等人[15] 提出了一个基于LSTM的模型,用于预测不同空气污染物的浓度,以检测室内环境的整体质量。在他们的研究中,他们通过物联网传感器收集了不同空气污染物(如NH3、CO、NO2、CH4、CO2和PM2.5)的基础数据。其提出的系统具备在检测到空气质量异常后发送警报的能力。

Xu等人[16] 提出了一种增加了误差修正模型(ECM)的LSTM模型,以提高公共建筑室内温度预测的准确性。在他们的方法中,当预测数据和测量数据在同一阶共整合时,会构建一个ECM,并利用其来修正测试数据集的预测。同样地,Jung等人[17] 利用LSTM预测室内空间的条件管理,基于三个物联网传感器数据集(测量空间的温度、湿度和亮度)。LSTM用于检测室内空间条件的异常情况,当三个室内空气条件数据集的组合读数偏离训练期间获得的阈值时,即检测到异常。

Hossain等人[18] 提出了一种结合使用两种变体的递归神经网络(RNN)模型(即门控循环单元(GRU)和LSTM)的预测方案,用于预测孟加拉国两个最大城市(即达卡和吉大港)的日常空气质量指数(AQI)。在他们的提案中,他们将GRU和LSTM分别用作第一和第二隐藏层,随后是两个密集层作为预测模型。结果表明,他们的模型能够跟随这两个城市的实际AQI趋势,并且相较于仅使用单个GRU或LSTM模型时,两个模型的组合改进了整体性能。
我们认为现有的研究存在几个局限性。例如,使用ARIMA等更经典的时间序列方法和回归机器学习方法(如K-means或KNN)通常依赖于手动提取特征来更好地预测特征的行为。这不仅耗时,还需要专家干预,成本较高。此外,这些现有模型对异常值非常敏感,当数据集规模较大且概率分布未知时,它们的表现往往较差。

使用LSTM,时间序列预测模型可以根据前面的顺序数据模式预测未来的值,从而提高预测的准确性,并有助于更好地做出决策,例如检测异常。与现有方法不同的是,通过使用自动编码器(AE),我们提出的模型在处理具有复杂自相关序列的大规模数据集时,即使面对不可预测的数据分布,也能提供更好的结果。

III. 预备知识

A. LSTM

LSTM代表长短期记忆网络,通常被视为RNN(循环神经网络)的扩展。RNN提供了“短期记忆”的能力,使得之前的信息(仅在某个时间点上)可以用于当前任务。而LSTM架构则扩展了RNN,提供了“长期记忆”的能力,使得当前神经节点可以使用所有先前信息的列表(而不是某个时间点的信息)。
Fig. 1. How LSTM unit works.
图 1. LSTM 单元的工作原理。
Fig. 1. How LSTM unit works.

如图1所示,一个常见的LSTM单元由一个细胞状态、一个输入门、一个输出门和一个遗忘门组成。细胞状态能够在任意时间间隔内记住值,而这三个门则调节信息的流入和流出,具体如下:

  1. 细胞状态:指网络当前的长期记忆,存储之前信息的列表。
  2. 上一个隐藏状态:指前一个时间点的输出,可以视为短期记忆。
  3. 输入数据:包含当前时间步的输入值。
步骤 1:遗忘门

遗忘门的主要目的是根据上一个隐藏状态和新的输入数据,决定细胞状态中的哪些部分是有用的。如果相关,它输出接近1的数值,否则输出接近0的数值,使用的是sigmoid激活函数。数学上,遗忘门的输出(ft)可以表示为:

f t = σ ( w f [ H t − 1 , X t ] + b f ) (1) f_t = \sigma(w_f [H_{t-1}, X_t] + b_f) \tag{1} ft=σ(wf[Ht1,Xt]+bf)(1)

其中,σ是激活函数, w f w_f wf b f b_f bf分别是遗忘门的权重和偏差。 H t − 1 H_{t-1} Ht1 X t X_t Xt分别表示隐藏状态和当前输入的拼接。

步骤 2:输入门

输入门有两个主要目的。首先是检查新信息(即上一个隐藏状态和新输入数据)是否值得保存在细胞状态中。如果值得保存,接下来决定应将哪些新信息添加到细胞状态中。为此,输入门经过两个过程:

  1. 决定新信息C˜t的过程如下公式所示:

C ˜ t = tanh ⁡ ( w c [ H t − 1 , X t ] + b c ) (2) C˜t = \tanh(w_c[H_{t-1}, X_t] + b_c) \tag{2} C˜t=tanh(wc[Ht1,Xt]+bc)(2)

其中, w c w_c wc b c b_c bc分别是输入门的权重矩阵和偏差,而tanh被用作激活函数,值范围为[-1, 1],负值用于减少影响。

  1. 识别新输入的哪些部分值得保存在细胞状态中,其公式如下:

i t = σ ( w i [ H t − 1 , X t ] + b i ) (3) i_t = \sigma(w_i [H_{t-1}, X_t] + b_i) \tag{3} it=σ(wi[Ht1,Xt]+bi)(3)

其中, w i w_i wi b i b_i bi分别是输入门的权重矩阵和偏差。

这两个过程点乘以调节新信息的幅度。结果的组合向量随后被添加到细胞状态中,导致网络的长期记忆得到更新,如下公式所示:

C t = f t ⋅ C t − 1 + i t ⋅ C ˜ t (4) C_t = f_t \cdot C_{t-1} + i_t \cdot C˜t \tag{4} Ct=ftCt1+itC˜t(4)

步骤 3:输出门

输出门的主要目的是决定新的隐藏状态。它首先通过sigmoid激活函数将上一个隐藏状态和当前输入数据应用于网络,得到滤波向量 o t ot ot,如下公式所示:

o t = σ ( w o [ H t − 1 , X t ] + b o ) (5) o_t = \sigma(w_o [H_{t-1}, X_t] + b_o) \tag{5} ot=σ(wo[Ht1,Xt]+bo)(5)

其中, w o w_o wo b o b_o bo分别是输出门的权重矩阵和偏差。
细胞状态通过tanh激活函数强制将数值限制在[-1, 1]的区间内,从而生成一个压缩的细胞状态,并通过点乘应用于滤波向量。新的隐藏状态 H t H_t Ht随新的细胞状态 C t C_t Ct一起被创建并输出,公式如下:

H t = o t ⋅ tanh ⁡ ( C t ) (6) H_t = o_t \cdot \tanh(C_t) \tag{6} Ht=ottanh(Ct)(6)

新的细胞状态 C t C_t Ct成为下一个LSTM单元的先前细胞状态 C t − 1 C_{t-1} Ct1,而新的隐藏状态 H t H_t Ht成为下一个LSTM单元的先前隐藏状态 H t − 1 H_{t-1} Ht1。这些步骤重复进行,直到所有时间序列数据的输入都被所有涉及的LSTM单元处理完。

B. 自编码器 (Autoencoder)

自编码器(AE)是一种用于学习无标签数据高效编码的无监督神经网络。它通过训练神经网络忽略无关紧要的数据(通常称为“噪声”),来为一组输入数据学习一种表示形式。典型的自编码器由一个输入层、一个输出层和若干隐藏层组成。自编码器的操作可以分为编码、解码和重构损失,如图2所示。
Fig. 2. How AE works.
图 2. 自编码器(AE) 的工作原理。
Fig. 2. How AE works.

  1. 步骤 1:编码
    在编码操作中,输入数据 x x x是一个高维向量( x ∈ R m x \in \mathbb{R}^m xRm),在去除任何不重要的特征后被映射到一个低维瓶颈层表示 h h h,公式如下:
    h = f 1 ( w i x + b i ) (7) h = f_1(w_i x + b_i) \tag{7} h=f1(wix+bi)(7)
    其中, w i w_i wi是权重矩阵, b i b_i bi是偏差, f 1 f_1 f1是一个激活函数。
  2. 步骤 2:解码
    在解码操作中,瓶颈层表示 h h h被用来生成输出 x ^ \hat{x} x^,该输出映射回输入数据 x x x的重构形式,公式如下:
    x ^ = f 2 ( w j h + b j ) (8) \hat{x} = f_2(w_j h + b_j) \tag{8} x^=f2(wjh+bj)(8)
    其中, f 2 f_2 f2是解码器的激活函数, w j w_j wj是权重矩阵, b j b_j bj是偏差, x ^ \hat{x} x^表示重构后的输入样本。注意, w j w_j wj b j b_j bj可能与编码器对应的 w i w_i wi b i b_i bi无关。
  3. 步骤 3:重构损失
    在标准的自编码器模型中,计算重构损失 L L L,以最小化输出与输入之间的差异,公式如下:
    L ( x − x ^ ) = 1 n ∑ n = 1 n ∣ x ^ t − x t ∣ (9) L(x - \hat{x}) = \frac{1}{n} \sum_{n=1}^n |\hat{x}_t - x_t| \tag{9} L(xx^)=n1n=1nx^txt(9)
    其中, x x x表示输入数据, x ^ \hat{x} x^表示输出数据, n n n是训练数据集中的样本数。通常在异常检测任务中使用该重构损失【19】【20】。
    然而,在我们的模型中,这一计算被扩展为计算单个样本的重构损失,如下所示:
    x i = 1 n ∑ n = 1 n ∣ x ^ i − x i ∣ s.t.  n = { i , n ≤ N + 1 2 N − i + 1 , n > N + 1 2 (10) x_i = \frac{1}{n} \sum_{n=1}^n |\hat{x}_i - x_i| \quad \text{s.t. } n = \begin{cases} i, & n \leq \frac{N+1}{2} \\ N - i + 1, & n > \frac{N+1}{2} \end{cases} \tag{10} xi=n1n=1nx^ixis.t. n={i,Ni+1,n2N+1n>2N+1(10)
    其中, N N N是样本总数, n n n代表第 n n n个样本, X i = { x 1 , … , x i } X_i = \{x_1, \dots, x_i\} Xi={x1,,xi}。接着,我们计算时间序列中所有样本的重构损失如下:
    loss = 1 N ∑ i = 1 N x i (11) \text{loss} = \frac{1}{N} \sum_{i=1}^N x_i \tag{11} loss=N1i=1Nxi(11)

其中, N N N是样本总数, x x x表示为单个样本计算的重构损失。

IV. 方法论

在本节中,我们介绍了一种结合LSTM和自编码器(AE)的模型,以基于时间序列数据的分析检测异常。我们首先概述了所提出模型的四个步骤:创建输入序列、LSTM编码器、LSTM解码器和异常检测。我们还详细描述了模型在训练和测试阶段所使用的算法。

A. LSTM-自编码器

我们提出的模型概述如图3所示。我们的LSTM-AE利用了LSTM神经网络和自编码器的能力。在第一步中,原始数据集被转换为高维输入数据序列,作为一个固定大小的向量。在第二步中,LSTM编码器创建了多个LSTM单元,每个单元协同工作以保留时间序列中的所有数据点,分析特征的模式(例如CO2值的模式),同时将高维输入向量表示逐渐减少为低维表示,直到达到潜在空间。在第三步中,LSTM解码器从潜在空间中的低维表示重构出固定大小的输入序列。在最后的异常检测阶段,计算输出到输入的重构误差率,以找到最佳阈值。然后在测试阶段使用该阈值来检测不同时间序列中的上下文异常。
Fig. 3. Overview of our proposed model.
图3. 拟议模型的概述。
Fig. 3. Overview of our proposed model.

  1. 步骤 1:输入序列数据
    原始数据集被处理为一系列时间序列 [ X 1 , X 2 , X 3 , … , X n ] [X_1, X_2, X_3, \dots, X_n] [X1,X2,X3,,Xn]。每个序列 X X X包含一个固定长度为 T T T的时间窗口数据 [ x 1 , x 2 , x 3 , … , x t ] [x_1, x_2, x_3, \dots, x_t] [x1,x2,x3,,xt],其中 x t ∈ R m xt \in \mathbb{R}^m xtRm表示时间点 t t t m m m个特征输入。然后再次将其重塑为二维数组,表示样本和时间步。例如,我们的CO2数据序列被转换为二维数组,其中每个维度表示十个时间步上的样本列表。
    Fig. 4. Details of LSTM encoder.
    图 4. LSTM 编码器的细节。
    Fig. 4. Details of LSTM encoder.

  2. 步骤 2:LSTM 编码器
    LSTM编码器的主要目的是充当一个序列折叠层,将特征转换为基于时间的特征序列批次。这类似于独立对特征序列的时间步进行卷积操作。图4描述了(AE)编码器如何与一系列LSTM单元交互,LSTM单元被训练以识别输入序列中最相关的特征。
    每个时间序列 X i X_i Xi包含十个在十个时间步(1分钟间隔)上收集的样本。这个一维数据集被重塑为二维数据集,以便输入到编码器中。例如,要基于时间步展开输入数据集,输入数被转换为二维向量,其中一个维度包含十个时间步,另一个维度包含特征(即CO2读数的样本),表示为10×1的向量。现在将其输入到编码器中。编码器创建了第1层,其中包含一个具有十个LSTM单元的LSTM网络。每个LSTM单元处理一个样本。十个LSTM单元按顺序工作,第一个LSTM单元将样本的结果传递给第二个LSTM单元。第二个LSTM单元决定是否保留第一个LSTM单元的先前样本或将其遗忘。如果第二个LSTM单元决定保留它,它会将其写入长期记忆,并将第一个LSTM单元的样本信息以及处理的样本特征信息传递给第三个LSTM单元,以此类推。我们模型中的最后一个LSTM单元,即第十个LSTM单元,处理了前九个LSTM单元保存的所有样本。最后一个LSTM单元输出所有相关样本的信息。该输出现在被转换为1×16的向量,作为编码特征。
    需要注意的是,我们添加了一个RepeatVector作为第2层,以创建与时间步数相等的1×16向量的副本。例如,在我们的模型中,时间步的大小为十,因此第2层创建十个编码特征的副本,作为等于10×16的二维向量。
    Fig. 5. Details of the LSTM decoder.
    图 5. LSTM 解码器的细节。
    Fig. 5. Details of the LSTM decoder.

  3. 步骤 3:LSTM 解码器
    LSTM解码器的主要目的是充当一个序列展开层,在时间步上的序列折叠之后恢复输入数据的序列结构。图5详细描述了解码器如何与LSTM单元交互以重构输出。
    每组1×16的向量表示原始时间序列中的一个特征,现在作为输入提供给解码器。解码器创建一个包含十个LSTM单元的第3层网络,其中LSTM单元的数量表示序列中的特征数量(例如,在我们的模型中,一个序列中包含十个数据点)。每个LSTM单元处理一个1×16编码特征的输入,并以相同的向量大小(即1×16)输出结果,这些结果代表从编码特征中学习到的内容。大小为10×16的输出向量用于与由额外的TimeDistributed层创建的1×16向量进行矩阵乘法。这一计算的结果表示为大小为10×1的向量。

  4. 步骤 4:异常检测
    异常可以定义为偏离大多数数据的观测值。可以设置一个阈值作为决策点,以确定一个观测值偏离的程度。任何超出阈值的观测值都被定义为异常。
    应用这种基于阈值的异常检测技术,我们的模型在包含正常范围内的CO2值的数据集上进行训练。这是为了获得与正常CO2数据点相关的重构误差率。训练完成后,计算所有样本的不同重构误差,并将最大重构误差率设定为阈值。一旦确定了阈值,我们输入包含所有范围的CO2读数的测试数据集。计算测试集中每个样本的CO2值的重构误差率。如果重构误差率超过阈值,则该样本被视为异常。
    Fig. 6. Computing reconstruction loss on time series.
    图 6. 计算时间序列重建的损失。
    Fig. 6. Computing reconstruction loss on time series.

图6展示了如何计算包含不同时间序列的每个样本的重构损失。假设有五个样本 [x1, x2, x3, x4, x5],它们构成三个时间序列 [X1, X2, X3],其中每个序列在三个不同的时间步上包含三个样本,例如,X1 = [x1, x2, x3],X2 = [x2, x3, x4],和X3 = [x3, x4, x5],如蓝色虚线框所示。我们的模型将这三个时间序列作为输入进行训练,并构建映射到每个序列的输出,即Xˆ1 = [xˆ1, xˆ2, xˆ3],Xˆ2 = [xˆ2, xˆ3, xˆ4],和Xˆ3 = [xˆ3, xˆ4, xˆ5]。
假设三个序列的原始值为:1) X1 = [x1 = 1, x2 = 2, x3 = 3];2) X2 = [x2 = 2, x3 = 3, x4 = 4];以及3) X3 = [x3 = 3, x4 = 4, x5 = 5],而每个时间序列的映射输出为Xˆ1 = [xˆ1 = 1.1, xˆ2 = 2.02, xˆ3 = 3.01],Xˆ2 = [xˆ2 = 1.99, xˆ3 = 2.99, xˆ4 = 3.99],以及Xˆ3 = [xˆ3 = 3.01, xˆ4 = 4.02, xˆ5 = 5.02]。
每个样本的重构损失可以计算如下:

  • x1 = |1.1 − 1| / 1 = 0.1
  • x2 = (|2.02 − 2|+|1.99 − 2|) / 2 = 0.01
  • x3 = (|3.01 − 3|+|2.99 − 3|+|3.01− 3|) / 3 = 0.01
  • x4 = (|3.99 − 4|+|4.01 − 4|) / 2 = 0.01
  • x5 = |5.02 − 5| / 1 = 0.02
    最大重构损失被设定为阈值,在我们的例子中,该值为0.1。在测试期间,任何样本的重构损失超过0.1,现在都会被标记为异常。

B. 算法

所提出模型的算法如算法 1 所示。我们提出的模型在训练阶段的主要目标有两个。首先,训练的重点是最小化重构误差,使得从输入的简化表示中重构的输出尽可能接近输入。其次,我们的模型获取与正常范围的 CO2 数据点相关的典型重构误差率,以便在测试阶段找到用于检测的最佳阈值。测试阶段的主要目标是使用该阈值来检测测试数据集中的异常。

1) 训练阶段:

训练阶段的第一步是将原始数据集重塑为时间序列,如算法 1 的阶段 1 所示:转换为序列。数据集 Xi 表示训练数据集中的一个序列。在我们的模型中,每个序列包含在十个时间步上的十个 CO2 样本。如算法 1 中阶段 2:LSTM-AE 训练所示,模型的训练从每次将一个序列提供给编码器开始,其中序列中的一个样本通过单个 LSTM 以顺序方式进行训练。当每个序列的训练完成后,编码器的潜在空间将相关数据点的连接重新排列为一维编码特征表示。RepeatVector 层对编码特征进行多次复制。

解码器根据时间步(即,也匹配编码特征的复制)创建一个包含多个 LSTM 单元的网络。每个编码特征由一个 LSTM 单元处理。所有 LSTM 单元处理的结果在 TimeDistributed Dense 层被制作为一维向量,该层生成输出。然后计算输出与输入之间的重构损失,如步骤 8–13 所示。采用反向传播策略来调整模型的权重和参数。我们使用均值绝对误差 (MAE) 算法作为重构误差损失函数,公式如下:

L o s s ( M A E ) = 1 n ∑ i = 1 n ∣ x i − x ^ i ∣ (12) Loss(MAE) = \frac{1}{n} \sum_{i=1}^{n} \left| x_i - \hat{x}_i \right| \tag{12} Loss(MAE)=n1i=1nxix^i(12)

其中,n 表示样本总数,xi 是输入到编码器的原始输入的表示,xˆi 是解码器生成的输出。

模型对所有时间序列进行训练,直到所有样本的重构损失最小化。需要注意的是,我们在编码器的潜在空间中使用了 16 个神经元,以捕捉第 10 个 LSTM 的输出。在我们提出的模型中,使用了“tanh”作为激活函数。我们还在编码器和解码器中分别使用了两个 dropout 层(0.2)。我们在编码器和解码器之间使用了一个 RepeatVector 层。在输出层之前使用了一个额外的 TimeDistrutedDense 层。训练完成后,最大重构误差被作为阈值获取,如阶段 3:阈值设置所示。

算法 1 LSTM-AE 异常检测

输入:
- 训练集 {x0, x1, x2, ..., xn−1}
- 测试集 {x'0, x'1, x'2, ..., x'm−1}
- 时间步长 t

**输出:**
- 异常集合 (At) 或正常集合 (Nt)

1. 开始
   # 阶段 1: 转换为序列**
     - Xi, X'i 基于时间步长 (t=10) 的训练和测试数据集合
     - 对于 i ∈ [0, n − t):
       1. Xi = [xi :: xi+t]
     - 对于 i ∈ [0, m − t):
       2. X'i = [x'i :: x'i+t]
   # 阶段 2: LSTM-AE 训练
     - 初始化 LSTM-AE 模型参数 (M)
     - 对于 Xi ∈ [X0, X1, ..., Xn−t)1. Xˆi = M(Xi)
       2. Lerr = |Xi − Xˆi|
       3. 使用公式 (9) 更新 LSTM-AE 以最小化 Lerr
   # 阶段 3: 阈值设置**
     - 函数 RLOSS(X)
       # Xi 重建误差计算**
         - 对于 i ∈ (0, n − t)1. Xˆi = M(Xi)
           2. Errarr [i, i : i + t] = |Xˆi − Xi|
       # 所有数据重建误差计算**
         - 对于 i ∈ (0, n)1. larr [i] = Errarr [:, i] / (Errarr [:, i] != 0)
     - 返回 larr
     - 从训练集中获取最大 RLoss 作为阈值
       - threshold(τ) = max(RLOSS([X0, X1, ..., Xn−t]))
   # 阶段 4: 测试集上的异常检测**
     - ltestarr = RLOSS([X'0, X'1, ..., X'm −t])
     - 对于 i ∈ (0, m):
       1. 如果 ltestarr[i] > τ,则
          - x'i 为异常 (At)
       2. 否则
          - x'i 为正常 (Nt)
   - 结束

2) 测试阶段

我们模型的测试阶段的详细信息如第4阶段所示:测试集上的异常检测。将包含十个时间步长的十个数据点的时间序列输入到训练好的 LSTM 编码器中。请注意,这十个数据点包含了所有范围的 CO2 值。LSTM 解码器使用编码(和压缩)的特征表示来生成一个同样包含十个时间步长的时间序列。每个数据点的重构误差率与阈值进行比较。重构损失的计算方法与训练阶段中提到的 (12) 相同。如果重构损失值大于阈值 θ,则该数据点被标记为异常,否则标记为正常。如下公式所示:

X ′ = { X i ′  是异常 如果  l t e s t a r r [ i ] > θ X i ′  是正常 否则 (13) X' = \begin{cases} X'_i \text{ 是异常} & \text{如果 } ltestarr[i] > θ \\ X'_i \text{ 是正常} & \text{否则} \end{cases} \tag{13} X={Xi 是异常Xi 是正常如果 ltestarr[i]>θ否则(13)

其中,( X’ ) 表示重构的时间序列,( X’_i ) 是时间序列中的一个数据点,( ltestarr[i] ) 是使用 MAE 计算的重构损失函数的结果。

V. 数据及数据处理

我们讨论了研究中使用的数据集的详细信息,以及我们采用的数据预处理策略。

A. Dunedin CO2 数据集

为了理解 CO2 水平、天气条件和学生表现之间的关系,74 个 SKOMOBO 设备被部署在新西兰南岛邓尼丁的多所小学/中学。记录了 CO2 读数的数据在 2018 年 1 月 1 日到 2018 年 4 月 30 日之间的四个月内以 1 分钟的间隔收集。CO2 读数的投影如图7所示。正如预期的那样,在学校假期(例如 2018 年 1 月)和 2018 年 4 月最后两周的第一学期假期期间,没有观察到 CO2 的变化。当学生在教室内时,我们观察到 CO2 的变化幅度很大,其中一些可能是异常的。数据集中总共包含了 247,263 个 CO2 读数。
Fig. 7. Projection of the original raw dataset.
图 7. 原始数据集的投影。
Fig. 7. Projection of the original raw dataset.

B. 数据预处理

我们首先清理原始记录。我们移除了所有重复记录。例如,移除了包含相同时间戳的 CO2 读数的记录。我们还移除了同时包含 CO2 和时间戳的 NaN 值记录。我们保留了 CO2 读数为空值或 NaN 值但时间戳合法的记录。在这种情况下,我们将空值或 NaN 值替换为数值 0。清理后,我们总共有 171,067 条记录。

C. 训练和测试数据集

为我们的模型准备了两个独立的数据集,用于训练和测试阶段,如下所示。

  • 训练数据集:根据[21],被接受的正常 C O 2 CO_2 CO2 值范围是 0 到 968(PPM)。

数据集分析

**Fig. 8. Distribution of CO2 reading according to 3-sigma.**
图 8. 根据 3-sigma 的 C O 2 CO_2 CO2 读数分布。
Fig. 8. Distribution of C O 2 CO_2 CO2 reading according to 3-sigma.

根据我们对数据集的分析,我们发现大多数 C O 2 CO_2 CO2读数符合 2-sigma 规则的正态分布(即,当 C O 2 CO_2 CO2 读数的均值约为 488 时,大约 C O 2 CO_2 CO2读数 <968),这一范围可以被认为是可接受的正常范围,如图 8 所示。由于模型的训练学习了与正常数据点相关的典型重构误差,我们创建了一个仅包含正常范围内的 C O 2 CO_2 CO2数据点的训练数据集。为此,我们首先保留了原始数据集中的三个月数据(从 2018 年 1 月 1 日到 2018 年 3 月 31 日)。然后,我们计算 2-sigma 规则来检查每个样本是否处于正常范围内。如果有任何 C O 2 CO_2 CO2读数超出了 2-sigma 规则,我们将其移除。创建训练数据集的示意图如图 9 所示。
Fig. 9. Creating the training dataset.
图 9.创建训练数据集。
Fig. 9. Creating the training dataset.

2) 测试数据集

我们使用原始数据中的一个月数据(从 2018 年 4 月 1 日到 2018 年 4 月 30 日)作为测试数据集。请注意,这个数据集包含所有不同范围的 CO2 读数。如果 CO2 读数在 2-sigma 规则范围内,我们将其标记为 0;否则,我们标记为 1。这些标签仅用于评估我们模型的性能——即模型是否能够有效地检测异常数据点和正常数据点。添加标签的流程如图 10 所示。
Fig. 10. Creating the test dataset.
图 10.创建测试数据集。
Fig. 10. Creating the test dataset.

D. 数据标准化

我们应用数据标准化技术以消除不同 C O 2 CO_2 CO2 读数之间的尺度影响,从而减少模型训练的执行时间和计算复杂度。我们使用标准化方法,如下方公式所示:

Z i = X i − μ S (14) Z_i = \frac{X_i - \mu}{S} \tag{14} Zi=SXiμ(14)

其中 Z i Z_i Zi 表示标准化后的数值,范围在 [0-1] 之间;$ X_i$表示数据点,而 $\mu $ 和 $ S $分别指代均值和标准差。

VI. 评估

在本节中,我们提供实验的详细信息,包括环境设置、使用的性能指标、结果分析和讨论。

A. 实验设置

我们的实验在如下系统配置下进行,具体见表1。
表1 实施环境规范
表1 实施环境规范
训练阶段使用的超参数及其值和描述详见表2。
表2 LSTM-AE 训练参数
表2 LSTM-AE 训练参数

B. 性能指标

为了评估我们模型的性能,我们使用了分类准确率、精确度、召回率和 F1 分数作为性能指标。表3说明了混淆矩阵的定义如下:
表3 混淆矩阵
表3 混淆矩阵

  1. 真正例(TP):异常数据点被正确分类为异常。
  2. 真负例(TN):正常数据点被正确分类为正常。
  3. 假正例(FP):正常数据点被错误分类为异常。
  4. 假负例(FN):异常数据点被错误分类为正常。

基于上述术语,评估指标的计算方式如下:

  • 真正例率(TPR / 召回率)

    TPR = TP TP + FN (15) \text{TPR} = \frac{\text{TP}}{\text{TP} + \text{FN}} \tag{15} TPR=TP+FNTP(15)

  • 假正例率(FPR)
    FPR = FP FP + TN (16) \text{FPR} = \frac{\text{FP}}{\text{FP} + \text{TN}} \tag{16} FPR=FP+TNFP(16)

  • 精确度(Precision)

    Precision = TP TP + FP (17) \text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}} \tag{17} Precision=TP+FPTP(17)

  • F1 分数

  • F1-score = 2 × Precision × Recall Precision + Recall (18) \text{F1-score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} \tag{18} F1-score=2×Precision+RecallPrecision×Recall(18)

  • 准确率(Accuracy)
    Accuracy = TP + TN TP + TN + FP + FN (19) \text{Accuracy} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}} \tag{19} Accuracy=TP+TN+FP+FNTP+TN(19)

曲线下面积(AUC)计算接收操作特征(ROC)曲线下面积,ROC 曲线是基于不同阈值下 TP 率(y 轴)和 FP 率(x 轴)之间的权衡绘制的。数学上,AUC 计算公式如下:

AUC ROC = ∫ 0 1 TP TP + FN   d FP TN + FP (20) \text{AUC}_{\text{ROC}} = \int_{0}^{1} \frac{\text{TP}}{\text{TP} + \text{FN}} \, d \frac{\text{FP}}{\text{TN} + \text{FP}} \tag{20} AUCROC=01TP+FNTPdTN+FPFP(20)

C. 结果

我们提供了从多个不同评估方面观察到的我们提出的模型的性能结果。

1) 训练

Fig. 11. Training/validation loss.
图 11.训练/验证损失。
Fig. 11. Training/validation loss.

图 11 显示了不同训练轮次下的损失趋势。训练损失(蓝线)评估了模型在训练期间的错误率。我们可以看到,训练损失在大约八轮后快速稳定。我们从训练数据集中抽取了 10% 的验证集来评估模型的性能。如预期所示,验证损失在八轮之前没有稳定。然而,在八轮之后,验证损失与训练损失呈现出类似的损失率(即平均约 0.07%)。这可以认为是良好的拟合,我们提出的模型效果良好(即我们的模型没有过拟合或欠拟合)。

2) 模型架构的影响

我们还测试了模型在架构上的敏感性,包括隐藏层的数量以及使用的 LSTM 单元数量。按照类似于研究 [19] 的策略,我们评估了三种不同类型的模型架构,包括一个隐藏层、两个隐藏层和 n 个隐藏层,分别在编码器和解码器中使用。编码器和解码器的隐藏层数量不同,但不同模型架构中使用的 LSTM 单元数量相同。我们评估的三种模型架构的详细信息见图 12。
Fig. 12. Different model architecture.
图 12. 不同的模型架构。
Fig. 12. Different model architecture.

隐藏层数量对模型性能有轻微的影响。例如,具有一个隐藏层的模型架构在 F1 分数上表现最佳,达到了 94.68%,而两个隐藏层和三个隐藏层模型的 F1 分别为 93.48% 和 93.31%。不同架构使用的输出向量大小对模型性能的影响较大,其中一层模型使用的最小输出向量大小在达到 94.68% F1 分数时效果最好,如表4所示。请注意,第一行和第二行都使用了单层模型,但单元数量不同。

表4 不同模型架构的性能
表4 不同模型架构的性能

3) 模型参数的影响

表5显示了不同模型参数的性能,包括:1)不同的学习率大小和 2)批量大小,同时 dropout 和轮数保持不变。

表5 参数比较
表5 参数比较

在批量大小的性能观察中,批量大小为 64 的模型表现最佳,准确率、召回率和 F1 分数分别为 99.50%、89.90% 和 95.0%。相反,批量大小为 10 的模型表现最低,准确率为 99.41%,召回率为 87.90%,F1 分数为 94.0%。我们观察到,性能变化是因为较大的批量大小包含了更多的数据。虽然较小的批量大小导致整体检测准确度降低,但使用较小的批量大小有助于更快的响应时间。例如,当使用批量大小为 64 时,模型的响应时间是批量大小为 10 时的三倍更快。

类似地,最大学习率值为 0.001 表现最佳,而较小的学习率(从 0.001 降至 0.00001)性能下降,准确率从 99.50% 降至 99.39%。学习率与响应时间之间的关系几乎没有显著差异。

4) 时间滑动窗口大小的影响

决定序列中时间步数的时间滑动窗口大小会影响整体性能,因为它会影响重建错误率的计算方式。因此,我们还测试了模型在时间滑动窗口大小方面的敏感性。我们测试了时间滑动窗口大小为 (10, 15, 20, 25, 30, 35, 40) 的模型。
Fig. 13. Performance comparison of LSTM-AE under different time window length. (a) Precision. (b) Accuracy. (c) Recall. (d) F1-score.
图 13. 不同时间窗口长度下 LSTM-AE 的性能比较。(a)准确率。(b)准确率。(c)召回率。(d)F1 分数。
Fig. 13. Performance comparison of LSTM-AE under different time window length. (a) Precision. (b) Accuracy. © Recall. (d) F1-score.

如图 13 所示,最小的时间滑动窗口大小 10 在 TPR 率和 F1 分数上表现最佳(即 94.68%)。相比之下,时间滑动窗口大小为 15 的模型表现出最低的 F1 分数(90.25%)和准确率(99.12%)。时间窗口较小(15 和 20)导致更多的误分类,TPR 率稍高于 80%,而时间窗口大小超过 20 后,误分类减少,TPR 率和 F1 分数较好。

5) 模型性能

Fig. 14. Detection results based on confusion matrix.
图 14. 基于混淆矩阵的检测结果。
Fig. 14. Detection results based on confusion matrix.

图 14 显示了基于混淆矩阵的模型性能。测试样本总数为 42,787,其中正常样本为 40,697,异常样本为 2,100。我们的模型能够正确检测到 1,888 个异常数据点,占 2,100 个异常数据样本的 89.90% 准确率。我们的模型能够正确检测到 40,697 个正常数据点,占所有 40,697 个正常数据样本的 100% 准确率。我们的模型没有假正例(FP),即没有将正常样本错误分类为异常,而有 212 个假负例(FN),即将异常样本错误分类为正常。综合考虑,模型的准确率为 99.50%,精确度为 100%,召回率为 89.90%,F1 分数为 94.68%。
Fig. 15. AUC-ROC visualization.
图 15. AUC-ROC 可视化。
Fig. 15. AUC-ROC visualization.

图 15 显示了我们的模型在 AUC-ROC 图中的性能,清楚地展示了 TP 率与假正例率之间的权衡。曲线确认了我们提出的模型在准确检测异常方面的高效性,AUC-ROC 分数为 95.0%。这一结果是基于整个时间序列测试数据集计算得出的。为了检测模型效率,我们还比较了不同时间窗口长度(以 1 分钟为间隔)。我们观察到,随着时间窗口长度的增加,AUC-ROC 曲线开始下降。在时间窗口长度为 10 时表现最佳,为 95.0%;而时间窗口长度为 10 和 20 时表现最差。类似于时间滑动窗口的影响,AUC-ROC 分数在时间窗口长度超过 25 时略有下降。
Fig. 16. Normal and anomalies distribution on the testing set.
图 16. 测试集上的正常和异常分布。
Fig. 16. Normal and anomalies distribution on the testing set.

图 16 显示了在测试数据集中检测到的异常数据点(即红点)。我们观察到,训练完成后阈值设置为 1.742。在测试期间,我们还观察到 CO2 读数大于 1000 时,通常具有超过 1.742 的重建错误率,因此被认为是异常的。

6) 与其他类似模型的比较

表6显示了我们模型在 Dunedin CO2 数据集上的性能与其他使用不同变体的 LSTM-AE 模型的比较。结果显示,我们的方法在准确率(99.50%)和精确度(100%)方面表现最佳。Yin 等人 [22] 提出的类似模型在准确率和 F1 分数方面表现出较强的竞争力。Nguyen 等人 [23] 提出的模型在 F1 分数上表现更高(96.98%),但其模型的准确率低于我们的方法。在进一步的调查中,我们发现他们使用了一类支持向量机(SVM)作为附加分类器,以减少假正例(FP)。

表6 与其他类似模型的比较
表6 与其他类似模型的比较

VII. 结论

我们提出了一种基于 LSTM-AE 的混合深度学习技术,用于检测室内空气质量(IAQ)数据集中的上下文异常。我们提出的模型中的 LSTM 部分能够学习 CO2 时间序列数据中的典型模式,而 AE 部分则可以减少数据维度并计算与每个时间序列相关的最优重建误差。正常时间序列数据中的平均重建误差被用作阈值,以检测偏离正常模式的上下文异常。

我们提出的模型应用于从实际部署中获得的 CO2 时间序列数据集。实验结果表明,我们提出的模型在检测异常 CO2 值方面效率很高,准确率达到 99.50%,并且优于其他类似模型。

我们计划在几个方面扩展我们的工作。首先,我们希望将当前的工作扩展到包括其他类型的传感器数据,如颗粒物、温度和相对湿度,以进行多变量数据分析。我们还计划将我们的工作扩展到其他应用领域,以评估我们提出的解决方案的可推广性和实用性。这包括将我们提出的模型应用于检测时间序列数据中的分布式拒绝服务(DDoS)攻击 [20]。

参考文献

  1. J.-Y. Kim, C.-H. Chu, and S.-M. Shin, “ISSAQ: An integrated sensing systems for real-time indoor air quality monitoring,” IEEE Sensors J., vol. 14, no. 12, pp. 4230–4244, Dec. 2014.
  2. N. H. Motlagh et al., “Indoor air quality monitoring using infrastructure-based motion detectors,” in Proc. IEEE 17th Int. Conf. Ind. Informat. (INDIN), Jul. 2019, pp. 902–907.
  3. P. Wargocki, J. A. Porras-Salazar, S. Contreras-Espinoza, and W. Bahnfleth, “The relationships between classroom air quality and children’s performance in school,” Building Environ., vol. 173, Apr. 2020, Art. no. 106749.
  4. Y. Wang et al., “Integrating open-source technologies to build a school indoor air quality monitoring box (SKOMOBO),” in Proc. 4th Asia–Pacific World Congr. Comput. Sci. Eng. (APWC CSE), Dec. 2017, pp. 216–223.
  5. R. Weyers et al., “Low-cost indoor air quality (IAQ) platform for healthier classrooms in New Zealand: Engineering issues,” in Proc. 4th Asia–Pacific World Congr. Comput. Sci. Eng. (APWC CSE), Dec. 2017, pp. 208–215.
  6. YY. Wang et al., “Deployment issues for integrated open-source—Based indoor air quality school monitoring box (SKOMOBO),” in Proc. IEEE Sensors Appl. Symp. (SAS), Mar. 2018, pp. 1–4.
  7. Y. Zeng, J. Chen, N. Jin, X. Jin, and Y. Du, “Air quality forecasting with hybrid LSTM and extended stationary wavelet transform,” Building Environ., vol. 213, Apr. 2022, Art. no. 108822.
  8. Y. Wei, J. Jang-Jaccard, F. Sabrina, and H. Alavizadeh, “Large-scale outlier detection for low-cost PM10 sensors,” IEEE Access, vol. 8, pp. 229033–229042, 2020.
  9. D. Wu, Z. Jiang, X. Xie, X. Wei, W. Yu, and R. Li, “LSTM learning with Bayesian and Gaussian processing for anomaly detection in industrial IoT,” IEEE Trans. Ind. Informat., vol. 16, no. 8, pp. 5244–5253, Aug. 2020.
  10. T.-B. Ottosen and P. Kumar, “Outlier detection and gap filling methodologies for low-cost air quality measurements,” Environ. Sci., Processes Impacts, vol. 21, no. 4, pp. 701–713, 2019.
  11. J. Li, H. Izakian, W. Pedrycz, and I. Jamal, “Clustering-based anomaly detection in multivariate time series data,” Appl. Soft Comput., vol. 100, Mar. 2021, Art. no. 106919.
  12. X. Zhou, Y. Hu, W. Liang, J. Ma, and Q. Jin, “Variational LSTM enhanced anomaly detection for industrial big data,” IEEE Trans. Ind. Informat., vol. 17, no. 5, pp. 3469–3477, May 2021.
  13. P. K. Sharma et al., “IndoAirSense: A framework for indoor air quality estimation and forecasting,” Atmos. Pollut. Res., vol. 12, no. 1, pp. 10–22, Jan. 2021.
  14. K. Rastogi and D. Lohani, “An Internet of Things framework to forecast indoor air quality using machine learning,” in Proc. Symp. Mach. Learn. Metaheuristics Algorithms, Appl. Cham, Switzerland: Springer, 2019, pp. 90–104.
  15. R. Mumtaz et al., “Internet of Things (IoT) based indoor air quality sensing and predictive analytic—A COVID-19 perspective,” Electronics, vol. 10, no. 2, p. 184, Jan. 2021.
  16. C. Xu, H. Chen, J. Wang, Y. Guo, and Y. Yuan, “Improving prediction performance for indoor temperature in public buildings based on a novel deep learning method,” Building Environ., vol. 148, pp. 128–135, Jan. 2019.
  17. Y. Jung, T. Kang, and C. Chun, “Anomaly analysis on indoor office spaces for facility management using deep learning methods,” J. Building Eng., vol. 43, Nov. 2021, Art. no. 103139.
  18. E. Hossain, M. A. U. Shariff, M. S. Hossain, and K. Andersson, “A novel deep learning approach to predict air quality index,” in Proc. Int. Conf. Trends Comput. Cognit. Eng. Cham, Switzerland: Springer, 2021, pp. 367–381.
  19. W. Xu, J. Jang-Jaccard, A. Singh, Y. Wei, and F. Sabrina, “Improving performance of autoencoder-based network anomaly detection on NSLKDD dataset,” IEEE Access, vol. 9, pp. 140136–140146, 2021.
  20. Y. Wei, J. Jang-Jaccard, F. Sabrina, A. Singh, W. Xu, and S. Camtepe, “AE-MLP: A hybrid deep learning approach for DDoS detection and classification,” IEEE Access, vol. 9, pp. 146810–146821, 2021.
  21. Y. Liu, Z. Pang, M. Karlsson, and S. Gong, “Anomaly detection based on machine learning in IoT-based vertical plant wall for indoor climate control,” Building Environ., vol. 183, Oct. 2020, Art. no. 107212.
  22. C. Yin, S. Zhang, J. Wang, and N. N. Xiong, “Anomaly detection based on convolutional recurrent autoencoder for IoT time series,” IEEE Trans. Syst., Man, Cybern., Syst., vol. 52, no. 1, pp. 112–122, Feb. 2022.
  23. H. D. Nguyen, K. P. Tran, S. Thomassey, and M. Hamad, “Forecasting and anomaly detection approaches using LSTM and LSTM autoencoder techniques with the applications in supply chain management,” Int. J. Inf. Manag., vol. 57, Apr. 2021, Art. no. 102282.
  24. P. Liu, X. Sun, Y. Han, Z. He, W. Zhang, and C. Wu, “Arrhythmia classification of LSTM autoencoder based on time series anomaly detection,” Biomed. Signal Process. Control, vol. 71, Jan. 2022, Art. no. 103228.
  25. B. Chander and K. Gopalakrishnan, “Auto-encoder–LSTM-based outlier detection method for WSNs,” in Machine Learning, Deep Learning and Computational Intelligence for Wireless Communication (Lecture Notes in Electrical Engineering). Singapore: Springer, 2021, pp. 109–119.
  26. S. Lin, R. Clark, R. Birke, S. Schonborn, N. Trigoni, and S. Roberts, “Anomaly detection for time series using VAE-LSTM hybrid model,” in Proc. IEEE Int. Conf. Acoust., Speech Signal Process. (ICASSP), May 2020, pp. 4322–4326.
  27. B. Sharma, P. Pokharel, and B. Joshi, “User behavior analytics for anomaly detection using LSTM autoencoder–insider threat detection,” in Proc. 11th Int. Conf. Adv. Inf. Technol., Jul. 2020, pp. 1–9.
  28. T. Kieu, B. Yang, and C. S. Jensen, “Outlier detection for multidimensional time series using deep neural networks,” in Proc. 19th IEEE Int. Conf. Mobile Data Manag. (MDM), Jun. 2018, pp. 125–134.
  29. S. Li and W. He, “VidAnomaly: LSTM-autoencoder-based adversarial learning for one-class video classification with multiple dynamic images,” in Proc. IEEE Int. Conf. Big Data (Big Data), Dec. 2019, pp. 2881–2890.
  30. J. Kang, C.-S. Kim, J. W. Kang, and J. Gwak, “Anomaly detection of the brake operating unit on metro vehicles using a one-class LSTM autoencoder,” Appl. Sci., vol. 11, no. 19, p. 9290, Oct. 2021.
  31. P. H. Tran, C. Heuchenne, and S. Thomassey, “An anomaly detection approach based on the combination of LSTM autoencoder and isolation forest for multivariate time series data,” in Proc. Develop. Artif. Intell. Technol. Comput. Robot., Oct. 2020, pp. 589–596.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2100549.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【SQL】跳过记录筛选第二名

目录 语法 需求 示例 分析 代码 语法 SELECT DISTINCT column1, column2, ... SELECT DISTINCT 语句用于返回唯一不同的值。SELECT DISTINCT 后面跟着想要获取唯一值的列名&#xff0c;列名之间用逗号分隔。当从数据库表中查询数据时&#xff0c;如果表中某列包含重复的…

星坤DDR5 SMT RDIMM金手指连接器:云端存储与高性能计算的未来

在当今数字化时代&#xff0c;数据的快速增长和处理需求对电子元器件提出了更高的要求。星坤电子以其创新的DDR5 SMT RDIMM【X9413 X9414 series】金手指连接器&#xff0c;为云端存储设备、伺服器、电源供应设备、通讯设备、工控主机以及3C电子产品等领域提供了卓越的连接解决…

【ComfyUI】Flux 提示词太难了?Flux Prompt 轻松提示增强!更详细、更具描述性!

前言 所有的AI设计工具&#xff0c;模型和插件&#xff0c;都已经整理好了&#xff0c;&#x1f447;获取~ Flux真的太火了&#xff0c;小编日常也主要以Flux出图为主了。但每每写提示词时有没有人和老徐有类似的情况&#xff0c;就是经常为写提示词而穷思苦想呢&#xff1f;怎…

Google开发者账号个人身份验证经验分享

本文主要讲解Google Play 个人身份验证过程中的注意事项和完整的填写指导教程&#xff0c;为个人开发者身份验证提供参考指引&#xff0c;帮助大家快速通过谷歌的身份信息验证 个人身份验证注意事项 梳理了这段时间个人身份验证填写过程中遇到的问题和解决方案&#xff0c;先睹…

RocketMQ高级特性三-消费者分类

目录 前言 概述 区别 PullConsumer 定义与概述 原理机制 使用场景 优缺点 Java 代码示例 SimpleConsumer 定义与概述 原理机制 使用场景 优缺点 Java 代码示例 PushConsumer 定义与概述 原理机制 使用场景 优缺点 Java 代码示例 总结 前言 RocketMQ中的消…

SpringMVC 第一次复学笔记

服务器启动时&#xff0c;创建spring容器&#xff1b;dispatcherServlet启动时&#xff0c;直接创建springmvc容器初始化一次&#xff0c;实现了springmvc和spring的整合。 SpringMVC里的组件 处理器映射器&#xff08;HandlerMapping&#xff09;负责匹配映射路径对应的Handl…

小琳Python课堂:Python全局解释器锁(GIL)的深入解析与应用

小琳Python课堂开讲啦&#xff01;今天我们来深入探讨Python中的一个重要概念——全局解释器锁&#xff08;GIL&#xff09;。&#x1f512; 技术细节角度 单线程执行保证&#xff1a;GIL确保了在任何时刻只有一个线程在执行Python字节码。互斥锁实现&#xff1a;GIL通过在解…

无人机之发动机篇

一、无人机发动机的分类 无人机发动机根据工作原理和应用场景的不同&#xff0c;主要分为以下几类&#xff1a; 电动马达&#xff1a; 特点&#xff1a;清洁、高效、体积小巧、重量轻便、噪音低、对环境影响小。 应用&#xff1a;多用于小型或微型无人机&#xff0c;因其续航…

Nature Microbiology|WISH标签技术:评估微生物组中单株水平的种群动态

微生态研究搞了n多年&#xff0c;益生菌还是那么几个&#xff0c;为什么&#xff1f; 一个共识是单一菌株的添加往往难以解决复杂问题。微生物群体的相互作用和平衡不应被忽视。实际上&#xff0c;我们需要在群体层面进行添加或干预&#xff0c;才能真正发挥益生菌的作用。然而…

AD原理图无法输入中文的问题及解决办法

电脑系统&#xff1a;Windows 11 专业版 AD版本&#xff1a;20.0.14 解决方法&#xff1a; 方法1、在word打好&#xff0c;复制到AD 方法2、尝试快捷键ctrlshift、ctrl空格、windows空格

超声波眼镜清洗机有用吗?清洁力好的超声波清洗机推荐

在当今快节奏的生活中&#xff0c;维持良好的卫生状况已成为日常不可或缺的一部分&#xff0c;尤其对于追求高品质生活方式的人来说更为重要。因此&#xff0c;选择一款高效便捷的超声波清洗机成为了提升居家清洁体验的理想方案。面对市面上琳琅满目的品牌&#xff0c;甄选出既…

24全网最全stable diffusion模型讲解!快来!!新手必收藏!!

前言 手把手教你入门绘图超强的AI绘画程序Stable Diffusion&#xff0c;用户只需要输入一段图片的文字描述&#xff0c;即可生成精美的绘画。给大家带来了全新Stable Diffusion保姆级教程资料包&#xff08;文末可获取&#xff09; AI模型最新展现出的图像生成能力远远超出人…

扫雷游戏(上)

开学快乐 今天我们来写扫雷的代码 一、了解扫雷是怎么玩儿的 首先这里放一个扫雷游戏的链接扫雷游戏网页版 - Minesweeper 然后我们点进去耍了一阵&#xff0c;发现扫雷首先要有一个棋盘&#xff0c;然后在玩家不知道的情况下设置雷在不同的格子&#xff0c;玩家点到雷就炸死…

arm调试-- gdb与gdbserver的安装与使用

一、安装 1.下载gdb源码 https://ftp.gnu.org/gnu/gdb/gdb-7.11.1.tar.gz 2. 解压编译gdb以及gdbserver (1)gdb PC端 tar -zxvf gdb-7.11.1.tar.gz cd gdb-7.11.1 mkdir _install ./configure --targetaarch64-linux-gnu --disable-werror --prefix/home/jinhao/gdb-7.1…

Maven聚合与继承

聚合 当我们一次想要构建多个项目时&#xff0c;而不是到每一个模块的目录下分别执行mvn命令。这个时候就需要使用到maven的聚合特性 这里第一个特殊的地方是packaging&#xff0c;值设置为pom。我们正常开发的其他模块中都没有声明packaging&#xff0c;默认使用了默认值jar&a…

Android Studio 最新版本保姆级安装使用教程

Android Studio 2024 最新版本保姆级安装使用教程 1、官网下载2、安装Standard默认配置Custom配置 3、视频教程 这里是Android Studio 2024最新版本保姆级安装教程&#xff0c;高级版本基本上通用~ Android 是为世界各地的所有用户打造的&#xff0c;无论从设计、功能还是整体价…

操作系统面试真题总结(五)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 线程切换要保存哪些上下文&#xff1f; 当发生线程切换时&#xf…

8、Django Admin后台中添加Logo

在项目settings.py文件 # 导入os&#xff0c;并且修改DIRS内容如下所示 import os TEMPLATES [{BACKEND: django.template.backends.django.DjangoTemplates,DIRS: [os.path.join(BASE_DIR, templates/)],APP_DIRS: True,OPTIONS: {context_processors: [django.template.con…

Mudo03 vscode配置相应的文件的搜索路径,库文件的搜索路径以及想要的链接库

使用muduo库&#xff0c;需要链接libmuduo_base.so、libmuduo_net.so 、libpthread.so VScode上如何配置相应的头文件的搜索路径&#xff1f;库文件的搜索路径&#xff1f; 文件的搜索路径&#xff1a; -I&#xff1a;头文件搜索路径 -L&#xff1a;库文件搜索路径 -Imuduo_ne…

docker安装nginx1.27.0

关于拉取不到镜像问题可以到这篇文章进行镜像配置 一、docker拉取nginx1.27.0镜像 docker pull nginx:1.27.0二、创建映射容器的文件目录 mkdir -p -m 777 /mydata/nginx/conf/conf.d mkdir -p -m 777 /mydata/nginx/log mkdir -p -m 777 /mydata/nginx/html 三、创建文件de…