如果使用一个小型神经网络作为注意力模型的评分函数,它是针对什么标签/值进行训练的?

我正在阅读一篇关于机器翻译中编码器-解码器架构注意力机制的论文。文中提出了几种解码步骤的评分函数建议,例如编码器状态和解码器状态之间的余弦相似度、简单的点积等…其中一种是使用神经网络来训练以获得一个分数。但我不明白的是,我们要针对什么进行训练?我指的是输出“Y”的标签/值。网络的方程如下所示。

score(s,h)= v . tanh(W[s;h])

https://lilianweng.github.io/lil-log/2018/06/24/attention-attention.html


回答:

用于注意力的神经网络并不是单独训练的。用更简单的话来说,tanh(W[s;h])(论文中提到的神经网络)是一个与编码器和解码器一起训练的前馈层。

任何注意力机制都会提出一个加权方案,以选择并组合适当的编码器状态用于特定的解码步骤。假设编码器的输出为a1, a2, .., an。对于解码器的每一步,输入为编码器状态的加权组合。一个注意力分数给出了每个解码步骤的适当权重α1, α2, .., αn。因此,例如要得到解码器输出d1,输入将是a1 * α1 + a2 * α2 + .. + an * αn

权重α1, .. 是通过对注意力层/网的输出进行softmax处理得到的,在你的例子中是tanh。在这种情况下,tanh的权重是学习得到的,即,tanh的反向传播和梯度更新是与整个编码器-解码器网络一起进行的。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注