摘要:生成你的明星臉介紹,叫做生成對抗網(wǎng)絡(luò)。改進(jìn)損失函數(shù)為了訓(xùn)練過程穩(wěn)定,生成高質(zhì)量的圖像,論文中采用自定義梯度懲罰來代替對抗誤差損失其中表示真實(shí)和生成圖像之間均勻采樣的直線,試驗(yàn)時(shí)。
StarGAN——生成你的明星臉 1 GAN 介紹
GAN,叫做生成對抗網(wǎng)絡(luò) (Generative Adversarial Network) 。其基本原理是生成器網(wǎng)絡(luò) G(Generator) 和判別器網(wǎng)絡(luò) D(Discriminator) 相互博弈。生成器網(wǎng)絡(luò) G 的主要作用是生成圖片,在輸入一個(gè)隨機(jī)編碼 (random code) z后,自動(dòng)的生成假樣本 G(z) 。判別器網(wǎng)絡(luò) D 的主要作用是判斷輸入是否為真實(shí)樣本并提供反饋機(jī)制,真樣本則輸出 1 ,反之為 0 。在兩個(gè)網(wǎng)絡(luò)相互博弈的過程中,兩個(gè)網(wǎng)絡(luò)的能力都越來越高:G 生成的圖片越來越像真樣本,D 也越來越會(huì)判斷圖片的真假,然后我們在最大化 D 的前提下,最小化 D 對 G 的判斷能力,這實(shí)際上就是最小最大值問題,或者說二人零和博弈,其目標(biāo)函數(shù)表達(dá)式:
其中表達(dá)式中的第一項(xiàng) D(G(z)) 處理的是假圖像 G(z) ,我們盡量降低評分 D(G(z)) ;第二項(xiàng)處理的是真圖像 x ,此時(shí)評分要高。但是 GAN 并不是完美的,也有自己的局限性。比如說沒有用戶控制的能力和低分辨率與低質(zhì)量的問題。
為了提高 GAN 的用戶控制能力,人類進(jìn)行了一些列的探索研究。比如 Pix2Pix 模型采用有條件的使用用戶輸入,使用成對的數(shù)據(jù) (paired data)?進(jìn)行訓(xùn)練; CycleGAN 模型使用不成對的數(shù)據(jù) (unpaired data)?的就能訓(xùn)練 。但無論是 Pix2Pix 還是 CycleGAN ,都是解決了從一個(gè)領(lǐng)域到另一個(gè)領(lǐng)域的圖像轉(zhuǎn)換問題。當(dāng)有很多領(lǐng)域需要轉(zhuǎn)換時(shí),對于每一個(gè)領(lǐng)域轉(zhuǎn)換,都需要重新訓(xùn)練一個(gè)模型去解決。目前,存在的模型處理多領(lǐng)域圖像生成任務(wù)時(shí),學(xué)習(xí) k 個(gè)領(lǐng)域之間所有映射就必須訓(xùn)練 k * (k-1) 個(gè)生成器。如果訓(xùn)練一對一的圖像多領(lǐng)域生成任務(wù)時(shí),主要會(huì)導(dǎo)致兩個(gè)問題:
訓(xùn)練低效,每次訓(xùn)練耗時(shí)很大。
訓(xùn)練效果有限,因?yàn)橐粋€(gè)領(lǐng)域轉(zhuǎn)換多帶帶訓(xùn)練的話就不能利用其它領(lǐng)域的數(shù)據(jù)來增大泛化能力。
上圖中 (a) 模型說明如何訓(xùn)練 12 個(gè)不同生成器網(wǎng)絡(luò)以達(dá)到 4 個(gè)不同領(lǐng)域圖像之間轉(zhuǎn)換任務(wù)。很明顯每個(gè)生成器不能夠充分利用整個(gè)訓(xùn)練數(shù)據(jù),只能從 4 個(gè)領(lǐng)域中 2 個(gè)領(lǐng)域相互學(xué)習(xí),這樣就會(huì)生成圖片質(zhì)量不好。而上圖(b)中的模型就可以解決這些問題,該模型接受多個(gè)領(lǐng)域訓(xùn)練數(shù)據(jù),并僅使用一個(gè)生成器來學(xué)習(xí)多領(lǐng)域圖像之間映射關(guān)系。根據(jù)模型的長相將該模型稱為星形網(wǎng)絡(luò),外文名就是 StarGAN 。
上圖是根據(jù) StarGAN 模型訓(xùn)練出的效果。在同一種模型下,可以做多領(lǐng)域圖像之間的轉(zhuǎn)換,比如更換頭發(fā)顏色、更換表情、更換年齡等。
上圖是對 StarGAN 的簡單介紹,主要包含判別器 D 和生成器 G 。
(a)D 對真假圖片進(jìn)行判別,真圖片判真,假圖片判假,真圖片被分類到相應(yīng)域。
(b)G 接受真圖片和目標(biāo)域標(biāo)簽并生成假圖片;
(c)G 在給定原始域標(biāo)簽的情況下將假圖片重建為原始圖片(重構(gòu)損失);
(d)G 盡可能生成與真實(shí)圖像無法區(qū)分的圖像,并且通過 D 分類到目標(biāo)域。
提出 StarGAN 網(wǎng)絡(luò)模型,僅使用一個(gè) G 和 D 就可以實(shí)現(xiàn)多個(gè)領(lǐng)域之間圖像生成和訓(xùn)練。
采用 mask vector 方法控制所有可用域圖像標(biāo)簽以實(shí)現(xiàn)訓(xùn)練集之間的多領(lǐng)域圖像轉(zhuǎn)換。
StarGAN?相對于基準(zhǔn)模型,?在面部屬性轉(zhuǎn)移和面部表情合成的任務(wù)中有更好的效果?(具體數(shù)據(jù)請參看原論文中的實(shí)驗(yàn)部分)
3 StarGAN首先描述 StarGAN 網(wǎng)絡(luò),在一個(gè)數(shù)據(jù)集中進(jìn)行多領(lǐng)域的圖像轉(zhuǎn)換任務(wù);然后我們討論了如何使 StarGAN 能合并包含不同標(biāo)簽的數(shù)據(jù)集以及對其中任意的標(biāo)簽屬性靈活進(jìn)行圖像轉(zhuǎn)換。
3.1 多領(lǐng)域圖像轉(zhuǎn)換訓(xùn)練一個(gè)生成器 G ,能夠多領(lǐng)域映射。將帶有領(lǐng)域標(biāo)簽 c 的輸入圖像 x 轉(zhuǎn)換為輸出圖像 y,即?。隨機(jī)生成目標(biāo)領(lǐng)域標(biāo)簽 c 使得 G 能夠靈活的轉(zhuǎn)換輸入圖像,同時(shí)使用 D 控制多領(lǐng)域。這樣 D 就在圖像源和域標(biāo)簽上產(chǎn)生概率分布,即。
使用對抗損失函數(shù)提高生成圖像質(zhì)量,達(dá)到 D 無法區(qū)分出來輸出圖像和生成圖像之間的差別:
根據(jù)輸入圖像 x 和目標(biāo)領(lǐng)域標(biāo)簽 c ,由 G 生成輸出圖像,同時(shí) D 區(qū)分出真實(shí)圖像和生成圖像。將
作為輸入圖像 x 經(jīng)過 D 之后得到的可能性分布。生成器 G 使這個(gè)式子盡可能的小,而 D 則盡可能使其最大化。
對于一個(gè)輸入圖像 x 和目標(biāo)分布標(biāo)簽 c ,我們的目標(biāo)是將 x 轉(zhuǎn)換為輸出圖像 y后能夠被正確分類為目標(biāo)分布 c 。為了實(shí)現(xiàn)這一目標(biāo),我們在 D 之上添加一個(gè)輔助分類器,并在優(yōu)化 G 和 D 時(shí)采用目標(biāo)域分類損失函數(shù)。簡單來說,我們將這個(gè)式子分解為兩部分:一個(gè)真實(shí)圖像的分布分類損失用于約束 D ,一個(gè)假圖像的分布分類損失用于約束 G 。其表達(dá)式如下所示:
其中,代表 D 計(jì)算出來的領(lǐng)域標(biāo)簽的可能性分布。一方面,通過將這個(gè)式子最小化, D 將真實(shí)圖像 x 正確分類到與其相關(guān)分布 c" 。另一方面,假圖像的分類分布的損失函數(shù)定義如下:
即 G 使這個(gè)式子最小化,使得生成的圖像能夠被 D 判別為目標(biāo)領(lǐng)域 c。
通過最小化對抗損失和分類損失, G 訓(xùn)練生成的圖像盡可能與真實(shí)圖像一樣,并且能夠被分類到正確的目標(biāo)領(lǐng)域。然而,最小化這兩個(gè)損失函數(shù)不能保證?,?轉(zhuǎn)換后的圖像中,只改變領(lǐng)域差異的部分,?而保留輸入圖像中的其他內(nèi)容 。故對 G 使用循環(huán)一致性損失函數(shù) (cycle consistency loss) ,如下:
其中: G 以生成圖像 G(x,c) 以及原始輸入圖像領(lǐng)域標(biāo)簽 c" 為輸入,努力重構(gòu)出原始圖像 x 。我們選擇L范數(shù)作為重構(gòu)損失函數(shù)。注意到我們兩次使用了同一個(gè)生成器,第一次將原始圖像轉(zhuǎn)換到目標(biāo)領(lǐng)域的圖像,然后將生成的圖像重構(gòu)回原始圖像。
最終 G 和 D 的損失函數(shù)表示如下:
其中?_?和?_?是控制分類誤差和重構(gòu)誤差相對于對抗誤差的相對權(quán)重的超參數(shù)。在所有實(shí)驗(yàn)中,我們設(shè)置。
為了 GAN 訓(xùn)練過程穩(wěn)定,生成高質(zhì)量的圖像,論文中采用自定義梯度懲罰來代替對抗誤差損失:
其中:?表示真實(shí)和生成圖像之間均勻采樣的直線,試驗(yàn)時(shí)。
starGAN 的一個(gè)重要優(yōu)勢在于它能夠同時(shí)合并包含不同標(biāo)簽的不同數(shù)據(jù)集,使得其在測試階段能夠控制所有的標(biāo)簽。從多個(gè)數(shù)據(jù)集學(xué)習(xí)的問題在于標(biāo)簽信息對每一個(gè)數(shù)據(jù)集而言只是部分已知。在 CelebA 和 RaFD 的例子中,前一個(gè)數(shù)據(jù)集包含諸如發(fā)色,性別等信息,但它不包含任何后一個(gè)數(shù)據(jù)集中包含的諸如開心生氣等表情標(biāo)簽。這會(huì)引起問題,因?yàn)樵趯?G(x,c) 重構(gòu)回輸入圖像 x 時(shí)需要完整的標(biāo)簽信息 c" 。
為了緩解這一問題,我們引入了向量掩碼 m,使 StarGAN 模型能夠忽略不確定的標(biāo)簽,專注于特定數(shù)據(jù)集提供的明確的已知標(biāo)簽。在 StarGAN 中我們使用 n 維的 one-hot 向量來代表 m ,n 表示數(shù)據(jù)集的數(shù)量。除此之外,我們將標(biāo)簽的同一版本定義為一個(gè)數(shù)組:
其中:[·]表示串聯(lián),其中 c表示第 i 個(gè)數(shù)據(jù)集的標(biāo)簽,已知標(biāo)簽 c?的向量能用二值標(biāo)簽表示二值屬性或者用 one-hot 的形式表示多類屬性。對于剩下的 n-1 個(gè)未 i 知標(biāo)簽我們簡單的置為 0 。
利用多數(shù)據(jù)集訓(xùn)練 StarGAN 時(shí),我們使用上面定義的?作為生成器的輸入。如此,生成器學(xué)會(huì)忽略非特定的標(biāo)簽,而專注于指定的標(biāo)簽。除了輸入標(biāo)簽?,此處的生成器與單數(shù)據(jù)集訓(xùn)練的生成器網(wǎng)絡(luò)結(jié)構(gòu)一樣。另一方面我們也擴(kuò)展判別器的輔助分類器的分類類別到到所屬聚集的所有標(biāo)簽。最后,我們將我們的模型按照多任務(wù)學(xué)習(xí)的方式進(jìn)行訓(xùn)練,其中,判別器只將已知標(biāo)簽相關(guān)的分類誤差最小化即可。
3.3 訓(xùn)練數(shù)據(jù)處理以 celebA 數(shù)據(jù)為例,下載后的數(shù)據(jù)包括 label 文件和圖像。
文件的第一行為圖像的總數(shù):202599。
第二行為數(shù)據(jù)處理的類別,共 40 種,如下:
(1, "5_o_Clock_Shadow"), (2, "Arched_Eyebrows"), (3, "Attractive"), (4, "Bags_Under_Eyes"), (5, "Bald"), (6, "Bangs"), (7, "Big_Lips"), (8, "Big_Nose"), (9, "Black_Hair"), (10, "Blond_Hair"), (11, "Blurry"), (12, "Brown_Hair"), (13, "Bushy_Eyebrows"), (14, "Chubby"), (15, "Double_Chin"), (16, "Eyeglasses"), (17, "Goatee"), (18, "Gray_Hair"), (19, "Heavy_Makeup"), (20, "High_Cheekbones"), (21, "Male"), (22, "Mouth_Slightly_Open"), (23, "Mustache"), (24, "Narrow_Eyes"), (25, "No_Beard"), (26, "Oval_Face"), (27, "Pale_Skin"), (28, "Pointy_Nose"), (29, "Receding_Hairline"), (30, "Rosy_Cheeks"), (31, "Sideburns"), (32, "Smiling"), (33, "Straight_Hair"), (34, "Wavy_Hair"), (35, "Wearing_Earrings"), (36, "Wearing_Hat"), (37, "Wearing_Lipstick"), (38, "Wearing_Necklace"), (39, "Wearing_Necktie"), (40, "Young")
第三行及之后的每行為,圖像名,已經(jīng)對應(yīng)的 40 種類別的 label , label 值為 1 或 -1。
000001.jpg -1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 1 -1 1 -1 -1 1 -1 -1 1 -1 -1 -1 1 1 -1 1 -1 1 -1 -1 14 總結(jié)與展望
通過本文學(xué)習(xí),您應(yīng)該初步了解 StarGAN 模型的網(wǎng)絡(luò)結(jié)構(gòu)和實(shí)現(xiàn)原理,以及關(guān)鍵部分代碼的初步實(shí)現(xiàn)。如果您對深度學(xué)習(xí) Tensorflow 比較了解,可以參考?Tensorflow版實(shí)現(xiàn)starGAN;如果您對pytorch框架比較熟悉,可以參考?pytorch實(shí)現(xiàn)starGAN;如果您想更深入的學(xué)習(xí)了解starGAN原理,可以參考?論文。
如果想體驗(yàn)項(xiàng)目效果,您可以登陸 ?Mo?平臺(tái),在?應(yīng)用中心?中找到?StarGAN,可以體驗(yàn)以下五種特征["Black_Hair", "Blond_Hair", "Brown_Hair", "Male", "Young"] 的風(fēng)格變換。考慮到代碼較長,我們在StarGAN 項(xiàng)目源碼中對相關(guān)代碼做了詳細(xì)解釋。您在學(xué)習(xí)的過程中,遇到困難或者發(fā)現(xiàn)我們的錯(cuò)誤,可以隨時(shí)聯(lián)系我們。
5 參考資料1.論文:https://arxiv.org/pdf/1711.09020.pdf?
2.博客:https://blog.csdn.net/stdcoutzyx/article/details/78829232
3.博客:https://www.cnblogs.com/Thinker-pcw/p/9785379.html
4.pytorch原版github地址:https://github.com/yunjey/StarGAN
5.tensorflow版github地址:https://github.com/taki0112/StarGAN-Tensorflow
6.Celeba數(shù)據(jù)集:https://www.dropbox.com/s/d1kjpkqklf0uw77/celeba.zip?dl=0
Mo(網(wǎng)址:momodel.cn)是一個(gè)支持 Python 的人工智能在線建模平臺(tái),能幫助你快速開發(fā)、訓(xùn)練并部署模型。
Mo 人工智能俱樂部?是由網(wǎng)站的研發(fā)與產(chǎn)品設(shè)計(jì)團(tuán)隊(duì)發(fā)起、致力于降低人工智能開發(fā)與使用門檻的俱樂部。團(tuán)隊(duì)具備大數(shù)據(jù)處理分析、可視化與數(shù)據(jù)建模經(jīng)驗(yàn),已承擔(dān)多領(lǐng)域智能項(xiàng)目,具備從底層到前端的全線設(shè)計(jì)開發(fā)能力。主要研究方向?yàn)榇髷?shù)據(jù)管理分析與人工智能技術(shù),并以此來促進(jìn)數(shù)據(jù)驅(qū)動(dòng)的科學(xué)研究。
目前俱樂部每周六在杭州舉辦以機(jī)器學(xué)習(xí)為主題的線下技術(shù)沙龍活動(dòng),不定期進(jìn)行論文分享與學(xué)術(shù)交流。希望能匯聚來自各行各業(yè)對人工智能感興趣的朋友,不斷交流共同成長,推動(dòng)人工智能民主化、應(yīng)用普及化。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/20066.html
摘要:第一列和第六列顯示輸入圖像,其余列是產(chǎn)生的圖像。然而,現(xiàn)有的模型在多域圖像轉(zhuǎn)換任務(wù)中效率低下。該圖表示連接多個(gè)域的拓?fù)鋱D。在訓(xùn)練過程中,隨機(jī)生成目標(biāo)域標(biāo)簽并訓(xùn)練模型,以便靈活地將輸入圖像轉(zhuǎn)換到目標(biāo)域。 圖像到圖像轉(zhuǎn)化的任務(wù)是將一個(gè)給定圖像的特定方面改變到另一個(gè)方面,例如,將一個(gè)人的面部表情從微笑到皺眉改變(見圖1)。自從生成對抗網(wǎng)絡(luò)(GANs)的引入,這個(gè)任務(wù)經(jīng)歷了很大的發(fā)展,從改變發(fā)色,改...
支持原作者,購買地址鏈接描述 概念 代理模式 代理模式(Proxy),為其他對象提供一種代理以控制對這個(gè)對象的訪問。 在現(xiàn)實(shí)生活中,可以找到很多代理模式使用的場景。明星都有經(jīng)紀(jì)人作為代理。如果請明星來演出,就要先同他的經(jīng)紀(jì)人溝通,談好相應(yīng)的細(xì)節(jié)與報(bào)酬。再交給明星。 需求:公司(Company)通過經(jīng)紀(jì)人(agent)找明星(start)開演唱會(huì) //演唱會(huì) var Concert = ...
摘要:然而,收到了自己的產(chǎn)品,大部分人卻一臉迷茫,我們能拿虛擬現(xiàn)實(shí)來干什么呢事實(shí)上,有很多領(lǐng)域已經(jīng)運(yùn)用了虛擬現(xiàn)實(shí)的概念,我們可以相信,在不遠(yuǎn)的將來,虛擬現(xiàn)實(shí)將會(huì)大放異彩。 帶給大眾無與倫比的真實(shí)感,VR虛擬現(xiàn)實(shí)已經(jīng)逐漸走進(jìn)我們的生活中。然而,收到了自己的VR產(chǎn)品,大部分人卻一臉迷茫,我們能拿VR虛擬現(xiàn)實(shí)來干什么呢?事實(shí)上,有很多領(lǐng)域已經(jīng)運(yùn)用了VR虛擬現(xiàn)實(shí)的概念,我們可以相信,在不遠(yuǎn)的將來,V...
閱讀 1266·2021-10-14 09:50
閱讀 1567·2019-08-30 15:54
閱讀 1023·2019-08-30 11:22
閱讀 2916·2019-08-30 10:50
閱讀 1801·2019-08-29 18:39
閱讀 3050·2019-08-29 13:07
閱讀 2079·2019-08-28 17:54
閱讀 751·2019-08-26 17:44