位置: IT常识 - 正文

Gumbel-Softmax完全解析

编辑:rootadmin
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封装组件,多了一层)

  • 最简单粗爆的网络推广方法(很简单的网名)

    最简单粗爆的网络推广方法(很简单的网名)

  • 苹果x手电筒在哪里打开(iphone x手电筒)

    苹果x手电筒在哪里打开(iphone x手电筒)

  • 抖音头像为啥换不过来(为什么抖音头像换了又变成原来的)

    抖音头像为啥换不过来(为什么抖音头像换了又变成原来的)

  • 手机爱奇艺怎么下载电影(手机爱奇艺怎么投屏到电脑上)

    手机爱奇艺怎么下载电影(手机爱奇艺怎么投屏到电脑上)

  • 抖音多少人在玩(抖音多少人在玩游戏)

    抖音多少人在玩(抖音多少人在玩游戏)

  • 华为畅享9有智能助手吗(华为畅享9有智慧多窗功能吗)

    华为畅享9有智能助手吗(华为畅享9有智慧多窗功能吗)

  • 华为手机视频删掉能找回吗(华为手机视频删不掉)

    华为手机视频删掉能找回吗(华为手机视频删不掉)

  • 华为p40pro系统要不要更新

    华为p40pro系统要不要更新

  • 读书郎平板可以分屏吗(读书郎平板可以改成正常平板吗)

    读书郎平板可以分屏吗(读书郎平板可以改成正常平板吗)

  • 如何查看手机关机记录(如何查看手机关机期间打来的电话)

    如何查看手机关机记录(如何查看手机关机期间打来的电话)

  • 苹果可以应用分身吗(苹果可以应用分身淘宝吗)

    苹果可以应用分身吗(苹果可以应用分身淘宝吗)

  • 红米k20proufs多少(红米k20pro256g)

    红米k20proufs多少(红米k20pro256g)

  • 操作系统中一个正在执行的程序称为(一个操作系统的inode中有10个地址用于数据块的访问)

    操作系统中一个正在执行的程序称为(一个操作系统的inode中有10个地址用于数据块的访问)

  • iphonexsmax双卡双待吗(iphonexsmax双卡双待信号很差吗)

    iphonexsmax双卡双待吗(iphonexsmax双卡双待信号很差吗)

  • 钉钉回放快进会影响总时长吗(钉钉回放如果快进了还有记录吗)

    钉钉回放快进会影响总时长吗(钉钉回放如果快进了还有记录吗)

  • vivox30的照相功能怎么使用(vivox30照相机怎样调试更清晰)

    vivox30的照相功能怎么使用(vivox30照相机怎样调试更清晰)

  • 抖音极速版为什么显示很遗憾(抖音极速版为什么没有签到功能)

    抖音极速版为什么显示很遗憾(抖音极速版为什么没有签到功能)

  • iphone x怎么设置铃声(iphone x怎么设置竖屏)

    iphone x怎么设置铃声(iphone x怎么设置竖屏)

  • 视频超过10分钟怎么剪辑(视频超过10分钟怎么发)

    视频超过10分钟怎么剪辑(视频超过10分钟怎么发)

  • 华为荣耀20处理器是多少(华为荣耀20处理器是什么型号)

    华为荣耀20处理器是多少(华为荣耀20处理器是什么型号)

  • ipslgd面板什么意思(ips面板啥意思)

    ipslgd面板什么意思(ips面板啥意思)

  • oppok3是多少瓦快充(oppok3多少w)

    oppok3是多少瓦快充(oppok3多少w)

  • 交易猫如何和卖家聊天(交易猫如何卖多游戏QQ)

    交易猫如何和卖家聊天(交易猫如何卖多游戏QQ)

  • qc4.0快充多少瓦(小米67w快充协议叫什么)

    qc4.0快充多少瓦(小米67w快充协议叫什么)

  • Linux Mint Cinnamon中安装MATE桌面详细步骤

    Linux Mint Cinnamon中安装MATE桌面详细步骤

  • MAC通过Winclone备份还原Windows7系统(macos如何备份)

    MAC通过Winclone备份还原Windows7系统(macos如何备份)

  • Vue3配置路由(vue-router)(vue路由使用方法)

    Vue3配置路由(vue-router)(vue路由使用方法)

  • 编译和连接 - 笔记 5(编译和链接的区别是什么)

    编译和连接 - 笔记 5(编译和链接的区别是什么)

  • DEDECMS文章内容页点击图片进入下一页(dedecms批量发文章)

    DEDECMS文章内容页点击图片进入下一页(dedecms批量发文章)

  • 所得税汇算资产总额怎么算
  • 两年前的发票可以补开吗
  • 实际开票金额和申报金额不符
  • 可转债中签后怎么操作卖出
  • 没有认证怎么办
  • 污水处理税收优惠政策
  • 员工在公司食堂就餐被烫伤医药费由谁承担
  • 车险 专票
  • 税前扣除凭证的内部凭证
  • 年折旧额怎么计算公式直线法
  • 收到土地使用权转让金会计分录
  • 标准的现金流量表格式
  • 资产负债表其他流动资产包括什么
  • 工业企业小规模纳税人的认定标准
  • 微信支付有优惠 系统异常
  • 人工成本如何申报个税
  • 未提完折旧的固定资产重新评估后是否还计提折旧
  • 行政事业性收费包括哪些项目
  • 现金收付业务流程图
  • 试运营收入账务处理
  • 材料成本的核算方法有哪些
  • 少交的增值税如何记账
  • 如何结束excel
  • wordpress相关文章插件
  • 长期借款和应付利息
  • nalntsrv.exe - nalntsrv是什么进程 有什么用
  • 有进项没销项怎么处理,可以结转成本吗
  • 莱奇沃思田园城市
  • vue word editor
  • 非关联企业借款利息扣除
  • php识别验证码的库高级
  • php zmq
  • 残疾证哪里发
  • 企业转租电费发票
  • phpcms怎么样
  • 开具增值税专用发票是什么意思
  • 通行费电子发票平台
  • 业务招待费可以开专票抵扣吗
  • vscode主题插件护眼
  • 所得税做账是否需要发票
  • 增值税无票收入税率变了
  • 免征文化事业建设费条件的销售额标准
  • 个人取得劳务报酬个人所得税
  • 企业所得税季度申报表怎么填
  • 当月收入未开票怎么入账
  • 本年计算扣除限额的基数计算公式
  • 购买加油卡走哪个平台好
  • 土增清算可以扣除项目
  • 小额贷款行业新规
  • 员工借款未还财务有责任吗
  • 收到采购免费赔偿怎么办
  • 预收账款的会计编码
  • 用友t3财务通普及版如何开下年账
  • 培训费做什么会计分录
  • 工资扣水电费怎么做账
  • 实收资本认缴怎么做账,要做账吗
  • 存出投资款会计处理
  • 财务会计的基本概念
  • mysql查询分组后 组内数据
  • sql语句 字符串
  • 安装2个win10系统
  • sqlserver全文检索
  • mac的safari浏览器无法打开
  • win10升级win1
  • win10预览体验三个选项
  • hda linux
  • win10系统日历怎么放在桌面
  • docker如何部署环境到生产
  • css 网页布局
  • cocos2d schedule
  • bat修改注册表数值
  • jquery的加载事件
  • 编写程序实现将两个文本文件的内容合并
  • linux 打包
  • android内存泄露监测
  • 传智播客在线课程
  • bootstrap boosting
  • 电子税务局怎么添加银行账户信息
  • 北京地方税务局李宗定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设