深度学习笔记(四)——循环神经网络(Recurrent Neural Network, RNN)

目录

一、RNN简介

(一)、简介

(二)、RNN处理任务示例——以NER为例

二、模型提出

(一)、基本RNN结构

(二)、RNN展开结构

三、RNN的结构变化

(一)、N to N结构RNN模型

(二)、N to 1结构RNN模型

(三)、1 to N结构RNN模型

(四)、N to M结构RNN模型(encoder-decoder模型、seq2seq模型)

 四、梯度消失及梯度爆炸

(一)、什么是RNN的梯度爆炸和梯度消失        

(二)、如何解决RNN的梯度爆炸或梯度消失


一、RNN简介

(一)、简介

循环神经网络(Recurrent Neural Network, RNN),指的是一类以序列数据为输入的神经网络模型。与经典的前馈网络不同之处在于,RNN模型处理序列数据能够获取到更多的语义信息、时序信息等。通常,序列数据指的是一条数据内部的元素有顺序关系的数据,如文本、如文章、语句;时序数据,如一周的天气、三个月的股市指数等。通常可用于语音识别、语言模型、机器翻译及时序分析等。

(二)、RNN处理任务示例——以NER为例

NER(Named Entity Recognize,命名实体识别)任务,表示从自然语言文本中,识别出表示真实世界实体的实体名及其类别,如:

句子(1): I like eating apple! 中的 apple 指的是 苹果(食物)

句子(2): The Apple is a great company! 中的 Apple 指的是 苹果(公司)

一般的DNN网络中,输入方式为逐元素输入,即句子内的词单独独立地输入模型进行处理,这将导致上下文信息丢失,这样的结果会导致每个词的输入仅会输出单一结果,与上下文语义无关。如上图示例,若训练集中的苹果一词大部分标记为苹果(食物),则测试阶段所有的苹果也将标记为食物;反之则测试阶段将都标记为公司。

二、模型提出

(一)、基本RNN结构

        为了解决普通DNN无法有效获取上下文信息的缺点,RNN最基本的改良点在于增加一个“模块”用于存储上下文信息。以下图(a)为一个典型RNN的结构示意图:

        图(a)是一个典型的RNN结构图,初看可能会不太理解。理解首先不看右侧的矩阵\bf{W},只看左侧的顺序网络,即图(b),表示的就是一个普通的前馈神经网络。 接下来回头看图(a),RNN相比于一般前馈网络,增加了一个保存上下文信息的权重矩阵\bf{W},也即每次计算输出不仅要考虑当前输入数据,还要考虑序列数据的上下文信息。

(二)、RNN展开结构

        我们知道了RNN模型增加了一个权重矩阵\bf{W}用于存储输入序列的上下文信息,接下来我们来介绍RNN结构如何进行模型计算以及上下文信息如何应用到RNN结构。为了更好地理解RNN计算方式,下图是一个序列展开的RNN示意图(即上图a的时序展开图):

        其中x_i表示i时刻的模型输入,y_i表示x_i对应的输入结果。RNN模型计算公式如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值