1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 循环神经网络(RNN) LSTM与GRU

循环神经网络(RNN) LSTM与GRU

时间:2018-09-02 15:29:34

相关推荐

循环神经网络(RNN) LSTM与GRU

RNN简介

RNN是两种神经网络模型的缩写,一种是递归神经网络(Recursive Neural Network),一种是循环神经网络(Recurrent Neural Network)。虽然这两种神经网络有着千丝万缕的联系,但是本文主要讨论的是第二种神经网络模型——循环神经网络(Recurrent Neural Network)。

循环神经网络是指一个随着时间的推移,重复发生的结构。在自然语言处理(NLP),语音图像等多个领域均有非常广泛的应用。RNN网络和其他网络最大的不同就在于RNN能够实现某种“记忆功能”,是进行时间序列分析时最好的选择。如同人类能够凭借自己过往的记忆更好地认识这个世界一样。RNN也实现了类似于人脑的这一机制,对所处理过的信息留存有一定的记忆,而不像其他类型的神经网络并不能对处理过的信息留存记忆。

RNN结构图

每个cell变为时序的

“门结构(gate)”,分为遗忘门,输入门和输出门。

遗忘门

可以看到公式里面的[h, x],这里表示将这一时刻的输入x[t],和上一时刻t-1的输出h[t-1]做一个concat,然后经过sigmoid函数。

因为sigmoid输出是0和1(大部分),这里面0和1与后面做乘法的时候,等于相应的让一些信息变成了0,就等于是忘记了一些信息。这里其实一个开关,控制信息的通过。

输入门

公式中[h,x]还是做的concat操作。

之前两步的操作就是为了更新细胞的状态,更新知识体系。包括让细胞忘记一些东西,然后给细胞补充新知识。

这里另外说一点,为什么lstm可以解决RNN中梯度弥散/消失的问题。

因为C[t]是又两个结果相加得到,求导时会保留更新梯度。

输出门

最后一个输出,也有一个信息筛选的操作,其实可以这么说,在lstm中sigmoid函数的作用基本就是筛选信息。比如我们可能需要单复数信息来确定输出“他”还是“他们”。

GRU

:

这里和lstm不同的是:

将遗忘门和输入门合成了一个单一的重置门(reset gate),也就是说多大程度上擦除以前的状态state,另外细胞更新操作变为更新门(update gete),它的作用是多大程度上要用candidate 来更新当前的hidden layer

同样还混合了细胞状态和隐藏状态

比标准LSTM简单

如果r[t] = 1,z[t] = 1,那么gru和普通rnn的cell就是一样的。

对比lstm和gru

因为gru参数更少,所以gru训练起来比lstm更简单。

但是,这两种cell最后的结果差不了太多!用的时候不必纠结选择哪种结构。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。