[关闭]
@pearl3344 2017-09-20T17:34:18.000000Z 字数 12460 阅读 7577

Gumbel Softmax 笔记

统计


CDF, 分位函数, 逆变换采样

CDF

任意随机变量都可以定义累积分布函数CDF

分位函数

任意随机变量 给定了CDF,都可定义分位函数quantile

时候的.
如果CDF是连续的函数,则分位函数就是CDF的反函数。

概率积分变换

对连续随机变量,CDF给定
定义的随机变量。
Proof:

故有

逆变换采样

若某分布的CDF是连续的且解析形式给定,这其反函数存在,也就是其分位函数。
从均匀分布 采样概率, 再逆变换得到的即是符合该分布的采样。


极值理论,极值分析EVA

独立同分布的随机变量,累积分布函数F
,则有

【Fisher-Tippett-Gnedenko定理】
如果存在常数序列使得

,其中为分布的尾部形状参数


Gumbel分布

也称Generalized Extreme Value distribtuion Type-I 第一类型广义极值分布, 用来建模某些分布的采样的最大值/最小值的分布。例如,已知某条河流过去十年里的最大水位值,则今年该条河流的最大水位x的分布可能是Gumbel分布。


Logistic分布

定义在上的,是Turkey lambda分布的特例。


Gumbel-Max trick

离散分布 Categorical 分布

其中logit参数,
Gumbel-Max trick是一种利用Gumbel分布采样Categorical分布的技巧,采样步骤为:
1. 采样
2. ,则 的采样。
3. 是服从分布的。

Proof
, 即需要证明


有K个不一样的Gumbel分布 , 且是服从分布的,即
所以有条件概率
是服从分布的,即PDF
积分掉考虑各种可能的
, 则
其中主要利用了积分公式

得证。


Gumbel-Softmax trick

Gumbel-max trick 通过得到的离散采样

其中

通过得到的有个状态的离散变量的取值是在维simplex的顶点,Gumbel-softmax采用softmax函数得到维simplex的内部的状态,即维概率向量,向量的每个元素属于,所有元素之和为1.


concrete分布 (Gumbel-softmax 分布)

对离散随机变量的连续放松。
, ,
PDF:

【性质】

  1. 如果,则
  2. 如果 ,则
    如果 ,则
  3. 如果 ,则
    如果 ,则
  4. 如果 ,且则PDF函数关于是log-convex的。

Categorical分布与Concrete分布
Categorical分布与取不同值时候的Concrete分布,K=7.

时候,Concrete分布是更接近Categorical分布了,但是梯度的方差变大了。实际应用中让其逐步变小。


Bernoulli变量 (二元categorical)

 

表示二元变量Y取1的概率。

Gumbel-max trick

.否则
不直接采样; 而是利用两个Gumbel的差是logistic 采样。

 

Gumbel-softmax trick


同样利用Logistic分布直接采样,

二元Concerte分布
二元Concerte分布,参数 (图示写的\lambda..)取不同值时的情况。


VAE 与reparameterization

概率模型,密度估计问题
引入隐变量,可能的方法包括

  1. 直接积分
  2. EM 迭代算法,E步先得后验, 表示出关于后验的期望, M步关于参数最大化期望
  3. 其它的 mean-field VB算法(假设后验可因式分解)计算积分。

    如果似然很复杂(比如高斯分布但均值是有非线性函数的神经网络的输出),后验不知道,上面方法都不可行

  4. 统计梯度VB

    且当取等号。

所以只需要迭代地
1. 最大化 不等号右边的式子;
2. 令使得等号成立,
.

VAE流程图

编码过程:
1. 假设Q是高斯分布,
2. 且用神经网络表示,网络的输入为X,网络的输出为,参数为神经网络权重参数.
3. 假设先验是标准高斯分布
4. KL距离是的函数
优化目标函数涉及到对求导数计算梯度,可以利用链式法则


解码过程:
5. 用Monte Carlo近似积分
6. 且采样z的方法 保证了z是参数的连续函数
7. 似然是简单的norm/bernoulli/Categorical分布,参数可以是复杂的神经网络,
7.
优化目标涉及到对求导数计算梯度,
链式法则

由于利用了reparameterization trick采样的的连续可导的函数,保证链式法则可以一直反向传播。

reparameterization trick(原理)

需要求函数相对于某个分布的期望时,如果可以表示成分布的参数的连续的形式, 则该期望可以写成关于的分布的积分,且该积分不依赖于z的分布参数

采用Monte Carlo近似积分,

这种近似是对梯度的无偏估计,且实际应用中发现这种梯度的估计的方差比其它一些估计小。

所以在梯度方法解优化问题中,需要求函数相对于某个分布的期望时,把z表示成分布的参数的连续的形式的时候,用z的这些采样Monte Carlo方法估计期望,此时 得到的期望关于参数可微的,且对梯度是很好的估计。

例如 , 参数,
目标函数,要求
则可以用采样,其中,

Categorical VAE with Gumbel softmax trick Reparameterization

当计算图中出现离散的随机变量时候,比如上例VAE模型中
,
的采样需要写成的连续函数以方便求对的梯度,进而优化目标函数。
Gumbel softmax技巧的采样方式是


其中是神经网络的输出,对可导;

先验
后验,其中
KL距离
训练过程,按照上述方法采样向量, 其中
似然 , 其中

期望
关于最大化 .

离散变量的采样求梯度的其它方法

梯度的统计估计方法包括
1. 评分函数SF的估计
2. Monte Carlo估计加一些方差减小的技巧
3. 有偏的梯度估计(bernoulli变量)

评分函数Score Function

需要求


利用求导公式

所以

把z的函数关于z的分布求期望后的梯度 转换成 z的分布先求梯度 再与在的函数相乘求期望。

有偏路径导数biased path derivative估计 及ST

是离散的,不能reparameterizable, 用一个可以求导的代理的导数来近似的导数

ST Gumbel-softmax估计

Gumbel-softmax得到连续的松弛向量y,
前向传播计算函数值的时候,采用 对y进行离散化得到,
后向传播计算梯度的时候,采用松弛向量y计算梯度。

比较:
1. SF:利用的性质转化成对密度函数的求导
2. SF的变种: DARN,MuProp
3. ST: 用离散变量的期望代替采样
4. Slope-Annealed ST:
5. ST Gumbel-softmax:前向计算数值时候对连续向量放松argmax离散化,后向计算梯度时候应用连续向量放松。
6. Gumbel-Softmax:利用softmax得到连续的放松向量

思考

在dropout应用中,如果模型是

采用采样方法
有什么问题呢?

分段函数,梯度的表达形式不一样。
但是是连续可导的,可以链式法则后向传播,软件可以自行计算。

noise=tf.random_uniform([1,FLAGS.hidden1_units])
z=tf.where(noise<theta,tf.ones([1,FLAGS.hidden1_units]),tf.zeros([1,FLAGS.hidden1_units]))


即前向计算目标值的时候采样正确,但反向求导计算梯度时候梯度为0不会更新参数。

TODO

  1. 用sigmoid或softmax近似表示确定的离散性(learning to reduce with unbounded memory,Hybrid computign using a nn with dynamic external memory) 与 需要 离散状态上的分布 的区别?
  2. 在强化学习、GAN、Quantized压缩 中的应用
  3. 二元concrete分布时,pdf是log-凸?
  4. VAE 求期望 为什么不直接积分,而要用采样得到Monte Carlo近似。
  5. categorical reparameterization文章中提出的是

    1. , Gumbel-max trick采样到的 是categorcial分布吗?
    2. Gumbel-softmax的 要求,在代码实现中是如何保证的?

主要参考文献:
1. The Concrete Distribution: a Continuous Relaxation of Discrete Random Variables_ICLR2017
2. Categorical Reparameterization by Gumbel-Softmax_ICLR2017
3. GANS for Sequences of Discrete Elements with the Gumbel-Softmax Distribution_NIPS2016

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注