CN109766277B - 一种基于迁移学习与dnn的软件故障诊断方法 - Google Patents
一种基于迁移学习与dnn的软件故障诊断方法 Download PDFInfo
- Publication number
- CN109766277B CN109766277B CN201910001610.6A CN201910001610A CN109766277B CN 109766277 B CN109766277 B CN 109766277B CN 201910001610 A CN201910001610 A CN 201910001610A CN 109766277 B CN109766277 B CN 109766277B
- Authority
- CN
- China
- Prior art keywords
- dnn
- layer
- setting
- sample
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本发明一种基于迁移学习与DNN的软件故障诊断方法:1、搜集软件故障案例,将故障类型信息作为标签数据;2、预处理,构建软件故障词典;3、构建样本索引矩阵以及样本标签矩阵;4、预训练,获得语料库词汇嵌入向量;5、构建权重矩阵,匹配词典词汇与语料库词汇的嵌入向量,写出至矩阵;6、设定DNN整体模块结构;7、设定DNN输入层、隐藏层、输出层参数及学习机制;8、利用权重矩阵初始化DNN输入层;9、对样本索引矩阵和样本标签矩阵划分,得到训练数据集、验证数据集及测试数据集;10、用训练数据集和验证数据集对DNN训练,用测试数据集对DNN识别准确率测试。本发明能利用语义特征数据精确地识别案例的故障类型。
Description
技术领域
本发明提供一种基于迁移学习与DNN的软件故障诊断方法,属于软件可靠性、软件故障诊断领域。
背景技术
随着计算机软件规模的日益庞大与复杂,其质量难以得到有效的控制和保障。在软件的调试与实际使用阶段会产生大量的故障数据,并积累丰富的软件故障案例数据,如何有效提取并利用已有的海量故障案例语义信息对软件故障进行快速、精确地识别是目前软件故障诊断领域的一个关键问题。迁移学习是运用已有知识对不同但相关领域问题进行求解的学习方法,该方法通过将源领域学习得到的知识迁移至目标领域中,以实现领域知识共享,从而解决目标领域内学习样本少、样本分布不平衡造成的训练模型性能差的问题。与增量学习、多任务学习以及自我学习等方法相比,迁移学习着重强调学习任务之间的相关性,并利用这种相关性完成知识之间的迁移。深度学习的概念起源于人工智能的机器学习领域,由多个隐藏层组成的深度神经网络模型(Deep Neural Network,简称DNN)是深度学习模型的显著特点。相比于浅层神经网络模型,DNN可以组合底层特征形成更加抽象的高层特征表示,从而发现数据的隐含特征表达,通过数据特征的逐层转化,有效地提取和表示信息的特征。本发明提出了一种基于迁移学习与DNN的软件故障诊断方法,该方法首先采用语言模型对源领域的大规模语料库进行预训练,获得模型的嵌入向量。其次对目标领域的故障案例样本进行量化处理,并与源领域的词嵌入权重进行匹配,获得用于目标领域模型的词嵌入权重。再次针对软件故障分类这一目标任务,设定目标领域的DNN模型整体结构、初始化参数以及学习机制。最后,将词嵌入权重迁移至目标领域DNN的词嵌入层,利用案例样本数据微调DNN整体参数,完成模型的训练与测试。得到的模型能够利用软件故障描述文本提取有效的语义特征数据,用于准确地识别软件故障类型。
该方法基于迁移学习与深度学习技术融合故障分析与故障处理等相关理论、方法和技术进行构建,在提高软件维护性的同时,达到提高软件可靠性、安全性、可用性的目的。
发明内容
本发明目的:目前基于信息检索的软件故障诊断方法尽管能够利用故障案例文档作为整体语境,对语境内的文本构建词向量以表征语义信息,然而,这类方法仅能抽取和比较局部的文本语义,不能有效地分析上下文语境对文本的语义及相似度进行表达,在语义表示精度方面存在缺陷。此外,对于新加入的大批量案例文本,现有方法需要对所有文本重新进行处理以获取新的语义表示向量,在文本内容扩展方面存在缺陷。因此本发明将克服现有技术的不足,提供一种基于迁移学习与DNN的软件故障诊断方法对上述问题进行解决。该方法通过分析文本的上下文语境,采用词嵌入对文本词语进行分布表征,以充分地获取语义信息。利用迁移学习机制,将源领域中采用语料库预训练的语言模型的词嵌入权重转移至目标领域的DNN的嵌入层。通过微调的方式对DNN进行训练。这一方法得到的DNN在输入软件故障描述信息后,能有效地识别故障的具体类型,为软件故障诊断领域提供了一种新的解决方法,并对现有的故障识别方法进行了创新。
本发明技术方案:一种基于迁移学习与DNN的软件故障诊断方法,其步骤如下:
步骤1、搜集大量的软件故障案例,统计每个案例对应的故障类型信息作为标签数据;
步骤2、对故障案例文本进行预处理,构建软件故障词典;
步骤3、构建故障案例样本索引矩阵以及样本标签矩阵;
步骤4、利用大规模语料库对基于word2vec的语言模型进行预训练,获得语料库词汇的嵌入向量;
步骤5、构建权重矩阵,匹配软件故障词典词汇与语料库词汇的嵌入向量,将向量写出至该权重矩阵;
步骤6、设定用于软件故障诊断的DNN整体模块结构;
步骤7、设定DNN输入层、各隐藏层、输出层的参数以及学习机制;
步骤8、利用步骤5建立的权重矩阵初始化DNN的输入层;
步骤9、对故障案例样本索引矩阵和样本标签矩阵进行划分,得到训练数据集、验证数据集以及测试数据集;
步骤10、利用训练数据集和验证数据集对DNN进行训练,利用测试数据集对DNN的识别准确率进行测试。
其中,在步骤2中所述的“对故障案例文本进行预处理”,其作法如下:
步骤2.1:读入所有故障案例样本FC={fci|i=1,…,N},其中,fci为第i个案例样本,N为样本数目。以空格字符作为分隔符对各样本的文本词语进行分词处理,并将文本词语中存在的大写字符转换为小写字符,得到样本集FC’={fci’|i=1,…,N};
步骤2.2:筛除各样本中的标点符号、特殊符号以及停用词,以降低样本的文本长度,得到样本集FC”={fci”|i=1,…,N};
步骤2.3:设定案例样本的最大文本长度L1,若样本集FC”内的样本fci”的长度小于L1,则在fci”的头部补上对应数目的自定义词汇“_PAD_”;若fci”的长度大于L1,则在fci’的头部截去对应数目的文本词汇,得到样本集FC”’={fci”’|i=1,…,N}。
其中,在步骤2中所述的“构建软件故障词典”,其作法如下:
步骤2.4:读入预处理后的样本集FC”’,对样本的文本词汇频数进行统计;
步骤2.5:按照词汇统计频数由大到小的顺序排名,将所有样本的词汇写入至词典。额外添加两个词汇“_PAD_”和“_UKN_”至词典的第一位和第二位,得到词典的词汇数目dicL。其中,词汇“_PAD_”表示填充词汇,用于填充词汇数目小于规定值的样本,词汇“_UKN_”表示未知词汇,用于后续的匹配分析;
步骤2.6:对词典中的词汇分配索引数字,得到“词汇-索引”映射表。
其中,在步骤3中所述的“构建案例样本索引矩阵以及样本标签矩阵”,其作法如下:
步骤3.1:构建尺寸为N*L1的索引矩阵X,用于保存样本的词汇-索引值;
步骤3.2:读取样本集FC”’={fci”’|i=1,…,N},根据“词汇-索引”映射表,将fci”’内的词汇转换为对应的索引数字,并写入至矩阵X;
步骤3.3:读取样本集FC”’对应的标签数据集LB={lbi∈{j}|i=1,…,N,j=1,…,L2},其中,lbi为第i个案例样本对应的标签,N为样本数目,L2为标签的类型数目;
步骤3.4:构建尺寸为N*L2的标签矩阵Y,用于保存样本的标签编码向量;
步骤3.5:对lbi进行独热编码,获得对应的标签向量,并写入至标签矩阵Y。所述的“独热编码”,是指一种编码方法,可以将类别变量转换为用于机器学习的0-1向量。
其中,在步骤4中所述的“大规模语料库”,是指用于文本分类、文本挖据以及信息检索研究的开源标准数据集,由数目单位为万级的新闻文档组成,能够涵盖自然语言中绝大部分词汇。
其中,在步骤4中所述的“基于word2vec的语言模型”,是指一种无监督神经网络模型,这一模型以大量的文本语料作为输入,通过调节中间隐藏层的权重来学习文本词汇间的关联关系,最后输出语料词汇对应的嵌入向量,这些嵌入向量能够有效表示词语的语义特征。
其中,在步骤4中所述的“利用大规模语料库对基于word2vec的语言模型进行预训练”,其作法如下:首先载入用于语言模型学习的语料库文本数据,然后设定语言模型的训练方法类型、输出嵌入向量长度、词汇滑窗长度、训练并行数目以及训练迭代次数这一系列参数,随后采用无监督学习机制,利用语料库数据对语言模型进行训练,最后得到语言模型的权重以及语料库文本词汇对应的嵌入向量(维数为emL)。
其中,在步骤5中所述的“构建权重矩阵,匹配软件故障词典词汇与语料库词汇的嵌入向量,将向量写出至该权重矩阵”,其作法如下:
步骤5.1:构建尺寸为L1*emL的权重矩阵W,用于保存软件故障词典中词对应的嵌入向量;
步骤5.2:设定软件故障词典中词“_PAD_”嵌入向量是维数为emL的全零向量,词典中词“_UKN_”的嵌入向量是均匀初始化得到的维数为emL的嵌入向量;
步骤5.2:读取软件故障词典的词,利用语言模型查找词典中词对应的嵌入向量;
步骤5.3:若语言模型中未匹配到对应词的嵌入向量,则该词的嵌入向量替换为“_UKN_”的嵌入向量;
步骤5.4:利用“词汇-索引”映射表获得词典的词索引,并将得到的嵌入向量写入至权重矩阵W对应的行数;
步骤5.5:重复执行“步骤5.2”~“步骤5.4”,直至完成对软件故障词典的遍历,并得到保存词嵌入向量的权重矩阵W;
其中,在步骤6中所述的“设定用于软件故障诊断的DNN整体模块结构”,其作法如下:
步骤6.1:设定DNN的第一层即输入层为Embedding层;
步骤6.2:设定DNN的第二层为Dropout层;
步骤6.3:设定DNN的第三层为Conv1D层;
步骤6.4:设定DNN的第四层为GlobalMaxPooling1D层;
步骤6.5:设定DNN的第五层为Dropout层;
步骤6.6:设定DNN的第六层为Conv1D层;
步骤6.7:设定DNN的第七层为GlobalMaxPooling1D层;
步骤6.8:设定DNN的第八层为Dropout层;
步骤6.9:设定DNN的第九层即输出层为Dense层。
其中,在步骤6.1所述的“Embedding层”,是指一种词嵌入网络层,这一网络层用于将索引矩阵X转换为具有固定大小的二维特征张量,供后续网络层学习使用;
其中,在步骤6.2所述的“Dropout层”,是指一种深度学习环境中应用的优化网络层,在DNN训练过程中,这一网络层以概率p舍弃神经元,并让其它神经元以概率q=1-p保留,每个神经元被舍弃的概率是相同的,舍弃的神经元的输出均设置为零;通过这种方式减轻DNN的过拟合问题,一定程度上达到正则化效果;
其中,在步骤6.3所述的“Conv1D层”,是指一种一维卷积网络层(即时域卷积),用以在一维输入向量上进行邻域滤波,这一网络层将输入向量与卷积核按照单一的时域方向进行卷积,并生成用于后续网络层学习的三维特征张量;
其中,在步骤6.4所述的“GlobalMaxPooling1D层”,是指一种一维全局最大池化网络层,这一网络层将三维特征张量进行最大池化处理,生成用于后续网络层学习的二维特征张量;
其中,在步骤6.9所述的“Dense层”,是指一种全连接网络层,这一网络层用于抽取特征张量,并输出样本数据所属类别的概率分布。
其中,在步骤7中所述的“设定DNN输入层、各隐藏层、输出层的参数以及学习机制”,其作法如下:
步骤7.1:设定Embedding网络层参数,输入维数为dicL,输出维数为emL,输入长度为L1;
步骤7.4:设定Dropout网络层的概率参数均为0.2;
步骤7.6:设定DNN的损失函数为多分类交叉熵,参数优化方法为Adam方法,评估指标为DNN对于样本所属类别的识别准确率。
其中,在步骤7.6所述的“多分类交叉熵”,是指一种对数损失函数,用来衡量多分类模型的预测值和真实值之间的误差,交叉熵越小,说明匹配得越准确,模型准确率越高;所述的“Adam方法”,是指一种基于梯度的优化方法,该方法能根据参数梯度的一阶矩估计和二阶矩估计,动态地调整DNN中每个参数的学习速率。
其中,在步骤8中所述的“利用建立的权重矩阵初始化DNN的输入层”,其作法如下:设定DNN的Embedding层的初始化权重参数为权重矩阵W,并设定Embedding层利用权重参数W进行微调训练;
其中,在步骤9中所述的“对故障案例样本索引矩阵和样本标签矩阵进行划分”,其作法如下:首先对样本索引矩阵X与标签矩阵Y进行合并以得到样本集Z=(X,Y)={(xi,yi)|i=1,…,N},设定学习与测试数据划分比例,对Z进行划分,分别得到学习数据集和测试数据集;然后设置学习数据集的批量数目,按照批量数对学习数据集随机划分,最后设定训练与验证划分比例,对所有批次的学习数据集进行划分,得到每个批次对应的训练样本和验证样本;
其中,在步骤10中所述的“利用训练数据集和验证数据集对DNN进行训练,利用测试数据集对DNN的识别准确率进行测试”,其作法如下:设置DNN的学习轮次数目,使用批量训练样本和验证数据集对DNN进行多轮学习,多轮次学习后,使用测试数据集对DNN识别故障案例样本所属类型的准确性进行验证。
通过上述步骤,可以实现基于迁移学习与DNN的软件故障诊断方法,该方法首先采用基于word2vec的语言模型对大规模语料库进行预训练,获得丰富的词嵌入向量。其次对故障案例文本词汇与语言模型的词嵌入向量进行匹配,获得词嵌入权重。再次构建用于软件故障分类的DNN模型。最后,将词嵌入权重迁移至DNN的词嵌入层,利用案例样本数据微调DNN整体参数,完成模型的训练与测试。得到的模型能够利用待诊断的软件故障描述文本信息提取有效的语义特征数据,用于准确地识别具体的故障类型。
本发明与现有技术相比的优点在于:目前,基于信息检索的故障诊断方法在语义表示精度方面和文本内容扩展方面存在缺陷,对软件故障识别的准确率和效率造成了影响。而本发明采用词嵌入方法对案例文本进行分布表征,以充分地获取并准确地表示文本的语义信息。利用迁移学习技术从预训练模型中快速匹配案例文本的词嵌入权重用于DNN的构建,DNN通过多隐藏层结构提取文本的隐含语义信息,并能够利用语义特征数据精确地识别案例的故障类型。
附图说明
图1为本发明的总体步骤流程。
图2为本发明的故障案例文本处理流程。
图3为本发明的权重矩阵构建流程。
图4为本发明的样本数据集划分流程。
图5为本发明的DNN整体结构。
图中序号、符号、代号说明如下:
图1中的“步骤1~10”是本发明技术方案中对应的步骤;
图1中的“DNN”是深度神经网络,用于识别软件故障的具体类型;
图5中的“Embedding层”是嵌入层,用于将索引矩阵转换为二维特征张量;
图5中的“Dropout网络层”是优化网络层,用于减轻模型的过拟合问题;
图5中的“CNN层”是多层卷积神经网络,用于提取文本向量的特征;
图5中的“Conv1D网络层”是一维卷积网络层,用于抽取文本特征并生成三维特征张量;
图5中的“GlobalMaxPooling1D层”是一维全局最大池化网络层,用于对三维特征张量进行最大池化处理以生成二维特征张量;
图5中的“Dense层”是全连接网络层,这一网络层用于抽取并特征张量,输出样本数据所属类别的概率分布;
图5中的“X”是故障案例的词嵌入向量;
图5中的“Y”是故障案例所属故障类别的概率值。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图进行详细描述。
本发明提出了一种基于迁移学习与DNN的软件故障诊断方法,该方法采用词嵌入对文本词语进行分布表征,以充分地获取语义信息。利用迁移学习机制,将源领域中采用语料库预训练的语言模型的词嵌入权重转移至目标领域的DNN中。通过微调对DNN进行训练。训练完成的DNN在输入软件故障描述信息后,能有效地识别故障的具体类型。
本发明一种基于迁移学习与DNN的软件故障诊断方法,如图1所示,其具体构建步骤如下:
步骤一:搜集大量的软件故障案例,统计每个案例对应的故障类型信息作为标签数据;
步骤二:对故障案例文本进行预处理,并读入案例文本以构建故障词典,案例文本的处理流程如图2所示,其作法如下:
步骤2.1:读入所有故障案例样本FC={fci|i=1,…,N},其中,fci为第i个案例样本,N为样本数目。以空格字符作为分隔符对各样本的文本词语进行分词处理,并将文本词语中存在的大写字符转换为小写字符,得到样本集FC’={fci’|i=1,…,N};
步骤2.2:筛除各样本中的标点符号、特殊符号以及停用词,以降低样本的文本长度,得到样本集FC”={fci”|i=1,…,N};
步骤2.3:设定案例样本的最大文本长度L1,若样本集FC”内的样本fci”的长度小于L1,则在fci”的头部补上对应数目的自定义词汇“_PAD_”;若fci”的长度大于L1,则在fci’的头部截去对应数目的文本词汇,得到样本集FC”’={fci”’|i=1,…,N};
步骤2.4:读入预处理后的样本集FC”’,对样本的文本词汇频数进行统计;
步骤2.5:按照词汇统计频数由大到小的顺序排名,将所有样本的词汇写入至词典。额外添加两个词汇“_PAD_”和“_UKN_”至词典的第一位和第二位,得到词典的词汇数目dicL。其中,词汇“_PAD_”表示填充词汇,用于填充词汇数目小于规定值的样本,词汇“_UKN_”表示未知词汇,用于后续的匹配分析;
步骤2.6:对词典中的词汇分配索引数字,得到“词汇-索引”映射表;
步骤三:构建案例样本索引矩阵以及样本标签矩阵,其作法如下:
步骤3.1:构建尺寸为N*L1的索引矩阵X,用于保存样本的词汇索引值;
步骤3.2:读取样本集FC”’={fci”’|i=1,…,N},根据“词汇-索引”映射表,将fci”’内的词汇转换为对应的索引数字,并写入至矩阵X;
步骤3.3:读取样本集FC”’对应的标签数据集LB={lbi∈{j}|i=1,…,N,j=1,…,L2},其中,lbi为第i个案例样本对应的标签,N为样本数目,L2为标签的类型数目;
步骤3.4:构建尺寸为N*L2的标签矩阵Y,用于保存样本的标签编码向量;
步骤3.5:对lbi进行独热编码,获得对应的标签向量,并写入至矩阵Y,独热编码是指一种编码方法,可以将类别变量转换为用于机器学习的0-1向量;
步骤四:大规模语料库是指用文本分类、文本挖据以及信息检索研究的开源标准数据集,由数目单位为万级的新闻文档组成,能够涵盖自然语言中绝大部分词汇。基于word2vec的语言模型是一种无监督神经网络模型,这一模型以大量的文本语料作为输入,通过调节中间隐藏层的权重来学习文本词汇间的关联关系,最后输出语料词汇对应的嵌入向量,这些嵌入向量能够有效表示词语的语义特征。利用大规模语料库对基于word2vec的语言模型进行预训练,来获得语料库词汇的嵌入向量,其作法如下:首先载入用于语言模型学习的语料库文本数据,然后设定语言模型的训练方法类型、输出嵌入向量长度、词汇滑窗长度、训练并行数目以及训练迭代次数这一系列参数,随后采用无监督学习机制,利用语料库数据对语言模型进行训练,最后得到语言模型的权重以及语料库文本词汇对应的嵌入向量(维数为emL);
步骤五:构建权重矩阵,匹配软件故障词典词汇与语料库词汇的嵌入向量,,将向量写出至该权重矩阵,权重矩阵的构建流程如图3所示,其作法如下:
步骤5.1:构建尺寸为L1*emL的权重矩阵W,用于保存软件故障词典中词对应的嵌入向量;
步骤5.2:设定软件故障词典中词“_PAD_”嵌入向量是维数为emL的全零向量,词典中词“_UKN_”的嵌入向量是均匀初始化得到的维数为emL的嵌入向量;
步骤5.2:读取词典的词,利用语言模型查找词典中词对应的嵌入向量;
步骤5.3:若语言模型中未匹配到对应词的嵌入向量,则该词的嵌入向量替换为“_UKN_”的嵌入向量;
步骤5.4:利用“词汇-索引”映射表获得词典的词索引,并将得到的嵌入向量写入至权重矩阵W对应的行数;
步骤5.5:重复执行“步骤5.2”~“步骤5.4”,直至完成对词典的遍历,并得到保存词嵌入向量的权重矩阵W;
步骤六:设定用于软件故障诊断的DNN整体模块结构,其作法如下:
步骤6.1:设定DNN的第一层(输入层)为Embedding层,Embedding层是一种嵌入网络层,这一网络层用于将索引矩阵X转换为具有固定大小的二维特征张量,供后续网络层学习使用;
步骤6.2:设定DNN的第二层为Dropout层,Dropout层是一种深度学习环境中应用的优化网络层,在DNN训练过程中,这一网络层以概率p舍弃神经元,并让其它神经元以概率q=1-p保留,每个神经元被舍弃的概率是相同的,舍弃的神经元的输出均设置为零;通过这种方式减轻DNN的过拟合问题,一定程度上达到正则化效果;
步骤6.3:设定DNN的第三层为Conv1D层,Conv1D层是一种一维卷积网络层(即时域卷积),用以在一维输入向量上进行邻域滤波,这一网络层将输入向量与卷积核按照单一的时域方向进行卷积,并生成用于后续网络层学习的三维特征张量;
步骤6.4:设定DNN的第四层为GlobalMaxPooling1D层,是一种一维全局最大池化网络层,这一网络层将三维特征张量进行最大池化处理,生成用于后续网络层学习的二维特征张量;
步骤6.5:设定DNN的第五层为Dropout层;
步骤6.6:设定DNN的第六层为Conv1D层;
步骤6.7:设定DNN的第七层为GlobalMaxPooling1D层;
步骤6.8:设定DNN的第八层为Dropout层;
步骤6.9:设定DNN的第九层(输出层)为Dense层,Dense层是一种全连接网络层,这一网络层用于抽取特征张量,并输出样本数据所属类别的概率分布;
步骤七:设定DNN输入层、各隐藏层、输出层的参数以及学习机制,其作法如下:
步骤7.1:设定Embedding网络层参数,输入维数为dicL,输出维数为emL,输入长度为L1;
步骤7.4:设定Dropout网络层的概率参数均为0.2;
步骤7.6:设定DNN的损失函数为多分类交叉熵,多分类交叉熵是一种对数损失函数,用来衡量多分类模型的预测值和真实值之间的误差,交叉熵越小,说明匹配得越准确,模型准确率越高。设定DNN的参数优化方法为Adam方法,Adam方法是一种基于梯度的优化方法,该方法能根据参数梯度的一阶矩估计和二阶矩估计,动态地调整DNN中每个参数的学习速率。设定DNN的评估指标为对样本所属类别的识别准确率;
步骤八:利用建立的权重矩阵初始化DNN的输入层,设定DNN的Embedding层的初始化权重参数为权重矩阵W,并设定Embedding层利用权重参数W进行微调训练;
步骤九:对故障案例样本索引矩阵和样本标签矩阵进行划分,样本矩阵的划分流程如图4所示,首先对样本索引矩阵X与标签矩阵Y进行合并以得到样本集Z=(X,Y)={(xi,yi)|i=1,…,N},设定学习与测试数据划分比例,对Z进行划分,分别得到学习数据集和测试数据集;然后设置学习数据集的批量数目,按照批量数对学习数据集随机划分,最后设定训练与验证划分比例,对所有批次的学习数据集进行划分,得到每个批次对应的训练样本和验证样本;
步骤十:利用训练数据集和验证数据集对DNN进行训练,设置DNN的学习轮次数目,使用批量训练样本和验证数据集对DNN进行多轮学习,多轮次学习后,使用测试数据集对DNN识别故障案例样本所属类型的准确性进行验证。
通过上述步骤,可以实现基于迁移学习与DNN的软件故障诊断方法,这一方法首先采用语言模型对大规模语料库进行预训练,获得丰富的词嵌入向量。其次对故障案例文本词汇与语言模型的词嵌入向量进行匹配,获得词嵌入权重。再次构建用于软件故障分类的DNN模型。最后,将词嵌入权重迁移至DNN的词嵌入层,如图5所示,利用案例样本数据微调DNN整体参数,完成模型的训练与测试。得到的DNN能够利用待诊断的软件故障描述文本信息提取有效的语义特征数据,准确地识别具体的故障类型。
本发明未详细阐述部分属于本领域公知技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (9)
1.一种基于迁移学习与DNN的软件故障诊断方法,其特征在于:该方法步骤如下:
步骤1、搜集软件故障案例,统计每个案例对应的故障类型信息作为标签数据;
步骤2、对故障案例文本进行预处理,构建软件故障词典;
步骤3、构建故障案例样本索引矩阵以及样本标签矩阵;
步骤4、利用大规模语料库对基于word2vec的语言模型进行预训练,获得语料库词汇的嵌入向量;
步骤5、构建权重矩阵,匹配软件故障词典词汇与语料库词汇的嵌入向量,将向量写出至该权重矩阵;
步骤6、设定用于软件故障诊断的DNN整体模块结构;
步骤7、设定DNN输入层、各隐藏层、输出层的参数以及学习机制;
步骤8、利用步骤5建立的权重矩阵初始化DNN的输入层;
步骤9、对故障案例样本索引矩阵和样本标签矩阵进行划分,得到训练数据集、验证数据集以及测试数据集;
步骤10、利用训练数据集和验证数据集对DNN进行训练,利用测试数据集对DNN的识别准确率进行测试;
在步骤2中所述的“对故障案例文本进行预处理”,其作法如下:
步骤2.1:读入所有故障案例样本FC={fci|i=1,…,N},其中,fci为第i个案例样本,N为样本数目;以空格字符作为分隔符对各样本的文本词语进行分词处理,并将文本词语中存在的大写字符转换为小写字符,得到样本集FC’={fci’|i=1,…,N};
步骤2.2:筛除各样本中的标点符号、特殊符号以及停用词,以降低样本的文本长度,得到样本集FC”={fci”|i=1,…,N};
步骤2.3:设定案例样本的最大文本长度L1,若样本集FC”内的样本fci”的长度小于L1,则在fci”的头部补上对应数目的自定义词汇“_PAD_”;若fci”的长度大于L1,则在fci’的头部截去对应数目的文本词汇,得到样本集FC”’={fci”’|i=1,…,N};
其中,在步骤2中所述的“构建软件故障词典”,其作法如下:
步骤2.4:读入预处理后的样本集FC”’,对样本的文本词汇频数进行统计;
步骤2.5:按照词汇统计频数由大到小的顺序排名,将所有样本的词汇写入至词典;额外添加两个词汇“_PAD_”和“_UKN_”至词典的第一位和第二位,得到词典的词汇数目dicL;其中,词汇“_PAD_”表示填充词汇,用于填充词汇数目小于规定值的样本,词汇“_UKN_”表示未知词汇,用于后续的匹配分析;
步骤2.6:对词典中的词汇分配索引数字,得到“词汇-索引”映射表。
2.根据权利要求1所述的一种基于迁移学习与DNN的软件故障诊断方法,其特征在于:在步骤3中所述的“构建案例样本索引矩阵以及样本标签矩阵”,其作法如下:
步骤3.1:构建尺寸为N*L1的索引矩阵X,用于保存样本的词汇-索引值;
步骤3.2:读取样本集FC”’={fci”’|i=1,…,N},根据“词汇-索引”映射表,将fci”’内的词汇转换为对应的索引数字,并写入至矩阵X;
步骤3.3:读取样本集FC”’对应的标签数据集LB={lbi∈{j}|i=1,…,N,j=1,…,L2},其中,lbi为第i个案例样本对应的标签,N为样本数目,L2为标签的类型数目;
步骤3.4:构建尺寸为N*L2的标签矩阵Y,用于保存样本的标签编码向量;
步骤3.5:对lbi进行独热编码,获得对应的标签向量,并写入至标签矩阵Y。
3.根据权利要求1所述的一种基于迁移学习与DNN的软件故障诊断方法,其特征在于:步骤4中所述的“利用大规模语料库对基于word2vec的语言模型进行预训练”,其作法如下:首先载入用于语言模型学习的语料库文本数据,然后设定语言模型的训练方法类型、输出嵌入向量长度、词汇滑窗长度、训练并行数目以及训练迭代次数这一系列参数,随后采用无监督学习机制,利用语料库数据对语言模型进行训练,最后得到语言模型的权重以及语料库文本词汇对应的嵌入向量,维数为emL。
4.根据权利要求1所述的一种基于迁移学习与DNN的软件故障诊断方法,其特征在于:步骤5中所述的“构建权重矩阵,匹配软件故障词典词汇与语料库词汇的嵌入向量,将向量写出至该权重矩阵”,其作法如下:
步骤5.1:构建尺寸为L1*emL的权重矩阵W,用于保存软件故障词典中词对应的嵌入向量;
步骤5.2:设定软件故障词典中词“_PAD_”嵌入向量是维数为emL的全零向量,词典中词“_UKN_”的嵌入向量是均匀初始化得到的维数为emL的嵌入向量;
步骤5.2:读取软件故障词典的词,利用语言模型查找词典中词对应的嵌入向量;
步骤5.3:若语言模型中未匹配到对应词的嵌入向量,则该词的嵌入向量替换为“_UKN_”的嵌入向量;
步骤5.4:利用“词汇-索引”映射表获得词典的词索引,并将得到的嵌入向量写入至权重矩阵W对应的行数;
步骤5.5:重复执行“步骤5.2”~“步骤5.4”,直至完成对软件故障词典的遍历,并得到保存词嵌入向量的权重矩阵W。
5.根据权利要求1所述的一种基于迁移学习与DNN的软件故障诊断方法,其特征在于:步骤6中所述的“设定用于软件故障诊断的DNN整体模块结构”,其作法如下:
步骤6.1:设定DNN的第一层即输入层为Embedding层;
步骤6.2:设定DNN的第二层为Dropout层;
步骤6.3:设定DNN的第三层为Conv1D层;
步骤6.4:设定DNN的第四层为GlobalMaxPooling1D层;
步骤6.5:设定DNN的第五层为Dropout层;
步骤6.6:设定DNN的第六层为Conv1D层;
步骤6.7:设定DNN的第七层为GlobalMaxPooling1D层;
步骤6.8:设定DNN的第八层为Dropout层;
步骤6.9:设定DNN的第九层即输出层为Dense层。
6.根据权利要求5所述的一种基于迁移学习与DNN的软件故障诊断方法,其特征在于:步骤7中所述的“设定DNN输入层、各隐藏层、输出层的参数以及学习机制”,其作法如下:
步骤7.1:设定Embedding网络层参数,输入维数为dicL,输出维数为emL,输入长度为L1;
步骤7.4:设定Dropout网络层的概率参数均为0.2;
步骤7.6:设定DNN的损失函数为多分类交叉熵,参数优化方法为Adam方法,评估指标为DNN对于样本所属类别的识别准确率。
7.根据权利要求6所述的一种基于迁移学习与DNN的软件故障诊断方法,其特征在于:步骤8中所述的“利用建立的权重矩阵初始化DNN的输入层”,其作法如下:设定DNN的Embedding层的初始化权重参数为权重矩阵W,并设定Embedding层利用权重参数W进行微调训练。
8.根据权利要求1所述的一种基于迁移学习与DNN的软件故障诊断方法,其特征在于:步骤9中所述的“对故障案例样本索引矩阵和样本标签矩阵进行划分”,其作法如下:首先对样本索引矩阵X与标签矩阵Y进行合并以得到样本集Z=(X,Y)={(xi,yi)|i=1,…,N},设定学习与测试数据划分比例,对Z进行划分,分别得到学习数据集和测试数据集;然后设置学习数据集的批量数目,按照批量数对学习数据集随机划分,最后设定训练与验证划分比例,对所有批次的学习数据集进行划分,得到每个批次对应的训练样本和验证样本。
9.根据权利要求1所述的一种基于迁移学习与DNN的软件故障诊断方法,其特征在于:步骤10中所述的“利用训练数据集和验证数据集对DNN进行训练,利用测试数据集对DNN的识别准确率进行测试”,其作法如下:设置DNN的学习轮次数目,使用批量训练样本和验证数据集对DNN进行多轮学习,多轮次学习后,使用测试数据集对DNN识别故障案例样本所属类型的准确性进行验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910001610.6A CN109766277B (zh) | 2019-01-02 | 2019-01-02 | 一种基于迁移学习与dnn的软件故障诊断方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910001610.6A CN109766277B (zh) | 2019-01-02 | 2019-01-02 | 一种基于迁移学习与dnn的软件故障诊断方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109766277A CN109766277A (zh) | 2019-05-17 |
CN109766277B true CN109766277B (zh) | 2020-12-25 |
Family
ID=66453499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910001610.6A Active CN109766277B (zh) | 2019-01-02 | 2019-01-02 | 一种基于迁移学习与dnn的软件故障诊断方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766277B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245233A (zh) * | 2019-06-19 | 2019-09-17 | 北京航空航天大学 | 一种故障确定方法及装置 |
CN110428803B (zh) * | 2019-07-22 | 2020-04-28 | 北京语言大学 | 一种基于发音属性的发音人国别识别模型建模方法及系统 |
CN110442684B (zh) * | 2019-08-14 | 2020-06-30 | 山东大学 | 一种基于文本内容的类案推荐方法 |
CN110502277B (zh) * | 2019-08-30 | 2023-04-07 | 西安邮电大学 | 一种基于bp神经网络的代码坏味检测方法 |
CN110728328B (zh) * | 2019-10-22 | 2022-03-01 | 支付宝(杭州)信息技术有限公司 | 分类模型的训练方法和装置 |
CN113269323B (zh) * | 2020-02-17 | 2024-03-12 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、处理装置、电子设备及存储介质 |
CN111339249B (zh) * | 2020-02-20 | 2022-05-24 | 齐鲁工业大学 | 一种联合多角度特征的深度智能文本匹配方法和装置 |
CN113553841B (zh) * | 2020-04-26 | 2024-02-20 | 顺丰科技有限公司 | 词的表征方法、装置、电子设备及存储介质 |
CN111783437A (zh) * | 2020-06-03 | 2020-10-16 | 广州云趣信息科技有限公司 | 基于深度学习实现语种识别的方法 |
CN112328469B (zh) * | 2020-10-22 | 2022-03-18 | 南京航空航天大学 | 一种基于嵌入技术的函数级缺陷定位方法 |
CN112506667A (zh) * | 2020-12-22 | 2021-03-16 | 北京航空航天大学杭州创新研究院 | 一种基于多任务优化的深度神经网络训练方法 |
CN113205484B (zh) * | 2021-04-06 | 2022-08-05 | 武汉大学 | 一种基于迁移学习的乳腺组织分类识别方法 |
CN114660993B (zh) * | 2022-05-25 | 2022-08-19 | 中科航迈数控软件(深圳)有限公司 | 一种基于多源异构数据特征降维的数控机床故障预测方法 |
CN116774678B (zh) * | 2023-08-24 | 2023-10-13 | 北京航空航天大学 | 一种基于迁移学习的列车控制系统入侵检测方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766324A (zh) * | 2017-09-25 | 2018-03-06 | 浙江大学 | 一种基于深度神经网络的文本一致性分析方法 |
CN108427670A (zh) * | 2018-04-08 | 2018-08-21 | 重庆邮电大学 | 一种基于语境词向量和深度学习的情感分析方法 |
CN109034368A (zh) * | 2018-06-22 | 2018-12-18 | 北京航空航天大学 | 一种基于dnn的复杂设备多重故障诊断方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406162A (zh) * | 2016-08-12 | 2017-02-15 | 广东技术师范学院 | 一种基于迁移神经网络的交流伺服控制系统 |
CN106569954A (zh) * | 2016-11-08 | 2017-04-19 | 南京航空航天大学 | 一种基于kl散度的多源软件缺陷预测方法 |
US11631236B2 (en) * | 2017-03-14 | 2023-04-18 | Samsung Electronics Co., Ltd. | System and method for deep labeling |
-
2019
- 2019-01-02 CN CN201910001610.6A patent/CN109766277B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766324A (zh) * | 2017-09-25 | 2018-03-06 | 浙江大学 | 一种基于深度神经网络的文本一致性分析方法 |
CN108427670A (zh) * | 2018-04-08 | 2018-08-21 | 重庆邮电大学 | 一种基于语境词向量和深度学习的情感分析方法 |
CN109034368A (zh) * | 2018-06-22 | 2018-12-18 | 北京航空航天大学 | 一种基于dnn的复杂设备多重故障诊断方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109766277A (zh) | 2019-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109766277B (zh) | 一种基于迁移学习与dnn的软件故障诊断方法 | |
Mathur et al. | Detecting offensive tweets in hindi-english code-switched language | |
CN112084327B (zh) | 在保留语义的同时对稀疏标注的文本文档的分类 | |
US8886579B2 (en) | Methods, apparatus and products for semantic processing of text | |
CN111738003B (zh) | 命名实体识别模型训练方法、命名实体识别方法和介质 | |
CN112732916B (zh) | 一种基于bert的多特征融合模糊文本分类系统 | |
Ghosh et al. | Performance analysis of state of the art convolutional neural network architectures in Bangla handwritten character recognition | |
CN113806494B (zh) | 一种基于预训练语言模型的命名实体识别方法 | |
US11900250B2 (en) | Deep learning model for learning program embeddings | |
CN114896388A (zh) | 一种基于混合注意力的层级多标签文本分类方法 | |
Ma et al. | Lightweight attention convolutional neural network through network slimming for robust facial expression recognition | |
CN114168709B (zh) | 一种基于轻量化预训练语言模型的文本分类方法 | |
CN111414481A (zh) | 基于拼音和bert嵌入的中文语义匹配方法 | |
Wu et al. | Chinese text classification based on character-level CNN and SVM | |
CN112732872B (zh) | 面向生物医学文本的基于主题注意机制的多标签分类方法 | |
CN111582506A (zh) | 基于全局和局部标记关系的偏多标记学习方法 | |
CN114722835A (zh) | 基于lda和bert融合改进模型的文本情感识别方法 | |
CN114547230A (zh) | 一种智能行政执法案例信息抽取和案由认定方法 | |
Elleuch et al. | The Effectiveness of Transfer Learning for Arabic Handwriting Recognition using Deep CNN. | |
Nouhaila et al. | Arabic sentiment analysis based on 1-D convolutional neural network | |
CN110674293A (zh) | 一种基于语义迁移的文本分类方法 | |
Sevim et al. | Document image classification with vision transformers | |
CN114722818A (zh) | 一种基于对抗迁移学习的命名实体识别模型 | |
Abdelhady et al. | Stacked-CNN-BiLSTM-COVID: An effective stacked ensemble deep learning framework for sentiment analysis of arabic COVID-19 tweets | |
Sharma et al. | Optical Character Recognition Using Hybrid CRNN Based Lexicon-Free Approach with Grey Wolf Hyperparameter Optimization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220331 Address after: 100191 No. 37, Haidian District, Beijing, Xueyuan Road Patentee after: BEIHANG University Patentee after: China Aviation Launch Control System Research Institute Address before: 100191 No. 37, Haidian District, Beijing, Xueyuan Road Patentee before: BEIHANG University |
|
TR01 | Transfer of patent right |