日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tutorial on Variational AutoEncoders

發(fā)布時間:2025/3/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tutorial on Variational AutoEncoders 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文是《Tutorial on Variational AutoEncoders》一文部分翻譯的內(nèi)容。

1.介紹

generative model,學(xué)習(xí)高維數(shù)據(jù)的概率分布P(X)P(X)。學(xué)習(xí)到不同維度之間的相互依賴關(guān)系,比如手寫數(shù)字的生成模型如果生成了8的左邊一半像素,那么剩下的像素也就能夠隨之確定。

latent variable,給予生成模型一些信息用來生成數(shù)據(jù)。比如一個生成手寫數(shù)字的生成模型,隱變量z就可以是從[0,…,9]中隨機(jī)采樣的整型,確定了隱變量模型才能生成像素點(diǎn)。

但是隱變量又不可能那么簡單,因?yàn)閷τ谝粋€能夠表達(dá)出數(shù)據(jù)集特性的生成模型,對于每個數(shù)據(jù)點(diǎn),生成模型都要能夠產(chǎn)生出一個隱變量來生成一個非常相似的東西。對手寫數(shù)字?jǐn)?shù)據(jù)集來說,同樣的一個8,可能大一點(diǎn)或者小一點(diǎn),往左歪一點(diǎn)或者往右歪一點(diǎn),字跡是粗一點(diǎn)還是細(xì)一點(diǎn)。所以,生成模型中隱變量需要表達(dá)更多的信息,需要一個高維度的向量來表示隱變量zRZz∈RZ,隱變量要能夠自動的學(xué)習(xí)到這些信息的表示,而且這些影響手寫數(shù)字生成的信息之間的相互影響和依賴,即隱變量的latent structure,也應(yīng)該自動的學(xué)習(xí)。

2.目標(biāo)函數(shù)

VAE的過程是:從概率密度函數(shù)P(z)中采樣隱變量z之后,從確定性函數(shù)f(z;θ)f(z;θ)得到的值,這個值要大概率和數(shù)據(jù)集中的數(shù)據(jù)很相似。

所以我們的目標(biāo)是對數(shù)據(jù)集中的所有數(shù)據(jù)x,最大化:

P(X)=P(X|z;θ)P(z)dzP(X)=∫P(X|z;θ)P(z)dz

其中的條件概率P(X|z;θ)P(X|z;θ)等于N(X|f(z;θ),σI)N(X|f(z;θ),σI),也就是在標(biāo)準(zhǔn)VAE中,如果輸出是實(shí)數(shù)向量,通常輸出的分布是均值為f(z;θ)f(z;θ)方差為σIσI的高斯分布。

VAE要最大化P(x),就要解決兩個問題:

  • 隱變量z如何表示?

使用標(biāo)準(zhǔn)正態(tài)分布N(0,I)N(0,I),因?yàn)橹灰幸粋€n維標(biāo)準(zhǔn)正態(tài)分布的z,再找到一個足夠復(fù)雜的函數(shù)g,那么g(z)就可以表示任意一個n維分布。

對上面的公式而言,f(z;θ)f(z;θ)就是一個多層神經(jīng)網(wǎng)絡(luò)組成的函數(shù)逼近器。可以將將隱變量映射到最后的輸出。

  • P(X)P(X)的積分如何計(jì)算?

現(xiàn)在我們得到了P(z)=N(0,I)P(z)=N(0,I),可以直接計(jì)算P(X)P(X)了嗎?還是不行,假如采用抽樣的方式抽樣出很多z來計(jì)算P(X)P(X)的話就會發(fā)現(xiàn),對于絕大多數(shù)z來說,P(X|z)P(X|z)都接近于0(因?yàn)閦是標(biāo)準(zhǔn)正態(tài)分布的采樣),這種方式非常低效。

VAE的解決這個問題的核心思想就是,試圖抽樣出有更大可能性產(chǎn)生X的z。而做到這一點(diǎn)是通過另一個分布Q(z|X)Q(z|X)來實(shí)現(xiàn)的,這個分布產(chǎn)生的Q能夠以較大的可能產(chǎn)生X。

但是我們使用了Q分布后,P(X)P(X)積分公式就變成了EzQP(X|z)Ez~QP(X|z),我們要找到后者和P(X)P(X)之間的關(guān)系。根據(jù)P(z|X)Q(z|X)P(z|X)和Q(z|X)的KL散度的公式進(jìn)行推導(dǎo),可以推出:

其中左側(cè)的部分就是目標(biāo)函數(shù),我們要最大化這個目標(biāo)函數(shù)就是在最大化對數(shù)似然概率的同時,最小化我們預(yù)測的分布Q和真實(shí)分布P之間的差異。

3.目標(biāo)函數(shù)優(yōu)化

那么Q(z|X)Q(z|X)是一個什么分布呢?通常的選擇是,也是一個多元高斯分布N(z|μ(X),σ(X))N(z|μ(X),σ(X)),其中的μσμ和σ都是由神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的映射。

所以目標(biāo)函數(shù)等號右側(cè)的最后一項(xiàng)就變成了兩個多元高斯分布的KL散度,因?yàn)槲覀兗俣?span id="ozvdkddzhkzd" class="MathJax" id="MathJax-Element-24-Frame" tabindex="0" style="display:inline; line-height:normal; text-align:left; word-spacing:normal; word-wrap:normal; white-space:nowrap; float:none; direction:ltr; max-width:none; max-height:none; min-width:0px; min-height:0px; border:0px; padding:0px; margin:0px; position:relative">P(z)P(z)是標(biāo)準(zhǔn)多元高斯分布。在得到了Q分布之后,這一項(xiàng)是能夠計(jì)算出來的(當(dāng)然也能夠利用梯度下降來優(yōu)化)。

而右側(cè)的第一項(xiàng),也就是EzQ[logP(X|z)]Ez~Q[logP(X|z)],通過當(dāng)前時刻的Q分布,從中采樣出若干個z,然后從這若干個z中計(jì)算出P(X|z)P(X|z)作為期望的逼近值。

但是這樣做的話,由于采樣操作對μμσσ不可導(dǎo),反向傳播無法進(jìn)行,因此,實(shí)際的VAE中使用了一個叫做reparameterization的改進(jìn),以從N(0,I)N(0,I)中抽樣出數(shù)值??后,用??乘以方差再加上均值的結(jié)果代替從N(z|μ(X),σ(X))N(z|μ(X),σ(X))中抽樣,如下圖。

所以最終,VAE的優(yōu)化目標(biāo)就是,讓最終的輸出f(z)f(z)與目標(biāo)xx足夠接近的同時,隱變量的分布QN(μ,σ2)Q~N(μ,σ2)接近真實(shí)先驗(yàn)分布PN(0,I2)P~N(0,I2)

4.條件變分自編碼器

為了解決某種問題,比如說給定某個人的手跡,要求生成另一些與他的手跡很像的手跡。這時候需要制定輸入計(jì)算輸出P(Y|X)P(Y|X),為了解決這類問題,從變分自編碼器衍生出條件變分自編碼器。

模型在Encoder和Decoder的輸入中,增加了條件輸入X,如上圖。當(dāng)然這張圖只是一個簡化版本,實(shí)際的CVAE有很多論文提出了很多不同的版本。

原文地址:?http://cairohy.github.io/2017/11/17/deeplearning/Tutorial%20on%20Variational%20AutoEncoders/

總結(jié)

以上是生活随笔為你收集整理的Tutorial on Variational AutoEncoders的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。