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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

变分自编码器:球面上的VAE(vMF-VAE)

發(fā)布時間:2024/10/8 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 变分自编码器:球面上的VAE(vMF-VAE) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?PaperWeekly 原創(chuàng) ·?作者|蘇劍林

單位|追一科技

研究方向|NLP、神經(jīng)網(wǎng)絡(luò)

在變分自編碼器:VAE + BN = 更好的 VAE 中,我們講到了 NLP 中訓練 VAE 時常見的 KL 散度消失現(xiàn)象,并且提到了通過 BN 來使得 KL 散度項有一個正的下界,從而保證 KL 散度項不會消失。事實上,早在 2018 年的時候,就有類似思想的工作就被提出了,它們是通過在 VAE 中改用新的先驗分布和后驗分布,來使得 KL 散度項有一個正的下界。

該思路出現(xiàn)在 2018 年的兩篇相近的論文中,分別是《Hyperspherical Variational Auto-Encoders》[1] 和《Spherical Latent Spaces for Stable Variational Autoencoders》[2],它們都是用定義在超球面的 von Mises–Fisher(vMF)分布來構(gòu)建先后驗分布。某種程度上來說,該分布比我們常用的高斯分布還更簡單和有趣。

KL散度消失

我們知道,VAE 的訓練目標是:

其中第一項是重構(gòu)項,第二項是 KL 散度項,在變分自編碼器:原來是這么一回事中我們就說過,這兩項某種意義上是“對抗”的,KL 散度項的存在,會加大解碼器利用編碼信息的難度,如果 KL 散度項為 0,那么說明解碼器完全沒有利用到編碼器的信息。

在 NLP 中,輸入和重構(gòu)的對象是句子,為了保證效果,解碼器一般用自回歸模型。然而,自回歸模型是非常強大的模型,強大到哪怕沒有輸入,也能完成訓練(退化為無條件語言模型),而剛才我們說了,KL 散度項會加大解碼器利用編碼信息的難度,所以解碼器干脆棄之不用,這就出現(xiàn)了 KL 散度消失現(xiàn)象。

早期比較常見的應(yīng)對方案是逐漸增加 KL 項的權(quán)重,以引導解碼器去利用編碼信息?,F(xiàn)在比較流行的方案就是通過某些改動,直接讓 KL 散度項有一個正的下界。將先后驗分布換為 vMF 分布,就是這種方案的經(jīng)典例子之一。

vMF分布

vMF 分布是定義在 d-1 維超球面的分布,其樣本空間為 ,概率密度函數(shù)則為:

其中 是預先給定的參數(shù)向量。不難想象,這是 上一個以 為中心的分布,歸一化因子寫成 的形式,意味著它只依賴于 的模長,這是由于各向同性導致的。由于這個特性,vMF 分布更常見的記法是設(shè) ,從而:

這時候 就是 的夾角余弦,所以說,vMF 分布實際上就是以預先為度量的一種分布。由于我們經(jīng)常用余弦值來度量兩個向量的相似度,因此基于 vMF 分布做出來的模型,通常更能滿足我們的這個需求。當 的時候,vMF 分布是球面上的均勻分布。

從歸一化因子 的積分形式來看,它實際上也是 vMF 的母函數(shù),從而 vMF 的各階矩也可以通過 來表達,比如一階矩為:

可以看到 在方向上跟 一致。 的精確形式可以算出來,但比較復雜,而且很多時候我們也不需要精確知道這個歸一化因子,所以這里我們就不算了。

至于參數(shù) \kappa 的含義,或許設(shè) 我們更好理解,此時 ,熟悉能量模型的同學都知道,這里的 就是溫度參數(shù),如果 越小( 越大),那么分布就越集中在 附近,反之則越分散(越接近球面上的均勻分布)。因此, 也被形象地稱為“凝聚度(concentration)”參數(shù)。

從vMF采樣

對于 vMF 分布來說,需要解決的第一個難題是如何實現(xiàn)從它里邊采樣出具體的樣本來。尤其是如果我們要將它應(yīng)用到 VAE 中,那么這一步是至關(guān)重要的。

3.1 均勻分布

最簡單是 的情形,也就是 d-1 維球面上的均勻分布,因為標準正態(tài)分布本來就是各向同性的,其概率密度正比于 只依賴于模長,所以我們只需要從 d 為標準正態(tài)分布中采樣一個 z,然后讓 就得到了球面上的均勻采樣結(jié)果。

3.2 特殊方向

接著,對于 的情形,我們記 ,首先考慮一種特殊的情況:。事實上,由于各向同性的原因,很多時候我們都只需要考慮這個特殊情況,然后就可以平行地推廣到一般情形。

此時概率密度正比于 ,然后我們轉(zhuǎn)換到球坐標系:

那么:

這個分解表明,從該 vMF 分布中采樣,等價于先從概率密度正比于 的分布采樣一個 ,然后從 d-2 維超球面上均勻采樣一個 d-1 維向量 ,通過如下方式組合成最終采樣結(jié)果:

設(shè) ,那么:

所以我們主要研究從概率密度正比于 的分布中采樣。

然而,筆者所不理解的是,大多數(shù)涉及到 vMF 分布的論文,都采用了 1994 年的論文《Simulation of the von mises fisher distribution》[3] 提出的基于 beta 分布的拒絕采樣方案,整個采樣流程還是頗為復雜的。但現(xiàn)在都 2021 年了,對于一維分布的采樣,居然還需要拒絕采樣這么低效的方案?

事實上,對于任意一維分布 ,設(shè)它的累積概率函數(shù)為 ,那么 就是一個最方便通用的采樣方案??赡苡凶x者抗議說“累積概率函數(shù)不好算呀”、“它的逆函數(shù)更不好算呀”,但是在用代碼實現(xiàn)采樣的時候,我們壓根就不需要知道 長啥樣,只要直接數(shù)值計算就行了,參考實現(xiàn)如下:

import?numpy?as?npdef?sample_from_pw(size,?kappa,?dims,?epsilon=1e-7):x?=?np.arange(-1?+?epsilon,?1,?epsilon)y?=?kappa?*?x?+?np.log(1?-?x**2)?*?(dims?-?3)?/?2y?=?np.cumsum(np.exp(y?-?y.max()))y?=?y?/?y[-1]return?np.interp(np.random.random(size),?y,?x)

這里的實現(xiàn)中,計算量最大的是變量 y 的計算,而一旦計算好之后,可以緩存下來,之后只需要執(zhí)行最后一步來完成采樣,其速度是非常快的。這樣再怎么看,也比從 beta 分布中拒絕采樣要簡單方便吧。順便說,實現(xiàn)上這里還用到了一個技巧,即先計算對數(shù)值,然后減去最大值,最后才算指數(shù),這樣可以防止溢出,哪怕 成千上萬,也可以成功計算。

3.3 一般情形

現(xiàn)在我們已經(jīng)實現(xiàn)了從 的 vMF 分布中采樣了,我們可以將采樣結(jié)果分解為:

同樣由于各向同性的原因,對于一般的 ,采樣結(jié)果依然具有同樣的形式:

對于 v 的采樣,關(guān)鍵之處是與 正交,這也不難實現(xiàn),先從標準正態(tài)分布中采樣一個 d 維向量 z,然后保留與 正交的分量并歸一化即可:

vMF-VAE

至此,我們可謂是已經(jīng)完成了本篇文章最艱難的部分,剩下的構(gòu)建 vMF-VAE 可謂是水到渠成了。vMF-VAE 選用球面上的均勻分布()作為先驗分布 ,并將后驗分布選取為 vMF 分布:

簡單起見,我們將 設(shè)為超參數(shù)(也可以理解為通過人工而不是梯度下降來更新這個參數(shù)),這樣一來, 的唯一參數(shù)來源就是 了。此時我們可以計算 KL 散度項:

前面我們已經(jīng)討論過,vMF 分布的均值方向跟 一致,模長則只依賴于 d 和 ,所以代入上式后我們可以知道 KL 散度項只依賴于 d 和 ,當這兩個參數(shù)被選定之后,那么它就是一個常數(shù)(根據(jù) KL 散度的性質(zhì),當 時,它必然大于 0),絕對不會出現(xiàn) KL 散度消失現(xiàn)象了。

那么現(xiàn)在就剩下重構(gòu)項了,我們需要用“重參數(shù)(Reparameterization)”來完成采樣并保留梯度,在前面我們已經(jīng)研究了vMF的采樣過程,所以也不難實現(xiàn),綜合的流程為:

這里的重構(gòu) loss 以 MSE 為例,如果是句子重構(gòu),那么換用交叉熵就好。其中 就是編碼器,而 就是解碼器,由于 KL 散度項為常數(shù),對優(yōu)化沒影響,所 以vMF-VAE 相比于普通的自編碼器,只是多了一項稍微有點復雜的重參數(shù)操作(以及人工調(diào)整 )而已,相比基于高斯分布的標準 VAE 可謂簡化了不少了。

此外,從該流程我們也可以看出,除了“簡單起見”之外,不將 設(shè)為可訓練還有一個主要原因,那就是 關(guān)系到 w 的采樣,而在w的采樣過程中要保留 的梯度是比較困難的。

參考實現(xiàn)

vMF-VAE 的實現(xiàn)難度主要是重參數(shù)部分,也就還是從 vMF 分布中采樣,而關(guān)鍵之處就是 w 的采樣。前面我們已經(jīng)給出了 w 的采樣的 numpy 實現(xiàn),但是在 tf 中未見類似 np.interp 的函數(shù),因此不容易轉(zhuǎn)換為純 tf 的實現(xiàn)。當然,如果是torch或者 tf2 這種動態(tài)圖框架,直接跟 numpy 的代碼混合使用也無妨,但這里還是想構(gòu)造一種比較通用的方案。

其實也不難,由于 w 只是一個一維變量,每步訓練只需要用到 batch_size 個采樣結(jié)果,所以我們完全可以事先用 numpy 函數(shù)采樣好足夠多(幾十萬)個 w 存好,然后訓練的時候直接從這批采樣好的結(jié)果隨機抽就行了,參考實現(xiàn)如下:

def?sampling(mu):"""vMF分布重參數(shù)操作"""dims?=?K.int_shape(mu)[-1]#?預先計算一批wepsilon?=?1e-7x?=?np.arange(-1?+?epsilon,?1,?epsilon)y?=?kappa?*?x?+?np.log(1?-?x**2)?*?(dims?-?3)?/?2y?=?np.cumsum(np.exp(y?-?y.max()))y?=?y?/?y[-1]W?=?K.constant(np.interp(np.random.random(10**6),?y,?x))#?實時采樣widxs?=?K.random_uniform(K.shape(mu[:,?:1]),?0,?10**6,?dtype='int32')w?=?K.gather(W,?idxs)#?實時采樣zeps?=?K.random_normal(K.shape(mu))nu?=?eps?-?K.sum(eps?*?mu,?axis=1,?keepdims=True)?*?munu?=?K.l2_normalize(nu)return?w?*?mu?+?(1?-?w**2)**0.5?*?nu

一個基于 MNIST 的完整例子可見:

https://github.com/bojone/vae/blob/master/vae_vmf_keras.py

至于 vMF-VAE 用于 NLP 的例子,我們?nèi)蘸笥袡C會再分享。本文主要還是以理論介紹和簡單演示為主。

文章小結(jié)

本文介紹了基于 vMF 分布的 VAE 實現(xiàn),其主要難度在于 vMF 分布的采樣??偟膩碚f,vMF 分布建立在余弦相似度度量之上,在某些方面的性質(zhì)更符合我們的直觀認知,將其用于 VAE 中,能夠使得 KL 散度項為一個常數(shù),從而防止了 KL 散度消失現(xiàn)象,并且簡化了 VAE 結(jié)構(gòu)。

參考文獻

[1] https://arxiv.org/abs/1804.00891

[2] https://arxiv.org/abs/1808.10805

[3] https://www.tandfonline.com/doi/abs/10.1080/03610919408813161

更多閱讀

#投 稿?通 道#

?讓你的論文被更多人看到?

如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認識的人。

總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?

PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學習心得技術(shù)干貨。我們的目的只有一個,讓知識真正流動起來。

?????來稿標準:

? 稿件確系個人原創(chuàng)作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?

? 如果文章并非首發(fā),請在投稿時提醒并附上所有已發(fā)布鏈接?

? PaperWeekly 默認每篇文章都是首發(fā),均會添加“原創(chuàng)”標志

?????投稿郵箱:

? 投稿郵箱:hr@paperweekly.site?

? 所有文章配圖,請單獨在附件中發(fā)送?

? 請留下即時聯(lián)系方式(微信或手機),以便我們在編輯發(fā)布時和作者溝通

????

現(xiàn)在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關(guān)注」訂閱我們的專欄吧

關(guān)于PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術(shù)平臺。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。

總結(jié)

以上是生活随笔為你收集整理的变分自编码器:球面上的VAE(vMF-VAE)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 性色av蜜臀av | 免费看黄色一级大片 | 少妇精品久久久久久久久久 | 91影院在线免费观看 | 悠悠色综合 | 在线免费观看一区二区三区 | 4438全国最大成人网 | 欧美日韩在线视频 | 欧美一级啪啪 | 国产伦精品一区二区三区视频免费 | 在线免费黄色片 | 少妇无码一区二区三区 | 欧美日韩在线视频一区二区 | 亚洲欧美日韩国产综合 | 欧美日韩综合一区二区 | x88av在线| 黄色一级片在线 | www午夜视频 | 18禁免费无码无遮挡不卡网站 | 一女双乳被两男吸视频 | 女人扒开屁股让男人捅 | 性感美女一级片 | 青青操在线观看视频 | 中文字幕人妻熟女在线 | 成人免费视频一区二区 | 成人91视频 | 日本两性视频 | 久久精品视频9 | 日本高清免费aaaaa大片视频 | 欧美成人乱码一区二区三区 | 黄色成年人视频 | 视频1区 | 国精品一区 | 国产精品久久久久蜜臀 | xxx久久| 成年人视频网 | 国产一级在线观看 | 欧美黄色免费视频 | 手机看片日韩久久 | 久久精品一区二区三区四区 | 国产综合网站 | 波多野结衣视频免费在线观看 | www..com黄色 | 欧美另类videossexo高潮 | 日本特黄 | 福利免费在线观看 | 久久免费看少妇高潮v片特黄 | 久久99精品国产麻豆91樱花 | 日本成人在线免费视频 | a v在线视频 | 成人午夜视频免费看 | 九色av| 黄色小说网站在线观看 | 中文字幕一区二区三区5566 | 日本一二区视频 | 成人免费毛片男人用品 | 超碰人人人人人 | 人妻洗澡被强公日日澡电影 | 亚洲国产精品成人综合久久久 | 经典三级久久 | 日本孰妇毛茸茸xxxx | 精品在线观看视频 | 亚洲做受高潮 | 老司机福利院 | 在线免费黄色网址 | 亚洲综合黄色 | 久久久精品人妻一区二区三区色秀 | 美女扒开腿让男人捅 | www日本www| 美女又爽又黄视频毛茸茸 | 精品国产欧美日韩 | 亚洲AV成人无码网站天堂久久 | av十大美巨乳 | 在线观看中出 | 国产一区二区激情 | 久久精品国产大片免费观看 | 亚洲综合社区 | 免费av不卡在线观看 | 成人性生交大片免费看96 | 99热超碰 | 亚洲精品成人片在线观看精品字幕 | 超碰在线97观看 | 变态视屏 | 91免费视频免费版 | 亚洲国产精品视频一区 | 午夜免费网站 | 日韩一级片免费 | 日韩精品在线视频 | 91手机在线观看 | 久草视频福利在线 | 久草视频免费在线 | 国产精品熟女一区二区不卡 | 欧亚成人av | 在线观看国产三级 | 日本人妖网站 | 国产偷国产偷av亚洲清高 | 国产一二三区在线 | 欧美一区二区成人 | 亚洲三级在线视频 |