0
本文作者: AI研習(xí)社-譯站 | 2018-08-24 14:17 |
雷鋒網(wǎng)按:本文為 AI 研習(xí)社編譯的技術(shù)博客,原標(biāo)題 Celebrity Face Generation using GANs,作者為 SHIVAM BANSAL。
翻譯 | 江舟 校對 | 吳曉曼 整理 | MY
生成式對抗網(wǎng)絡(luò)(GANs)是深度學(xué)習(xí)中最熱門的話題之一。生成式對抗網(wǎng)絡(luò)是一類用于無監(jiān)督學(xué)習(xí)算法的人工算法,由兩個神經(jīng)網(wǎng)絡(luò)組成的系統(tǒng)實(shí)現(xiàn)
生成器
鑒別器
兩個神經(jīng)網(wǎng)絡(luò)都在零和游戲框架中相互競爭。生成式對抗網(wǎng)絡(luò)(GANs)是一組模型,他們基本上學(xué)習(xí)創(chuàng)建與其給出的輸入數(shù)據(jù)類似的合成數(shù)據(jù)。
鑒別器的任務(wù)是確定給定圖像是否看起來自然(即是來自數(shù)據(jù)集的圖像)還是看起來它是人工創(chuàng)建的。生成器的任務(wù)是創(chuàng)建與原始數(shù)據(jù)分布類似的自然外觀圖像,這些圖像看起來足夠自然以欺騙鑒別器網(wǎng)絡(luò)。首先給生成器一個隨機(jī)噪聲,使用它產(chǎn)生假圖像,然后將這些假圖像與原始圖像一起發(fā)送到鑒別器。
鑒別模型的任務(wù)是確定給定圖像看起來是自然的(來自數(shù)據(jù)集的圖像)還是人工創(chuàng)建的。這基本上是一個二元分類器,它采用普通卷積神經(jīng)網(wǎng)絡(luò)(CNN)的形式。生成器的任務(wù)是創(chuàng)建與原始數(shù)據(jù)分布類似的自然外觀圖像。
生成器試圖蒙騙鑒別器,而鑒別器試圖不被生成器蒙騙。當(dāng)模型通過交替優(yōu)化訓(xùn)練時,兩種方法都被改進(jìn)到“假圖像與數(shù)據(jù)集圖像無”法區(qū)分的點(diǎn)。
生成對抗式網(wǎng)絡(luò)的數(shù)學(xué)方程:
我們可以認(rèn)為這個方程由兩部分組成,第一部分是從原始數(shù)據(jù)分布中采樣的數(shù)據(jù),第二部分是從噪聲數(shù)據(jù)分布中采樣的數(shù)據(jù)。
第一部分
鑒別者總是希望最大化其圖像分類的正確率。這里的圖像是從原始數(shù)據(jù)分布中采樣的,原始數(shù)據(jù)分布是真實(shí)數(shù)據(jù)本身。D(x)是顯示圖像是真實(shí)的概率,所以鑒別器總是想要最大化 D(x),因此 log(D(x))應(yīng)該最大化并且在這一部分內(nèi)容中必須最大化。
第二部分
'z'是隨機(jī)噪聲樣本,G(z)是使用噪聲樣本生成的圖像。這個術(shù)語的解釋和之前很相似。生成器總是希望最大化鑒別器被生成的圖像蒙騙的概率。這意味著,生成器想要最大化 D(G(z)),因此它應(yīng)該最小化 1-D(G(z))也意味著(1-D(G(z)))最小化。
使用 GANs 生成名人圖像
名人圖片數(shù)據(jù)集:
CelebA 數(shù)據(jù)集是超過 200,000 個帶注釋的名人面部圖像的集合。因?yàn)樵谶@個博客中,我只是想生成面孔所以我沒有考慮注釋。
1)獲取數(shù)據(jù):
我創(chuàng)建了 helper.py 文件,你可以通過該文件下載 CelebA 數(shù)據(jù)集圖像。在運(yùn)行此代碼片段時,它將下載 CelebA 數(shù)據(jù)集。(源代碼鏈接如下)。
2)預(yù)處理圖像:
由于我僅在面部圖像上工作,為獲得良好的效果所以我將其調(diào)整到 28 * 28。我裁剪了圖像中不包含圖像部分的部分。
由于生成式對抗網(wǎng)絡(luò)很難訓(xùn)練(你可以查看此鏈接,以了解為什么生成式對抗網(wǎng)絡(luò)的訓(xùn)練如此困難?)
為了獲得準(zhǔn)確的結(jié)果,我們應(yīng)該擁有一個良好的 GPU(4GB 或更高版本),通過運(yùn)行此代碼片段,你可以了解是否使用自己的 GPU 安裝了 tensorflow。
3)模型輸入和網(wǎng)絡(luò)結(jié)構(gòu)
我將圖像的寬,高,channel 和噪聲參數(shù)作為模型的輸入,隨后生成器也會使用它們生成假圖像。
生成器結(jié)構(gòu):
在解卷積層之后,生成器結(jié)構(gòu)具有致密層和全連接層(除輸出層外每一層都有批量標(biāo)準(zhǔn)化,leaky ReLu 和 dropout)。生成器將隨機(jī)噪聲向量 z,之后把它重塑為 4D 形狀并把它傳遞給一系列上采樣層。每個上采樣層都代表一個轉(zhuǎn)置卷積運(yùn)算,即反卷積運(yùn)算。
所有轉(zhuǎn)置卷積的深度從 1024 一直減少到 3,它表示 RGB 彩色圖像。最后一層通過雙曲正切(tanh)函數(shù)輸出 28x28x3 張量。
鑒別器結(jié)構(gòu):
鑒別器的工作是識別哪個圖像是真實(shí)的,哪個是假的。鑒別器也是具有批量歸一化、lekeay Relu 的 4 層 CNN(輸入層除外)。鑒別器接收輸出圖像(大小為 28 * 28 * 3)并對其進(jìn)行卷積。最后,鑒別器使用 Logistic Sigmoid 函數(shù)顯示用于表示圖像是真或假的輸出概率。
當(dāng)鑒別器看到圖像中的差異時,它將梯度信號發(fā)送到生成器,此信號從鑒別器流向生成器。
4)生成器損失和鑒別器損失:
鑒別器從訓(xùn)練圖像和生成器兩者接收圖像,因此在計(jì)算鑒別器的損失時,我們必須增加由于真實(shí)圖像和假圖像造成的損失。兩個網(wǎng)絡(luò)被同時訓(xùn)練,所以我們需要將生成器和鑒別器都進(jìn)行優(yōu)化。如果圖像是真實(shí)的,我們希望從鑒別器輸出接近 1 的概率,如果圖像是假的,則輸出接近 0 的概率。
訓(xùn)練和結(jié)果
......
想要繼續(xù)閱讀,請移步至我們的AI研習(xí)社社區(qū):https://club.leiphone.com/page/TextTranslation/777
更多精彩內(nèi)容盡在 AI 研習(xí)社。
不同領(lǐng)域包括計(jì)算機(jī)視覺,語音語義,區(qū)塊鏈,自動駕駛,數(shù)據(jù)挖掘,智能控制,編程語言等每日更新。
雷鋒網(wǎng)雷鋒網(wǎng)(公眾號:雷鋒網(wǎng)(公眾號:雷鋒網(wǎng)(公眾號:雷鋒網(wǎng))))
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。