深度学习——第四篇(循环神经网络)

目录

1 概述

1.1 自然语言处理

1.2 时间序列分析

1.3 循环神经网络

1.4 循环神经网络在专业领域内的相关应用

2 RNN模型介绍

2.1 RNN的前向传播

2.2 RNN的反向传播——BPTT

3 长短期记忆网络(LSTM)

4 门控循环单元(GRU)

参考文献


1 概述

1.1 自然语言处理

自然语言处理(Natural Language Processing,NLP)是让计算机能够理解、处理和生成自然语言,使计算机具有类似人类的语言交互和文本理解能力。其应用范围广泛,包括机器翻译、智能客服、智能搜索、自动文摘、情感分析、语音识别、问答系统等等。

深度学习技术在NLP领域的应用:Word2vec、序列到序列模型、CNN、循环神经网络(Recurrent Neural Network,RNN)、长短期记忆(Long Short-term Memory,LSTM)、门控循环单元(Gated Recurrent Unit,GRU)、基于注意力机制的Transformer架构(突破了长序列)[1]。

1.2 时间序列分析

时间序列是按照时间的先后顺序记录的一列有序数据,一方面由于各种偶然因素的影响,数据表现出某种随机性,另一方面由于一般事物发展的先后之间都具有惯性或延续性,这些数据彼此之间又存在一定的相关性。对时间序列进行观察和研究,揭示其蕴含的内在规律,进而根据变化规律预测走势或者实施控制就是时间序列分析[2]。

时间序列分析常见方法:基于统计学的方法,如ARMA模型;机器学习方法,如支持向量回归法;深度学习方法,如RNN。

1.3 循环神经网络

RNN是一种特殊的神经网络结构, 它是根据“人的认知是基于过往的经验和记忆”这一观点提出的。 它与DNN,CNN不同的是:它不仅考虑前一时刻的输入,而且赋予了网络对前面的内容的一种“记忆”功能。

1.4 循环神经网络在本专业领域内的相关应用

  • 循环神经网络与滤波方法的联合使用——用循环神经网络代替动力学模型部分。缺点是训练需求较高,当动力学模型较为复杂且存在非线性时网络的训练会变得极为困难,甚至出现不收敛的情况[3]。
  • 循环神经网络在轨迹预报中的应用——LSTM网络对历史信息具有长期记忆能力,更适合与应用在运动目标的轨迹预测问题上[4]。

2 RNN模型介绍

2.1 RNN的前向传播

即RNN是如何得到输出结果的。RNN的层级结构比较简单,由输入层、隐藏层和输出层组成。与两层的全连接网络不同的事,RNN的隐藏层之间是有联系的,即层内有连接。如图1是RNN的计算结构图,x表示时间序列输入,h表示隐藏层的值(又叫隐状态,表示记忆值,图中用s表示),o为输出层的值。W、U、V分别为前一隐藏层的输入权重、当前时刻的输入权重和当前时刻的输出权重。

图1 RNN计算结构图

每一时刻的前向传播如下[5]:

h_t=f(Ux_t+Ws_{t-1})\\ o_t=g(Vh_t)

值得注意的是,在不同的时间步,RNN的权重都是一样的,因此RNN的参数开销不会随着时间步的增加而增加[6]。

不考虑输出,只考虑隐藏层的动作,则可用图2、图3的模型表示,其中A代表权重,包括上面提到的W和U。

图2 展开的RNN[7]
图3 单个展开的RNN结构[7]

2.2 RNN的反向传播——BPTT

通过时间反向传播(backpropagation through time,BPTT)是循环神经网络中反向传播技术的一个特定应用。

由前可知,我们共有三个权重参数:W、U、V。首先定义损失函数。用l(y_t,o_t)表示时间t处的损失函数,y_t为标签值。则总体损失为

L=\frac{1}{T}\sum_{t=1}^{T}l(y_t,o_t)

训练时需要对参数的梯度进行计算,即\frac{\partial L}{\partial W},\frac{\partial L}{\partial U},\frac{\partial L}{\partial V}。以W的梯度为例,其计算式为

\frac{\partial L}{\partial W}=\sum_{t=1}^T \frac{\partial L}{\partial o_t}\frac{\partial o_t}{\partial h_t}\frac{\partial h_t}{\partial W}

其中,由于h_th_{t-1}有关,h_{t-1}h_{t-2}有关,即

\frac{\partial h_t}{\partial W}=\frac{\partial h_t}{\partial W}+\frac{\partial h_t}{\partial h_{t-1}}\frac{\partial h_{t-1}}{\partial W}

因此梯度\frac{\partial h_t}{\partial W}需要递归计算。且最终结果是一个矩阵的连乘积,而这在数值计算中很容易导致梯度消失或梯度爆炸。一般采用截断梯度来代替完整的梯度。


3 长短期记忆网络(LSTM)

由于梯度的衰减,RNN原则上可以使用它们的反馈连接以激活的形式去存储最近输入的信息——“短期记忆”,而不是由缓慢变化的权重所体现的长期记忆[8]。

LSTM引入了记忆细胞(memory cell)。由输入层、记忆细胞和输出层构成。

记忆细胞中,细胞状态C负责长期记忆隐藏状态h负责短期记忆,尤其是当前步的信息。

记忆元的控制需要引入门(gate)。门的输出是经过了sigmoid函数的,因此值为0~1之间。可以看做权值。(把图4中的门理解为权重输出)

  • 遗忘门:决定要留下多少长期信息C,即当前步传入的C_{t-1}乘以一个0~1之间的权重F_t,以此筛掉部分旧信息。而权重F_t是结合了上一步和这一步整体的信息,归一化到0~1之间。
  • 输入门:决定要吸纳多少新信息来融入长期记忆C的记忆单元,即tanh得到的当前步总信息经过一个加权后融到长期记忆C中。
  • 输出门:从全新的长期记忆中筛选出最适合当前步的短期信息。将当前步计算好的长期信息C_t加权后得到当前步最有效信息用于当前时间步的预测。(计算出的短期信息h_t一方面进入整个LSTM的输出层,生成当前步的预测输出\hat{Y}_t,来计算损失函数,另一方面作为当前步最有效的短期信息传入下一个记忆细胞进行下一个下一个记忆细胞状态的更新

细胞状态更新:当遗忘门决定了那些长期信息需要被遗忘,输入门决定了哪些新信息需要加到长期信息之后,长期记忆的细胞状态就可以被更新了。即由C_{t-1}得到C_t。[9]

图4 记忆细胞的计算结构[6]

4 门控循环单元(GRU)

GRU只有两个门:重置门(Reset Gate)和更新门(Update Gate),状态有当前时刻候选隐藏状态h_t和当前时刻隐藏状态h_t

  • 重置门:决定前一时刻的隐藏状态输出有多少流入当前时刻的候选隐藏状态(候选隐藏状态中有当前输入),重置门的值越小,先前的信息遗忘越多,因此重置门有助于捕捉时间序列中的短期依赖关系
  • 更新门:决定当前时刻的隐藏状态h_t中有多少是候选隐藏状态\tilde{h}_t。如果更新门为1,则当前候选隐藏状态h_t没有流入当前时间步隐藏状态h_t,也就意味着当前时间输入状态x_t没有流入当前时间步的隐藏状态h_t。(新的隐藏状态是前一步隐藏状态和当前候选隐藏状态的凸组合)更新门有助于捕获序列中的长期依赖关系(能长时间保留旧的状态)
图5 GRU计算结构【6】

参考文献

[1] 赵铁军,许木璠,陈安东.自然语言处理研究综述[J/OL].新疆师范大学学报(哲学社会科学版):1-23[2024-04-29].https://doi.org/10.14100/j.cnki.65-1039/g4.20230804.001.

[2] 严恭敏, 李四海, 秦永元编著.惯性仪器测试与数据分析.国防工业出版社.2012

[3] 郑天宇. 基于循环神经网络的临近空间高超声速目标航迹估计与预报[D].哈尔滨工业大学,2021.DOI:10.27061/d.cnki.ghgdu.2020.001571.

[4] 杨明辉. 基于循环神经网络的运动目标轨迹预测[D].武汉大学,2020.

[5] 深度学习之RNN(循环神经网络)-CSDN博客

[6] 9. 现代循环神经网络 — 动手学深度学习 2.0.0 documentation

[7] 【RNN】深入浅出讲解循环神经网络(介绍、原理)-CSDN博客

[8] Hochreiter, S., & Schmidhuber, J. (1997). Long short-term memory. Neural computation9(8), 1735–1780.

[9] 【LSTM(Long short-term memory) 长短期记忆 全解手册(一)原理】-CSDN博客

  • 23
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值