GRU - 概念理解
一、门控神经单元
通过一些额外的控制单元,使得在构造隐藏状态的时候,可以选择侧重哪一块【注意力机制】
1、门
更新门:选取重要的数据去更新隐藏状态,即将重要的信息加入到隐藏状态中,这样就可以交给后面进行隐藏状态的更新。
重置门:也叫【遗忘门】,即将不重要的数据选择性遗忘掉,比如输入或者部分隐藏状态。
上述图片公式中:X为输入,H为隐藏状态。R为重置门,Z为更新门。
上述图片流程中:输入的H和X拼接构成全连接层,后经过激活函数后输出。
门是和隐藏状态具有同等大小的向量,注意以上公式中的W,对于每个门都有相对应的权重。
2、候选隐状态
R
t
⋅
H
t
−
1
R_{t}·H{t-1}
Rt⋅Ht−1:其中
H
t
−
1
H{t-1}
Ht−1为上一时刻的隐藏状态。
如果此时
R
t
R_{t}
Rt接近于0,那么说明不要上一个隐藏状态(有值才会表明存在状态,为0无状态)
如果此时
R
t
R_{t}
Rt全为0,则变为初始状态,那么说明这个时刻之前的隐藏状态都不要了。
如果此时
R
t
R_{t}
Rt全为1,说明将前面的隐藏状态全部拿来,就变成了RNN。
但是其实计算
R
t
R_{t}
Rt过程中的权重是可以学习的,就导致
R
t
R_{t}
Rt是可变的,通过学习可以自动得到哪些重要(
R
t
R_{t}
Rt中对应分量大),哪些不重要(
R
t
R_{t}
Rt中对应分量小)。
3、隐状态
参考极端情况,如果此时
Z
t
Z_{t}
Zt为1,表明状态不更新。如果此时
Z
t
Z_{t}
Zt为0,那么回到RNN状态,不去看以往的状态,只拿当前的状态去更新。
4、总结
对比RNN引入了两个门,两个门为控制单元,输出均为[0,1]数据,
重置门R是用来更新新隐藏状态时,要用到多少过去隐藏状态的信息。
更新门Z是在真正计算当前隐藏状态时,需要当前关于
X
t
X_{t}
Xt的多少信息。
通过R和Z来进行控制,在两种极端情况【不看
X
t
X_{t}
Xt即忽略
X
t
X_{t}
Xt,只看
X
t
X_{t}
Xt前面的信息都不看】两者之前进行学习,来达到是更多关注当前的信息还是以往的信息。
二、其他
RNN
RNN处理不了很长的序列,因为如果我们把很长的序列信息作为隐藏状态放入模型中,模型运算过程中就会累积很多信息,此时对于前面的数据信息就很难处理出来。