神经机器翻译中的加权加权

2024-10-16 20:53:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把解码器的embedding层和next_word预测层的权重联系起来。嵌入尺寸设置为300,解码器的隐藏尺寸设置为600。NMT中目标语言的词汇量为50000,因此嵌入权重维为50000 x 300,预测下一个单词的线性层的权重为50000 x 600。在

那么,我该怎么系呢?在这种情况下,实现配重的最佳方法是什么?在


Tags: 方法尺寸情况线性embedding解码器单词word
3条回答

权重绑定:在输入到嵌入层和输出到softmax层之间共享权重矩阵;也就是说,我们只使用一个权重矩阵,而不是使用两个权重矩阵。这样做的直觉是为了解决过度拟合的问题。因此,权重捆绑可以看作是一种正则化形式。在

这已在word language model in PyTorch examples中实现

在应用共享投影之前,可以使用线性层将600维空间向下投影到300维。这样,您仍然可以获得这样的优势:整个嵌入(可能)对于每一个小批量都有一个非零梯度,但有可能稍微增加网络的容量。在

你查过kmario23共享的代码了吗?因为它写的是,如果隐藏大小和嵌入大小不相等,那么会引发一个异常。所以,这意味着如果你真的想把权重联系起来,那么你应该把解码器的隐藏大小减少到300。在

另一方面,如果你重新考虑你的想法,你真正想做的是消除重量束缚。为什么?因为基本上,你想用一个需要另一个矩阵的变换。在

相关问题 更多 >