循环神经网络(RNN)及应用研究
作者:刘礼文 俞弦
来源:《科技视界》2019年第32期
【摘 要】循环神经网络是一种具有记忆功能的神经网络,适合序列数据的建模。它在语音识别和自然语言处理等领域具有较强的应用。本文主要对循环神经网络的模型、训练和应用领域做了初步的探索。
【关键词】循环神经网络;训练;应用
中图分类号: TP391.1 文献标识码: A 文章编号: 2095-2457(2019)32-0054-002 DOI:10.19694/j.cnki.issn2095-2457.2019.32.022
循環神经网络-RNN(Recurrent Neuron Network)的主要用途是处理和预测序列数据,是一种对序列数据建模的神经网络,即一个序列当前的输出与前面的输出也有关。从网络结构上,循环神经网络会记忆之前的信息,并利用之前的信息影响后面结点的输出。 1 RNN模型
RNN模型如下图所示,其中x是输入,U是输出层到隐含层的权重,s是隐含层值,W则是上个时刻隐含层作为这个时刻输入的权重,V是隐含层到输出层的权重,o是输出。 图1
将上图展开,输入x、隐层值s和输出o都有了下标t,这个t表示时刻,t-1是上一时刻,t+1则是下一时刻。不同时刻输入对应不同的输出,而且上一时刻的隐含层会影响当前时刻的输出。
2 RNN的正向计算
设输出层的输入为nett,则很容易可以得到输出, nett=Vst
龙源期刊网 http://www.qikan.com.cn
ot=σ(nett)
其中σ是激活函数,再设隐含层的输入为h ht=Uxt+Wst-1 st=σ(ht)
可以继续往前一个时刻推,有 st=σ(Uxt+Wσ(Uxt-1+Wst-2))
而t-2时刻又可以用t-3时刻来表示,从这就可以看出循环神经网络具有记忆,可以往前看任意个输入。 3 RNN的训练
通过下面实现梯度下降训练。 假设损失函数为E
在t时刻,根据误差逆传播,有 ■=■■=E'(o■)σ'(net■)
首先,对V求导,每个时刻t的误差与当前时刻的误差相关,则 ■=■■=■St
其次,对W求导,对于一个训练样本,所有时刻的误差加起来才是这个样本的误差,某时刻t对W求偏导为, ■=■■■
其中,st=σ(Uxt+Wσ(Uxt-1+Wst-2))一直依赖上个时刻,某个样本的总误差是需要所有时刻加起来,不断对某个时刻进行求偏导,误差一直反向传播到t为0时刻,则 ■=∑■■■■■
其中■根据链式法则是会一直乘到k时刻,k可以是0、1、2…,那么上式可以表示成,■=∑■■■■■■
龙源期刊网 http://www.qikan.com.cn
最后,对U求导,■=■■=■xt 4 RNN 的应用 4.1 情感分析
循环神经网络用于情感分析主要思路是利用情感分析数据集,通过原始语料的预处理,将词转化为计算机可以处理的向量,进行向量化的特征提取,利用循环神经网络将矩阵形式的输入编码为较低维度的一维向量,而保留大多数有用信息,经过循环神经网的训练,构建情感分析分类器,实现定性分类,得到可以预测的模型,进而实现情感的分析。比如输入一个句子,输出的对于这句话的情感的分析。传统的情感分析法方法简单易懂稳定性也比较强,相较于传统情感分析的方法,利用循环神经网络来进行情感分析,一方面能提高精度,另一方面评价更客观,人为因素干扰更小。 4.2 提取关键词
基于循环神经网络的关键词提取方法相对于其他方法更加有效,其主要是利用循环神经网络具有自动学习的特征,将学习的特征纳入模型构建过程中,避免了人为设定特征的干扰。此外,利用循环神经网络,可以将处理对象的上下文信息都考虑在内,能更好地利用词语的语义信息。利用循环神经网络进行关键词提取还有有个特点,就是能存储历史信息,这样更有助于预测关键词的概率。 4.3 语音识别
语音识别的困难之处在于输入语音信号序列中每个发音单元的起始位置和终止位置是未知的,即不知道输出序列和输入序列之间的对齐关系。循环神经网络具有可以接受不固定长度的序列数据作为输入的优势,可实现输出的长度小于输入的长度,而且具有记忆功能。这样以来,将输入分割成小的向量,之后进行训练,可以把重复出现的字去掉,获得最后的结果 4.4 机器翻译
机器翻译就是从源语言到目标语言中找到一个最佳匹配的过程。传统机器翻译方法需要大量的人力和时间去构造翻译系统,从对源语言的编码,对目标语言的解码,中间需要多个学习模型。利用循环神经网络,将要翻译的内容通过RNN编码成一个固定维度的向量,并将结果作为输入,再通过RNN进行解码翻译。这样不仅可以提高翻译质量,还可以实现对语言只使用一个系统,而不不要针对每种语言都构造一种新的学习模型。 4.5 自编码器
龙源期刊网 http://www.qikan.com.cn
自编码器的基本思想就是实现对原始数据进行特征提取,最终浓缩为更精炼、数量更少的特征,进而便于后续数据的处理。它是一种无监督学习技术,利用神经网络来开展表征学习。利用循环神经网络也可以构建自编码器,这些可以用来实现异常监测、数据去燥、数据降维、图像修复、信息检索等功能。此外,利用自编码的方法,还可以实现对文本中句子的语义进行提取。
【参考文献】
[1]葛垚,陈瑞,童莹,曹雪虹.基于循环神经网络的非特定目标追踪方法研究[J].南京邮电大学学报(自然科学版),2019(04):103-110.
[2]唐美丽,胡琼,马廷淮.基于循环神经网络的语音识别研究[J].现代电子技术,2019,42(14):152-156.
[3]杨丽,吴雨茜,王俊丽,刘义理.循环神经网络研究综述[J].计算机应用,2018,38(S2):1-6+26.
[4]陈波.基于循环结构的卷积神经网络文本分类方法[J].重庆邮电大学学报(自然科学版),2018,30(05):705-710.
[5]梁丕军.基于循环神经网络和卷积神经网络的中文情感分类研究[D].湖南大学,2017. [6]曾谁飞,张笑燕,杜晓峰,陆天波.基于神经网络的文本表示模型新方法[J].通信学报,2017,38(04):86-98.
因篇幅问题不能全部显示,请点此查看更多更全内容