當前位置:
首頁 > 新聞 > 「貓咪生成器」DCGAN、WGAN等4種生成對抗網路貓咪圖像對比

「貓咪生成器」DCGAN、WGAN等4種生成對抗網路貓咪圖像對比

「貓咪生成器」DCGAN、WGAN等4種生成對抗網路貓咪圖像對比

新智元編譯

「貓咪生成器」DCGAN、WGAN等4種生成對抗網路貓咪圖像對比

我嘗試使用生成對抗網路(GAN)來生成貓的臉。我想分別以較低和較高的解析度使用 DCGAN,WGAN,WGAN-GP 以及 LSGAN。使用的數據集是 CAT Dataset,這個數據集包含 10000 張貓咪的照片。我需要的是貓咪的臉在中央的圖像,並篩除了不符合的圖像(這是用肉眼觀察做的,花了幾個小時…)。最終,我得到 9304 張解析度大於 64×64 的圖像和 6445 張解析度大於 128×128 的圖像。

DCGAN

DCGAN 生成器只需 239 個 epoch,在約 2-3 小時內就能收斂得到非常逼真的圖像,但為了得到適當的收斂,需要做一些輕微的調整。你需要分別為 D(鑒別器)和 G(生成器)選擇各自的學習率(learning rate),以使 G 或者 D 的效果不會差別太大。這需要非常小心地平衡,但一旦找到了平衡的點,就能得到收斂。使用 64×64 的圖像時,最佳的點是鑒別器學習率為 .0005,而生成器學習率為 .0002。沒有出現明顯的 mode collapse 的問題,最終我們得到了非常可愛的圖像!

「貓咪生成器」DCGAN、WGAN等4種生成對抗網路貓咪圖像對比

DCGAN 生成的 64×64 解析度的貓貓

高解析度 DCGAN 和 SELU

我最初用 DCGAN 生成 128×128 解析度貓咪圖像的所有嘗試都失敗了。但是,用 SELU 代替批標準化(batch normalization)和 ReLU 之後,雖然速度有點慢(花了6+小時),但是能夠與之前相同的學習率穩定地收斂了。SELU 是自歸一化的,因此不需要批標準化。SELU 是新近出現的方法,SELU 用於 GAN 的研究還非常少,但從我所觀察到的,SELU 似乎大大增強了 GAN 的穩定性。這一方法生成的貓咪圖像沒有向前的那麼好看,而且明顯品種多樣性不足(有大量類似的黑貓)。主要原因是樣本量太小,N=6445,而不是 N=9304(因為只對解析度大於 128×128 的圖像進行訓練)。不過,有些貓看起來很漂亮,而且比先前的解析度更好,所以我仍然認為這是成功的!

「貓咪生成器」DCGAN、WGAN等4種生成對抗網路貓咪圖像對比

DCGAN 生成的 128×128 解析度的貓貓

WGAN

WGAN 生成器的收斂速度非常慢(花了4-5小時,600+epoch),而且只有使用64個隱藏節點(hidden node)時才收斂。我無法在使用 128 個隱藏節點時使生成器收斂。使用 DCGAN 時,需要調整的學習率很多,但當它不收斂時可以快速看到(當 D 的損失值為 0,或 G 的損失在開始時為 0 時),但是使用 WGAN 時,你需要讓它運行許多 epoch,才能知道是否收斂。

從視覺上看,出現了一些相當明顯的 mode collapse。例如,許多貓出現虹膜異色,有些貓一隻眼睛閉著一隻眼睛睜著,或者鼻子很奇怪。總體而言,結果不如 DCGAN 那麼好,但由於 WGAN 神經網路沒有那麼複雜,所以這樣比較可能不公平。它似乎也陷入了局部最優(local optimum)。到目前為止,WGAN 效果令人失望。

WGAN-GP(使用正則化而非 weight clipping 的改進版 WGAN)可以解決這些問題。在 Gulrajani 等人的論文「Improved Training of Wasserste in GANs」(2017)中,他們訓練了一個 101 層的神經網路來生成圖像!所以我想我訓練的 5 層,128 個隱藏節點的生成器可能是問題所在。Adam 優化器還具有一些特徵,可以降低 mode collapse 以及令其陷入不利的局部最優的風險。這可能有助於解決 WGAN 的問題,因為 WGAN 不使用 Adam,而 DCGAN 和 WGAN-GP 都使用。

「貓咪生成器」DCGAN、WGAN等4種生成對抗網路貓咪圖像對比

WGAN 生成的貓貓

WGAN-GP(改進版 WGAN)

WGAN-GP 生成器收斂速度非常慢(超過6小時),但不管改變什麼設置結果都是這樣。它是開箱即用的,不需要任何調整。你可以增大或降低學習率,不會出現很大的影響。因此,我是非常喜歡 WGAN-GP 的。

生成的貓非常多樣化,而且沒有明顯的 mode collapse,這是相對 WGAN 的一個重大改進。但是,生成貓的外觀非常模糊,就像高解析度圖片被變成低解析度了一樣,我不知道這是什麼原因。可能是 Wasserstein loss 的特點。我想使用不同的學習率和架構可能有所幫助。這需要進一步的嘗試,肯定還有很大的潛力。

「貓咪生成器」DCGAN、WGAN等4種生成對抗網路貓咪圖像對比

WGAN-GP 生成的貓貓

LSGAN(最小二乘GAN)

LSGAN 是一種比較不同的方法,我們嘗試將鑒別器輸出和其指定的標籤之間的平方距離最小化。Xudong Mao(毛旭東)等人的原始 LSGAN 論文中建議使用:在鑒別器 update 中使1為真實圖像,0為偽造圖像,然後在生成器 update 中使1為偽造圖像,0為真實圖像。但是 Hejlm 等人的論文建議使用:在鑒別器 update 中使1為真實圖像,0為偽造圖像,但在生成器update中使.50作為偽造圖像來尋找邊界。

我沒有時間進行完整的運行,但 LSGAN 總體相當穩定,並且輸出的貓非常漂亮。雖然一般情況下是穩定的,但又一次,損失和梯度崩潰了,生成的別說貓了,啥也沒有。你可以看下面的 epoch 31 和 32:

「貓咪生成器」DCGAN、WGAN等4種生成對抗網路貓咪圖像對比

因此,它不是絕對穩定的,可能會崩潰造成非常糟糕的結果。為 Adam 優化器選擇更好的超參數可能有助於防止這種情況。你不需要像 DCGAN 那樣調整學習率,但如果出故障(可能很少見),生成的貓咪還是非常好看的。

後記:LSGAN 的第一作者 Xudong Mao 發給我一張128×128解析度的 LSGAN 生成的貓的圖像,證明 LSGAN 可以生成跟 DCGAN 一樣好的圖,甚至更好。結果如下面這張圖:

「貓咪生成器」DCGAN、WGAN等4種生成對抗網路貓咪圖像對比

開源代碼:https://github.com/AlexiaJM/Deep-learning-with-cats

數據集:CAT Dataset:https://web.archive.org/web/20150703060412/http://137.189.35.203/WebUI/CatDatabase/catData.html

相關論文:

1. Radford A, Metz L, Chintala S. Unsupervised representation learning with deep convolutional generative adversarial networks[J]. arXiv preprint arXiv:1511.06434, 2015.

2. Arjovsky M, Chintala S, Bottou L. Wasserstein gan[J]. arXiv preprint arXiv:1701.07875, 2017.

3. Gulrajani I, Ahmed F, Arjovsky M, et al. Improved training of wasserstein gans[J]. arXiv preprint arXiv:1704.00028, 2017.

4. Mao X, Li Q, Xie H, et al. Least squares generative adversarial networks[J]. arXiv preprint ArXiv:1611.04076, 2016.

原文:https://ajolicoeur.wordpress.com/cats/

點擊閱讀原文查看新智元招聘信息

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 新智元 的精彩文章:

「讓調參全部自動化」自動機器學習,神經網路自主編程(代碼與訣竅)
斯坦福新深度學習系統 NoScope:視頻對象檢測快1000倍
「北航新型人工突觸」能模擬人類神經系統基本功能的人工突觸誕生

TAG:新智元 |

您可能感興趣

攔路貓系列之躲貓貓
《最終幻想14》公布《怪物獵人 世界》合作內容 與艾路貓搭檔挑戰狩獵雄火龍
藍貓隔著玻璃和過路貓咪拳打腳踢,貓咪:這該不會是個傻子吧?
網友出門遛貓,但半路貓咪有些累,過路小女孩舉動讓路人大呼有愛
看可愛艾路貓變身帥氣洛克人!《怪物獵人:世界》×《洛克人》聯名活動正式推出
鏟屎官發現自家貓咪對著貢品台在拜,很好奇它拜的是哪一路貓神
貓咪和主人玩拳擊遊戲,挨打後狂揍過路貓,被揍喵:我路過而已
主人想套路貓咪,沒想到被貓咪識破,網友:賠了夫人又折兵!
女孩出電梯遇到一隻攔路貓,餵食後發現它懷孕了,網友:快收了吧
帶狗出門玩,狗狗突然停滯不前,向前一看笑噴:原來有隻攔路貓
迷路貓咪的故事遊戲界面中文提示翻譯詳解
主人套路貓咪洗澡,說這是給它買的衣服,穿上之後貓咪才知被坑了
主人套路貓咪扔了一隻臭襪子過去,貓咪張開嘴巴就咬,結果尷尬了
金毛路上遇到攔路貓,一個勁的往後退,主人看到貓之後笑得停不下來!