一种数据集之中异常数据的识别方法与流程

文档序号:15493322发布日期:2018-09-21 21:05阅读:2581来源:国知局

本发明属于计算机数据处理领域,尤其涉及一种数据集之中异常数据的识别方法。



背景技术:

在计算机数据处理领域,有一种数据是时间性的数据,这种数据体现为多个数据记录,每个数据记录为一小段时间内的数据。例如声纳数据,每个数据记录是一段时间内的声音波形数据;又例如心电图数据,每个数据记录是一段时间内的心电数据。在对这种数据进行处理时,一个需求是从大量的数据记录中识别出与异常数据,这种异常数据与多数数据记录的正常模式不同。例如从声纳数据中识别出可能的潜艇噪声,又例如从心电图数据中识别出房颤。现有技术中通常使用模式匹配的方式进行识别,但是现有识别方式的准确率并不高。



技术实现要素:

为了解决现有技术中的上述问题,本发明针对提供了一种数据集之中异常数据的识别方法。

本发明采用的技术方案具体如下:

一种数据集之中异常数据的识别方法,所述数据集包括多个数据记录,每个数据记录为一定时间段内的数据,其特征在于,包括以下步骤:

步骤一:对所有数据记录进行处理,划分成时间长度不等的4类,每一类中的数据记录时间长度相同;

步骤二:使用处理后的数据记录,对神经网络进行训练;

步骤三:使用训练后的神经网络识别对输入的数据记录进行异常识别;

其中,所述神经网络按照连接顺序包括输入层、7层卷积结构、globalaveragepooling层、3层全连接结构和输出层,每一层卷积结构按照连接顺序包括卷积层、relu激活函数、池化层和dropout层,每一层全连接结构按照连接顺序包括全连接层、relu激活函数和dropout层;

其中,步骤一对数据记录的处理包括:基于数据记录的时间长度,划分成20秒、30秒、45秒和60秒4类,并且包括

(1)对于时间长度小于20秒的数据记录,在其后续补0,补成20秒的数据记录;

(2)对于时间长度大于20秒小于30秒的数据记录,在其后续补0,补成30秒的数据记录;

(3)对于时间长度大于30秒小于45秒的数据记录,在其后续补0,补成45秒的数据记录;

(4)对于时间长度大于45秒小于60秒的数据记录,在其后续补0,补成60秒的数据记录;

对于时间长度大于60秒的数据记录,按照时间顺序,每60秒切分成一个新的数据记录,最后一个数据记录如果不足60秒,则按照上述(1)-(4)的方法进行处理。

进一步地,所述输入层可以将处理后的数据记录作为训练数据,组合成batch送入神经网络进行训练。

进一步地,输入层随机取某一类里的数据记录组合成batch,使得一个batch里的数据记录的维度保持一致。

进一步地,所有卷积层的过滤器宽度为5,其中第一个卷积层的输入channel为1,输出channel为128,其余卷积层的输入和输出channel均采用128。

进一步地,所述池化层的池化窗口宽度和移动步长均为2,same填充,采用了最大池化方法,即从池化窗口中选出最大值作为池化后的值。

进一步地,dropout层采用了两种防止过拟合的方式,分别是dropout和l2正则化。

进一步地,dropout率为0.5。

进一步地,所述globalaveragepooling对每一条channel上的向量求其平均值,然后作为全局池化后的值。

进一步地,第一个全连接层的神经元数量为256,第二个全连接层的神经元数量为128,第三个全连接层的神经元数量为64。

进一步地,输出层含有4个神经元,对应数据记录的4个分类。

【附图说明】

此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:

图1是本发明神经网络的结构图。

图2是本发明relu激活函数的图像。

图3是本发明池化层的最大池化方法。

【具体实施方式】

下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。

本发明所针对的数据集由多个数据记录组成,每个数据记录都代表了一定时间段的数据。首先需要对这些数据记录进行分批处理,取20秒、30秒、45秒和60秒作为临界划分长度,将所有数据记录划分成4类。同时为了使每一类里的数据长度相等,可组成batch送入神经网络进行训练,需要进行相应的补0操作。具体地:

(1)对于时间长度小于20秒的数据记录,在其后续补0,补成20秒的数据记录;

(2)对于时间长度大于20秒小于30秒的数据记录,在其后续补0,补成30秒的数据记录;

(3)对于时间长度大于30秒小于45秒的数据记录,在其后续补0,补成45秒的数据记录;

(4)对于时间长度大于45秒小于60秒的数据记录,在其后续补0,补成60秒的数据记录;

(5)对于时间长度大于60秒的数据记录,按照时间顺序,每60秒切分成一个新的数据记录,最后一个数据记录如果不足60秒,则按照上述(1)-(4)的方法进行处理。

通过上述处理,整个数据集被划分成4类:20秒的数据记录,其实际上包括了时间长度在(0,20]秒的数据记录;30秒的数据记录,其实际上包括了时间长度在(20,30]秒内的数据记录;45秒的数据记录,其实际上包括了时间长度在(30,45]秒内的数据记录;60秒的数据记录,其实际上包括了时间长度在(45,60]秒内的数据记录。

处理后的每一条数据记录,都作为一个样例,被送入后续的神经网络进行训练。

参见附图1,其示出了本发明所设计的神经网络,该神经网络对于输入数据,首先经过7层卷积结构,每一层卷积结构包括卷积层(conv1d)、relu激活函数、池化层(maxpool1d)和dropout层。每一层在卷积之后,采用relu函数去线性化,然后接maxpooling和dropout。7层卷积之后接globalaveragepooling,使得输入全连接层的数据在维度上保持一致,然后接3层全连接结构,每一层全连接之后同样采用relu函数去线性化,然后接dropout,最后接输出层,输出层有4个神经元,对应数据记录的4个分类。

下面对该神经网络进行详细介绍:

input(输入层):该输入层可以将处理后的数据记录作为训练数据,组合成batch送入神经网络进行训练,因为数据记录被分成了长度不一的4类,所以随机取某一类里的数据组合成batch,这样一个batch里的记录的维度才能保持一致。

conv1d(卷积层):由于数据记录都可看做一维的时间序列,因此采用一维的卷积结构。所有卷积层的过滤器宽度为5,其中第一个卷积层的输入channel为1,输出channel为128,其余卷积层的输入和输出channel均采用128。

过滤器可将当前层神经网络上的一个子节点矩阵转化为下一层神经网络上的一个单位节点矩阵,单位节点矩阵指的是一个长和宽都为1,但深度不限的节点矩阵。

relu激活函数:将每一个神经元的输出通过一个非线性函数,那么整个神经网络的模型也就不再是线性的了,理论上可以逼近任何数学模型。本发明采用了relu激活函数,其表达式为:f(x)=max(0,x),附图2示出了其相关图像。

相比sigmoid和tanh函数,relu激活函数的优点在于:

梯度不饱和。梯度计算公式为:1{x>0}。因此在反向传播过程中,减轻了梯度弥散的问题,神经网络前几层的参数也可以很快的更新;

计算速度快。正向传播过程中,sigmoid和tanh函数计算激活值时需要计算指数,而relu函数仅需要设置阈值。如果x<0,f(x)=0,如果x>0,f(x)=x。加快了正向传播的计算速度。

因此,relu激活函数可以极大地加快收敛速度,相比tanh函数,收敛速度可以加快6倍。

maxpool1d(池化层):池化层可以非常有效地缩小矩阵的尺寸,从而减少最后全连接层中的参数。使用池化层既可以加快计算速度也有防止过拟合问题的作用。

如图3所示,本发明的神经网络中池化窗口宽度和移动步长均为2,same填充,采用了最大池化方法,即从池化窗口中选出最大值作为池化后的值。

dropout层:为了防止神经网络的过拟合,以便在未知数据上有更强的泛化能力,本发明在dropout层采用了两种防止过拟合的方式,分别是dropout和l2正则化。

dropout在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃,每次做完dropout,相当于从原始的网络中找到一个更瘦的网络。优选的,本发明的dropout率采用0.5,原因是0.5的时候dropout随机生成的网络结构最多。

正则化的思想是在损失函数中加入刻画模型复杂程度的指标,l2正则化相关公式为:

通过限制权重大小,使得模型不能任意拟合训练数据中的随机噪音,从而提高泛化能力。

globalaveragepooling:训练数据在送入神经网络前被分成了长度不同的4类,所以在经过7层卷积之后它们的长度也不尽相同,为了能连接之后的全连接网络结构,在这一层对卷积结构的输出数据做一下globalaveragepooling,即对每一条channel上的向量求其平均值,然后作为全局池化后的值,这样在输入全连接层之前,每一部分的数据便有了相同的维度。

dense(全连接层):globalaveragepooling之后,接有3层全连接结构,每层全连接结构包括一个全连接层,第一个全连接层的神经元数量为256,第二个全连接层的神经元数量为128,第三个全连接层的神经元数量为64。在每个全连接层之后,同样采用relu函数去线性化,然后经过一个dropout层。

output(输出层):输出层含有4个神经元,对应数据记录的4个分类,并且不采用激活函数进行去线性化。每个神经元输出相应数据记录的异常识别结果。

上述神经网络在经过训练数据的训练后,就可获得相应的异常识别模型。训练后的神经网络在输入一个处理后的数据记录时,可以输出相应的异常识别结果。

基于上述神经网络,本发明输入训练数据,进行训练。在实际应用中,训练得到的模型在验证集上的最高正确率为90.33%,达到了比较优秀的识别效果。

以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1