【发布时间】:2025-12-06 00:55:01
【问题描述】:
在张量流Github存储库中,在文件attentionwrapper.py中,已经定义了hardmax算子。在文档中,已经提到了tf.contrib.seq2seq.hardmax
我想知道为 hardmax 运算符提供此功能背后的理论基础是什么。过去几周的初步谷歌搜索并没有让我对这个概念有具体的理解。
如果 softmax 是可微的(软),为什么还要使用 hardmax?如果不能用于反向传播(由于梯度计算需要不可微分),还能用在哪里?
强化学习文献讨论了软注意力与硬注意力。但是,我看不到具体的例子,也看不到 tf.contrib.seq2seq.hardmax 可以在某些 RL 模型中实际使用的位置的解释。
从表面上看,既然在seq2seq中提到了,那么在自然语言处理中应该有一定的应用。但具体在哪里?有大量的 NLP 任务。找不到任何使用 hardmax 的直接任务 SOTA 算法。
【问题讨论】:
标签: python tensorflow pytorch mxnet