《深度学习进阶:自然语言处理》读书笔记:第6章 Gated RNN

第6章 Gated RNN

RNN层通过向过去传递“有意义的梯度”,能够学习时间方向上的依赖关系。此时梯度(理论上)包含了那些应该学到的有意义的信息,通过将这些信息向过去传递,RNN层学习长期的依赖关系。但是,如果这个梯度在中途变弱(甚至没有包含任何信息),则权重参数将不会被更新。也就是说,RNN层无法学习长期的依赖关系。不幸的是,随着时间的回溯,这个简单RNN未能避免梯度变小(梯度消失)或者梯度变大(梯度爆炸)的命运。

梯度爆炸。梯度的大小随时间步长呈指数级增加,如果发生梯度爆炸,最终就会导致溢出,出现NaN之类的值。如此一来,神经网络的学习将无法正确运行。

梯度消失。梯度呈指数级减小,如果发生梯度消失,梯度将迅速变小。一旦梯度变小,权重梯度不能被更新,模型就会无法学习长期的依赖关系。

矩阵的奇异值表示数据的离散程度。根据奇异值(更准确地说是多个奇异值中的最大值)是否大于1,可以预测梯度大小的变化。如果奇异值的最大值大于1,则可以预测梯度很有可能会呈指数级增加;如果奇异值的最大值小于1,则可以判断梯度会呈指数级减小。但是,并不是说奇异值比1大就一定会出现梯度爆炸。

LSTM与RNN的接口的不同之处在于,LSTM还有路径c。这个c称为记忆单元(或者简称为“单元”),相当于LSTM专用的记忆部门。

记忆单元的特点是,仅在LSTM层内部接收和传递数据。也就是说,记忆单元在LSTM层内部结束工作,不向其他层输出。而LSTM的隐藏状态h和RNN层相同,会被(向上)输出到其他层。

在大多数情况下,门使用sigmoid函数作为激活函数,而包含实质信息的数据则使用tanh函数作为激活函数。

在RNN的反向传播中,我们使用相同的权重矩阵重复了多次矩阵乘积计算,由此导致了梯度消失(或梯度爆炸)。而LSTM的反向传播进行的不是矩阵乘积计算,而是对应元素的乘积计算,而且每次都会基于不同的门值进行对应元素的乘积计算。这就是它不会发生梯度消失(或梯度爆炸)的原因。

LSTM是Long Short-Term Memory(长短期记忆)的缩写,意思是可以长(Long)时间维持短期记忆(Short-Term Memory)。

通过叠加LSTM层,可以期待能够学习到时序数据的复杂依赖关系。换句话说,通过加深层,可以创建表现力更强的模型,但是这样的模型往往会发生过拟合。更糟糕的是,RNN比常规的前馈神经网络更容易发生过拟合,因此RNN的过拟合对策非常重要。

过拟合是指过度学习了训练数据的状态,也就是说,过拟合是一种缺乏泛化能力的状态。我们想要的是一个泛化能力强的模型,因此必须基于训练数据和验证数据的评价差异,判断是否发生了过拟合,并据此来进行模型的设计。

本章的主题是Gated RNN,我们指出了上一章的简单RNN中存在的梯度消失(或梯度爆炸)问题,说明了作为替代层的Gated RNN(具体指LSTM和GRU等)的有效性。这些层使用门这一机制,能够更好地控制数据和梯度的流动。

另外,本章使用LSTM层创建了语言模型,并在PTB数据集上进行了学习,评价了困惑度。另外,通过LSTM的多层化、Dropout和权重共享等技巧,成功地大幅度提高了精度。

本章所学的内容

1.在简单RNN的学习中,存在梯度消失和梯度爆炸问题;

2.梯度裁剪对解决梯度爆炸有效,LSTM、GRU等Gated RNN对解决梯度消失有效;

3.LSTM中有3个门:输入门、遗忘门和输出门;

4.门有专门的权重,并使用sigmoid函数输出0.0~1.0的实数;

5.LSTM的多层化、Dropout和权重共享等技巧可以有效改进语言模型;

6.RNN的正则化很重要,人们提出了各种基于Dropout的方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值