BiGAN-QP:简单清晰的编码 生成模型
作者丨蘇劍林
單位丨廣州火焰信息科技有限公司
研究方向丨NLP,神經網絡
個人主頁丨kexue.fm
前不久筆者通過直接在對偶空間中分析的思路,提出了一個稱為 GAN-QP 的對抗模型框架,它的特點是可以從理論上證明既不會梯度消失,又不需要 L 約束,使得生成模型的搭建和訓練都得到簡化。
GAN-QP 是一個對抗框架,所以理論上原來所有的 GAN 任務都可以往上面試試。前面不用L約束又不會梯度消失的GAN,了解一下?一文中我們只嘗試了標準的隨機生成任務,而這篇文章中我們嘗試既有生成器、又有編碼器的情況:BiGAN-QP。
BiGAN與BiGAN-QP
注意這是 BiGAN,不是前段時間很火的 BigGAN,BiGAN 是雙向 GAN(Bidirectional GAN),提出于 Adversarial Feature Learning?[1] 一文,同期還有一篇非常相似的文章叫做 Adversarially Learned Inference?[2],提出了叫做 ALI 的模型,跟 BiGAN 差不多。
總的來說,它們都是往普通的 GAN 模型中加入了編碼器,使得模型既能夠具有普通 GAN 的隨機生成功能,又具有編碼器的功能,可以用來提取有效的特征。把 GAN-QP 這種對抗模式用到 BiGAN 中,就得到了 BiGAN-QP。?
話不多說,先來上效果圖(左邊是原圖,右邊是重構):
▲?BiGAN-QP重構效果圖
這是將 256 x 256 x 3 的圖片降維到 256 維度,然后再重構出來的。可以看到,整體的重構效果是不錯的,沒有普通自編碼器的模糊感。有一些細節缺失,相比 IntroVAE [3] 是差了一點,不過這是模型架構和調參的問題了,并不是我擅長的。不管怎樣,這個效果圖應該可以表明 BiGAN-QP 是可以跑通的,而且效果還行。
本文內容已經更新到 GAN-QP 的原論文,讀者可以長按識別下方二維碼下載最新版本。
BiGAN-QP簡明推導
其實相比 GAN,BiGAN 的推導非常簡單,只需要將原來的單輸入 x 換成雙輸入 (x,z) 就行了。同樣,有了 GAN-QP 基礎的話,所謂 BiGAN-QP,也是非常簡單的。具體來說,原來 GAN-QP 是這樣的:
現在變成了:
理論上就這樣行了,這就是 BiGAN-QP。但實際上這樣很難學習到一個好的雙向映射,因為這相當于從無數可能的映射中自動搜索出一個雙向映射,比較困難。所以我們還需要一些“引導項”,我們用兩個 mse 誤差作為引導項:
其實生成器的三項 loss 都很直觀,ΔT 是生成的圖像更加真實,是希望能重構隱變量空間,是希望能重構顯變量空間。后兩項不能太大,尤其是最后一項,太大會導致圖像的模糊。
其中這兩個正則項可以看成是 G(z) 與 z 的互信息、x 與 E(x) 的互信息的一個上界,因此從信息的角度看,這兩個正則項是希望 x,z 之間的互信息越大越好。相關的討論可以參考 InfoGAN [4] 論文,這兩個正則項代表著它也屬于 InfoGAN 的特例。所以完整來說,這應該是一個 Bi-Info-GAN-QP。?
互信息項可以在一定程度上穩定 GAN 的訓練過程,減少模型坍縮(mode collapse)的可能性,因為一旦模型坍縮,那么互信息就不會大了。換句話說,如果模型坍縮,那么重構就不大可能了,重構 loss 會很大。
實驗表明,再做一些小的調整,效果會更好。這個小的調整源于:兩個 mse 項耦合起來還是過于強大了(loss 的具體值不一定大,但是梯度很大),導致模型還是有生成模糊圖像的傾向,所以需要停止掉一半的梯度,變為:
Gng 和 Eng 指的是強行讓這部分的梯度為 0,一般的框架都有這個算子,直接調用即可。這就是本文最終的 BiGAN-QP 模型。
代碼與效果圖
代碼也已經補充到 Github 了:
https://github.com/bojone/gan-qp/tree/master/bigan-qp
再來一些效果圖(左邊是原圖,右邊是重構):
▲?BiGAN-QP重構效果圖2
可以看到,重構并不模糊,而且很重要的一個特點是:因為是降維重構,模型并不是(也無法做到)學會了一個逐像素對應的一一映射,而是一個整體看上去差不多的清晰的重構結果。
比如我們看到第一行的第一張和最后一行的第二張,模型基本上把人重構出來了,但有趣的是眼鏡,我們發現模型確實也重構了眼鏡但是換了另外一個“款式”的眼鏡。我們甚至可以認為,模型已經學到了“眼鏡”這個概念,只不過是降維重構,隱變量的表達能力有限,所以盡管模型知道那是眼鏡,但不能重構出一模一樣的眼鏡出來,就只好換一款常見的眼睛了。
這是普通的 VAE 所要求的“逐點一一對應重構”所無法實現的,“逐點一一對應重構”也是造成 VAE 模糊的主要原因了。如果要完全可逆重構,只有像 Glow 那樣的可逆模型才有可能做到了。
另外,又有編碼器又有生成器,我們就可以玩玩真實圖片的隱變量插值了(左一、右一是真實圖片,左二、右二是重構圖片,其余是插值圖):
▲?BiGAN-QP真實圖片插值
還可以看看 BiGAN-QP 眼中的相似圖片(算出所有真實圖片的隱變量,然后用歐氏距離或者 cos 值算相似度,下圖為歐氏距離的結果),第一行為輸入,后兩行為相似圖片:
▲?BiGAN-QP眼中的相似
歡迎使用與分享
前面已經提到,GAN-QP 是一個理論完備的對抗框架,理論上所有的 GAN 任務都可以嘗試一下。所以,如果讀著您手頭上正好有 GAN 任務,不妨嘗試一下,然后你就可以去掉 L 約束,去掉譜歸一化甚至去掉很多正則項,還不用擔心梯度消失了。GAN-QP 就是筆者致力于去掉 GAN 各種超參數所得的結果。
如果你有新的基于 GAN-QP 的應用結果,歡迎在此分享。
參考文獻
[1]?Donahue, Jeff, Kr?henbühl, Philipp, and Darrell, Trevor. Adversarial feature learning. In ICLR, 2017.
[2]?Dumoulin, Vincent, Belghazi, Ishmael, Poole, Ben, Mastropietro, Olivier, Lamb, Alex, Arjovsky, Martin, and Courville, Aaron. Adversarially learned inference. In ICLR, 2017.
[3]?H Huang, R He, Z Sun, T Tan.?IntroVAE: Introspective Variational Autoencoders for Photographic Image Synthesis. Advances in Neural Information Processing Systems, 52-63.
[4]?X Chen, Y Duan, R Houthooft, J Schulman, I Sutskever, P Abbeel.?InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets. In NIPS 2016.
點擊以下標題查看作者其他文章:?
變分自編碼器VAE:原來是這么一回事 | 附開源代碼
再談變分自編碼器VAE:從貝葉斯觀點出發
變分自編碼器VAE:這樣做為什么能成?
從變分編碼、信息瓶頸到正態分布:論遺忘的重要性
深度學習中的互信息:無監督提取特征
全新視角:用變分推斷統一理解生成模型
細水長flow之NICE:流模型的基本概念與實現
細水長flow之f-VAEs:Glow與VAEs的聯姻
深度學習中的Lipschitz約束:泛化與生成模型
#投 稿 通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢??答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
??來稿標準:
? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?
? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志
? 投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發送?
? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通
?
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點擊 |?閱讀原文?| 查看作者博客
總結
以上是生活随笔為你收集整理的BiGAN-QP:简单清晰的编码 生成模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实录分享 | 计算未来轻沙龙:深度学习工
- 下一篇: 近期知识图谱顶会论文推荐,你都读过哪几篇