NPL实践系列:8、循环神经网络

10 篇文章 0 订阅
5 篇文章 0 订阅

1. RNN介绍

1.1 RNN结构

RNN(Recurrent Neural Network),即是循环神经网络,是一类用于处理序列数据的神经网络。
从基础的神经网络中知道,神经网络包含输入层、隐层、输出层,通过激活函数控制输出,层与层之间通过权值连接。激活函数是事先确定好的,那么神经网络模型通过训练“学“到的东西就蕴含在“权值“中。
基础的神经网络只在层与层之间建立了权连接,RNN最大的不同之处就是在层之间的神经元之间也建立的权连接。
如图:
在这里插入图片描述
这是一个标准的RNN结构图,图中每个箭头代表做一次变换,也就是说箭头连接带有权值。左侧是折叠起来的样子,右侧是展开的样子,左侧中h旁边的箭头代表此结构中的“循环“体现在隐层。
在展开结构中我们可以观察到,在标准的RNN结构中,隐层的神经元之间也是带有权值的。也就是说,随着序列的不断推进,前面的隐层将会影响后面的隐层。图中O代表输出,y代表样本给出的确定值,L代表损失函数,我们可以看到,“损失“也是随着序列的推荐而不断积累的。
除上述特点之外,标准RNN的还有以下特点:
1、权值共享,图中的W全是相同的,U和V也一样。
2、每一个输入值都只与它本身的那条路线建立权连接,不会和别的神经元连接。
以上就是RNN的标准结构。RNN还有很多种结构,用于应对不同的需求和解决不同的问题,如双向RNN,LSTM,GRU等。

1.2RNN的训练方法——BPTT

BPTT(back-propagation through time)算法是常用的训练RNN的方法,其实本质还是BP算法,只不过RNN处理时间序列数据,所以要基于时间反向传播,故叫随时间反向传播。BPTT的中心思想和BP算法相同,沿着需要优化的参数的负梯度方向不断寻找更优的点直至收敛。综上所述,BPTT算法本质还是BP算法,BP算法本质还是梯度下降法,那么求各个参数的梯度便成了此算法的核心。

2. 双向RNN

双向RNN (Bidirectional RNN)是一种常见的结构。常用于自然语言处理中。
在经典的循环神经网络中,状态的传输是从前往后单向的。然而,在有些问题中,当前时刻的输出不仅和之前的状态有关系,也和之后的状态相关。这时就需要双向RNN(BiRNN)来解决这类问题。
双向RNN的主体结构就是两个单向RNN的结合。在每一个时刻t,输入会同时提供给这两个方向相反的RNN,而输出则是由这两个单向RNN共同决定,这样就可以既考虑句子的前部分,又考虑句子的后部分。
在这里插入图片描述

3. 递归神经网络(这里指recursive neural network)

递归神经网络(RNN),是两种人工神经网络的总称,一种是时间递归神经网络(recurrent neural network),另一种是结构递归神经网络(recursive neural network)。现在大多数人把recurrent neural network称作循环神经网络,一般RNNs都指循环神经网络,也就是recurrent neural network。时间递归神经网络的神经元间连接构成有向图。,而结构递归神经网络利用相似的神经网络结构递归构造更为复杂的深度网络(大多数为无向图)。两者训练的算法不同,但属于同一算法变体。如之前的Hopfield神经网络就是结构上递归构成。还有BAM,cohen-Grossberg神经网络等。从这里很明显可以看出,时间递归帮助弥补短记忆网络的长记忆扩展(输入是时间相关的序列),而结构递归只是在神经网络结构上的设计(与输入无关),但时间递归神经网络应该是结构递归网络的一个有效改进发展。

4. LSTM、GRU

4.1 LSTM(长短期记忆网络)

Long Short Term Memory 网络—— 一般就叫做 LSTM ——是一种特殊的 RNN 类型,可以学习长期依赖信息。LSTM 由Hochreiter & Schmidhuber (1997)提出,并在近期被Alex Graves进行了改良和推广。在很多问题,LSTM 都取得相当巨大的成功,并得到了广泛的使用。
LSTM 通过刻意的设计来避免长期依赖问题。记住长期的信息在实践中是 LSTM 的默认行为,而非需要付出很大代价才能获得的能力!
所有 RNN 都具有一种重复神经网络模块的链式的形式。在标准的 RNN 中,这个重复的模块只有一个非常简单的结构,例如一个 tanh 层。
LSTM 同样是这样的结构,但是重复的模块拥有一个不同的结构。不同于 单一神经网络层,这里是有四个,以一种非常特殊的方式进行交互。LSTM是一种拥有三个“门”结构的特殊网络结构。
在这里插入图片描述
1)input,就是外界要存入memory的内容

2)input gate,控制存入门的开关

3)forget gate,控制是否清空memory的开关

4)output gate,控制是否输入memory的开关

5)output,输入memory的内容到其他的隐层

4.2 GRU

Gated Recurrent Unit (GRU)可以看成是LSTM的变种,GRU把LSTM中的遗忘门和输入们用更新门来替代。 把cell state和隐状态ht进行合并,在计算当前时刻新信息的方法和LSTM有所不同。
在这里插入图片描述
在这里插入图片描述

5、针对梯度消失(LSTM等其他门控RNN)、梯度爆炸(梯度截断)的解决方案。

6. Text-RNN的原理。

7. 利用Text-RNN模型来进行文本分类。

8. Recurrent Convolutional Neural Networks(RCNN)原理。

参考文章:
https://blog.csdn.net/zhaojc1995/article/details/80572098
https://www.jianshu.com/p/30b253561337
https://blog.csdn.net/mpk_no1/article/details/72875185
https://blog.csdn.net/caicai2526/article/details/79852263

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值