怎样克服神经网络训练中argmax的不可导性?

Posted 机器学习算法与自然语言处理

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样克服神经网络训练中argmax的不可导性?相关的知识,希望对你有一定的参考价值。

公众号关注 “ ML_NLP
设为 “ 星标 ”,重磅干货,第一时间送达!

来自 | 知乎

作者 | 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对于原回答的指正



下载1:四件套

即可获取学习TensorFlow,Pytorch,机器学习,深度学习四件套!


怎样克服神经网络训练中argmax的不可导性?


重磅!机器学习算法与自然语言处理交流群已正式成立

群内有大量资源,欢迎大家进群学习!


额外赠送福利资源!邱锡鹏深度学习与神经网络,pytorch官方中文教程,利用Python进行数据分析,机器学习学习笔记,pandas官方文档中文版,effective java(中文版)等20项福利资源

怎样克服神经网络训练中argmax的不可导性?

获取方式:进入群后点开群公告即可领取下载链接

注意:请大家添加时修改备注为 [学校/公司 + 姓名 + 方向]

例如 —— 哈工大+张三+对话系统。

号主,微商请自觉绕道。谢谢!

怎样克服神经网络训练中argmax的不可导性?


推荐阅读:




以上是关于怎样克服神经网络训练中argmax的不可导性?的主要内容,如果未能解决你的问题,请参考以下文章

怎样克服神经网络训练中argmax的不可导性?

绕过tf.argmax是不可区分的

深度学习领域的数据增强

SwiftUI 误导性错误:“Int”不可转换为“CGFloat”

Tensorflow text_generation 教程中对有状态 GRU 的误导性训练数据洗牌

在神经网络中提取知识:学习用较小的模型学得更好