国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

StarGAN——生成你的明星臉

vvpale / 3786人閱讀

摘要:生成你的明星臉介紹,叫做生成對抗網絡。改進損失函數為了訓練過程穩定,生成高質量的圖像,論文中采用自定義梯度懲罰來代替對抗誤差損失其中表示真實和生成圖像之間均勻采樣的直線,試驗時。

StarGAN——生成你的明星臉

1 GAN 介紹

GAN,叫做生成對抗網絡 (Generative Adversarial Network) 。其基本原理是生成器網絡 G(Generator) 和判別器網絡 D(Discriminator) 相互博弈。生成器網絡 G 的主要作用是生成圖片,在輸入一個隨機編碼 (random code) z后,自動的生成假樣本 G(z) 。判別器網絡 D 的主要作用是判斷輸入是否為真實樣本并提供反饋機制,真樣本則輸出 1 ,反之為 0 。在兩個網絡相互博弈的過程中,兩個網絡的能力都越來越高:G 生成的圖片越來越像真樣本,D 也越來越會判斷圖片的真假,然后我們在最大化 D 的前提下,最小化 D 對 G 的判斷能力,這實際上就是最小最大值問題,或者說二人零和博弈,其目標函數表達式:

其中表達式中的第一項 D(G(z)) 處理的是假圖像 G(z) ,我們盡量降低評分 D(G(z)) ;第二項處理的是真圖像 x ,此時評分要高。但是 GAN 并不是完美的,也有自己的局限性。比如說沒有用戶控制的能力和低分辨率與低質量的問題。

為了提高 GAN 的用戶控制能力,人類進行了一些列的探索研究。比如 Pix2Pix 模型采用有條件的使用用戶輸入,使用成對的數據 (paired data)?進行訓練; CycleGAN 模型使用不成對的數據 (unpaired data)?的就能訓練 。但無論是 Pix2Pix 還是 CycleGAN ,都是解決了從一個領域到另一個領域的圖像轉換問題。當有很多領域需要轉換時,對于每一個領域轉換,都需要重新訓練一個模型去解決。目前,存在的模型處理多領域圖像生成任務時,學習 k 個領域之間所有映射就必須訓練 k * (k-1) 個生成器。如果訓練一對一的圖像多領域生成任務時,主要會導致兩個問題:

訓練低效,每次訓練耗時很大。

訓練效果有限,因為一個領域轉換多帶帶訓練的話就不能利用其它領域的數據來增大泛化能力。

上圖中 (a) 模型說明如何訓練 12 個不同生成器網絡以達到 4 個不同領域圖像之間轉換任務。很明顯每個生成器不能夠充分利用整個訓練數據,只能從 4 個領域中 2 個領域相互學習,這樣就會生成圖片質量不好。而上圖(b)中的模型就可以解決這些問題,該模型接受多個領域訓練數據,并僅使用一個生成器來學習多領域圖像之間映射關系。根據模型的長相將該模型稱為星形網絡,外文名就是 StarGAN 。


上圖是根據 StarGAN 模型訓練出的效果。在同一種模型下,可以做多領域圖像之間的轉換,比如更換頭發顏色、更換表情、更換年齡等。

2 StarGAN模型及其優點

2.1 starGAN介紹

上圖是對 StarGAN 的簡單介紹,主要包含判別器 D 和生成器 G 。
(a)D 對真假圖片進行判別,真圖片判真,假圖片判假,真圖片被分類到相應域。
(b)G 接受真圖片和目標域標簽并生成假圖片;
(c)G 在給定原始域標簽的情況下將假圖片重建為原始圖片(重構損失);
(d)G 盡可能生成與真實圖像無法區分的圖像,并且通過 D 分類到目標域。

2.2 StarGAN 優點

提出 StarGAN 網絡模型,僅使用一個 G 和 D 就可以實現多個領域之間圖像生成和訓練。

采用 mask vector 方法控制所有可用域圖像標簽以實現訓練集之間的多領域圖像轉換。

StarGAN?相對于基準模型,?在面部屬性轉移和面部表情合成的任務中有更好的效果?(具體數據請參看原論文中的實驗部分)

3 StarGAN

首先描述 StarGAN 網絡,在一個數據集中進行多領域的圖像轉換任務;然后我們討論了如何使 StarGAN 能合并包含不同標簽的數據集以及對其中任意的標簽屬性靈活進行圖像轉換。

3.1 多領域圖像轉換

訓練一個生成器 G ,能夠多領域映射。將帶有領域標簽 c 的輸入圖像 x 轉換為輸出圖像 y,即?。隨機生成目標領域標簽 c 使得 G 能夠靈活的轉換輸入圖像,同時使用 D 控制多領域。這樣 D 就在圖像源和域標簽上產生概率分布,即

3.1.1 對抗損失函數 (Adversarial Loss)

使用對抗損失函數提高生成圖像質量,達到 D 無法區分出來輸出圖像和生成圖像之間的差別:

根據輸入圖像 x 和目標領域標簽 c ,由 G 生成輸出圖像,同時 D 區分出真實圖像和生成圖像。將
作為輸入圖像 x 經過 D 之后得到的可能性分布。生成器 G 使這個式子盡可能的小,而 D 則盡可能使其最大化。

3.1.2 目標域分類損失函數(Domain Classification Loss)

對于一個輸入圖像 x 和目標分布標簽 c ,我們的目標是將 x 轉換為輸出圖像 y后能夠被正確分類為目標分布 c 。為了實現這一目標,我們在 D 之上添加一個輔助分類器,并在優化 G 和 D 時采用目標域分類損失函數。簡單來說,我們將這個式子分解為兩部分:一個真實圖像的分布分類損失用于約束 D ,一個假圖像的分布分類損失用于約束 G 。其表達式如下所示:

其中,代表 D 計算出來的領域標簽的可能性分布。一方面,通過將這個式子最小化, D 將真實圖像 x 正確分類到與其相關分布 c" 。另一方面,假圖像的分類分布的損失函數定義如下:

即 G 使這個式子最小化,使得生成的圖像能夠被 D 判別為目標領域 c。

3.1.3 重構誤差(Reconstruction Loss)

通過最小化對抗損失和分類損失, G 訓練生成的圖像盡可能與真實圖像一樣,并且能夠被分類到正確的目標領域。然而,最小化這兩個損失函數不能保證?,?轉換后的圖像中,只改變領域差異的部分,?而保留輸入圖像中的其他內容 。故對 G 使用循環一致性損失函數 (cycle consistency loss) ,如下:

其中: G 以生成圖像 G(x,c) 以及原始輸入圖像領域標簽 c" 為輸入,努力重構出原始圖像 x 。我們選擇L范數作為重構損失函數。注意到我們兩次使用了同一個生成器,第一次將原始圖像轉換到目標領域的圖像,然后將生成的圖像重構回原始圖像。

3.1.4 總體損失函數表示(Full Objective)

最終 G 和 D 的損失函數表示如下:


其中?_?和?_?是控制分類誤差和重構誤差相對于對抗誤差的相對權重的超參數。在所有實驗中,我們設置

3.1.5 改進損失函數

為了 GAN 訓練過程穩定,生成高質量的圖像,論文中采用自定義梯度懲罰來代替對抗誤差損失:

其中:?表示真實和生成圖像之間均勻采樣的直線,試驗時

3.2 多數據集訓練

starGAN 的一個重要優勢在于它能夠同時合并包含不同標簽的不同數據集,使得其在測試階段能夠控制所有的標簽。從多個數據集學習的問題在于標簽信息對每一個數據集而言只是部分已知。在 CelebA 和 RaFD 的例子中,前一個數據集包含諸如發色,性別等信息,但它不包含任何后一個數據集中包含的諸如開心生氣等表情標簽。這會引起問題,因為在將 G(x,c) 重構回輸入圖像 x 時需要完整的標簽信息 c" 。

3.2.1 向量掩碼(Mask Vector)

為了緩解這一問題,我們引入了向量掩碼 m,使 StarGAN 模型能夠忽略不確定的標簽,專注于特定數據集提供的明確的已知標簽。在 StarGAN 中我們使用 n 維的 one-hot 向量來代表 m ,n 表示數據集的數量。除此之外,我們將標簽的同一版本定義為一個數組:

其中:[·]表示串聯,其中 c表示第 i 個數據集的標簽,已知標簽 c?的向量能用二值標簽表示二值屬性或者用 one-hot 的形式表示多類屬性。對于剩下的 n-1 個未 i 知標簽我們簡單的置為 0 。

3.2.2 訓練策略

利用多數據集訓練 StarGAN 時,我們使用上面定義的?作為生成器的輸入。如此,生成器學會忽略非特定的標簽,而專注于指定的標簽。除了輸入標簽?,此處的生成器與單數據集訓練的生成器網絡結構一樣。另一方面我們也擴展判別器的輔助分類器的分類類別到到所屬聚集的所有標簽。最后,我們將我們的模型按照多任務學習的方式進行訓練,其中,判別器只將已知標簽相關的分類誤差最小化即可。

3.3 訓練數據處理

以 celebA 數據為例,下載后的數據包括 label 文件和圖像。

文件的第一行為圖像的總數:202599。

第二行為數據處理的類別,共 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")

第三行及之后的每行為,圖像名,已經對應的 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 1

4 總結與展望

通過本文學習,您應該初步了解 StarGAN 模型的網絡結構和實現原理,以及關鍵部分代碼的初步實現。如果您對深度學習 Tensorflow 比較了解,可以參考?Tensorflow版實現starGAN;如果您對pytorch框架比較熟悉,可以參考?pytorch實現starGAN;如果您想更深入的學習了解starGAN原理,可以參考?論文。

如果想體驗項目效果,您可以登陸 ?Mo?平臺,在?應用中心?中找到?StarGAN,可以體驗以下五種特征["Black_Hair", "Blond_Hair", "Brown_Hair", "Male", "Young"] 的風格變換。考慮到代碼較長,我們在StarGAN 項目源碼中對相關代碼做了詳細解釋。您在學習的過程中,遇到困難或者發現我們的錯誤,可以隨時聯系我們。

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數據集:https://www.dropbox.com/s/d1kjpkqklf0uw77/celeba.zip?dl=0


Mo(網址:momodel.cn)是一個支持 Python 的人工智能在線建模平臺,能幫助你快速開發、訓練并部署模型。


Mo 人工智能俱樂部?是由網站的研發與產品設計團隊發起、致力于降低人工智能開發與使用門檻的俱樂部。團隊具備大數據處理分析、可視化與數據建模經驗,已承擔多領域智能項目,具備從底層到前端的全線設計開發能力。主要研究方向為大數據管理分析與人工智能技術,并以此來促進數據驅動的科學研究。

目前俱樂部每周六在杭州舉辦以機器學習為主題的線下技術沙龍活動,不定期進行論文分享與學術交流。希望能匯聚來自各行各業對人工智能感興趣的朋友,不斷交流共同成長,推動人工智能民主化、應用普及化。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/20066.html

相關文章

  • 最新StarGAN對抗生成網絡實現多領域圖像變換

    摘要:第一列和第六列顯示輸入圖像,其余列是產生的圖像。然而,現有的模型在多域圖像轉換任務中效率低下。該圖表示連接多個域的拓撲圖。在訓練過程中,隨機生成目標域標簽并訓練模型,以便靈活地將輸入圖像轉換到目標域。 圖像到圖像轉化的任務是將一個給定圖像的特定方面改變到另一個方面,例如,將一個人的面部表情從微笑到皺眉改變(見圖1)。自從生成對抗網絡(GANs)的引入,這個任務經歷了很大的發展,從改變發色,改...

    fevin 評論0 收藏0
  • javascript之代理模式

    支持原作者,購買地址鏈接描述 概念 代理模式 代理模式(Proxy),為其他對象提供一種代理以控制對這個對象的訪問。 在現實生活中,可以找到很多代理模式使用的場景。明星都有經紀人作為代理。如果請明星來演出,就要先同他的經紀人溝通,談好相應的細節與報酬。再交給明星。 需求:公司(Company)通過經紀人(agent)找明星(start)開演唱會 //演唱會 var Concert = ...

    MAX_zuo 評論0 收藏0
  • 你拿VR干什么?VR這五大領域你都體驗過么?

    摘要:然而,收到了自己的產品,大部分人卻一臉迷茫,我們能拿虛擬現實來干什么呢事實上,有很多領域已經運用了虛擬現實的概念,我們可以相信,在不遠的將來,虛擬現實將會大放異彩。 帶給大眾無與倫比的真實感,VR虛擬現實已經逐漸走進我們的生活中。然而,收到了自己的VR產品,大部分人卻一臉迷茫,我們能拿VR虛擬現實來干什么呢?事實上,有很多領域已經運用了VR虛擬現實的概念,我們可以相信,在不遠的將來,V...

    xinhaip 評論0 收藏0

發表評論

0條評論

vvpale

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<