我知道在LSTM链中,您应该将前一个单元格的h(t)连接到下一个单元格的h(t+1),并对c(t)这样做。但是第一个细胞呢?作为h(t-1)和c(t-1),它得到什么?
我也想知道,如果我们想做一个多层的LSTM,我们应该给第二层的第一个单元作为h和c?另外,我们会扔掉每个层最后一个单元的h和c吗?
还有另外一个问题:我们会把每个单元格的y(输出)给它顶层对应单元的x(输入)吗?
发布于 2019-07-05 06:57:22
假设LSTM将用于序列生成(例如,在编解码NMT体系结构的语言模型或解码器部分中),我们有以下内容:
监督学习设置中的
在语言模型中,LSTM的h_{-1}和c_{-1}被初始化为零,用于所有层。如果LSTM是编解码NMT体系结构的解码器部分,则将使用编码器部分的LSTM的隐藏状态和上下文向量初始化LSTM,或者使用某种注意机制从所有位置的最后位置初始化LSTM。
在培训期间,输入x不会输入对前一个令牌的LSTM预测,因为这会出现收敛问题;相反,您可以使用教师强制,这包括将黄金令牌(来自培训数据的令牌)作为输入。
在推理期间,您必须使用网络自己的预测作为下一个令牌的输入。
训练和推理机制之间的不匹配被认为是暴露偏见,也就是说,在训练期间,你使网络只看到以前的“好”标记,而它永远不会从自己的错误预测中恢复过来。然而,根据近期研究的说法,暴露偏差实际上可能不是一个严重的问题。
更异国情调的学习设置中的
在文本GANs中,h_{-1}和c_{-1}有时是由遵循某些先验分布的潜在向量z初始化的。
此外,在没有金标记的文本GANs和其他学习设置中,教师强制不是一种选择,因此您需要使用LSTM预测作为先前的令牌输入。
https://datascience.stackexchange.com/questions/55112
复制相似问题