@pearl3344
2017-09-20T17:34:18.000000Z
字数 12460
阅读 7586
统计
任意随机变量都可以定义累积分布函数CDF
任意随机变量 给定了CDF,都可定义分位函数quantile
对连续随机变量,CDF给定。
定义 则的随机变量。
Proof:
若某分布的CDF是连续的且解析形式给定,这其反函数存在,也就是其分位函数。
从均匀分布 采样概率, 再逆变换得到的即是符合该分布的采样。
独立同分布的随机变量,累积分布函数F
,则有
【Fisher-Tippett-Gnedenko定理】
如果存在常数序列使得
则 ,其中为分布的尾部形状参数
也称Generalized Extreme Value distribtuion Type-I 第一类型广义极值分布, 用来建模某些分布的采样的最大值/最小值的分布。例如,已知某条河流过去十年里的最大水位值,则今年该条河流的最大水位x的分布可能是Gumbel分布。
CDF
标准gumbel分布, CDF
quantile函数
采样
, 则CDF为
,则
离散选择论,两个Gumbel分布的随机变量的差服从logistic分布
定义在上的,是Turkey lambda分布的特例。
离散分布 Categorical 分布
Proof:
令, 即需要证明
Gumbel-max trick 通过得到的离散采样
通过得到的有个状态的离散变量的取值是在维simplex的顶点,Gumbel-softmax采用softmax函数得到维simplex的内部的状态,即维概率向量,向量的每个元素属于,所有元素之和为1.
对离散随机变量的连续放松。
, ,
PDF:
【性质】
Categorical分布与取不同值时候的Concrete分布,K=7.
时候,Concrete分布是更接近Categorical分布了,但是梯度的方差变大了。实际应用中让其逐步变小。
则.否则。
不直接采样; 而是利用两个Gumbel的差是logistic 采样。
二元Concerte分布,参数 (图示写的\lambda..)取不同值时的情况。
概率模型,密度估计问题 。
引入隐变量,可能的方法包括
其它的 mean-field VB算法(假设后验可因式分解)计算积分。
如果似然很复杂(比如高斯分布但均值是有非线性函数的神经网络的输出),后验不知道,上面方法都不可行
统计梯度VB
所以只需要迭代地
1. 最大化 不等号右边的式子;
2. 令使得等号成立,
即.
编码过程:
1. 假设Q是高斯分布,
2. 且用神经网络表示,网络的输入为X,网络的输出为,参数为神经网络权重参数.
3. 假设先验是标准高斯分布
4. KL距离是的函数
优化目标函数涉及到对求导数计算梯度,可以利用链式法则
需要求函数相对于某个分布的期望时,如果可以表示成分布的参数的连续的形式, 则该期望可以写成关于的分布的积分,且该积分不依赖于z的分布参数。
采用Monte Carlo近似积分,
这种近似是对梯度的无偏估计,且实际应用中发现这种梯度的估计的方差比其它一些估计小。
所以在梯度方法解优化问题中,需要求函数相对于某个分布的期望时,把z表示成分布的参数的连续的形式的时候,用z的这些采样Monte Carlo方法估计期望,此时 得到的期望关于参数可微的,且对梯度是很好的估计。
例如 , 参数,
目标函数,要求 。
则可以用采样,其中,
当计算图中出现离散的随机变量时候,比如上例VAE模型中
,
对的采样需要写成的连续函数以方便求对的梯度,进而优化目标函数。
Gumbel softmax技巧的采样方式是
先验
后验,其中
KL距离
训练过程,按照上述方法采样向量, 其中
似然 , 其中
期望
关于最大化 .
梯度的统计估计方法包括
1. 评分函数SF的估计
2. Monte Carlo估计加一些方差减小的技巧
3. 有偏的梯度估计(bernoulli变量)
需要求
是离散的,不能reparameterizable, 用一个可以求导的代理的导数来近似的导数
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]))
categorical reparameterization文章中提出的是
主要参考文献:
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