长短期记忆网络(LSTM)

http://zh.d2l.ai/chapter_recurrent-modern/lstm.html

为什么可以缓解梯度爆炸呢,这里不是非常懂

这里的vocab_size指的是词向量的维度吧?

对第4问没懂。“ 那么为什么隐状态需要再次使用tanhtanh函数来确保输出值范围在(−1,1)(−1,1)之间呢?”,这里隐状态有用tanh函数吗?隐状态H的计算公式里不是只用了一次tanh作用在C_t上吗?

候选记忆元用tildeC表示,记忆元用C表示。

  1. 首先来回答您关于隐状态是否使用了 tanh()函数的疑问。
    Ht = Hadamard(Ot,tanh(Ct)),(Hadamard就是逐元素的乘积)
    在这里,隐状态表示为了Ot和tanh(Ct)的Hadamard积,这里所说的“隐状态再次使用了 tanh() 函数”其实指的就是这里的记忆元使用了tanh()函数,因为记忆元Ct使用了 tanh()函数,且其和Ot的Hadamard积的最终表示结果就是Ht,故可以理解为Ht使用了 tanh() 函数。
  2. 关于这一个问题的具体解答,是这样的:
    虽然候选记忆元 tildeC 使用了tanh()函数,但是求Ct的方式是这样的
    Ct = Hadamard(Ft, Ct-1) + Hadamard(It, tildeCt)
    可以很容易看出,例如当FtIt均取1,且Ct-1tildeCt也均取1时,结果为2,超出了(-1, 1)范围。故最后还需使用tanh()函数在求Ht的过程中使其回到(-1, 1)。
1 Like

想知道如何从lstm 进化到gru的?从目前来看使用reset, update gates基本上已经达到类似效果

为什么要限制在(-1,1)?有什么好处呢?。。。。