位置: IT常识 - 正文

Gumbel-Softmax完全解析

发布时间:2024-01-13
Gumbel-Softmax完全解析 写在前面

推荐整理分享Gumbel-Softmax完全解析,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

本文对大部分人来说可能仅仅起到科普的作用,因为Gumbel-Max仅在部分领域会用到,例如GAN、VAE等。笔者是在研究EMNLP上的一篇论文时,看到其中有用Gumbel-Softmax公式解决对一个概率分布进行采样无法求导的问题,故想到对Gumbel-Softmax做一个总结,由此写下本文

为什么我们需要Gumbel-Softmax ?

假设现在我们有一个离散随机变量ZZZ的分布 p1=p(Z=1)=π1p2=p(Z=2)=π2p3=p(Z=3)=π3...px=p(Z=x)=πxp_1 = p(Z=1)=\pi_1\\ p_2 = p(Z=2) = \pi_2\\ p_3 = p(Z=3) = \pi_3\\ ...\\ p_x = p(Z=x) = \pi_x\\p1​=p(Z=1)=π1​p2​=p(Z=2)=π2​p3​=p(Z=3)=π3​...px​=p(Z=x)=πx​ 其中,∑iπi=1\sum_i \pi_i=1∑i​πi​=1。我们想根据p1,p2,...,pxp_1,p_2,...,p_xp1​,p2​,...,px​的概率采样得到一系列离散zzz的值。但是这么做有一个问题,我们采样出来的zzz只有值,没有生成zzz的式子。例如我们要求ZZZ的期望,那么就有公式 E(Z)=p1+2p2+⋯+xpx\mathbb{E}(Z) = p_1 + 2p_2 + \cdots +xp_xE(Z)=p1​+2p2​+⋯+xpx​ ZZZ对p1,p2,...,pxp_1,p_2,...,p_xp1​,p2​,...,px​的导数都很清楚。但是现在我们的需求是采样一些具体的zzz值,采样这个操作没有任何公式,因此也就无法求导。于是一个很自然的想法就产生了,我们能不能给一个以p1,p2,...,pzp_1,p_2,...,p_zp1​,p2​,...,pz​为参数的公式,让这个公式返回的结果是zzz采样的结果呢?

Gumbel-SoftmaxGumbel-Softmax完全解析

一般来说πi\pi_iπi​是通过神经网络预测对于类别iii的概率,这在分类问题中非常常见,假设我们将一个样本送入模型,最后输出的概率分布为[0.2,0.4,0.1,0.2,0.1][0.2, 0.4,0.1,0.2,0.1][0.2,0.4,0.1,0.2,0.1],表明这是一个5分类问题,其中概率最大的是第2类,到这一步,我们直接通过argmax就能获得结果了,但现在我们不是预测问题,而是一个采样问题。对于模型来说,直接取出概率最大的就可以了,但对我们来说,每个类别都是有一定概率的,我们想根据这个概率来进行采样,而不是直接简单无脑的输出概率最大的值

最常见的采样z\mathbf{z}z的onehot公式为 z=onehot(max⁡{i∣π1+π2+⋯+πi−1≤u})(1)\mathbf{z} = \text{onehot}(\max \{i\mid \pi_1 + \pi_2+\cdots +\pi_{i-1} \leq u\})\tag{1}z=onehot(max{i∣π1​+π2​+⋯+πi−1​≤u})(1) 其中i=1,2,..,xi=1,2,..,xi=1,2,..,x是类别的下标,随机变量uuu服从均匀分布U(,1)U(0,1)U(0,1)

上面这个过程实际上是很巧妙的,我们将概率分布从前往后不断加起来,当加到πi\pi_iπi​时超过了某个随机值$ 0\leq u \leq 1,那么这一次随机采样过程,,那么这一次随机采样过程,,那么这一次随机采样过程,z就被随机采样为第就被随机采样为第就被随机采样为第i$类,最后通过一个onehot变换

但是上述公式存在一个致命的问题:max函数是不可导的

Gumbel-Max Trick

Gumbel-Max技巧就是解决max函数不可导问题的,我们可以用argmax替换max,即 z=onehot(argmaxi{gi+log⁡πi})(2)\mathbf{z} = \text{onehot}(\mathop{\text{argmax}}\limits_{i} \{g_i + \log \pi_i\})\tag{2}z=onehot(iargmax​{gi​+logπi​})(2) 其中,gi=−log⁡(−log⁡(ui)),ui∼U(,1)g_i=-\log(-\log(u_i)), u_i \sim U(0,1)gi​=−log(−log(ui​)),ui​∼U(0,1),这一项名为Gumbel噪声,或者叫Gumbel分布,目的是使得z\mathbf{z}z的返回结果不固定

可以看到式(2)(2)(2)的整个过程中,不可导的部分只有argmax,实际上我们可以用可导的softmax函数,在参数τ\tauτ的控制下逼近argmax,最终ziz_izi​的公式为 zi=exp⁡(gi+log⁡πiτ)∑jxexp⁡(gj+log⁡πjτ)(3)z_i = \frac{\exp(\frac{g_i + \log \pi_i}{\tau})}{\sum_{j}^x\exp(\frac{g_j + \log \pi_j}{\tau})}\tag{3}zi​=∑jx​exp(τgj​+logπj​​)exp(τgi​+logπi​​)​(3) 其中,τ\tauτ越小(τ→)(\tau \to 0)(τ→0),整个softmax越光滑逼近argmax,并且z={zi∣i=1,2,...,x}\mathbf{z} = \{z_i\mid i=1,2,...,x\}z={zi​∣i=1,2,...,x}也越接近onehot向量;τ\tauτ越大(τ→∞)(\tau \to \infty)(τ→∞),z\mathbf{z}z向量越接近于均匀分布

总结

整个过程相当于我们把不可导的取样过程,从z\mathbf{z}z本身转移到了求z\mathbf{z}z的公式中的一项gig_igi​中,而gig_igi​本身不依赖p1,..,pxp_1,..,p_xp1​,..,px​,所以zzz对p1,...,pxp_1,...,p_xp1​,...,px​就可以到了,而且我们得到的z\mathbf{z}z仍然是离散概率分布的采样。这种采样过程转嫁的技巧有一个专有名词,叫重参数化技巧(Reparameterization Trick)

ReferencesWhat is Gumbel-SoftmaxGumbel-Softmax Trick和Gumbel分布
本文链接地址:https://www.jiuchutong.com/zhishi/294559.html 转载请保留说明!

上一篇:swapoff命令 关闭SWAP交换分区(关停所有swap分区的命令)

下一篇:uniapp封装axios?大可不必那么麻烦。(uniapp封装组件,多了一层)

  • 苹果3se发布(苹果3s)(iphone3发布)

    苹果3se发布(苹果3s)(iphone3发布)

  • 微信如何解除青少年模式监护人(微信如何解除青少年模式设置)

    微信如何解除青少年模式监护人(微信如何解除青少年模式设置)

  • 麒麟990比麒麟980提升多少(麒麟990比麒麟970提升多少)

    麒麟990比麒麟980提升多少(麒麟990比麒麟970提升多少)

  • 陌陌禁止添加新关注(陌陌出现禁止添加新关系什么意思)

    陌陌禁止添加新关注(陌陌出现禁止添加新关系什么意思)

  • u盘装系统按f几进入(u盘装系统教程按f几)

    u盘装系统按f几进入(u盘装系统教程按f几)

  • xs原彩要不要开

    xs原彩要不要开

  • nova5Pro相机怎么调(nova5pro拍照如何)

    nova5Pro相机怎么调(nova5pro拍照如何)

  • 各种计算器最基本的功能是什么(各种计算器最基本的功能是进行什么)

    各种计算器最基本的功能是什么(各种计算器最基本的功能是进行什么)

  • risc-v架构是哪个国家的(risc-v架构是什么)

    risc-v架构是哪个国家的(risc-v架构是什么)

  • wps做的批注不见了(wps批注不显示是怎么回事)

    wps做的批注不见了(wps批注不显示是怎么回事)

  • jmmal10华为什么型号(华为jmmtl10)

    jmmal10华为什么型号(华为jmmtl10)

  • 不看微信微信运动会不会更新(不看微信运动)

    不看微信微信运动会不会更新(不看微信运动)

  • 微信设置出生日期(微信从哪里设置生日)

    微信设置出生日期(微信从哪里设置生日)

  • 微信怎么收藏表情包(微信怎么收藏表格)

    微信怎么收藏表情包(微信怎么收藏表格)

  • 笔记本电脑ssd什么意思(笔记本ssd是c盘吗)

    笔记本电脑ssd什么意思(笔记本ssd是c盘吗)

  • ios微信分身怎么弄(ios微信分身怎么下载)

    ios微信分身怎么弄(ios微信分身怎么下载)

  • 京东订单已再投是什么意思(京东订单已再投原因集约地址)

    京东订单已再投是什么意思(京东订单已再投原因集约地址)

  • vivo手机hd在哪打开(vivo手机上面hd怎么开)

    vivo手机hd在哪打开(vivo手机上面hd怎么开)

  • wps怎么以文件格式发送(wps怎么以文件格式分享给朋友)

    wps怎么以文件格式发送(wps怎么以文件格式分享给朋友)

  • 快手播放量怎么提高(快手播放量怎么设置他人可见)

    快手播放量怎么提高(快手播放量怎么设置他人可见)

  • 拼多多在哪查消费金额(拼多多在哪查消费账单)

    拼多多在哪查消费金额(拼多多在哪查消费账单)

  • 苹果通话设置在哪里(苹果通话设置在哪里设置)

    苹果通话设置在哪里(苹果通话设置在哪里设置)

  • 火山视频如何添加好友(火山小视频怎么添加自己喜欢的音乐)

    火山视频如何添加好友(火山小视频怎么添加自己喜欢的音乐)

  • 信号格旁边有个hd(信号格旁边有个1x是什么意思)

    信号格旁边有个hd(信号格旁边有个1x是什么意思)

  • 鸿蒙工具箱有扩展内存吗详情(鸿蒙工具栏在哪里)

    鸿蒙工具箱有扩展内存吗详情(鸿蒙工具栏在哪里)

  • 绕过压缩包密码提取文件教程(如何绕开压缩包密码)

    绕过压缩包密码提取文件教程(如何绕开压缩包密码)

  • 前端使用lottie-web,使用AE导出的JSON动画贴心教程(前端使用vue)

    前端使用lottie-web,使用AE导出的JSON动画贴心教程(前端使用vue)

  • python中pandas有哪些功能特色(python中的pandas)

    python中pandas有哪些功能特色(python中的pandas)

  • 企业所得税汇算清缴补缴税款分录
  • 企业出售资产要交增值税吗
  • 缴纳所得税的账务处理
  • 建筑企业有哪些
  • 月末怎么计提税费
  • 发票未到已验收什么意思
  • 收到租赁费发票的账务处理
  • 本期实际缴费金额指的是什么
  • 稳岗补贴给谁
  • 地下建筑房产税减免优惠政策
  • 主营业务成本属于
  • 以银行存款退还投资者股金
  • 异地承包工程预缴什么税?
  • 已认证未抵扣的进项税如何报税
  • 补偿贸易具体方式
  • 长投成本法分红分录
  • 原材料销售出库会计分录
  • 电子钥匙到期怎么办
  • 非贸易企业代扣代缴增值税和附加税如何做账?
  • 劳务公司发放农民工工资要开发票吗?
  • 在windows7的
  • win7系统为什么没有无线网络连接
  • 收到员工的罚款的会计科目
  • 苹果手机把旧手机的照片传到新手机
  • 投资性房地产出售
  • 进口增值税公式计算公式
  • php 二叉树的遍历
  • 计提坏账准备的方法
  • 怎样把有余额的钱转出来
  • php中session什么意思
  • 请问酒厂销售酒怎么样?
  • stable diffusion webul
  • 车间装修预算表
  • 开发票的零税率和免税有什么区别
  • 出售子公司股权不丧失控制权
  • 公司进项不够怎么开发票
  • 分公司和总公司的账务处理
  • python判断字符串为字母
  • 退伍军人企业所得税优惠
  • 汇兑损益一级科目
  • sql with as用法详解
  • sql server使用sql server身份登录
  • 吊车租赁有限公司
  • 认缴意思
  • 金税盘全额抵扣申报表怎么填
  • 营业税改增值税有什么好处
  • 银行承兑到期之前怎么办
  • 酒店没有营业执照开业犯法吗
  • 销售返利的账务处理案例
  • 收到对公打款认证怎么入账
  • 向法人借款凭证摘要怎么写
  • 小规模纳税人企业所得税税率
  • 跨期发票会计处理
  • 以前年度应收账款少记怎么处理
  • 发票税率如何填写
  • 项目估算主要包括
  • 进口医疗器械产品
  • 退回多交增值税账务处理小规模
  • 收到专票未抵扣能购买方开红字发票吗
  • 购买的办公用品需要入库出库吗
  • bat windows
  • 解析包出现错误无法安装怎么办
  • centos 文件搜索
  • ias.exe是什么程序
  • win7系统小喇叭有红叉没声音
  • 索尼笔记本安装软件顺序
  • three. js
  • Android异常重启保护机制
  • node.js做服务器
  • 使用驱动器u盘之前需要格式化
  • linux中的shell命令
  • android保存网络图片
  • unity的gui
  • 基于javascript的毕业设计
  • 天津生育津贴如何查询申请进度
  • 辽宁社保网上申报流程图
  • 国际税收对经济活动的影响
  • 畜牧业企业所得税优惠政策最新
  • 上海嘉定小学入学积分
  • 融资租赁出租会计账务处理流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号