您的位置:首页 > 产品设计 > UI/UE

吴恩达Deeplearning.ai 第五课 Sequence Model 第一周------Gated Recurrent Unit(GRU)

2018-03-04 14:58 549 查看
这一节主要讲述了GRU单元

先来看看标准的RNN单元:



简化的GRU单元:



与一般的RNN单元不同的是增加了一个参数c,表示memory cell

在GRU中,令c
<t>
= a
<t>


例如,当cat为单数时令c
<t>
为1,复数时为0,这个参数一直保持住并且在需要的时候(即要决定be动词的单复数的时候)会参与决定be动词单复数的计算。(???这里存疑,tanh函数如何保证c为0或者1,是不是应该用sigmoid)

c的更新利用一个门Γu来进行控制,Γu为0或1,并利用更新公式来更新c
<t>
。需要注意的是这里面的*表示element wise的相乘



左边是简化的GRU单元

这里面存在一个问题,由于在计算中输入x
<t>
和a
<t>
都是向量,自然计算得到的c
<t>
也是向量。可以认为:c
<t>
的每一位都记录了不同的信息,比如某一位记录的是cat的单复数,其他位记录的是这句话的其他信息(比如这句话是在将吃的食物等)。

由于c
<t>
有很多位,是一个向量,因此gate(Γ)也是一个向量,每次更新可能只更新c中的某些位。因此Γ记录的是c
<t>
不同位置的更新信息

在这句话中,c
<t>
中记录cat为单数的位一直保持住,并告诉be动词的位置应该用单数形式

完整的GRU单元:



完整的GRU模块还增加了一个Γr,用来计算c和c ̃的相关性,r代表relevance(???其实这里不太明白为什么这里这样能表示它们的相关性)。至于添加这个gate的原因,Ng在课程里讲这是研究人员在多次尝试后将其作为普遍适用的了。

对于GRU单元的结构,我们也可以进行自定义,不过效果可能就不如这个标准GRU模块了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  神经网络 RNN GRU
相关文章推荐