RNN(递归神经网络)

​ 循环神经网络是一种特殊的神经网络结构,他是具有记忆功能,是一个序列模型,原则上来说只考虑时间先后顺序的问题都可以用RNN来解决。

从RNN到LSTM笔记

​ 从上图我们可以看出,输入x,然后特征提取后得到,s = w * x + b,这部分数据可以直接输出得到O,然后这部分数据再放入记忆模块,再和下一次输入一起做特征提取,也就是每一次的输出都是前面的输入提取到特征的结果。

​ 在t =11时刻,一般初始化输入S0=0,随机初始化W,U,V,可以用一个公式表示:


h1=Ux1+Ws0S1=f(h1)o1=g(Vs1) h_1 = Ux_1 + W_{}s_0\\ S_1 = f(h_1)\\ o_1 = g(V_{}s_1)
​ 其中 f 和 g 均为**函数,f 可以是tanh,relu,sigmoid等**函数,g可以是softmax

​ 这样会有一个问题,就是再输出多了的情况下,前面对后面的影响就变得不那么大了,记忆模块会稀释掉前面的输入。比如说在你背了几篇作文后,是不是会后面背的作文比前面背的,记忆力更深。下面从一张图像来更深的理解RNN。

从RNN到LSTM笔记
​ 我们可以看到,每一个时间片的输出,不仅取决于当前单词,还取决于先前单词。RNN在不同的时间步长共享参数。RNN同样会有梯度消失和梯度爆炸的问题,主要是因为时间片过程从而导致记忆值较小的现象。

LSTM(Long Short Term Memory, 长短期记忆网络)

​ 首先看下LSTM的结构,LSTM也具有这种链式结构,但是它的重复单元不同于标准RNN网络里的单元只有一个网络层,它的内部有四个网络层。

从RNN到LSTM笔记

​ LSTM核心思想:细胞状态。用来保证信息不变的流过整个网络。

从RNN到LSTM笔记

LSTM网络能通过一种被称为门的结构对细胞状态进行删除或者添加信息。

从RNN到LSTM笔记

门结构相当于输出一个x1,然后通过一个**函数(比如说sigmoid),得到 h = s(x1),然后再与 x2 做点乘, 也就是 f = x2 + h。因为sigmoid的值域是(0,1),因此可以用1表示通过,0表示不通过。

LSTM有三个门,分别是忘记门、输入门、输出门。

​ 忘记门:通过一个sigmoid来决定细胞状态需要丢弃掉的信息。传入两个输入ht1h_{t-1}xtx_t到sigmoid中,得到(0,1)的输出,通过细胞状态Ct1C_{t-1}来决定丢弃和保留。

从RNN到LSTM笔记

​ 输入门:决定细胞状态添加哪些东西。利用ht1,xth_{t-1},x_t通过输入门再经过一个sigmoid来决定更新哪些信息,然后利用ht1,xth_{t-1},x_t通过一个tanh层来得到新的候选细胞信息Ct~\widetilde{C_t}

从RNN到LSTM笔记

更新细胞状态Ct1C_{t-1},得到新的细胞状态CtC_t,更新的规则是通过忘记门来选择忘记旧细胞状态Ct1C_{t-1}中的一部分信息,通过输入门添加候选细胞信息,得到新的细胞信息Ct~\widetilde{C_t}

从RNN到LSTM笔记

​ 输出门:更新完细胞状态后,需要根据输入的ht1,xth_{t-1},x_t来判断输出细胞的状态特征,还是通过输入到sigmoid中判断保留或者丢弃,然后根据更新后的细胞状态CtC_t经过一个tanh层,然后再与oto_t做点乘,最终得到输出hth_t

从RNN到LSTM笔记

LSTM的变种

peephole connections

从RNN到LSTM笔记

​ 从图中我们可以看到,这个变种主要是在每一个sigmoid之前加了一个细胞状态,前面两个门加的细胞状态是Ct1C_{t-1},后面一个门加的细胞状态是CtC_{t}

coupled

从RNN到LSTM笔记

​ 这个变种的方式是在忘记门删除历史信息的位置加入新的信息,在加入新信息的位置删除旧信息。就是让忘记门与输入门关联起来,以前是把通过sigmoid的所有信息去与Ct~\widetilde{C_t}做点乘,现在是1-sigmoid(x)后的信息去做点乘,这样做可以忘记掉一些不重要的信息。

GRU(门循环单元)

从RNN到LSTM笔记

GRU只有两个门,分别是更新门(LSTM忘记门和输入门合并)、重置门。

值得一提的是,GRU用了一个门控来进行遗忘和选择记忆

同样,用(1-z)进行遗忘,就是对信息的一个选择。

运算步骤:这个以后有空的时候再补的更加详细吧。

参考链接:https://www.jianshu.com/p/95d5c461924c

相关文章:

  • 2021-07-21
  • 2021-05-06
  • 2021-07-29
  • 2021-12-22
  • 2021-09-13
  • 2021-12-30
  • 2021-06-16
  • 2021-11-26
猜你喜欢
  • 2021-06-26
  • 2022-01-18
  • 2021-05-30
  • 2022-01-08
  • 2021-04-18
  • 2021-10-27
相关资源
相似解决方案