利用时频联合长时循环神经网络的数据处理方法与流程

文档序号:16359190发布日期:2018-12-22 08:04阅读:385来源:国知局
利用时频联合长时循环神经网络的数据处理方法与流程

本公开涉及属于人工智能领域,尤其涉及一种利用时频联合长时循环神经网络的数据处理方法。

背景技术

时间序列数据广泛存在于日常生活中的几乎每一个应用领域,如金融、信号处理、语音识别和医药。它们是实值型的序列数据,具有数据量大,数据维度高,以及数据不断更新等特点。循环神经网络(rnn)是近年来被广泛使用的一种时序数据分析与处理的神经网络模型。但是,传统循环神经网络存在三个问题:(1)难以捕获时间上的长期依赖关系;(2)仅考虑时域信息相关性建模,忽略了对频域信息相关性建模;(3)传统循环神经网络及其变体(如rnn、lstm)只能叠加2~3层,继续叠加反而会造成性能下降,不利于拟合复杂函数。

与本发明相似的两种方法是indrnn网络和sfm网络。其中,indrnn网络也是通过解耦隐藏层神经元、引入激活函数relu和权重裁剪维持网络的长期记忆,并可以叠加多层,训练成深层神经网络。但是,indrnn没有考虑输入数据的频域信息,无法处理输入数据存在丰富频率成分的情况(比如对于股票交易数据、音位数据)。sfm网络则考虑了信号的频率状态,实现对时域-频域内特征的联合表示,但是却基于经典lstm,无法捕获长时序列数据(如超过500个步长)依赖关系,且只能叠加2~3层,不能训练深层网络。

公开内容

(一)要解决的技术问题

为了解决这些问题,本公开提出一种循环神经网络架构——时频联合长时循环神经网络。该网络通过将传统循环神经网络隐藏层的状态向量替换为状态-频率矩阵,实现对时序信号时域和频域特征的联合表示,通过解耦隐藏层神经元、引入非饱和激活函数relu和权重裁剪有效地解决了梯度衰减和梯度爆炸问题,既可以使网络维持长期记忆,又可以训练深层网络。

(二)技术方案

本公开提供了一种利用时频联合长时循环神经网络的数据处理方法,包括:s101:构建时频联合长时循环神经网络;s201:将时间序列输入时频联合长时循环神经网络;s301:计算时频联合长时循环神经网络最后一个时间步的隐藏层的状态-频率矩阵的幅度,并进一步得到时间序列的处理结果。

在本公开的一些实施例中,所述步骤s101包括:建立时频联合长时循环神经网络模型;对时频联合长时循环神经网络模型进行训练,得到时频联合长时循环神经网络。

在本公开的一些实施例中,所述时频联合长时循环神经网络模型为单层时频联合长时循环神经网络,描述为:

其中,w为时间序列到隐藏层的权重矩阵;xt是时间序列中t时间步的输入向量;u为t-1时间步隐藏层到t时间步隐藏层的权重矩阵;b为隐藏层的偏置项;ht表示时间步t的隐藏层的状态-频率矩阵;ht-1表示时间步t-1的隐藏层的状态-频率矩阵;σ表示非饱和激活函数relu。

在本公开的一些实施例中,所述时频联合长时循环神经网络模型为所述单层时频联合长时循环神经网络叠加而成的多层时频联合长时循环神经网络。

在本公开的一些实施例中,所述训练包括:预测任务的训练和分类任务的训练。

在本公开的一些实施例中,所述预测任务的训练包括两个阶段:前向传播阶段:将训练集的时间序列输入时频联合长时循环神经网络模型,将时频联合长时循环神经网络模型最后一个时间步的隐藏层的状态-频率矩阵ht的幅度|ht|,作为全连接层的输入,并通过全连接层将|ht|压缩成一维向量或数据点,得到n步预测值;反向传播阶段:将训练集中的时间序列输入时频联合长时循环神经网络模型,通过最小化训练集时间序列的预测值和真实值间的平方差之和进行训练:

其中,m表示训练集中的样本个数,vt+n表示训练集中时间序列的真实值,表示训练集中时间序列的预测值。

在本公开的一些实施例中,所述分类任务的训练也包括两个阶段:前向传播阶段:将训练集的时间序列输入时频联合长时循环神经网络模型,将时频联合长时循环神经网络最后一个时间步的隐藏层的状态-频率矩阵ht的幅度|ht|,作为全连接层的输入,并通过全连接层将|ht|压缩成一维向量,并通过softmax函数为每个类标签分配概率;反向传播阶段:计算前向传播阶段输出的预测类标签和理想类标签的交叉熵代价函数,并按照最小化交叉熵的方法调整时频联合长时循环神经网络模型中的参数;交叉熵代价函数:

其中,是前向传播过程输出的预测类标签,ci是理想类标签。

在本公开的一些实施例中,所述步骤s301的处理包括:分类;将时频联合长时循环神经网络最后一个时间步的隐藏层的状态-频率矩阵的幅度|ht|输入全连接层,全连接层将|ht|压缩成一维向量,然后通过softmax函数为一维向量中每个元素对应的类标签分配概率,得到最大概率的类标签作为时频联合长时循环神经网络输出的预测类标签。

在本公开的一些实施例中,所述步骤s301的处理包括:预测;对t时间步后n时间步的数据预测时,将时频联合长时循环神经网络最后一个时间步的隐藏层的状态-频率矩阵ht的幅度|ht|输入全连接层,全连接层将|ht|压缩成一维向量或数据点,得到n步预测数据。

(三)有益效果

从上述技术方案可以看出,本公开具有以下有益效果:

本公开与现有技术相比的优点在于:本公开既可以对时频特征联合建模又可以保持循环神经网络的长时记忆,在处理长时依赖关系且含有丰富频率成分的数据集上,可以训练长程、深度的多频率状态记忆循环神经网络,更好地深入分析时序信号。

附图说明

图1是本公开实施例数据处理方法的流程图。

图2是本公开实施例的两层时频联合建模长时循环神经网络叠加示意图。

图3是本公开实施例时频联合建模长时循环神经网络的数据处理方法的过程示意图。

具体实施方式

本公开解决了具有长时依赖关系的时序信号分类及预测问题。分类问题可以描述为:给定训练集中的一组时间序列和对应的类标签,要求首先从标定类标签的训练集中学习到能够区分不同序列的鉴别性特征。然后,当遇到一条未标定的时间序列时,它能够自动为该时间序列分配类标签。预测问题可以描述为:通过对时间序列的建模和分析,根据时间序列所反映出来的发展过程、方向和趋势,进行类推或延伸,借以预测下一段时间可能达到的水平。

本公开利用时频联合长时循环神经网络,在循环神经网络基本架构基础上,对时间序列实现时域和频域联合表示,通过解耦隐藏层神经元、引入非饱和激活函数relu和权重裁剪,有效地解决梯度衰减和梯度爆炸问题,使得网络既可以维持长期记忆又可以叠加多层,训练深层神经网络。

本公开涉及两种网络结构,单层时频联合建模循环神经网络和多层时频联合建模循环神经网络,均可以应用于分类和预测问题。在具体应用中,基于不同的应用场合和目的,可以采用不同层数的网络结构。采用的层数越多,越能拟合复杂函数,有更好的学习能力。

假设一个时间序列数据集中有n条时间序列,d={t1,...,tn},每一条时间序列有m个时间步,按照某一时间步上观测变量的多少,时间序列可划分为单变量时间序列和多变量时间序列,本公开所述时频联合长时循环神经网络可以处理单变量时间序列和多变量时间序列。

下面将结合实施例和实施例中的附图,对本公开实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

本公开一实施例的利用时频联合长时循环神经网络的数据处理方法,对单变量和多变量时间序列进行处理,如图1所示,包括以下步骤:

步骤s101:构建时频联合长时循环神经网络。

该步骤包括:

首先,确定固定频点,将数字频率[0,2π]均匀分为k份,构成频率簇{ω1,ω2,...,ωk},其中,

然后,建立时频联合长时循环神经网络模型。

本实施例中,可以构建两种时频联合长时循环神经网络模型:单层时频联合长时循环神经网络和多层时频联合长时循环神经网络。

对于单层时频联合长时循环神经网络,该网络可以描述为:

其中,w为输入的时间序列到隐藏层的权重矩阵,xt是时间序列中t时间步的输入向量,u为上一时间步(即t-1时间步)隐藏层到当前时间步(即t时间步)隐藏层的权重矩阵,b为隐藏层的偏置项,ht表示单层时频联合长时循环神经网络在时间步t的隐藏层的状态-频率矩阵;ht-1表示单层时频联合长时循环神经网络在时间步t-1的隐藏层的状态-频率矩阵;σ表示非饱和激活函数relu;⊙代表矩阵的哈达玛积运算,这使得单层时频联合长时循环神经网络中隐藏层的每个神经元都与其他神经元相互独立。

其中隐藏层的状态-频率矩阵ht中第n行第k列元素对应的神经元描述如下:

隐藏层的状态-频率矩阵ht可以分解为如下形式的实部和虚部:

reht=σ(wxt[cosω1t,...,cosωkt]+u⊙ht-1+b)(3)

以及:

imht=σ(wxt[sinω1t,...,sinωkt]+u⊙ht-1+b)(4)

ht的幅度被定义为:

其中(·)2代表该矩阵对应元素的平方。

ht的相位被定义为:

其中arctan(·)是对矩阵中每个元素进行反正切变换。

对于多层时频联合长时循环神经网络,其是由单层时频联合长时循环神经网络叠加而成的。具体而言,多层时频联合长时循环神经网络在每个时间步上将单层时频联合长时循环神经网络复制多次,和卷积神经网络类似,每一层时频联合长时循环神经网络中的参数是一致的,不同层时频联合长时循环神经网络的参数可以不同。不同神经元间的特征融合可以通过多层网络结构的叠加进行利用,在这种情况下,上一层隐藏层所有神经元的输出将作为下一层隐藏层每个神经元的输入。正是由于层间交互是全连接方式,因此可以进行改进,引入cnn网络的层间连接方式,比如引入bn层(batchnormalization)、残差连接等。

图2显示了多层时频联合建模循环神经网络体系结构,其为引入残差连接两层结构示意图。其中’weight’和’indsfm+relu’分别表示对输入向量的处理和每个时间步的隐藏层神经元的处理。

基于sigmoid和tanh的传统循环神经网络如rnn和lstm,直接叠加一般只能叠加2-3层,再往上叠加性能反而下降,这是由于sigmoid和tanh的梯度在饱和区域非常平缓,从而造成层间梯度衰减,而多层时频联合长时循环神经网络由于解耦隐藏层神经元、引入非饱和激活函数relu和权重裁剪,可以有效缓解层间的梯度衰减问题。此外,bn层的应用也较好地改善了深层神经网络的梯度问题。

最后,对时频联合长时循环神经网络模型进行训练,得到时频联合长时循环神经网络。

利用训练集中的时间序列对时频联合长时循环神经网络模型进行训练,训练包括:预测任务的训练和分类任务的训练。

预测任务的训练包括两个阶段:

(1)前向传播阶段:将训练集的时间序列输入时频联合长时循环神经网络模型,将时频联合长时循环神经网络模型最后一个时间步的隐藏层的状态-频率矩阵ht的幅度|ht|,作为全连接层的输入,并通过全连接层将|ht|压缩成一维向量或数据点(取决于每个时间步输入向量的维度),得到n步预测值。其中,对于单层时频联合长时循环神经网络,是取该层最后一个时间步的隐藏层的状态-频率矩阵,对于多层时频联合长时循环神经网络,取最后一层的最后一个时间步的隐藏层的状态-频率矩阵。

(2)反向传播阶段,即误差传播阶段。将训练集中的时间序列输入时频联合长时循环神经网络模型,通过最小化训练集时间序列的预测值和真实值间的平方差之和进行训练:

其中,m表示训练集中的样本个数,vt+n表示训练集中时间序列的真实值,表示训练集中时间序列的预测值。

分类任务的训练也包括两个阶段:

(1)前向传播阶段:将训练集的时间序列输入时频联合长时循环神经网络模型,将时频联合长时循环神经网络最后一个时间步的隐藏层的状态-频率矩阵ht的幅度|ht|,作为全连接层的输入,并通过全连接层将|ht|压缩成一维向量,然后由softmax函数为每个类标签分配概率。假设时频联合长时循环神经网络输出为一维向量表示中的第i个元素,该元素经softmax函数映射的值定义为:得到最大概率的类标签作为长时循环神经网络输出的预测类标签。其中,对于单层时频联合长时循环神经网络,是取该层最后一个时间步的隐藏层的状态-频率矩阵的幅度,对于多层时频联合长时循环神经网络,取最后一层的最后一个时间步的隐藏层的状态-频率矩阵的幅度。

(2)反向传播阶段,即误差传播阶段。计算前向传播阶段输出的预测类标签和理想类标签的交叉熵代价函数,并按照最小化交叉熵的方法调整时频联合长时循环神经网络模型中的参数。

交叉熵代价函数:

其中,是前向传播过程输出的预测类标签,ci是理想类标签。时频联合长时循环神经网络中所有参数都通过bptt算法进行更新。

步骤s201:将时间序列输入时频联合长时循环神经网络。

步骤s301:计算时频联合长时循环神经网络最后一个时间步的隐藏层的状态-频率矩阵的幅度,并进一步得到时间序列的处理结果。

该步骤中,利用公式(5)计算时频联合长时循环神经网络最后一个时间步t的隐藏层的状态-频率矩阵ht的幅度|ht|,作为预测或分类任务的依据。例如对于d={t1,...,tn}中的时间序列,每一时间序列有m个时间步,最后一个时间步t是指第m个时间步。

所述处理包括:分类和预测。

在分类任务中,假设一个时间序列数据集中有n条时间序列,d={t1,t2,...,tn}。在分类任务中,每一条时间序列有m个观测值和一个类标签ci,即ti=<ti1,ti2,...,tim,ci>,时间序列分类问题可以表述为一个将时间序列的观测值映射到类标签的函数。

所述分类包括:

将待分类的时间序列输入已训练完成的网络中,得到时频联合长时循环神经网络最后一个时间步的隐藏层的状态-频率矩阵的幅度|ht|,将|ht|输入全连接层,全连接层将|ht|压缩成一维向量,然后通过softmax函数为一维向量中每个元素对应的类标签分配概率,得到最大概率的类标签作为时频联合长时循环神经网络输出的预测类标签。其中,对于单层时频联合长时循环神经网络,是取该层最后一个时间步的隐藏层的状态-频率矩阵的幅度,对于多层时频联合长时循环神经网络,取最后一层的最后一个时间步的隐藏层的状态-频率矩阵的幅度。

在预测任务中,给定一串时间序列{pt|t=1,2,...,t},预测任务的目标是根据前t个时间步的序列对t时间步之后n个时间步的值pt+n进行预测:其中f表示从历史信息预测n个时间步后信息的函数映射。本公开的预测即等价于上式中f映射,对n步预测任务建模。

所述预测包括:

对t时间步后n时间步的数据预测(n步预测)时,将待分类的时间序列输入已训练完成的网络中,得到时频联合长时循环神经网络最后一个时间步的隐藏层的状态-频率矩阵的幅度|ht|,全连接层将|ht|压缩成一维向量或数据点(取决于每个时间步输入向量的维度),得到n步预测数据。图2为数据处理方法的过程示意图。其中,对于单层时频联合长时循环神经网络,是取该层最后一个时间步的隐藏层的状态-频率矩阵的幅度,对于多层时频联合长时循环神经网络,取最后一层的最后一个时间步的隐藏层的状态-频率矩阵幅度。

如上所述,本公开在对时域和频域的特征模式联合建模时,在每个时间步,变量都分解到k个频率上。隐藏层的所有神经元共同构成一个状态-频率矩阵,以维持多频率状态记忆。矩阵中的每个元素,用它的行来索引不同状态:每个状态在物理意义上可以理解成代表某个引发信号波动的因子。另一方面,用矩阵的列来检索不同的频率,代表不同因子对不同频率的影响。由于隐藏层神经元已经被解耦,神经元之间相互独立,下一时间步的神经元仅会接受上一时间步对应神经元的输出,每个神经元可以独立地处理一种状态-频率-时间模式,提高了神经元的可解释性。

由于隐藏层神经元之间相互独立,通过引入激活函数relu,并结合权重裁剪技术,有效地解决了传统循环神经网络中的梯度消失和梯度爆炸问题。在误差反向传播的过程中,由于隐藏层中神经元没有相互联系,因此可以对每个神经元独立计算梯度。

具体来说,隐藏层的状态-频率矩阵ht中第n行第k列元素对应的神经元描述如下:

对于神经元hnk,假设时间步t的优化目标是jnk,则反向传播到t时间步的梯度为:

其中,σ′nk,i+1是隐藏层的状态-频率矩阵中逐个元素的导数。显而易见地,梯度中的易于调节,并且激活函数的导数通常被限制在一个特定的范围中。而传统rnn模型的梯度其中diag(σ′(hi+1))是矩阵中逐个元素的导数的雅可比矩阵。与传统rnn模型对比可以发现,本公开所述时频联合长时循环神经网络的梯度是权重矩阵的连积,不再是矩阵乘法。本公开中权重矩阵的更新与学习率相关,且幅度变化较小;而传统rnn模型中矩阵乘法与矩阵的特征值相关,使得训练过程不稳定,容易造成梯度爆炸或梯度消失问题。本公开所述时频联合长时循环神经网络仅需在训练过程中,结合权重裁剪技术,即通过调节权重unk将调节到合适范围中,便可以避免梯度爆炸或者梯度消失的问题。

至此,已经结合附图对本公开进行了详细描述。依据以上描述,本领域技术人员应当对本公开有了清楚的认识。

需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换,例如:

(1)实施例中提到的方向用语,例如“上”、“下”、“前”、“后”、“左”、“右”等,仅是参考附图的方向,并非用来限制本公开的保护范围;

(2)上述实施例可基于设计及可靠度的考虑,彼此混合搭配使用或与其他实施例混合搭配使用,即不同实施例中的技术特征可以自由组合形成更多的实施例。

以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

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