在神经机器翻译中加权

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在神经机器翻译中加权相关的知识,希望对你有一定的参考价值。

我想绑定解码器的embedding层和next_word预测层的权重。嵌入维度设置为300,解码器的隐藏大小设置为600.NMT中目标语言的词汇量大小为50000,因此嵌入权重维度为50000 x 300,预测下一个单词的线性层的权重为50000 x 600

那么,我怎么能绑他们呢?在这种情况下,实现重量搭售的最佳方法是什么?

答案

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

另一答案

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

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

另一答案

你检查了kmario23共享的代码吗?因为写的是如果隐藏的大小和嵌入大小不相等则引发异常。所以,这意味着如果你真的想要绑定权重,那么你应该将解码器的隐藏大小减少到300。

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

以上是关于在神经机器翻译中加权的主要内容,如果未能解决你的问题,请参考以下文章

机器学习——前馈神经网络

开啃《机器学习》(周志华)- 第5章 神经网络

60-R语言中的神经网络

神经网络优化 - 正则化

请问matlab中RBF神经网络newrbe函数用的啥算法

基于负相关学习多神经网络集成的目标识别算法MATLAB仿真