作者 | Che_Hongshu
来源 | AI蜗牛车 (ID: AI_For_Car)
因为自己LSTM和GRU学的时间相隔很远,并且当时学的也有点小小的蒙圈,也因为最近一直在用lstm,gru等等,所以今天没事好好缕了一下,接下来跟着我一起区分并且每个单元全都非常深刻的记一下把。
一、LSTM
这里我们只看内部结构
公式为
看内部结构的话为
接下来是我的理解和记忆方法以及区分。
自己对上面的图片进行了编辑,单元和公式一一对应颜色,方便自己和他人观看。
一张图清晰地搞定LSTM。
个人理解简短的说明这张图。
-
首先输入为三个值,一个是此刻的输入值x,另一个是上一时刻的状态值c,最后一个是上一个单元的输出h
-
最终输出为两个值,一个是此刻产生的状态值c和输出h
-
首先是输入值x和上一个单元的输出h,分别两个输入都有对应的权重,在经过sigmoid激活作用下得到0-1的值,也就是三个门值
-
和3差不多,依然还是 输入值x和上一个单元的输出h,两个值有对应的权重和3中的描述一模一样,唯一的区别在于有一个tanh激活函数,最后相当于得到此时输入得到的当前state,也就是new memory。这里可以理解为输入其实是近似的x和h的concatenate操作,经过正常的神经网络的权重,最后经过tanh激活函数得到此时输入的当前的state,x相当于此刻的输入,h为前面历史的输入,合在一起就是整个序列的信息,也就是此时的new memory。
-
最后输出的state,也就是final memory的计算利用了input gate和forget gate,output gate只与输出有关。final memory的计算自然而然和上一步算得此时的记忆state相关并且和上一个输出的final memory相关,故为忘记门和Ct-1的乘积加上上一步算出来的此时单元的C和输入门的乘积为最终的state(故 c)
-
输出门只与输出相关,最终的输出h为输出门乘以tanh(c)
二、GRU
自己对上面的图片进行了编辑,单元和公式一一对应颜色,方便自己和他人观看。
.
-
这里GRU只有两个gate,一个是reset gate, 一个是update gate, update gate的作用类似于input gate和forget gate,(1-z)相当于input gate, z相当于forget gate。
-
输入为两个值,输出也为一个值,输入为输入此时时刻值x和上一个时刻的输出ht-1, 输出这个时刻的输出值ht
-
首先依然是利用xt和ht-1经过权重相乘通过sigmoid,得到两个0-1的值,即两个门值。
-
接下来这里有一些不同,并且经常容易搞混淆。对于LSTM来说依然还是xt与ht-1分别权重相乘相加,之后经过tanh函数为此时的new memory,而GRU为在这个计算过程中,在ht-1与权重乘积之后和reset gate相乘,之后最终得到new memory,这里的reset gate的作用为让这个new memory包括之前的ht-1的信息的多少。
-
接下来和lstm得到final memory其实一样,只是GRU只有两个输入,一个输出,其实这里h即输出也是state,就是说GRU的输出和state是一个值,所以4步骤得到的是new h,这步骤得到的是final h,通过update gate得到。
三、细数LSTM与GRU之间的不同
3.1 结构上
-
lstm为三个输入xt,ht-1, ct-1,两个输出。gru为两个输入xt, ht-1,一个输出ht,输出即state。
-
lstm有三个门,输入输出忘记门。gru有两个门,reset,update 门。
-
update 类似于 input gate和forget gate
3.2 功能上
-
GRU参数更少,训练速度更快,相比之下需要的数据量更少
-
Reference
https://blog.csdn.net/sinat_33741547/article/details/82821782
https://towardsdatascience.com/understanding-gru-networks-2ef37df6c9be
https://medium.com/mlrecipies/deep-learning-basics-gated-recurrent-unit-gru-1d8e9fae7280
(*本文为 AI 科技大本营转载文章,转载请联系原作者)
扫码添加小助手,回复:大会,加入福利群,参与抽奖送礼!
大会
优惠票限时抢购中!
此外,伯克利大学名师精髓课程移师北京。
《动手学深度学习》作者、亚马逊首席科学家李沐线下亲授「深度学习实训营」,
免费GPU资源,现场还将限量赠送价值85元的配套书籍一本,先到先得。原价1099元,
限时专享CSDN 独家福利价
199元
!
识别海报二维码,即刻购票~