发明名称 基于带丢包自动编码技术的时间序列数据图形化分析方法
摘要 本发明是一种基于带丢包自动编码技术的时间序列数据图形化分析方法,它有4个步骤:步骤1.数据预处理,将时间序列数据转化为特定的图像格式;步骤2.预训练,通过带丢包的自动编码技术提取时间序列的图形特征;步骤3.训练分类器,利用预训练过程中得到的编码机权重和训练样本类标进行分类器训练;步骤4.应用,利用训练好的分类器实现时间序列相似度匹配和分类功能。本发明克服了现有时间序列分析方法注重时间序列的数据特征而对数据的变化十分敏感的缺点,模拟人类视觉处理时间序列数据的方式。在相似度匹配上有较高的准确度和极低的时间复杂度;在分类中,既保证了良好的分类精度又对不同类型的时间序列数据有良好的普适性和鲁棒性。
申请公布号 CN104182771B 申请公布日期 2017.04.05
申请号 CN201410371240.2 申请日期 2014.07.30
申请人 北京航空航天大学 发明人 王岩;钱琛;郭雷
分类号 G06K9/66(2006.01)I;G06K9/46(2006.01)I 主分类号 G06K9/66(2006.01)I
代理机构 北京慧泉知识产权代理有限公司 11232 代理人 王顺荣;唐爱华
主权项 基于带丢包自动编码技术的时间序列数据图形化分析方法,其特征在于:该方法具体步骤如下:步骤1:数据预处理数据预处理阶段是将时间序列数据转化为能让自动编码机获得图像特征的图像格式;该处理的好坏会直接影响图像特征抽象的质量,最终采用黑白两色的面积图作为时间序列数据图像化形式,即将时间序列转化为同等长度的正方形像素矩阵,每一列像素表示了一个数据,由于在预处理阶段采用了堆栈式自动编码机,所以在得到时间序列数据图像化形式后还要将其转化为堆栈式向量,最终形成堆栈式自动编码机的训练样本的输入与输出;步骤2:预训练处理完了自动编码机的输入与输出后,即开始训练自动编码机,该自动编码机是以一个标准的三层神经网络结构为基础,进行了改进得到;首先,在输入层中,由于图片转化后的堆栈式向量输入往往是很高维的,为了提高神经网络自学习的能力,在输入层加入了丢包机制,即以一定的概率使输入层节点的输入为零,这样,整个神经网络的有效输入层节点数会显著地降低,网络结构也就变得简单,随之带来的好处就是神经网络的学习性能有了大幅提升;训练过程也类似与人类视觉处理的特点,当一个物体的某一个局部被遮挡时,人依然可以成功识别该物体的特征;此外,神经网络通过前向传播机制与误差反向传播机制进行训练,这两个机制能保证整个网络结构的误差不断降低,最终达到期望的误差精度;由于自动编码机的目的是使训练样本的输出能尽可能地接近输入,在这个过程中,通常把输入层到隐藏层的数据传递过程称为编码过程,而把隐藏层到输出层之间的数据传递过程称为解码过程,下面将针对这两个过程进行数学上的描述:编码机:将输入转化成隐藏层特征的映射f<sub>θ</sub>称为编码机,每一个输入向量X和权重矩阵W将应用于一个非线性的激活函数a(u),这个过程表示为:V=f<sub>θ</sub>(X)=a(WX+b)V是一个由编码机获得的特征矩阵,f<sub>θ</sub>是一个仿射的映射,它的参数集为θ={W,b},其中,W是一个d×n的权重矩阵,而b是一个d维的隐藏层补偿向量;解码机:解码映射g<sub>θ'</sub>被用于重构自动编码机的输出Y,它看作是编码机的逆过程,因此,解码机的结构与编码机相类似,其表达形式为:Y=g<sub>θ'</sub>(V)=o(W'V+b')其中,o(v)为输出层的激活函数,W'为一个n×d维隐藏层到输出层之间的连接权重,而b'是一个n维的输出层补偿向量,解码机的参数集为θ'={W',b'};根据信息量最大化原理,一个好的表示应该从输入中获取尽可能多的信息,而在自动编码机里面,这种信息被隐藏在参数集{θ,θ'}中;而获得最优的参数集途径,即为最小化全局信息损失函数的过程,这个函数表示为:<maths num="0001"><math><![CDATA[<mrow><mi>min</mi><mi> </mi><mi>E</mi><mrow><mo>(</mo><mi>X</mi><mo>,</mo><mi>Y</mi><mo>)</mo></mrow><mo>=</mo><munder><mi>min</mi><mrow><mi>&theta;</mi><mo>,</mo><msup><mi>&theta;</mi><mo>&prime;</mo></msup></mrow></munder><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><mi>&Delta;</mi><mrow><mo>(</mo><mi>X</mi><mo>,</mo><mi>Y</mi><mo>;</mo><mi>&theta;</mi><mo>,</mo><msup><mi>&theta;</mi><mo>&prime;</mo></msup><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001202435610000021.GIF" wi="718" he="127" /></maths>而在实际应用中,通常采用平方差损失函数,它的表示形式为:<maths num="0002"><math><![CDATA[<mrow><msub><mi>L</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>X</mi><mo>,</mo><mi>Y</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow>]]></math><img file="FDA0001202435610000022.GIF" wi="468" he="119" /></maths>通过误差梯度反向传播机制,能通过最小化信息损失函数来使得自动编码机达到输出尽可能地等于输入的效果;由于时间序列往往是高维数据,其转化为图像之后形成的堆栈式向量输入的维数将会比时间序列数据本身的维数有平方式的增长,这导致了自动编码机的输入节点数量极其庞大;庞大的输入节点数量会带来两个方面的弊端,其一,节点数量增加导致了自动编码机的神经网络结构复杂度增加,使得训练时间大大延长;其二,节点数量增加也会使整个网络的收敛性能下降,即神经网络的训练精度会有所下降;所以,引入了丢包算法这个改进方案,即以一定的概率使得输入节点的输入值为零,这样,一定程度上削减了自动编码机的网络复杂程度,使得隐藏层的特征表示更加稀疏;实验结果表明,该方法大大增加了自动编码机的训练精度,并且减少了训练所使用的时间;根据上面的描述,编码机映射f<sub>θ</sub>被重新表示为:<img file="FDA0001202435610000023.GIF" wi="765" he="55" />其中,m是一个n维的二值向量,它的每一个元素m<sub>j</sub>都服从Bernoulli(p)的伯努利分布,而M'是一个d×n维的带丢包连接矩阵,它的每一行都是相同的一个二值元素;在此基础之上,化简损失函数的形式,表达为:<img file="FDA0001202435610000031.GIF" wi="894" he="103" />这样,一些输入节点对于隐藏层节点的作用就会被屏蔽,而如果将|M|记为矩阵M中元素的个数,那么整个自动编码机网络的可能的形式就从2<sup>|M|</sup>降到了<img file="FDA0001202435610000032.GIF" wi="93" he="69" />种;通过上述过程,即可训练得到含有训练样本图像特征的自动编码机网络;该网络可用于后续分类器的训练,减少分类器训练过程出现的过拟合现象,并且极大地提高了分类器的训练精度与训练效率;步骤3:训练分类器当自动编码机训练完毕,对于输入样本的良好表示就从编码机的权重当中获取,此时,能利用这种良好的表示训练分类器;这里选取了误差反向传播神经网络分类器,训练分类器首先需要构造训练样本的期望输出,运用在不同的应用环境中,其分类器的期望输出是不相同的;如果将用于相似度匹配,那么期望输出应该构造成一个单位矩阵,这样相当于每一个训练样本都是一个,而分类器的最终目的是将训练样本归结到与自身所对应的那个类标中去;如果应用于分类中,那么构造的期望输出就是训练样本自身的期望类标,在构造完期望输出之后,即对分类器进行训练;由于选择了神经网络分类器,其结构与上面所提到的自动编码机所用到的神将网络结构类似,亦是一个标准三层神经网络;设置该网络的输入层到隐藏层之间的连接矩阵为已经在预训练阶段得到的编码机权重,这样就用到在与训练阶段得利用自动编码机得到的时间序列图像特征来提升分类器的分类精度;除此之外,选择合适的学习率,即得到一个训练精度相当高的分类器;步骤4:应用阶段当预训练阶段与分类器训练阶段都完成后,会得到一个训练过的分类器,该分类器里包含了时间序列样本的图像特征信息,并且已经把具有类似图像特征的样本映射到相应的类标上;利用这个训练好的分类器,就能实现相似度匹配与分类的功能;在实现相似度匹配时,将需要匹配的时间序列片段转化为与预训练阶段训练样本相同的图像转换格式,再将其转化为堆栈式向量,即作为分类器的输入;通过分类器神经网络的计算,输出是该时间序列片段匹配最相近的时间序列片段序号,而在实现分类时,只需要将分类样本转化为图像格式,再将其转化为堆栈式向量作为分类器的输入;分类器的输出结果为该输入片段的分类类标;在应用阶段,无论是被匹配的时间序列数据样本有多少,神经网络分类器仅需计算一次即可得出结果,这比现有的基于距离度量的相似度测量方法高效得多;同时,虽然预训练、分类器训练和应用这三个阶段有依次的参数依赖关系,但是由于自动编码机高效的特征抽象提取能力,参数的实时性并不会对分类器的性能造成很大的影响,换言之,如果需要数据更新,这三个阶段能在不同的计算机上进行分布式并行计算更新。
地址 100191 北京市海淀区学院路37号