Re-parameterization Trick
Re-parameterization Trick
重参数化技巧,就是从一个分布中采样的时候因为采样这个动作是离散的,那么计算图就不能传递梯度,因此参数无法进行更新。比如我们想从概率分布[0.2,0.6,0.2]中采样出比如[0,1,0]这个动作,但是由于采样的过程是离散的,无法进行参数传递,因此我们可以先假设概率分布服从一个高斯分布(或者多项式分布)那么这个概率分布可以表示成两个确定的参数,x和ϕ分别表示均值和标准差,因此输出的动作可以表示为z=x+ϵ⋅ϕ,ϵ是真正表示随机的变量,比如说是从标准正太分布中采样出来的一个值,这样,ϵ的值就在计算图之外,我们也不用更新,因此解决了采样导致梯度不可传递的问题,但是有一个限制条件就是我们必须制定,原来的概率分布是我们所规定的一个分布,比如说说正太分布或者是多项式分布。
Q:对于一个取值任意的向量,用 softmax 函数将它变换成概率向量和用 gumbel-softmax 将它变换成概率向量的区别在哪里呢?后者相对于前者的优势在哪里?
A: 最大的区别在于,gumbel-softmax 得到的是采样过后的
样本
(尽管是近似的),而 softmax 得到的则是样本的确定的均值(对于离散分布来说,其实就是各类概率)。 因为有这个区别,所以他们用的场合是不一样的(如果这也可以看做优势的话)。正像我下面要说的,gumbel-softmax 用在需要对离散分布取样本,而又希望它可导,可以训练的场合,比如最常见的, GAN 里的 generator 。如果你的 model 里不需要对离散分布取样,只需要它的各类概率。比如分类问题,你只需要把最后预测的离散分布的各类概率用 softmax 求出来,就可以带入 CE loss 进行训练了。