sigmoid参数(sigmoid参数量)

sigmoid参数(sigmoid参数量)img src http img xjishu com img zl 2021 12 17 y2braaroi jpg alt 一种基于残差跳跃连接的门控循环单元的文本分类方法 br br 1 本发明涉及一种基于残差跳跃连接的门控循环单元的文本分类方法 br lt

大家好,我是讯享网,很高兴认识大家。




讯享网

 <img src="http://img.xjishu.com/img/zl/2021/12/17/y2braaroi.jpg" alt="一种基于残差跳跃连接的门控循环单元的文本分类方法" /><br/><br/>1.本发明涉及一种基于残差跳跃连接的门控循环单元的文本分类方法。<br/><br/><br/><b>背景技术:</b><br/><br/>2.近年来,深度学习在天文、地理、工业等科技领域得到广泛应用。时间序列数据在我们的日常生活中无处不在,从股市走势、不同城市的气候数据、一段时间的产品销售情况、能源使用状况等等。其中,网络上的文本数据也是日益增多,这些数据主要应用于舆情监测、信息检索、及新闻文本分类等领域。如果能对这些数据进行有效分类,那么就会更有利于从中挖掘出有价值的信息,因此对文本数据的管理和整合显得尤为重要。文本分类属于自然语言处理任务中的一项基础性工作,通过利用计算机相关理论知识及技能,达到对文本资源进行整理和归类的目的。现有的文本分类技术有存在一些不完善之处,比如:fasttext方法,其缺点是没有完全考虑词序信息,textcnn方法,其缺点一方面无法建立更长的序列信息,另一方面它的超参调节额外繁琐。神经网络方法:循环神经网络(rnn)具有捕获和利用顺序依赖性的能力,广泛用于处理此类时间序列数据,尤其是在机器翻译、文本分类、语音识别和其他任务。然而,随着网络的加深,传统的rnn会出现梯度消失的问题。虽然长短期记忆网络(lstm)及门控循环单元(gru)方法可以捕获长期上下文信息,但它们的门结构的复杂性使得训练速度变慢。虽然简单循环单元(sru)方法能减少神经网络的训练时间,但其精度无法满足需求。<br/><br/><br/><b>技术实现要素:</b><br/><br/>3.发明目的:为解决背景技术中存在的技术问题,本发明提出一种基于残差跳跃连接的门控循环单元的文本分类方法。包括以下所述步骤:<br/>4.步骤1,定义数据集的词汇表并将词汇表的文本数据进行预处理,去除文本中的不规范数据(乱码或空行);<br/>5.步骤2,将步骤1得到的文本信息进行门控循环单元神经网络建模;<br/>6.步骤3,设置门控循环单元神经网络的全连接层以及分类层;<br/>7.步骤4,为门控循环单元神经网络的表示中建立残差跳跃连接并引入高速公路网络门限控制方法;<br/>8.步骤5,将残差跳跃连接的门控循环单元的饱和激活函数改为非饱和激活函数;<br/>9.步骤6,设置残差跳跃连接的门控循环单元神经网络的权重初始化方式为正交初始化;<br/>10.步骤7,为残差跳跃连接的门控循环单元神经网络设置批标准化;<br/>11.步骤8,设置残差跳跃连接的门控循环单元神经网络的超参数;<br/>12.步骤9,配置残差跳跃连接的门控循环单元神经网络的损失函数以及优化器;<br/>13.步骤10,结合步骤1得到的文本信息,使用残差跳跃连接的门控循环单元神经网络进行文本分类。<br/>14.步骤1包括:<br/>15.定义数据集的词汇表,包括统计单词的出现频率和按词频顺序对单词进行排序;<br/>16.在定义词汇表后,将训练数据转化成单词的数字编号(按一定比例将数据集分为训练集和测试集,比例一般为7:3,训练集包括训练数据);<br/>17.对训练数据进行批处理,使用填充的方法,即将同一批块内的句子长度补齐;<br/>18.定义词向量层:在输入层(这里的输入层指的是数据向量化后,作为输入给门控循环单元神经网络,这层叫输入层),每个单词用一个实数向量表示,所述实数向量称为词向量,使用word2vec方法对文本进行向量化操作。<br/>19.步骤2包括:<br/>20.建立门控循环单元的循环神经网络的前向算法:建立更新门和重置门,设z<br/>t<br/>和r<br/>t<br/>分别为更新门向量和重置门向量,x<br/>t<br/>为当前层的t时刻的输入值,w<br/>z<br/>和w<br/>r<br/>为模型参数,即权重向量,u<br/>z<br/>、u<br/>r<br/>、u<br/>a<br/>为输入时序信息的权重,h<br/>t<br/>‑1为前一时刻的状态向量,b<br/>z<br/>和b<br/>r<br/>为偏置向量;更新门向量和重置门向量计算公式如下:<br/>21.z<br/>t<br/>=σ(w<br/>z<br/>x<br/>t<br/>+u<br/>z<br/>h<br/>t<br/>‑1+b<br/>z<br/>)<br/>22.r<br/>t<br/>=σ(w<br/>r<br/>x<br/>t<br/>+u<br/>r<br/>h<br/>t<br/>‑1+b<br/>r<br/>)<br/>23.式中,σ为sigmoid激活函数,sigmoid激活函数sigmoid(x)的计算公式如下:<br/>[0024][0025]<br/>其中,x为函数输入;e为自然常数;<br/>[0026]<br/>使用如下门控循环单元的输出公式:<br/>[0027]<br/>a<br/>t<br/>=g(w<br/>a<br/>x<br/>t<br/>+u<br/>a<br/>(h<br/>t<br/>‑1*r<br/>t<br/>)+b<br/>a<br/>)<br/>[0028]<br/>h<br/>t<br/>=z<br/>t<br/>*a<br/>t<br/>+(1<br/>‑<br/>z<br/>t<br/>)*h<br/>t<br/>‑1[0029]<br/>式中,a<br/>t<br/>是t时刻的候选隐状态,h<br/>t<br/>为当前时刻t的隐状态向量,候选隐状态的激活函数g(<br/>·<br/>)为tanh,w<br/>a<br/>为模型权重参数;<br/>[0030]<br/>其中,tanh激活函数tanh(x)的计算公式如下:<br/>[0031][0032]<br/>式中,x为函数输入。<br/>[0033]<br/>步骤3包括:<br/>[0034]<br/>在门控循环单元神经网络之后需要接全连接层来修正神经元输出值的维度,全连接层公式如下:<br/>[0035]<br/>f=w<br/>y<br/>h<br/>[0036]<br/>式中,w<br/>y<br/>为维度匹配矩阵;h为网络最后一层的神经元输出;f为全连接层输出值;<br/>[0037]<br/>在全连接层之后需连接分类层进行分类,通过如下归一化指数函数s(f)<br/>j<br/>公式进行分类处理:<br/>[0038][0039]<br/>式中,n为类别数;f<br/>j<br/>表示f的第j元素,j的范围为1到n;f<br/>n<br/>表示f的第n元素,n取值为1到n。<br/>[0040]<br/>步骤4包括:<br/>[0041]<br/>在门控循环单元结构的时间轴方向和空间轴反向上建立残差的跳跃连接,引入高速公路网络的门控限制,公式定义如下所示:<br/>[0042][0043][0044][0045][0046]<br/>h<br/>tl<br/>=(1<br/>‑<br/>z<br/>tl<br/>)<br/>⊙<br/>h<br/>t<br/>‑<br/>1l<br/>+z<br/>tl<br/>⊙<br/>a<br/>tl<br/>[0047]<br/>h<br/>tl<br/>=t(x)<br/>l<br/>⊙<br/>h<br/>tl<br/>+c(x)<br/>l<br/>⊙<br/>h<br/>t<br/>‑<br/>αl<br/>[0048]<br/>式中,<br/>⊙<br/>表示矩阵的点乘运算,l表示堆叠层数,为l层的t时刻的输入值,和为l层的模型参数,即权重向量,和为l层输入时序信息的权重,和分别为门控循环单元(gru)在l层的更新门、重置门和候选隐状态,为前一时刻的状态向量,v<br/>l<br/>是l层的维度匹配矩阵,当网络前后层维度一致时,则不需要维度匹配矩阵,是l层未激活的候选隐状态,g(<br/>·<br/>)为激活函数,为l层t时刻的输出状态,t(x)<br/>l<br/>与c(x)<br/>l<br/>是高速网络的门控限制;h<br/>t<br/>‑<br/>α<br/>表示在时间轴方向上建立残差连接,α表示神经元个数,其取值与句子的长度有关,为l层在t时刻的最终输出向量。<br/>[0049]<br/>步骤5包括:<br/>[0050]<br/>将残差跳跃连接的门控循环单元的饱和激活函数改为非饱和激活函数relu,得到l层t时刻的输出公式为:<br/>[0051][0052]<br/>式中,为l层t时刻的输出状态,为l层高速网络的门控限制,g(<br/>·<br/>)为relu激活函数,公式如下:<br/>[0053][0054]<br/>其中,x为函数输入值。<br/>[0055]<br/>步骤6包括:<br/>[0056]<br/>正交初始化是将权重参数w、w<br/>f<br/>、w<br/>r<br/>的初始值初始化为单位正交矩阵,单位正交矩阵a需满足如下条件:<br/>[0057]<br/>a为正交矩阵;<br/>[0058]<br/>a的转置a<br/>t<br/>为正交矩阵;<br/>[0059]<br/>aa<br/>t<br/>=e,e为单位矩阵;<br/>[0060]<br/>a的各行是单位向量且两两正交;<br/>[0061]<br/>a的各列是单位向量且两两正交;<br/>[0062]<br/>(ax,ay)=(x,y),x,y都为常数;a是正交矩阵;<br/>[0063]<br/>|a|=1或<br/>‑<br/>1;<br/>[0064]<br/>a的维度为权重所在的神经网络层的神经元个数。<br/>[0065]<br/>步骤7包括:<br/>[0066]<br/>批标准化公式如下:<br/>[0067][0068][0069][0070]<br/>其中,为输入值z<br/>i<br/>经过标准化之后的新输入值;σ2为方差;μ为均值;m为输入的维度;参数ε等于10<br/>‑8。<br/>[0071]<br/>步骤8包括:<br/>[0072]<br/>参数设置:隐藏层的神经元数量设置为650,embedding设置为650,初始学习率设置为1,设置每次迭代后若交叉训练集精准度下降则下次迭代的学习率自动衰减。迭代次数epoch设置为40次,batch设置为35,神经元丢弃率dropout设置为50%。使用nvidia geforce rtx 2080ti进行cuda加速训练。<br/>[0073]<br/>步骤9包括:<br/>[0074]<br/>针对残差跳跃连接所设计的连接项即单元状态的反向传播有如下推导:<br/>[0075]<br/>推导误差项之前的部分设定及公式:<br/>[0076]<br/>relu函数的导数relu(x)<br/>′<br/>和sigmoid函数的导数sigmoid(x)<br/>′<br/>分别为:<br/>[0077][0078]<br/>sigmoid(x)<br/>′<br/>=sigmoid(x)(1<br/>‑<br/>sigmoid(x))<br/>[0079]<br/>式中,x为输入值,符号<br/>′<br/>为求导符;<br/>[0080]<br/>对残差跳跃连接的门控循环单元神经网络的单元状态公式进行等效替换,令:<br/>[0081]<br/>f(m)=w<br/>a<br/>x<br/>t<br/>+u<br/>a<br/>(h<br/>t<br/>‑1⊙<br/>r<br/>t<br/>)+b<br/>a<br/>[0082]<br/>式中,w<br/>a<br/>为权重向量,u<br/>a<br/>为输入时序信息的权重,b<br/>a<br/>为偏移量;f(m)是一个代数符号;<br/>[0083]<br/>设定当前状态时刻为t,设l为计算的误差项所在层数,p为当前网络层数,则有:<br/>[0084][0085]<br/>式中,表示在p层未激活的候选隐状态,表示在l层未激活的候选隐状态;<br/>[0086]<br/>对求的偏导,得到:<br/>[0087]<br/>[0088]<br/>式中,为求偏导符号,i表示单位矩阵;<br/>[0089]<br/>得出单元状态的第l层的误差项为:<br/>[0090][0091][0092][0093]<br/>上式中,表示激活后的候选隐状态,e<br/>t<br/>表示在t时刻的误差,表示p层t时刻的隐状态向量,i表示单位矩阵,为p层重置门限。<br/>[0094]<br/>有益效果:本发明方法基于残差跳跃连接的门控循环单元(rt<br/>‑<br/>gru)是在误差反向传播(bp)方向将残差信息引入到门控循环单元(gru)的候选隐藏状态表示中,使网络对梯度变化更加敏感。并且在沿时间轴的反向传播(bptt)方向建立残差连接,使网络捕获非常长期的依赖。利用高速公路网络的门控来限制残差信息不占主要地位。此外,结合激活函数和批量归一化。本发明进行了三个应用实验测试,语言建模、文本分类和情感分析。实验结果表明,本发明的建模方法在上述三个应用中均得到不错的结果。<br/>附图说明<br/>[0095]<br/>下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。<br/>[0096]<br/>图1是本发明方法架构图。<br/>具体实施方式<br/>[0097]<br/>如图1所示,本发明提供了一种基于残差跳跃连接的门控循环单元的文本分类方法,包括以下所述步骤:<br/>[0098]<br/>步骤1,定义数据集的词汇表并将词汇表的文本数据进行预处理;<br/>[0099]<br/>步骤2,将步骤1得到的文本信息进行门控循环单元神经网络建模;<br/>[0100]<br/>步骤3,设置门控循环单元神经网络的全连接层以及分类层(softmax层);<br/>[0101]<br/>步骤4,为门控循环单元神经网络的表示中建立残差跳跃连接并引入高速公路网络门限控制方法;<br/>[0102]<br/>步骤5,将残差跳跃连接的门控循环单元的饱和激活函数改为非饱和激活函数;<br/>[0103]<br/>步骤6,设置残差跳跃连接的门控循环单元神经网络的权重初始化方式为正交初始化;<br/>[0104]<br/>步骤7,为残差跳跃连接的门控循环单元神经网络设置批标准化;<br/>[0105]<br/>步骤8,设置残差跳跃连接的门控循环单元神经网络的超参数;<br/>[0106]<br/>步骤9,配置残差跳跃连接的门控循环单元神经网络的损失函数以及优化器;<br/>[0107]<br/>步骤10,结合步骤1得到的文本信息,使用残差跳跃连接的门控循环单元神经网络进行文本分类,应用在文本分类任务以及情感分析任务中,验证有效性。<br/>[0108]<br/>步骤1包括:<br/>[0109]<br/>确定词汇表包括统计单词的出现频率和按词频顺序对单词进行排序。在确定词汇表后,就可以将训练数据,转化成单词的数字编号。确定词汇表后需要对文本数据进行批处理,由于每个句子的长度不同,又无法像图像一样可以调整到固定高度,所以需要使用填充的方法,即将同一批块内的句子长度补齐。定义词向量层:在输入层,每个单词用一个实数向量表示,这个向量被称为“词向量”。具体来说,词向量可以理解为将词汇表嵌入到一个固定的维度的实数空间中,其单词编号转化为词向量。这样做有两大作用:一是降低输入的维度。如果不使用词向量层,而直接把单词以one<br/>‑<br/>hot vector(独热编码)形式输入神经网络模型中,那么输入的维度大小将和词汇表的大小相同,通常在10000以上。而词向量的维度通常在200<br/>‑<br/>1000之间,这样循环神经网络的参数数量和计算量就得到大大地减少。二是增加语义信息。单纯的单词编号是不包含任何语义信息的,而词向量层将稀疏的编号转化为稠密的向量表示,就使得词向量有可能包含更为丰富的信息。<br/>[0110]<br/>步骤2包括:<br/>[0111]<br/>语言文本数据主要是时序数据,当输入数据是具有语义依赖性且是序列模式时,循环神经网络对数据序列的记忆有助于解决连续序列的问题,并且门控循环单元简化了状态计算,降低了神经网络训练耗时。<br/>[0112]<br/>建立门控循环单元的循环神经网络的前向算法:建立更新门和重置门,设z<br/>t<br/>和r<br/>t<br/>分别为更新门向量和重置门向量,x<br/>t<br/>为当前层的t时刻的输入值,w<br/>z<br/>和w<br/>r<br/>为模型参数,即权重向量,u<br/>z<br/>、u<br/>r<br/>、u<br/>a<br/>为输入时序信息的权重,h<br/>t<br/>‑1为前一时刻的状态向量,b<br/>z<br/>和b<br/>r<br/>为偏置向量;更新门向量和重置门向量计算公式如下:<br/>[0113]<br/>z<br/>t<br/>=σ(w<br/>z<br/>x<br/>t<br/>+u<br/>z<br/>h<br/>t<br/>‑1+b<br/>z<br/>)<br/>[0114]<br/>r<br/>t<br/>=σ(w<br/>r<br/>x<br/>t<br/>+u<br/>r<br/>h<br/>t<br/>‑1+b<br/>r<br/>)<br/>[0115]<br/>式中,σ为sigmoid激活函数,sigmoid激活函数sigmoid(x)的计算公式如下:<br/>[0116][0117]<br/>其中,x为函数输入;e为自然常数;<br/>[0118]<br/>使用如下门控循环单元的输出公式:<br/>[0119]<br/>a<br/>t<br/>=g(w<br/>a<br/>x<br/>t<br/>+u<br/>a<br/>(h<br/>t<br/>‑1*r<br/>t<br/>)+b<br/>a<br/>)<br/>[0120]<br/>h<br/>t<br/>=z<br/>t<br/>*a<br/>t<br/>+(1<br/>‑<br/>z<br/>t<br/>)*h<br/>t<br/>‑1[0121]<br/>式中,a<br/>t<br/>是t时刻的候选隐状态,h<br/>t<br/>为当前时刻t的隐状态向量,候选隐状态的激活函数g(<br/>·<br/>)为tanh,w<br/>a<br/>为模型权重参数;<br/>[0122]<br/>其中,tanh激活函数tanh(x)的计算公式如下:<br/>[0123][0124]<br/>式中,x为函数输入;<br/>[0125]<br/>步骤3包括:<br/>[0126]<br/>为了让输出值与分类层的维度匹配,在门控循环单元神经网络之后需要接全连接层来修正神经元输出值的维度,全连接层公式如下:<br/>[0127]<br/>f=w<br/>y<br/>h<br/>[0128]<br/>式中,w<br/>y<br/>为维度匹配矩阵,其意义为使h的维度与f的维度保持一致;h为残差门控循环神经网络最后一层的神经元输出;f为全连接层输出值;<br/>[0129]<br/>在全连接层之后需连接分类层进行分类,这里给出归一化指数函数s(f)<br/>j<br/>公式用于分类处理:<br/>[0130][0131]<br/>式中,f为全连接层的输出,也是此时归一化指数函数的输入;e为自然常数;n为类别数;f<br/>j<br/>表示f的第j元素,j的范围为1到n;f<br/>n<br/>表示f的第n元素,n取值为1到n。<br/>[0132]<br/>步骤4包括:<br/>[0133]<br/>在门控循环单元结构的时间轴方向(bptt)上及空间轴反向(bp)上建立残差跳跃连接,目的是使其能够回忆更久远的信息,捕获超长期趋势。为使残差信息不占据主要地位,引入高速公路网络的门控限制,仅让网络回忆更久远的信息,以此用来控制信息流。其公式定义如下所示:<br/>[0134][0135][0136][0137][0138]<br/>h<br/>tl<br/>=(1<br/>‑<br/>z<br/>tl<br/>)<br/>⊙<br/>h<br/>t<br/>‑<br/>1l<br/>+z<br/>tl<br/>⊙<br/>a<br/>tl<br/>[0139]<br/>h<br/>tl<br/>=t(x)<br/>l<br/>⊙<br/>h<br/>tl<br/>+c(x)<br/>l<br/>⊙<br/>h<br/>t<br/>‑<br/>αl<br/>[0140]<br/>式中,<br/>⊙<br/>表示矩阵的点乘运算,l表示堆叠层数,为l层的t时刻的输入值,和为l层的模型参数,即权重向量,和为l层输入时序信息的权重,和分别为门控循环单元(gru)在l层的更新门、重置门和候选隐状态,为前一时刻的状态向量,v<br/>l<br/>是l层的维度匹配矩阵,当网络前后层维度一致时,则不需要该矩阵,是l层未激活的候选隐状态,g(<br/>·<br/>)为激活函数,为l层t时刻的输出状态,t(x)<br/>l<br/>与c(x)<br/>l<br/>是高速网络的门控限制,不仅能够控制残差信息,同时也能在一定程度上防止过拟合问题;h<br/>t<br/>‑<br/>α<br/>表示在时间轴方向上建立残差连接,α表示神经元个数,其取值与句子的长度有关,为l层在t时刻的最终输出向量。<br/>[0141]<br/>步骤5包括:<br/>[0142]<br/>为了防止梯度消失并且加快收敛速度,将门控循环单元隐状态的激活函数替换为非饱和激活函数relu,由此可得l层t时刻的输出公式为:<br/>[0143][0144]<br/>式中,为l层t时刻的输出状态,g(<br/>·<br/>)为relu激活函数,公式如下:<br/>[0145][0146]<br/>其中,x为函数输入值。<br/>[0147]<br/>步骤6包括:<br/>[0148]<br/>正交初始化是将权重参数w、w<br/>f<br/>、w<br/>r<br/>的初始值初始化为单位正交矩阵,单位正交矩阵a需满足如下条件:<br/>[0149]<br/>a为正交矩阵;<br/>[0150]<br/>a的转置a<br/>t<br/>为正交矩阵;<br/>[0151]<br/>aa<br/>t<br/>=e,e为单位矩阵;<br/>[0152]<br/>a的各行是单位向量且两两正交;<br/>[0153]<br/>a的各列是单位向量且两两正交;<br/>[0154]<br/>(ax,ay)=(x,y),x,y都为常数;<br/>[0155]<br/>|a|=1或<br/>‑<br/>1;<br/>[0156]<br/>a的维度为权重所在的神经网络层的神经元个数。<br/>[0157]<br/>步骤7包括:<br/>[0158]<br/>批标准化:用来规范化某些层或者所有层的输入,从而固定每层输入信号的均值与方差。为了加快网络训练,应对非饱和激活函数的梯度爆炸隐患,为网络设置批标准化,批标准化公式如下:<br/>[0159][0160][0161][0162]<br/>其中,为输入值z<br/>i<br/>经过标准化之后的新输入值;σ2为方差;μ为均值;m为输入的维度;ε等于10<br/>‑8。<br/>[0163]<br/>步骤9包括:<br/>[0164]<br/>神经网络的训练是需要经过反复迭代来达到最终的收敛,而每一次的迭代过程都是要经过步骤2的公式进行正向传播,接着根据损失函数计算权重梯度完成反向传播的计算,一般的循环神经网络,误差项的反向传播包括两个方向,一个是沿时间的反向传播,另一个则是将误差在空间上向上一层传播。针对残差跳跃连接所设计的连接项即单元状态的反向传播有如下推导:<br/>[0165]<br/>推导误差项之前的部分设定及公式:<br/>[0166]<br/>relu以及sigmoid的导数分别为:<br/>[0167][0168]<br/>sigmoid(x)<br/>′<br/>=sigmoid(x)(1<br/>‑<br/>sigmoid(x))<br/>[0169]<br/>式中,x为输入值,符号<br/>′<br/>为求导符;<br/>[0170]<br/>对残差跳跃连接的门控循环单元神经网络的单元状态公式进行等效替换,同时为了计算方便,令<br/>[0171]<br/>f(m)=w<br/>a<br/>x<br/>t<br/>+u<br/>a<br/>(h<br/>t<br/>‑1⊙<br/>r<br/>t<br/>)+b<br/>a<br/>[0172]<br/>式中,w<br/>a<br/>为权重向量,u<br/>a<br/>为输入时序信息的权重,h<br/>t<br/>‑1为前一时刻的状态向量,b<br/>a<br/>为偏移量。<br/>[0173]<br/>假设当前状态时刻为t,设l为计算的误差项所在层数,p为当前网络层数,p层到l层之间有若干个网络层,则有:<br/>[0174][0175]<br/>式中,表示在p层未激活的候选隐状态,表示在l层未激活的候选隐状态;<br/>[0176]<br/>对求的偏导,得到:<br/>[0177][0178]<br/>式中,为求偏导符号,i表示单位矩阵;<br/>[0179]<br/>结合relu激活函数的性质以及链式求导法则,得出单元状态的第l层的误差项为:<br/>[0180][0181][0182][0183]<br/>上式中,表示激活后的候选隐状态,e<br/>t<br/>表示在t时刻的误差,表示p层t时刻的隐状态向量,i表示单位矩阵,为p层重置门限。<br/>[0184]<br/>在门控循环单元的基础上通过改变激活函数和引入高速连接在单元状态后,该误差项就能避免因l层到p层之间的空间结构信息传递的连续相乘而引起的梯度消失问题。同原本的gru相比,基于残差的gru将会对梯度变化更加敏感。<br/>[0185]<br/>参数设置:隐藏层的神经元数量设置为650,embedding设置为650,初始学习率设置为1,设置每次迭代后若交叉训练集精准度下降则下次迭代的学习率自动衰减。迭代次数epoch设置为40次,batch设置为35,神经元丢弃率dropout设置为50%。使用nvidia geforce rtx 2080ti进行cuda加速训练。<br/>[0186]<br/>实施例<br/>[0187]<br/>本发明为了更好的对实验效果进行展示,使用的数据集是ptb,实验结果见表1、表2及表3。数据集中包含了9998个不同的单词词汇,加上稀有词语的特殊符号和语句结束标记符,一共是10000个词汇。完成ptb数据集训练和测试的源码是基于pytorch官方的语言模型示例。为了让对比更充分,这里选择在此数据集上使用循环神经网络(rnn)、长短期记忆网络(lstm)、门控循环单元(gru)、transformer、简单循环单元(sru)、高速简单循环单元(h<br/>‑<br/>sru)、残差门控循环单元(r<br/>‑<br/>gru)、以及本发明提供的基于残差跳跃连接的门控循环单元(rt<br/>‑<br/>gru)进行对比实验。并且为了更好地比较各个网络的优劣,实验中用到的循环神经<br/>网络参数设置都是相同的,即隐藏层均设置650个神经元,embeddings(词嵌入)的大小均设置为650,丢弃率(drop out)的大小均设置为50%,以层数堆叠的方式来训练神经网络,每种神经网络分别进行3、5、7层的网络训练,权重初始化都为正交初始化;批处理量为4;所有的模型损失函数都为交叉熵损失函数;优化器都为均方根传递优化器,动量为0.95;初始学习率初始为1,设置动态衰减;都使用了批标准化技术;所有模型都进行40次迭代训练。<br/>[0188]<br/>评价标准采用困惑度(perplexity,ppl),其计算公式如下:<br/>[0189][0190]<br/>其中,s代表句子,n是句子长度,p(ω<br/>i<br/>)是第i个词的概率,p(ω<br/>i<br/>)越大,则ppl值越小,表明语言模型越好。<br/>[0191]<br/>表1<br/>[0192][0193]<br/>表1展示了网络深度在3层时,各类循环神经网络在ptb数据集上构建语言模型的具体ppl值,训练时间损耗及网络结构的参数量,其中relu+gru、residual+gru和r<br/>‑<br/>gru组成消融实验,r<br/>‑<br/>gru、t<br/>‑<br/>gru和rt<br/>‑<br/>gru组成消融实验,r<br/>‑<br/>gru为仅在bp方向建立残差连接,t<br/>‑<br/>gru为仅在bptt方向建立残差连接。<br/>[0194]<br/>表2<br/>[0195]<br/>[0196][0197]<br/>表2展示了网络深度在5层时,各类循环神经网络在ptb数据集上构建语言模型的具体ppl值,训练时间损耗及网络结构的参数量。可以从上表中看出,训练耗时及网络结构参数量会随着网络深度的增加而增加。<br/>[0198]<br/>表3<br/>[0199][0200][0201]<br/>表3展示了网络深度在7层时,各类循环神经网络在ptb数据集上构建语言模型的具体ppl值,训练时间损耗及网络结构的参数量。可以从上表中看出,传统的rnn结构在加深<br/>网络层数后,其ppl值不降反增,无法有效降低ppl值。<br/>[0202]<br/>通过表1、表2及表3的实验数据,可以发现:<br/>[0203]<br/>1)在预测单词的准确率方面:由于传统的rnn并没有任何门控限制其信息流通,因此其ppl值较高,而lstm、gru等网络的浅层结构都有着不错的性能,而深层结构性能反而变差,说明是由于梯度消失及网络退化等问题导致。而其他具备缓解梯度消失问题特性的结构,例如:激活函数或者跨层连接方式,相比之下能有效降低ppl值。在sru类网络中,仅改变激活函数的(relu+sru)结构,其性能在对应层数上不如原本的sru,而其他结构都能够优化sru,尤其是h<br/>‑<br/>sru结构,在对应层上都有较优的效果,能大幅降低ppl值。在gru类网络中,特别的rt<br/>‑<br/>gru结构,其是在bp及bptt方向上添加了残差信息,在对应的网络层数上,其性能得到极大程度的提升,且都优于其他结构,在5层时,pll就已经下降到5.98,这是目前已知最好结果。<br/>[0204]<br/>2)在网络训练耗时方面:sru及transformer结构没有依赖前一时刻隐状态向量的输出,因此其具有高并行性,训练耗时在所有结构里都比较低。而基本的rnn结构由于没有类似门控的结构,训练耗时同样是较低。因为lstm较复杂的网络结构,其具备两个时序信息,以及多个门控结构,因此就训练耗时这方面来考虑,其并不占优。以训练耗时的角度来观察rt<br/>‑<br/>gru结构,相比于原本的gru结构,由于添加了残差信息及门控来限制残差信息,因此使其有所增加。<br/>[0205]<br/>3)在网络结构总参数量方面:rnn结构没有任何门限控制其信息的输入与输出,因此其网络结构的总参数量是最少的。sru结构由于没有依赖前一时刻隐状态向量的输出,因此同样含有较少的参数量,而有着类似性质的transformer结构,因为其是由多层的encoder与decoder组成,所以在参数量方面transformer结构并不占优。而由于lstm复杂的网络结构,其总参数量在所有结构中是最多的。本发明设计的rt<br/>‑<br/>gru结构相比于原本的gru结构,其使用了highway<br/>‑<br/>networks的门限控制,虽在一定程度上能避免过拟合,但也使网络的参数总量增加。<br/>[0206]<br/>4)在网络深度方面:通过表1、表2及表3的实验对比,可观察到在浅层网络中,传统的循环神经网络(rnn、lstm、gru)性能都得到提升,这也验证了加深网络层数能获得更多特征信息。而随着网络层数深度的继续提升,传统的循环神经网络(rnn、lstm、gru)性能都逐渐下滑。而rt<br/>‑<br/>gru结构在深层网络依然能保持较优的性能。另外,层数堆叠会使模型的参数量随之增多,网络的训练耗时也会越来越高。<br/>[0207]<br/>综合上述四个对比,可以得出的结论是本发明设计的rt<br/>‑<br/>gru,在建立残差连接的同时,利用highway<br/>‑<br/>networks的门限控制,来控制残差信息。相比于其他的网络结构,能够极大程度的提高网络的性能,降低ppl值。<br/>[0208]<br/>为了进一步验证本发明设计方法的有效性,将本发明应用在文本分类任务及情感分析任务中。<br/>[0209]<br/>1)在文本分类任务中,所使用数据集是thucnews。该数据集是筛选过滤2005<br/>‑<br/>2011年新浪新闻rss订阅频道的历史数据生成的,包含了74万篇新闻文档。为节约资源,本任务将从数据集中抽取20万条新闻标题,文本长度均在20<br/>‑<br/>30之间,共有10个类别,分别为:娱乐、社会、股票、财经、房产、游戏、教育、科技、时政、体育,每个类别为2万条新闻。在此数据集上本文使用textcnn、textrnn(gru)、textrnn_att、r<br/>‑<br/>gru、rt<br/>‑<br/>gru进行对比实验,其中<br/>textrnn_att为引入注意力机制的lstm结构[65]。实验采用准确率,召回率及f1值作为评估标准。实验中用到的循环神经网络参数设置都是相同的,学习率设置为0.001,批处理设置为100,embeddings设置为100,隐藏层神经元设置为128,丢弃率(drop out)设置为0.5。其实验结果见表4。<br/>[0210]<br/>表4<br/>[0211][0212]<br/>通过表4观察到本发明设计的rt<br/>‑<br/>gru能提升原本gru结构的性能,同时对比于textcnn及引入注意力机制的gru_att结构,在分类准确率方面依然具备一定的优势。<br/>[0213]<br/>2)在情感分析任务中,主要进行电影影评倾向分类,所使用的数据集是imdb数据集,该数据集一共含有50000条影评,被标记为正面和负面两种评价,其中训练集和测试集各为25000条,且都包含50%的正面评价和50%的负面评价,数据集通过keras读取,在此数据集上使用lstm、gru、r<br/>‑<br/>gru、rt<br/>‑<br/>gru进行对比实验。为了让实验对比更具有说服力,对于每种神经网络设置相同的超参数:隐藏层均设置128个神经元;embeddings(词嵌入)的大小均设置为128;丢弃率(drop out)的大小均设置为0.2;所有神经网络的损失函数都使用交叉熵损失函数;所有神经网络训练的epoch设置为10次迭代。实验结果见表5。<br/>[0214]<br/>表5<br/>[0215][0216]<br/>通过表5的观察可知,与语言模型及文本分类任务类似,本发明设计的rt<br/>‑<br/>gru结构依然能提升原本gru结构的性能。对比于lstm结构,rt<br/>‑<br/>gru结构在分类准确率方面也有着优势,这也证明了本文设计的rt<br/>‑<br/>gru结构具有一定的普适性。<br/>[0217]<br/>本发明提供了一种基于残差跳跃连接的门控循环单元的文本分类方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技<br/>术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。<br/> <br><b>技术特征:</b><br/>1.一种基于残差跳跃连接的门控循环单元的文本分类方法,其特征在于,包括以下所述步骤:步骤1,定义数据集的词汇表并将词汇表的文本数据进行预处理,去除文本中的不规范数据;步骤2,将步骤1得到的文本信息进行门控循环单元神经网络建模;步骤3,设置门控循环单元神经网络的全连接层以及分类层;步骤4,为门控循环单元神经网络的表示中建立残差跳跃连接并引入高速公路网络门限控制方法;步骤5,将残差跳跃连接的门控循环单元的饱和激活函数改为非饱和激活函数;步骤6,设置残差跳跃连接的门控循环单元神经网络的权重初始化方式为正交初始化;步骤7,为残差跳跃连接的门控循环单元神经网络设置批标准化;步骤8,设置残差跳跃连接的门控循环单元神经网络的超参数;步骤9,配置残差跳跃连接的门控循环单元神经网络的损失函数以及优化器;步骤10,结合步骤1得到的文本信息,使用残差跳跃连接的门控循环单元神经网络进行文本分类。2.如权利要求1所述的方法,其特征在于,步骤1包括:定义数据集的词汇表,包括统计单词的出现频率和按词频顺序对单词进行排序;将数据集分为训练集和测试集,训练集包括训练数据;在定义词汇表后,将训练数据转化成单词的数字编号;对训练数据进行批处理,使用填充的方法,即将同一批块内的句子长度补齐;定义词向量层:在输入层,每个单词用一个实数向量表示,所述实数向量称为词向量,使用word2vec方法对文本进行向量化操作。3.如权利要求2所述的方法,其特征在于,步骤2包括:建立门控循环单元的循环神经网络的前向算法:建立更新门和重置门,设z<br/>t<br/>和r<br/>t<br/>分别为更新门向量和重置门向量,x<br/>t<br/>为当前层的t时刻的输入值,w<br/>z<br/>和w<br/>r<br/>为模型参数,即权重向量,u<br/>z<br/>、u<br/>r<br/>、u<br/>a<br/>为输入时序信息的权重,h<br/>t<br/>‑1为前一时刻的状态向量,b<br/>z<br/>和b<br/>r<br/>为偏置向量;更新门向量和重置门向量计算公式如下:z<br/>t<br/>=σ(w<br/>z<br/>x<br/>t<br/>+u<br/>z<br/>h<br/>t<br/>‑1+b<br/>z<br/>)r<br/>t<br/>=σ(w<br/>r<br/>x<br/>t<br/>+u<br/>r<br/>h<br/>t<br/>‑1+b<br/>r<br/>)式中,σ为sigmoid激活函数,sigmoid激活函数sigmoid(x)的计算公式如下:其中,x为函数输入;e为自然常数;使用如下门控循环单元的输出公式:a<br/>t<br/>=g(w<br/>a<br/>x<br/>t<br/>+u<br/>a<br/>(h<br/>t<br/>‑1*r<br/>t<br/>)+b<br/>a<br/>)h<br/>t<br/>=z<br/>t<br/>*a<br/>t<br/>+(1<br/>‑<br/>z<br/>t<br/>)*h<br/>t<br/>‑1式中,a<br/>t<br/>是t时刻的候选隐状态,h<br/>t<br/>为当前时刻t的隐状态向量,候选隐状态的激活函数g(<br/>·<br/>)为tanh,w<br/>a<br/>为模型权重参数;其中,tanh激活函数tanh(x)的计算公式如下:<br/>式中,x为函数输入。4.如权利要求3所述的方法,其特征在于,步骤3包括:在门控循环单元神经网络之后需要接全连接层来修正神经元输出值的维度,全连接层公式如下:f=w<br/>y<br/>h式中,w<br/>y<br/>为维度匹配矩阵;h为网络最后一层的神经元输出;f为全连接层输出值;在全连接层之后需连接分类层进行分类,通过如下归一化指数函数s(f)<br/>j<br/>公式进行分类处理:式中,n为类别数;f<br/>j<br/>表示f的第j元素,j的范围为1到n;f<br/>n<br/>表示f的第n元素,n取值为1到n。5.如权利要求4所述的方法,其特征在于,步骤4包括:在门控循环单元结构的时间轴方向和空间轴反向上建立残差的跳跃连接,引入高速公路网络的门控限制,公式定义如下所示:路网络的门控限制,公式定义如下所示:路网络的门控限制,公式定义如下所示:路网络的门控限制,公式定义如下所示:h<br/>tl<br/>=(1<br/>‑<br/>z<br/>tl<br/>)<br/>⊙<br/>h<br/>t<br/>‑<br/>1l<br/>+z<br/>tl<br/>⊙<br/>a<br/>tl<br/>h<br/>tl<br/>=t(x)<br/>l<br/>⊙<br/>h<br/>tl<br/>+c(x)<br/>l<br/>⊙<br/>h<br/>t<br/>‑<br/>αl<br/>式中,<br/>⊙<br/>表示矩阵的点乘运算,l表示堆叠层数,为l层的t时刻的输入值,和为l层的模型参数,即权重向量,和为l层输入时序信息的权重,和分别为门控循环单元在l层的更新门、重置门和候选隐状态,为前一时刻的状态向量,v<br/>l<br/>是l层的维度匹配矩阵,当网络前后层维度一致时,则不需要维度匹配矩阵,是l层未激活的候选隐状态,g(<br/>·<br/>)为激活函数,为l层t时刻的输出状态,t(x)<br/>l<br/>与c(x)<br/>l<br/>是高速网络的门控限制;h<br/>t<br/>‑<br/>α<br/>表示在时间轴方向上建立残差连接,α表示神经元个数,为l层在t时刻的最终输出向量。6.如权利要求5所述的方法,其特征在于,步骤5包括:将残差跳跃连接的门控循环单元的饱和激活函数改为非饱和激活函数relu,得到l层t时刻的输出公式为:<br/>式中,为l层t时刻的输出状态,为l层高速网络的门控限制,g(<br/>·<br/>)为relu激活函数,公式如下:其中,x为函数输入值。7.如权利要求6所述的方法,其特征在于,步骤6包括:正交初始化是将权重参数w、w<br/>f<br/>、w<br/>r<br/>的初始值初始化为单位正交矩阵,单位正交矩阵a需满足如下条件:a为正交矩阵;a的转置a<br/>t<br/>为正交矩阵;aa<br/>t<br/>=e,e为单位矩阵;a的各行是单位向量且两两正交;a的各列是单位向量且两两正交;(ax,ay)=(x,y),x,y都为常数;a是正交矩阵;|a|=1或<br/>‑<br/>1;a的维度为权重所在的神经网络层的神经元个数。8.如权利要求7所述的方法,其特征在于,步骤7包括:批标准化公式如下:批标准化公式如下:批标准化公式如下:其中,为输入值z<br/>i<br/>经过标准化之后的新输入值;σ2为方差;μ为均值;m为输入的维度;参数ε等于10<br/>‑8。9.如权利要求8所述的方法,其特征在于,步骤9包括:针对残差跳跃连接所设计的连接项即单元状态的反向传播有如下推导:推导误差项之前的部分设定及公式:relu函数的导数relu(x)<br/>′<br/>和sigmoid函数的导数sigmoid(x)<br/>′<br/>分别为:sigmoid(x)<br/>′<br/>=sigmoid(x)(1<br/>‑<br/>sigmoid(x))式中,x为输入值,符号<br/>′<br/>为求导符;对残差跳跃连接的门控循环单元神经网络的单元状态公式进行等效替换,令:<br/>f(m)=w<br/>a<br/>x<br/>t<br/>+u<br/>a<br/>(h<br/>t<br/>‑1⊙<br/>r<br/>t<br/>)+b<br/>a<br/>式中,w<br/>a<br/>为权重向量,u<br/>a<br/>为输入时序信息的权重,b<br/>a<br/>为偏移量;f(m)是一个代数符号;设定当前状态时刻为t,设l为计算的误差项所在层数,p为当前网络层数,则有:式中,表示在p层未激活的候选隐状态,表示在l层未激活的候选隐状态;对求的偏导,得到:式中,为求偏导符号,i表示单位矩阵;得出单元状态的第l层的误差项为:为:为:上式中,表示激活后的候选隐状态,e<br/>t<br/>表示在t时刻的误差,表示p层t时刻的隐状态向量,i表示单位矩阵,为p层重置门限。<br/><br/><b>技术总结</b><br>本发明提供了一种基于残差跳跃连接的门控循环单元的文本分类方法,在现有的门控循环单元的基础上,利用跳跃连接引入残差信息并结合高速公路网络的门控限制,同时使用非饱和激活函数以及批标准化来改进门控循环单元定义公式,使门控循环单元在应对梯度消失问题的同时能够捕获超长期依赖关系,并利用高速公路网络的门控来限制残差信息不占主要地位。本发明利用训练好的网络模型自动对中文文本进行分类,以及对电影影评正/负评价分类,以便降低人力成本。通过多组对比实验,证明了本发明在文本分类任务中有一定的适用性。本分类任务中有一定的适用性。本分类任务中有一定的适用性。<br/><br/><br/><b>技术研发人员:</b>孙水发 胡枫 裴伟 董方敏 吴义熔 梅周俊森<br/><b>受保护的技术使用者:</b>三峡大学<br/><b>技术研发日:</b>2021.09.22<br/><b>技术公布日:</b>2021/12/16 

讯享网
小讯
上一篇 2025-04-22 17:23
下一篇 2025-05-22 22:44

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/140097.html