微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用解码器隐藏状态和编码器输出来计算张量流中Bahdanau注意的得分,

如何解决使用解码器隐藏状态和编码器输出来计算张量流中Bahdanau注意的得分,

此问题与此处显示的神经机器翻译有关:Neural Machine Translation

self.W1self.W2__init__的{​​{1}}函数的第4行和第5行中被初始化为每个10单位的密集神经层。

在所附的代码图像中,我不确定我是否理解第17行和第18行中设置的前馈神经网络。因此,我将此公式分解为各个部分。参见第23行和第24行。

class BahdanauAttentionquery_with_time_axis的输入张量,而self.W1values的输入张量。每个函数都计算函数self.W2,并将Z相加。加在一起的张量的尺寸为Z = WX + b(64,1,10)。我假设(64,16,10)self.W1随机权重初始化都是由self.W2在幕后处理的。

问题:

将Z相加后,将应用非线性(Keras)进行激活,并将得到的激活输入到下一层tanh,该层是一个输出,并给我们self.V

对于最后一步,我们不对score的结果应用激活函数(tanh等),以从最后一个神经网络层获得单个输出

在最后一步中没有使用激活功能是有原因的吗?

See line 17,18,23 and 24

解决方法

注意力形式的输出,即所谓的注意力能量,即每个编码器输出一个标量。这些数字被堆叠到向量中,然后使用softmax对向量进行归一化,从而引起注意 distribution

因此,实际上,在下一步中应用了非线性,即softmax。如果在softmax之前使用了激活功能,则只会减少softmax可以做的分布空间。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。