生成器對應於認知器的逆過程。
這一切的起源都是當初一個極具啟發性的思想:Sleep-wake algorithm——人睡眠時整理記憶做夢,是一個生成的過程,即通過最終的識別結果企圖恢復接收到的刺激,當然,恢復得到的是夢境而已,那個夢中的視覺、聽覺、觸覺以及嗅覺等等全和現實有關卻也無關。有關是認知層次的有關,無關是表現出的內容的無關。sleep時進行生成,wake時進行認知。這個過程交替進行就構成了sleep-wake算法。它是一個寬松模型,或者說是一個Monte Carlo采樣的EM逼近訓練過程。它不要求生成的內容和認知的輸入嚴格一致,只要在總體上滿足最低構建誤差就行(類似於構建主義心理學所描述的學習過程)。
進入正題:
VAE的參考文獻:【https://arxiv.org/pdf/1312.6114.pdf】
GAN的參考文獻:【https://arxiv.org/pdf/1406.2661.pdf】
Glow參考文獻:【https://arxiv.org/pdf/1807.03039.pdf】
VAE中計算源采樣空間的分布和學習目標空間的分布的分布損失是通過計算KL散度來近似計算的,但由於無法確知目標分布的特性,實際上只能依靠mean和variance來計算兩者之間的分布差異性的下限(ELBO,Evidence lower bound),這導致最終得到的生成模型的分布與實際分布的差異到底有多大,這種近似不是很靠譜。
GAN僅僅訓練一個生成器和判別器,隱含狀態的表征是未知的,無法控制。效果比VAE要好些,但很難訓練。
Glow——可逆變換流則通過訓練一個可逆的變換,將源空間映射到一個顯式的表征:中間隱藏向量,由於這個過程是可逆的,因此,可以直接從這個中間表征逆向生成符合源空間的采樣。
flow-based invertible model的訓練難度在三者之間最低,得到的效果目前來說也是最好的。其弊端也許會慢慢的在被廣泛應用中被挖掘出來。具體關於Glow的解釋可以參見:https://www.colabug.com/3907098.html。
一圖解釋: