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

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

9a482bccbbc19aadccadb522ee330baf.png

来自 | 知乎

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

下载1:四件套

在机器学习算法与自然语言处理公众号后台回复“四件套”

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

7569bd96acd86cab7bd8fdb9e6a46309.png

下载2:仓库地址共享

在机器学习算法与自然语言处理公众号后台回复“代码”

即可获取195篇NAACL+295篇ACL2019有代码开源的论文。开源地址如下:https://github.com/yizhen20133868/NLP-Conferences-Code

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

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

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

37b7d8bea926ee2b94999115fbf4d6a1.png

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

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

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

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

b5606b484275346e301c2c8dbd95ab0f.png

0427c16504b848dd4062499a83a32891.png

推荐阅读:

工业界求解NER问题的12条黄金法则

三步搞定机器学习核心:矩阵求导

神经网络中的蒸馏技术,从Softmax开始说起

79222f94e8adb0f9f11bac6b5ed30d24.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值