本发明属于信号控制技术领域,涉及一种基于双向门控循环神经网络的序列中单一元素分类方法。
背景技术
对具有时序特性的波形或数据进行序列中单一元素分类,在实际工程中应用广泛,如对电网运行状态的监控,对设备运行参数的监控,对电能质量扰动类型的识别,对振动信号的识别,对心电信号的识别,对音频信号的识别,对地震波型的属性判断等。
目前对时序信号分类的解决方法通常是在对一段时间内的数据进行监测后,才能够确定该段数据所对应的类别,难以实现对时序信号或数据中的单一元素信息进行分类,因此实时性较差。为此,提出了一种基于双向门控循环神经网络的序列对序列模型,用以实现对时序信号序列中单一元素的属性类别进行分类。
技术实现要素:
本发明的目的是提供一种基于双向门控循环神经网络的序列中单一元素分类方法,解决了现有技术中存在的无法高效、准确的对序列数据中单一元素进行分类识别的问题。
本发明所采用的技术方案是,一种基于双向门控循环神经网络的序列中单一元素分类方法,按照以下步骤实施:
步骤1,对采集到的时序信号或数据进行人工分类,
对每一个序列元素标注上所属标签,从而形成两个数据集,即输入数据集和与所有原始的输入数据对应的标签集,使得标签序列与输入数据集内的样本序列元素依次对应;输入数据为一维或多维数据,即每次输入一个或多个数据对应一个数据标签,此时将输入的多个数据看作一个序列元素;
步骤2,将输入数据集转换为矩阵形式,输入矩阵形状为[序列样本数量,步长,输入数据维度];同时,将标签集也转换为矩阵形式,标签矩阵形状为[序列样本数量,步长,输出标签维度];
步骤3,将输入数据集和对应的标签集随机划分为训练集和测试集,其中训练集数据占总样本70%,测试集数据占总样本的30%;
步骤4,构建双向门控循环神经网络模型,
该双向门控循环神经网络模型包括三部分,第一部分为输入层,输入层仅为一层;第二部分为隐含层,隐含层包含多层,隐含层中含有双向门控循环神经网络层、丢弃层和全连接层;第三部分为输出层,输出层仅为一层;
通过训练后的双向门控循环神经网络利用输出层来抽取序列元素的判断结果,其中除输入层外其余神经网络层均通过激活函数与前一层神经网络层链接;
输入层的数据格式为[训练集样本数量,步长,输入数据维度];隐含层中所包含的双向门控循环神经网络层,每层包含多个隐含神经元单元;每一个丢弃层的丢弃率为p;全连接层包含n个神经元单元,全连接层所包含神经元单元数量与标签数量一致;输出层与最后一层的全连接层相连;
每一层的输出数据使用批规范化进行规范化处理,得到双向门控循环神经网络模型;
步骤5,对构建好的双向门控循环神经网络模型进行训练,
使用全局随机初始化的方式来进行参数初始化;每次训练遍历训练集中的每一个训练数据,每次遍历被称为一个世代,使双向门控循环神经网络模型进行多个世代训练;每个世代使用测试集中的80%数据来进行测试,得到数据准确率;经过多个世代训练后得到最优的双向门控循环神经网络模型的参数;
步骤6,过拟合判断,
使用测试集剩余的20%数据来进行过拟合测试,若精确度大幅下降则出现过拟合现象;出现过拟合现象则调整超参数;
参数每次调整后都需要重新通过步骤5进行训练,从而得到泛化性更好的双向门控循环神经网络模型;
步骤7,使用训练好的双向门控循环神经网络模型进行序列单一元素的分类,使用argmax函数从输出层得到最终判断结果,获得对序列中单一元素的正确分类。
本发明的有益效果是,能够快速准确的对时序信号或数据中单一元素进行分类。双向门控循环神经网络可以通过训练来发现时序信号或数据中各序列元素之间的依赖关系,最大限度的提取出数据的特征,发现序列元素之间的关系,从而极大的提高时序信号或数据中的各序列元素所属类别或属性的判断准确率及判断速度。相对于标准循环神经网络或长短期记忆神经网络,双向门控循环神经网络可以对历史和未来的数据进行参考,从而提高识别准确率,避免了标准循环神经网络或长短期记忆神经网络只能依据时序信号或数据中的历史信息来进行元素类别或属性进行判断从而带来误判断现象。除此之外,与双向长短期记忆的循环神经网络相比较,双向门控循环神经网络具有更为简单的门结构,从而减少了训练时间,提升了训练效率,在准确性和快速性上均优于双向长短期循环神经网络。
附图说明
图1是本发明方法对48种电能质量扰动各自对应的准确率曲线。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明的分类方法,按照以下步骤实施:
步骤1,对采集到的时序信号或数据(即为原始的输入数据)进行人工分类,
对每一个序列元素标注上所属标签,从而形成两个数据集,即输入数据集和与所有原始的输入数据对应的标签集,使得标签序列与输入数据集内的样本序列元素依次对应;输入数据可以为一维或多维数据,即每次输入一个或多个数据对应一个数据标签,此时将输入的多个数据看作一个序列元素;
步骤2,将输入数据集转换为矩阵形式,输入矩阵形状为[序列样本数量,步长,输入数据维度];同时,将标签集也转换为矩阵形式,标签矩阵形状为[序列样本数量,步长,输出标签维度];
步骤3,将输入数据集和对应的标签集(合称样本数据)随机划分为训练集和测试集,其中训练集数据占总样本70%,测试集数据占总样本的30%;
步骤4,构建双向门控循环神经网络模型,
该双向门控循环神经网络模型包括三部分,第一部分为输入层,输入层仅为一层;第二部分为隐含层,隐含层部分包含多层,隐含层中含有双向门控循环神经网络层、丢弃层(dropout层)和全连接层;第三部分为输出层,输出层仅为一层softmax层;
通过训练后的双向门控循环神经网络利用输出层(softmax层)来抽取序列元素的判断结果,其中除输入层外其余神经网络层均通过激活函数与前一层神经网络层链接;
输入层的数据格式为[训练集样本数量,步长,输入数据维度];隐含层中所包含的双向门控循环神经网络层,每层包含多个隐含神经元单元;每一个丢弃层的丢弃率为p;全连接层包含n个神经元单元,全连接层所包含神经元单元数量与标签数量一致;输出层为softmax层,该层与最后一层的全连接层相连;
利用激活函数进行激活,激活函数使用tanh激活函数;每一层的输出数据使用批规范化进行规范化处理,得到双向门控循环神经网络模型;
步骤5,对构建好的双向门控循环神经网络模型进行训练,
使用全局随机初始化的方式来进行参数初始化;每次训练遍历训练集中的每一个训练数据,每次遍历被称为一个世代,使双向门控循环神经网络模型进行多个世代训练;每个世代使用测试集中的80%数据来进行测试,得到数据准确率;经过多个世代训练后得到最优的双向门控循环神经网络模型的参数;
步骤6,过拟合判断,
使用测试集剩余的20%数据来进行过拟合测试,若精确度大幅下降则出现过拟合现象;出现过拟合现象则调整超参数,比如采用修改丢弃层丢弃率、修改学习率、更改全连接层数量、更改训练世代或调整隐含层数量的方式;
参数每次调整后都需要重新训练,即重新通过步骤5进行训练,从而得到泛化性更好的双向门控循环神经网络模型。
步骤7,使用训练好的双向门控循环神经网络模型进行序列单一元素的分类,通过最后一层softmax层来抽取判断结果,
使用argmax函数从最后一层softmax层得到最终判断结果,获得对序列中单一元素的正确分类。
本发明上述的步骤根据需要还可以选择以下方式进行具体操作:
1)步骤4中,隐含层部分数量根据需要进行修改,增加或减少双向门控循环神经网络层、丢弃层、全连接层。
2)步骤4中,激活函数类型根据需要,可选用relu、leakyrelu、sigmoid或者tanh激活函数。
3)步骤5中选择不同优化器来进行训练,还可以选择momentum优化器、sgd或梯度下降优化器来进行替代。
4)步骤5中,使用不同的损失函数来进行训练,如使用均方差或平均差作为损失函数来替代交叉熵损失函数。
5)步骤6中,调整超参数的方式多样,如训练世代的数量、序列步长大小、学习率、输入序列长度、输入序列维度及输出序列维度,均可根据实际数据进行调整。
本发明的创新点在于,双向门控循环神经网络可以通过训练来发现时序信号或数据中各序列元素之间的依赖关系,最大限度的提取出数据的特征,发现序列元素之间的关系,从而极大的提高时序信号或数据中的各序列元素所属类别或属性的判断准确率及判断速度。相对于标准循环神经网络或长短期记忆神经网络,双向门控循环神经网络可以对历史和未来的数据进行参考,从而提高识别准确率,避免了标准循环神经网络或长短期记忆神经网络只能依据时序信号或数据中的历史信息来进行元素类别或属性进行判断从而带来误判断现象。解决了单向循环神经网络对序列初始元素的判断失真问题,填补了对单一元素分类判断的空白。通过对当前序列中单一元素前后数据有效性的学习,自行提取充分的判断信息,从而来对当前元素进行分类判断,同时也回避了循环神经网络中所存在的超长序列依赖问题。可以快速准确地对序列中单一元素的正确分类。
实施例
在电能质量扰动类别的序列分类问题上,传统方法无法实现对单一序列元素信息进行识别,同时针对复合电能质量扰动难以建立全面的特征描述方法,且严重依赖于专家的经验和技术水平,使得现有的电能质量扰动分类算法针对复合电能质量扰动类型的识别准确率较低,并且无法对序列中单一元素进行正确分类。同时传统算法,如支持向量机或描述函数法,无法实现实时性,并且判断准确率低下。而使用本发明方法,针对包含了单一及复合电能质量扰动在内的48种电能质量扰动,十万个样本的综合判断正确率可以大大提高到99%以上,且对一个序列的判断时间可以降低到30ms以内。
使用电能质量扰动序列数据来作为数据集,其中,取十万个序列数据作为样本数据,且每个周期含256个采样点。样本数据中的70%作为训练集,样本数据中的30%作为测试集。
双向门控循环神经网络模型总共设置有11层神经网络层,先使用一层输入层(第1层),再使用九层隐含层,隐含层依次设置为双向门控循环神经网络层(第2层)、丢弃层(第3层)、双向门控循环神经网络层(第4层)、丢弃层(第5层)、双向门控循环神经网络层(第6层)、丢弃层(第7层)、双向门控循环神经网络层(第8层)、丢弃层(第9层)及全连接层(第10层);最后使用一层输出层(第11层)。由输出层的softmax层抽出最后分类,使用tanh函数作为激活函数。通过argmax函数输出softmax的判断结果。
输入层的数据格式为[70000,256,1],即70000个样本,256个步长对应256个采样点,输入数据维度为1。
输出层的数据格式为[70000,256,1],即输出数据与输入数据矩阵形状一致。训练使用亚当优化器进行训练,学习率为0.01,每10个世代学习率在当前的基础上下降10%,经历1000个世代训练。
如图1所示,为48种电能质量扰动分别对应的准确率曲线,显然,经过完整的训练后得到对电能质量扰动序列数据的识别准确率达99%以上。