连续型和离散型随机变量(基于Gumbel Softmax)的重参数化

本文是阅读苏剑林大佬的博客漫谈重参数:从正态分布到Gumbel Softmax之后的记录,算是自己的阅读笔记吧。

在苏大佬的那篇博客中,分别针对连续型和离散型随机变量讲解了如何进行重参数化,但是自己不是特别理解离散型随机变量的重参数化,便记录在此。

什么是连续型和离散型随机变量?

这里没有各种形式化的定义,只是根据自己的理解通俗的来讲解二者的区别。
可以先告诉大家,我们目前经常用到的连续型随机变量的分布有:

  • 均匀分布
    概率密度函数: f ( x ) = { 1 b − a , a < x < b 0 , 其 他 f(x) = \begin{cases} {1 \over b-a}, &\text a < x < b \\ 0, &\text 其他 \end{cases} f(x)={ba1,0,a<x<b
  • 正态分布(高斯分布)
    概率密度函数: f ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 f(x)={1 \over \sqrt{\smash[b]{2\pi}}\sigma} e^{-{(x-\mu)^2} \over2\sigma^{2}} f(x)=2π σ1e2σ2(xμ)2
  • 指数分布
    概率密度函数: f ( x ) = { 1 θ e − x θ , x > 0 0 , 其 他 f(x) = \begin{cases} {1 \over \theta}e^{-{x \over \theta}}, &\text x> 0 \\ 0, &\text 其他 \end{cases} f(x)={θ1eθx,0,x>0

目前常见的离散型随机变量的分布有:

  • 二项分布
    取各个值的概率分布:
X X X x 1 x1 x1 x 2 x2 x2
P p1 1-p1
  • 多项式分布
    取各个值的概率分布:
X x1 x2 xk
P p1 p2 pk
  • 泊松分布
    取各个值的概率分布:
    P ( X = k ) = λ k e − λ k ! , k = 0 , 1 , 2 , 3 , , , , P(X = k) = {\lambda^{k}e^{-\lambda} \over k!} ,k = 0,1,2,3,,,, P(X=k)=k!λkeλk=0,1,2,3,,,,

从上面可以看到,离散型随机变量的取值是有限个,而且每个取值有对应的概率,但是连续型随机变量的概率密度函数是一个函数形式,连续型随机变量 X X X取某一个实数 x x x的概率也并不是 f ( x ) f(x) f(x)

在苏大佬那篇博客中,连续型的情形比较好理解,主要是离散型的如何理解?
对于连续型的分布来说,虽然参数未知,但是整个概率密度的形式是已知的,而对于离散型来说,我们已知的只有上述的随机变量取各个值的概率分布,所以如果从离散分布中抽取若干个样本,就相当于是依上述的概率分布抽取若干个样本。也就相当于是k分类模型。

重参数化技巧(reparameterization trick)

连续型和离散型随机变量(基于Gumbel Softmax)的重参数化_第1张图片
但是有的时候我们希望取样过程对于分布的参数可导,这样就可以用bp算法来求分布的参数。比如隐变量的分布是离散分布的时候,或者想要生成的分布是离散分布的时候。
在这里插入图片描述
当我们从离散型分布 p θ ( y ) p_{\theta}(y) pθ(y)中采样了若干个样本,这时是没有办法计算(6)式的梯度的,因为得到了采样的样本后带入(6)式,(6)已经损失了未知参数 θ \theta θ的随机性(也就是不含有参数 θ \theta θ了),因此就需要一种办法来对离散型分布的采样进行变换,使其也具有未知参数 θ \theta θ的随机性(也就是使(6)式对 θ \theta θ的梯度存在),这种方法就是Gumbel Softmax

接下来关于Gumbel Softmax的内容还是看苏剑林大佬的博客漫谈重参数:从正态分布到Gumbel Softmax。还有另一位博主的博客Gumbel-Softmax Trick和Gumbel分布

你可能感兴趣的:(机器学习,NLP,变分贝叶斯系列)