首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hardmax算子背后的理论基础

Hardmax算子背后的理论基础
EN

Stack Overflow用户
提问于 2018-11-19 02:59:07
回答 1查看 171关注 0票数 0

在张量流Github存储库中,在文件attentionwrapper.py中定义了hardmax操作符。在文档中,已经提到了tf.contrib.seq2seq.hardmax

我想知道为hardmax操作符提供这种功能背后的理论基础是什么。从表面上看,谷歌搜索在过去几周并没有让我对这个概念有具体的理解。

  1. 如果softmax是可微的(软),为什么要使用hardmax?如果它不能用于反向传播(由于梯度计算所要求的不可微性),它还可以在哪里使用?
  2. 强化学习的文献讨论软与硬的注意。但是,我看不到tf.contrib.seq2seq.hardmax在某些RL模型中实际使用的具体例子或解释。
  3. 从它的角度看,由于它是在seq2seq中提到的,它显然应该在自然语言处理中有一定的应用。但具体在哪里?有大量的NLP任务。无法找到任何直接任务SOTA算法,使用硬最大值。
EN

回答 1

Stack Overflow用户

发布于 2018-11-19 03:05:38

当你别无选择,只能非概率地做出决定时,就会使用Hardmax。例如,当您使用一个模型来生成一个神经结构,就像在神经模块网络中一样,您必须做出一个离散的选择。为了使这个可训练(因为这将是不可微的,因为你的状态),你可以使用强化(在RL中的一个算法)通过策略梯度训练和估计这个损失贡献通过蒙特卡罗抽样。神经模块网络是一种基于seq2seq的神经网络结构。我相信有许多例子,但这是一个立竿见影的想法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53367724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档