首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何/如何初始化RNN序列到序列模型中的隐藏状态?

如何/如何初始化RNN序列到序列模型中的隐藏状态?
EN

Data Science用户
提问于 2018-01-30 06:30:54
回答 1查看 9.1K关注 0票数 5

在RNN序列到序列模型中,训练前需要初始化输入隐藏状态和输出隐藏状态。

我们应该用What值初始化它们吗?我们应该如何初始化它们?

PyTorch教程中,它简单地将零初始化到隐藏状态。

Is初始化零-- RNN seq2seq网络中初始化隐藏状态的常用方法&

glorot初始化怎么样?

对于单层普通的RNN来说,扇入和扇出不等于$(1 + 1)$,它的方差为$1美元,而$mean=0$的高斯分布则给出了$0$s的均匀分布。

代码语言:javascript
运行
复制
for-each input-hidden weight
  variance = 2.0 / (fan-in +fan-out)
  stddev = sqrt(variance)
  weight = gaussian(mean=0.0, stddev)
end-for

对于单层编解码结构,如果我们使用glorot,我们在初始化解码器隐藏状态时会得到非常小的差异,因为扇入将包含从编码器输出中映射到所有可能词汇表的注意。所以我们也得到了~= 0的高斯平均值,因为stdev真的很小。

What还有其他初始化方法,尤指。用于RNN seq2seq模型?

EN

回答 1

Data Science用户

发布于 2019-03-25 17:02:02

消除隐藏状态初始化和权值初始化之间的区别是很重要的。Glotrot (泽维尔)、凯明等都是神经网络权值的初始化方法。

由于您的问题是关于隐藏状态初始化:另一方面,隐藏状态可以以多种方式初始化,因此初始化为零确实很常见。其他方法包括从高斯分布或其他分布中取样。相对于RNN,这定义了RNN以什么开头作为它的“内存”。两种常见的方法似乎要么是噪声初始化(来自某种分布或随机数生成器),或学习初始化。,要么是

要合成上面的链接,用零初始化隐藏状态可能会导致网络学习适应于零隐藏状态,而不是最小化长序列的损失(因此这是短序列的一个问题)。如果有足够的序列,它可以有意义的初始状态是一个经过训练的变量,这是一个函数的误差在反向传播。

票数 5
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/27225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档