lstm和gru结构的再理解

本文深入解析RNN、LSTM和GRU的结构与原理,从RNN的总体结构到cell细节,再到LSTM和GRU的门结构,详细阐述了这些神经网络如何处理序列数据,并对比了LSTM与GRU的区别与联系。

我看大部分介绍rnn的文章里面都只画了cell的图,但是这对一个刚入门的人来说是会造成很大的误解,而正确的介绍方法应该先介绍rnn的总体结构,然后再介绍cell的结构。这才有可能对rnn有一个更清晰的认识。

RNN总体结构

我们在网上多是看到这样的图


2102682-0c6439759bd650c2.png
rnn的cell结构

cell是什么呢,我们首先回到MLP结构中


13790629-903217e0f45fb909.png
MLP结构

RNN中的cell其实就是MLP结构中隐藏层的神经元。但是这个神经元有点特殊,它加入了时序的特点,所以不同时间段它的表达是不一样的。
所以,RNN正确的模型结构图应该是这样:


13790629-52ff5fdd7f26ba68.jpg
RNN结构图

横向是不同的时序,纵向是不同的层。这样是不是会更好理解了呢。

而LSTM和GRU只是cell的变种形式,总体上RNN的结构是不变的。双向RNN的总体结构也没变,也只是cell的形式有所变化。


13790629-d2fe12da187c8b7f.png
双向rnn结构

lstm的cell结构

好了,下面回到经常看到的图


13790629-69ab61f67c07c55f.png
lstm结构

这张图是一个lstm的总体结构,我们知道,lstm里面最重要的概念是“门结构(gate)”,分为遗忘门,输入门和输出门。这里分4步来理解这个cell的结构。

13790629-eaa32799229a6921.png
遗忘(forget)

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

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

举个例子,比如完形填空中填“他”或者“她”的问题,细胞状态可能包含当前主语的类别,当我们看到新的代词,我们希望忘记旧的代词。

13790629-977925e47ba6fccc.png
输入(input)

公式中[h,x]还是做的concat操作。
这里的意思可以看作为放什么新信息到细胞状态(C[t])中。
i[t]有一个sigmoid,类似于遗忘操作,这里就是对新知识的筛选, C`[t]可以将其看作全部的新知识。

13790629-c7bd08564397219b.png
更新细胞状态

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

这里另外说一点,为什么lstm可以解决RNN中梯度弥散/消失的问题。
因为C[t]是又两个结果相加得到,求导时会保留更新梯度。

13790629-7a4a36c5fb654c48.png
输出(output)

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

gru的cell结构

lstm结构理解完了,其实gru结构的理解方式基本一致。还是那张图


13790629-f90261414106996f.png
gru结构

这里和lstm不同的是:

  1. 将遗忘门和输入门合成了一个单一的重置门(reset gate),也就是说多大程度上擦除以前的状态state,另外细胞更新操作变为更新门(update gete),它的作用是多大程度上要用candidate 来更新当前的hidden layer
  2. 同样还混合了细胞状态和隐藏状态
  3. 比标准LSTM简单

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

对比lstm和gru

因为gru参数更少,所以gru训练起来比lstm更简单。
但是,这两种cell最后的结果差不了太多!用的时候不必纠结选择哪种结构。

好了,lstm和gru说完了,下次来点新玩意,seq2seq和attention。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值