循环神经网络:架构、应用与语言建模
1. 循环神经网络概述
循环神经网络(RNN)在深度学习领域有着重要地位,但它也面临着梯度消失和梯度爆炸等问题,尤其是在处理深度网络时,这些问题更为普遍。为了解决这些问题,人们提出了一些RNN的变体,如长短期记忆网络(LSTM)和门控循环单元(GRU)。RNN及其变体在许多应用中都有广泛的应用,包括序列到序列学习、图像字幕生成、机器翻译和情感分析等。
RNN具有图灵完备性,理论上,在有足够的数据和计算资源的情况下,它可以模拟任何算法。但在实际应用中,要在任意设置下实现这一目标所需的数据量和计算资源往往是不现实的。此外,训练RNN还存在实际问题,如梯度消失和梯度爆炸问题,这些问题会随着序列长度的增加而加剧,像LSTM这样更稳定的变体也只能在有限程度上解决这些问题。
2. 循环神经网络的架构
虽然RNN几乎可以应用于任何序列领域,但在文本领域的应用最为广泛和自然。因此,这里主要关注离散RNN,因为这是最常见的应用场景。需要注意的是,同一个神经网络既可以用于构建词级RNN,也可以用于构建字符级RNN,两者的区别仅在于定义序列的基本符号集不同。为了保持一致性,在介绍符号和定义时,将以词级RNN为例。
最简单的RNN如图7.2(a)所示,其中的自环会导致神经网络的隐藏状态在序列中每个单词输入后发生变化。在实际应用中,通常处理的是有限长度的序列,因此将循环展开成一个“时间分层”的网络是有意义的,这个网络看起来更像一个前馈网络,如图7.2(b)所示。在这种表示中,每个时间戳都有一个不同的隐藏状态节点,自环被展开成前馈网络。这种表示在数学上与图7.2(a)等价,但由于它与传统网络相似,因此更容易理解。不同时间层的权重矩阵是共享的
超级会员免费看
订阅专栏 解锁全文

18万+

被折叠的 条评论
为什么被折叠?



