单层LSTM模型流程图(多层时,利用前一层的每一个h输出态作为当前层的流输入即可):

不必担心这里的细节。我们会一步一步地剖析 LSTM 解析图。现在,我们先来熟悉一下图中使用的各种元素的图标

其中记忆状态ct又叫细胞状态,cell_state
隐藏状态ht
在此过程中,有一个是记忆状态:

同样对应的中间输出状态为Ht

接下来,介绍和tf.keras.layers.LSTM中的关系,
1、go_backwards参数,决定输入的序列是正序输入到lstm还是倒序输入到lstm,通过次参数,就可以构造双向lstm
2、return_sequences=true时,返回序列输入时,每一次迭代对应的(h1,...,ht-1,ht),如果为false是,返回ht结论:
通常,在需要将各个隐层的结果作为下一层的输入时,选择设置 return_sequences=True
3、return_state=true时,在原先结果基础上,多返回最后一个时间步上的隐状态和细胞状态,即ht,ct
4、recurrent_activation是针对三个门机制(遗忘门、输入门、输出门)的激活函数,而activation是针对输入信息(默认tanh)和当前隐状态输出(默认tanh)的激活函数;

5、use_bias参数,对应的是所有需要sigmod或tanh变换前,实际还进行了线性变换,这里的bias,指的是在进行线性变换时,是否需要使用偏差,默认使用
6、dropout参数recurrent_dropout参数说明,如下图,dropout是对当前时间点xt对应的参数dropout;recurrent_dropout是对上一个隐常态的输入参数进行dropout;也可以理解为:
第一个dropout是x和hidden之间的dropout
第二个是hidden-hidden之间的dropout

7、stateful表示最后一次的状态是否要成为下一次批量输入的初始化状态
最后补充一个双向lstm模型结构:

文本分类(一) | (6) 多层双向LSTM_sdu_hao的博客-CSDN博客_多层双向lstm
本文深入解析LSTM模型的工作原理,涵盖单层、多层LSTM结构,以及如何在Keras中配置go_backwards、return_sequences和return_state等关键参数。讲解了双向LSTM结构,并列举了常见混淆点及实例应用。

540

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



