連續型和離散型隨機變量(基於Gumbel Softmax)的重參數化

本文是閱讀蘇劍林大佬的博客漫談重參數:從正態分佈到Gumbel Softmax之後的記錄,算是自己的閱讀筆記吧。

在蘇大佬的那篇博客中,分別針對連續型和離散型隨機變量講解了如何進行重參數化,但是自己不是特別理解離散型隨機變量的重參數化,便記錄在此。

什麼是連續型和離散型隨機變量?

這裏沒有各種形式化的定義,只是根據自己的理解通俗的來講解二者的區別。
可以先告訴大家,我們目前經常用到的連續型隨機變量的分佈有:

  • 均勻分佈
    概率密度函數:f(x)={1ba,a<x<b0,f(x) = \begin{cases} {1 \over b-a}, &\text a < x < b \\ 0, &\text 其他 \end{cases}
  • 正態分佈(高斯分佈)
    概率密度函數:f(x)=12πσe(xμ)22σ2f(x)={1 \over \sqrt{\smash[b]{2\pi}}\sigma} e^{-{(x-\mu)^2} \over2\sigma^{2}}
  • 指數分佈
    概率密度函數:f(x)={1θexθ,x>00,f(x) = \begin{cases} {1 \over \theta}e^{-{x \over \theta}}, &\text x> 0 \\ 0, &\text 其他 \end{cases}

目前常見的離散型隨機變量的分佈有:

  • 二項分佈
    取各個值的概率分佈:
XX x1x1 x2x2
P p1 1-p1
  • 多項式分佈
    取各個值的概率分佈:
X x1 x2 xk
P p1 p2 pk
  • 泊松分佈
    取各個值的概率分佈:
    P(X=k)=λkeλk!k=0,1,2,3,,,,P(X = k) = {\lambda^{k}e^{-\lambda} \over k!} ,k = 0,1,2,3,,,,

從上面可以看到,離散型隨機變量的取值是有限個,而且每個取值有對應的概率,但是連續型隨機變量的概率密度函數是一個函數形式,連續型隨機變量XX取某一個實數xx的概率也並不是f(x)f(x)

在蘇大佬那篇博客中,連續型的情形比較好理解,主要是離散型的如何理解?
對於連續型的分佈來說,雖然參數未知,但是整個概率密度的形式是已知的,而對於離散型來說,我們已知的只有上述的隨機變量取各個值的概率分佈,所以如果從離散分佈中抽取若干個樣本,就相當於是依上述的概率分佈抽取若干個樣本。也就相當於是k分類模型。

重參數化技巧(reparameterization trick)

在這裏插入圖片描述
但是有的時候我們希望取樣過程對於分佈的參數可導,這樣就可以用bp算法來求分佈的參數。比如隱變量的分佈是離散分佈的時候,或者想要生成的分佈是離散分佈的時候。
在這裏插入圖片描述
當我們從離散型分佈pθ(y)p_{\theta}(y)中採樣了若干個樣本,這時是沒有辦法計算(6)式的梯度的,因爲得到了採樣的樣本後帶入(6)式,(6)已經損失了未知參數θ\theta的隨機性(也就是不含有參數θ\theta了),因此就需要一種辦法來對離散型分佈的採樣進行變換,使其也具有未知參數θ\theta的隨機性(也就是使(6)式對θ\theta的梯度存在),這種方法就是Gumbel Softmax

接下來關於Gumbel Softmax的內容還是看蘇劍林大佬的博客漫談重參數:從正態分佈到Gumbel Softmax。還有另一位博主的博客Gumbel-Softmax Trick和Gumbel分佈

發佈了298 篇原創文章 · 獲贊 41 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章