- 经典RNN的输入和输出序列长度相等,此外还有N vs 1 RNN(如句子情感分析)和1 vs N RNN(如image caption);
- LSTM外部结构和RNN一样,只是内部结构不同;LSTM有遗忘门、输入门和输出门;
(LSTM上面一层传输的是cell state即Ct,类似传输带;LSTM利用各种gates来remove or add信息到cell state;LSTM下面一层传输的是hidden state即ht)
(cell state或Ct倾向于不改变信息(因为Ct是Ct-1的线性函数);hidden state或ht倾向于改变信息(因为ht-1和xt拼接后,要么跟上sigmoid网络层,要么跟上tanh网络层,或者简单说,ht不是ht-1的线性函数);)
(gates由a sigmoid neural net layer and a pointwise multiplication operation构成;)
(为啥gates不能由tanh网络层+逐元素相乘操作 构成呢?因为tanh的取值范围不是(0,1)?而gates是指,让信息通过0%、50%、100%,不能是负数,应该是这意思;)
(因为LSTM cell中有3个sigmoid网络层、3个逐元素乘法,所以LSTM有3个gates;)
(LSTM一共6个公式,其中4步得到Ct,6步得到ht,注意:ht计算用到Ct,而且ht不仅传给下一时刻,也作为输出,所以ht更重要,是最终目的;)
(ps:RNN只有ht,LSTM设计了Ct,后来GRU又把ht和Ct合并为ht;)
(LSTM第一个门是遗忘门,即ft; 第二个门是输入门,即it和Ct拔,其中Ct拔是新产生的信息,而it是作用于Ct拔的(遗忘)门,注意Ct拔来自h和x,和Ct-1无关,Ct拔将被add到Ct;)
(第4个公式,由Ct-1、Ct拔得到Ct,可理解为‘忘记一部分老的信息,新加上一部分新的信息’;)
(第三个门是输出门,即ot和ht,其中ot是作用于tanh(Ct)的(遗忘)门,即选择性的输出信息;)
(有些LSTM变体更复杂,比如对每个或部分sigmoid网络层加了peephole connections,即把Ct-1或Ct也作为输入;)
(GRU将遗忘门和输入门合并为update gate;同时将cell state和hidden state合并;)
(LSTM有6个公式(LSTM网站是有偏置版本,CS224 Lecture 9是无偏置版本);GRU只有4个公式(都是无偏置),GRU是对LSTM的简化!)
(GRU长程依赖对应update gate活跃,短程依赖对应reset gate活跃;)
(LSTM或GRU训练的参数是每个cell中的W和b,即每个sigmoid或tanh网络层(但不包括逐元素的tanh操作,这个没有需要训练的参数),sigmoid或tanh可看成是把输入规格变为合适的输出规格(比如13与32相乘变为1*2);) - RNNCell是tf对rnn的单步建模,是抽象类,有BasicRNNCell和BasicLSTMCell两个子类;MultiRNNCell对RNN进行堆叠;
- BasicRNNCell的state_size永远等于output_size,而BasicLSTMCell不是;tf.nn.dynamic_rnn相当于调用了n次call;
- BPTT相关博客:
https://blog.youkuaiyun.com/zhaojc1995/article/details/80572098
nlp笔记
深度学习在NLP中的应用:LSTM与GRU解析
最新推荐文章于 2022-11-07 18:19:56 发布
本文深入探讨了RNN、LSTM和GRU在自然语言处理中的应用。介绍了LSTM的遗忘门、输入门和输出门机制,以及GRU对LSTM的简化。LSTM和GRU在长短期记忆和信息传递方面具有优势,适用于序列标注、语言模型和文本生成等任务。此外,还提到了词袋模型、N-Gram和序列标注在NLP中的角色。

最低0.47元/天 解锁文章
570

被折叠的 条评论
为什么被折叠?



