白話VAE(Variational Autoencoder)變分自編碼器

VAE, 全稱Variational Autoencoder, 可以看出它是autoencoder的一種.
autoencoder主要用來提取特徵, 重構出和原來的數據.

這裏VAE是變分自編碼器, 變在哪裏呢?下面舉個例子.

假如目前天上有一個月亮, 還有一個和月亮差不多的星星. 他們都會隨着時間變化, 有時候不太容易分清楚到底哪個是月亮, 哪個是星星. 那麼我們需要構建一個分類模型, 來判斷我們看到的這個天體是月亮還是星星.

但是我們目前的問題是我們拿到月亮的數據很少, 只有初一和十五的, 如果訓練一個分類模型肯定不夠了. 那麼我們就可以利用VAE來搞出一些數據來, 模擬出從初一到三十每一天的月亮.

假設月亮的樣子是由南北半球和每個月的日期這兩個因素所決定的, 而且這些因素(z1,z2z_{1}, z_{2})服從正態分佈, 那麼我們的任務就是通過初一和十五這兩個數據(當然, 實際上要更多一些)用VAE來訓練出這些正態分佈的均值和方差, 如南北半球的緯度(μ1,δ1\mu_{1},\delta_{1})和每個月的日期(μ2,δ2\mu_{2},\delta_{2}).

訓練的目標就是假設初一和十五的月亮的影響因素也是服從這個正態分佈的, 那麼通過這個分佈一樣可以還原出初一和十五的月亮.

因此loss function有兩個部分, 一個是z的分佈和正態分佈的差距, 一般用KL散度 KL(P(ZX),N(0,1))KL(P(Z|X), N(0,1)), 另外還有還原出的數據和原數據的差異: L(X,X^)L(X,\hat{X})

如下圖所示.
在這裏插入圖片描述

那麼怎麼生成模擬的月亮呢?

得到了這兩個分佈, 我們就可以在這兩個分佈內進行採樣, 即改變μ\muδ\delta, 得到新的zz, 從而還原生成新的月亮.

VAE技術通常可以用在擴展訓練數據上. 在NSDI2020年MIT的一篇論文Food and Liquid Sensing in Practical Environments using RFIDs裏, 作者利用VAE生成了不同的multipath下的信道信道狀態信息, 減少了數據採集的工作量.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章