Slice Sampling 簡單推導

2021-07-25 15:20:10 字數 1314 閱讀 7954

假設隨機變數x∼

p(x)

,我們想從該分布中取樣,得到關於這個分布的資訊(如均值、方差等),slice sampling切片取樣是一種常用方法。令u

=p(x

) ,顯然有0≤

u≤1 。slice sampling從概率密度函式p(

x)所圍成的面積裡均勻取樣,即是從p(

x,u)

中採取均勻分布的樣本: (x

(t),

u(t)

)∼p(

x,u)

, 其中 p(x

,u)=

1 。更一般的,假設p(

x)=f

(x)z

,即f(x

) 是隨機變數

x 的未歸一化的概率密度函式,則p(

x,u)

=1z。

slice sampling 在進行取樣時,採取gibbs sampling的取樣方法,即先

initialize u(

0).x(

t)∼p

(x|u

(t−1

))u(t

)∼p(

u|x(

t))

下面來推導p(

u|x)

和 p(

x|u)

。 p(

u|x)

=p(x

,u)p

(x)=

1f(x

)(0<

ux))

p(u)

=∫x2

x11z

dx=1

z(x2

−x1)

其中x=

p−1(

u), 是u=

p(x)

的逆函式。進而有 p(

x|u)

=p(x

,u)p

(u)=

1x2−

x1推畢。

從直觀上來描述,首先在上一步選取了樣本x(

t−1)

,然後由均勻分布得到u(

t)∼u

(0,p

(x(t

−1))

。此後,再從x(

t)∼u

(p(x

)>u)

取樣。

當然,這其中還有很多的問題。還有shrink algorithm可以更好地防止取樣

x 時效率過低的問題,因為往往乙個過大的

u會使得取樣

x 時獲得符合要求的概率非常低。

Ant Design簡單簡單簡單執行

config 配置檔案 config.js 路由定義檔案 路徑檔案 defaultsettings.js 主題顏色以及標題配置檔案 plugin.config.js 沒怎麼用過的配置檔案 dist 構建專案之後產生的檔案 mock mock資料檔案 用於本地開發使用 node modules 資源檔...

簡單題目不簡單回答

1 const變數與巨集的區別 2.程式的變數怎麼儲存的?3.巨集和列舉有什麼區別,定義陣列時使用列舉和使用巨集的區別 4.const變數是否可以做陣列下標 5.static的用法,static修飾類的方法時,是什麼意思 6.設計模式熟不熟?寫乙個最簡單的單例模式 7.如何用c實現物件導向 8.程式...

簡單的設計不簡單

最近看了 簡約至上 這本書,這本文章總結一下。推薦給對互動設計感興趣的童鞋。話說簡單 首先人們喜歡簡單 值得信賴 適應性強的產品。所以我們才會費盡心力去設計簡單的產品。人們喜歡簡單的產品原因有 1 產品的功能越多,就越難發現真正對使用者有價值的新功能。2 因為增加的複雜性導致他們很難找到自己真正需要...