来自 | 知乎
地址 | https://www.zhihu.com/question/422373907/answer/1490072620?
作者 | Zhenyue Qin
编辑 | 机器学习算法与自然语言处理公众号
本文仅作学术分享,若侵权,请联系后台删文处理
有个东西叫strainght through Gumbel (estimator), 可以看一下~
大概思想就是: 假设输入的向量是v, 那么我们用softmax得到softmax(v). 这样, 最大值那个地方就会变得很靠近1, 其他地方就会变得很靠近0. 然后, 我们计算argmax(v), 接着可以得到一个常数c = argmax(v) - softmax(v). 我们这时, 可以用softmax(v) + c来作为argmax(v)的结果. 这个东西的好处是, 我们的softmax(v) + c是有反向传播的能力的. 换句话说, 我们用softmax(v)的梯度来作为反向传播.
P.S. 感谢吕纯川和Towser对于原回答的指正
下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!
整理不易,还望给个在看!