都在GAN什麼?系列(三)CGAN

2021-01-14 FabUnion

在上一篇《都在GAN什麼?系列(二)CycleGAN》裡我們主要介紹了2017年時被提出的兩個生成對抗網絡中的圖像轉譯模型:CycleGAN和Pix2Pix,只要設計師輸入相對應的草圖或者其它種類的對應圖(不同季節同樣地點的攝影圖、線圖、顏色標註圖等),這兩個模型都有辦法生成與標籤相對應的樣本,突破了原始GAN只能隨機生成新樣本的限制!


如果你還記得第一篇《都在GAN什麼?系列(一)StyleGAN》中討論的StyleGAN模型,你會發現CycleGAN和Pix2Pix的數據集比StyleGAN還多出了一個要求,那就是要準備成對的數據集。那麼,你是否想過我們要準備對應的數據是要來幹嘛呢?在GAN的計算機科學學術語境範疇裡,我們可以把這對應的數據當作為輸入」條件「。計算機根據輸入「條件」輸出對應的圖像。


穿越時光機回到GAN最初發展的那些年,我們發現在2014年原始GAN被提出之後,馬上就有人意識到人們無法控制GAN生成的樣本類型的這個缺陷而發明了GAN的另一個子模型:CGAN(條件生成對抗網絡)。

GAN衍生模型發展 © Alotaibi, 2020

實際上,CGAN就是上一篇圖像轉譯模型CycleGAN和Pix2Pix的基礎模型,接下來這篇,讓我們回歸基礎,一起來探討CGAN模型的理論和相關有趣的案例!

在這個章節裡我們將跟著GAN的發展時間軸,分為四個部分:GAN(2014), CGAN(2014), DCGAN(2016), PIX2PIX(2017)來討論CGAN的前後發展背景。

-  生成對抗網絡(簡稱GAN)是2014年由Ian Goodfellow等人發表用於訓練基於深度學習的生成模型的體系結構。

-  GAN具有兩個網絡,生成器網絡和鑑別器網絡。

-  生成器(G)模型負責生成新的逼真的虛假圖像樣本,鑑別器(D)模型則負責判斷圖像是真實的還是虛假的。

-   這兩個網絡可以是神經網絡,從卷積神經網絡,遞歸神經網絡到自動編碼器。

-   GAN在圖像合成方面很有效,它可以為目標數據集生成大量的圖像的新樣本。

「…通過根據附加信息對模型進行調節,可以指導數據生成過程。這種條件可以基於類別標籤...」

 Conditional Generative Adversarial NetsAdversarial Networks 

2014

原始GAN雖然能夠生出大量的新樣本,但卻沒有辦法控制想生成的樣本的類型。比如在一個包含各種單品的Fashion MNIST數據集的生成訓練裡,我們只想要生成T shirt,帽子,鞋子。如果想達到這樣的效果,我們可以怎麼辦呢?這實際上就是條件生成對抗網絡所要對抗的問題。

-  把額外條件(C) 增加到生成器模型和鑑別器模型裡,原始生成對抗網絡GAN則可以擴展為條件生成對抗網絡 (Conditional Generative Adversarial Network, 簡稱 CGAN)。

-  這個C條件可以是希望生成的標籤(比如Tshirt), 同時它也可以是任何種類的輔助信息,例如類標籤、圖像、語音等。

-  生成器G: 必須生成和條件C匹配的樣本。

-  判別器D: 不僅要判別圖像是否真實,還要判別圖像和條件C是否匹配(比如當C指定是T shirt的時候,如果生成器生成一張帽子的圖像,D的任務是把它判斷為假的圖像,因為這個帽子圖像不是我們想要的,我們想要的是類別為Tshirt的圖像)

cGAN生成的圖像雖有很多缺陷,譬如圖像邊緣模糊,生成的圖像解析度太低等,但是它為後面的Cycle-GAN和Pix2Pix開拓了道路,這兩個模型轉換圖像風格時對屬性特徵的處理方法均受cGAN啟發。

在2016年,Alec Radford,Luke Metz,Soumith Chintala等人提出了在GAN模型中使用卷積神經網絡(CNN) 的GAN衍生模型——DCGAN,這是GAN研究的一個重要裡程碑,因為在這之前所有的GAN用的都是最簡單的線型神經元,此架構變化也大大改善了訓練不穩定,模式崩潰和內部協變量轉換等問題!然而,這一個模型和CGAN將會擦出什麼樣的火花呢?


DCGAN的G和D的結構如下:

答案揭曉!Pix2Pix是基於CGAN和DCGAN結合的一個衍生結構,也是建築學界裡最被廣泛研究的深度學習模型。它使用跟原圖尺寸大小相同的對應圖片作為輸入條件,藉助cGAN完成一些paired data才能完成的任務,如把輪廓圖轉化成真實圖片,把mask轉化成真實圖,把黑白圖轉化成真實圖等,如下:

Pix2Pix案例 ©  Isola et al., 2017

1)改善GAN生成結果

C條件(或稱為類別標籤)可以提高訓練的穩定性,以及達到更快的訓練和提高生成圖像的素質。

下面比較兩組分別使用無條件GAN和條件GAN生成出來的服裝示例:

使用無條件GAN生成的100件服裝示例 © Brownlee, 2019

在第一組圖例裡,我們可以看到各種各樣的服裝,例如鞋子,毛衣和褲子。大多數項目雖然看起來合理但是它們並不完美,仔細觀察你會發現有些毛衣只有單袖,還有一些看起來很不成樣的鞋子。這都是因為訓練不穩定所造成的bug。

使用條件GAN生成100個服裝項目的示例 © Brownlee, 2019

第二組圖可以看到服裝按列組織。從左到右分別是「 T恤」,「褲子」,「套頭衫」,「禮服」,「外套」,「涼鞋」,「襯衫」,「運動鞋」,「包」和「踝靴」 。我們不僅可以看到隨機生成的衣服是合理的,而且它們也符合預期的類別。

Prisma © https://prisma-ai.com/

Prisma是一個開發於俄羅斯,使用神經網絡和人工智慧將藝術效果應用於圖像轉換的照片編輯應用程式。該應用程式由Alexey Moiseenkov,Oleg Poyaganov,Ilya Frolov,Andrey Usoltsev,Aram Hardy創建,並於2016年6月作為免費應用程式推出。該應用程式的創建基礎是DeepArt的開原始碼,而cGAN是在其中被使用的一種算法。

Prisma App Interface © https://prisma-ai.com/

支持Prisma App技術背後的研究論文是由Leon Gatys,Alexander Ecker和Matthias Bethge在2015年的機器學習會議上發表的 「A Neural Algorithm of Artistic Style」。


參考:https://arxiv.org/pdf/1508.06576.pdf

A Neural Algorithm of Artistic Style © Gathys et al., 2015

使用方法是用戶從本地上傳圖片後選擇各種 「濾鏡」 來變換圖片的藝術效果。之後,上載的圖像將被傳送回Prisma實驗室的伺服器中進行圖像渲染,其過程使用人工智慧的神經網絡來添加藝術效果,輸出的結果被傳送回用戶端的手機。與其他照片編輯應用程式直接在圖像上插入圖層來渲染圖像不同,Prisma通過處理圖像中的各個圖層並重新創建圖像。

Prisma © https://www.imobdevtech.com/Blog/prisma-art-inspired-photo-editing-app


Image generated by Prisma © https://uk.finance.yahoo.com/news/russian-app-uses-ai-repaint-172646370.html

受到Prisma和藝術家Robbie Barrat使用人工智慧生成Balenciaga時裝設計啟發,Facebook 軟體工程師 Jingwen (Jacqueline) Wang 在 2019年使用cGAN生成中國畫。

左:原始圖 中:邊緣圖 右:CGAN生成圖  © Wang, 2019

該訓練模型的目的是拍攝任意圖像並將其轉換為中國繪畫風格。為了達到此目的,他們使用了9000張從中文網站上抓取的山巒蜿蜒的河流的中國畫像作為訓練數據。接著,使用Canny算法提取圖像邊緣圖(edge map)以作為輸入」條件「。

左:原始圖 中:邊緣圖(edge map) 右:生成圖  © Wang, 2019

通過對中國畫數據集進行訓練,模型掌握了畫筆和顏色的使用方式,並且能夠生成甚至連人也難以與真實繪畫區分開的樣本。經由挑選,一些生成的樣本已經提交給杜克大學AI藝術競賽,並在其展覽期間展出。

使用cGAN生成的其它樣本© Wang, 2019

啟發Jacqueline的AI應用案例:AI生成Balenciaga時裝設計 © Schwab, 2018

(三)Suggestive Drawing Among Human and AI

作者Nono Martinex Alonso是一名畢業於哈佛大學的建築系碩士生,他在2017年發表的碩士畢業論文研究了機器與設計師之間循環的想法,以完善「設計過程」的概念。研究成果為開發一種基於cGAN Pix2Pix的啟發性繪畫環境。

Suggestive drawing platform by Nono© Alonso, 2017

在該環境中,人類可以與不同的機器人(bot)協同合作,把素描輸入為機器生成輸出的輸入」條件「,經由機器人的轉譯成為一個人機共作的繪畫。每個機器人都有特定的特徵,並且具有半自主行為。以下列出三個機器人例子:

Suggestive drawing platform by Nono © Alonso, 2017

(一)TEXTURER 紋理機器人

Texturer使用pix2pix-tensorflow從手繪草圖的邊緣生成帶紋理的圖形。通過在上下文菜單中選擇所需的模型,該機器人能夠處理不同的圖像。

Suggestive drawing platform by Nono © Alonso, 2017

(二)SKETCHER 素描機器人

同樣的,Sketcher機器人也使用了Pix2Pix CGAN 模型,這次,訓練數據包含了樹木和城市場景的手繪草圖。在以下GIF中,可以看到通過草繪輪廓就可以獲得一棵樹的手繪細節。在城市場景中,機器人會嘗試對它們進行水彩處理。

Suggestive drawing platform by Nono © Alonso, 2017

(三COLORIZER 著色機器人

根據草繪輪廓進行有意義的顏色填充。

Suggestive drawing platform by Nono © Nono Martinez

(四)Architectural Visualisation with CGAN

來自卡迪夫大學的 Yick Hin Edwin Chan和Benjamin Spaeth為了模擬建築概念設計中的抽象和成像的循環過程,在今年發表的論文中提出了由兩個 pix2pix cGAN組成的Cyclic-GAN。第一個cGAN將草圖轉換為圖像,第二個cGAN將圖像轉換為草圖。

Architectural Visualisation with CGAN © Chan, Spaeth, 2020

根據作者,草圖繪製是建築師進行思考和進行空間推理的一種循環的過程(下圖)。在這過程中,建築師與他們的草圖互動,試圖尋求一種新的視覺線索,這些線索將激發一種新的看草圖的方式,最終引發新的想法。

Architectural Visualisation with CGAN © Chan, Spaeth, 2020

Cyclic-cGAN工作流程。


1.準備並選擇訓練數據。

2.訓練第一個cGAN:以草圖為輸入,以生成樣本作為輸出。

3.使用與第二步驟中相同的數據訓練集,以生成樣本為輸入並以草圖為輸出來訓練逆cGAN。

4.在第一次迭代中,使用訓練好的第一個cGAN用來從建築師準備的新穎草圖中生成圖像。

5.在第一個cGAN的輸出圖像的基礎上,使用經過訓練的逆cGAN生成草圖。

6.生成的草圖成為第一個cGAN生成另一個圖像的輸入

7.重複第5步和第6步,直到滿足停止條件(即出現一個相對定義的條件)。

作者提出,從實驗結果來看,Cyclic-cGAN能夠將輸入草圖轉換為圖像。通過刪除或突出顯示草圖特徵,Cyclic-cGAN可以鼓勵建築師在草圖中尋找新的含義。紅色虛線顯示的是建築師和機器所共同認為的主要特徵。

Architectural Visualisation with CGAN © Chan, Spaeth, 2020

CGAN作為最早的GAN衍生模型,把原始GAN中的概率全改為「條件」 概率。通過多個實驗,這項改善證明了只要訓練過程中加入特定條件(類標籤、圖像、語音等)便可以改善GAN訓練穩定性,以及讓使用者對生成結果擁有更大的控制能力。


在應用方面,在滿足具有優先條件的情況之下,CGAN可以被充分的發揮作用。只要能有辦法把優先條件轉譯成CGAN模型所能接受的數據格式,CGAN就有辦法替你生成對應的樣本。這也解釋了為何CGAN拓展出來的模型——上期所提到的CycleGAN和Pix2Pix成為建築師和設計師所趨之若鶩的AI模型。上文提到的Yick Hin Edwin Chan和Benjamin Spaeth的論文中便非常全面地解釋了為何他們認為CGAN可能在未來建築設計構想的整個過程中有所幫助。


當然,除了我們介紹過的CycleGAN和Pix2Pix之外呢,基於條件生成的GAN還有其它模型,例如 InfoGAN, ACGAN ,RoCGAN 等等。他們在不同的應用上有針對性地進行模型的改進和理論的拓展,從而得到理想的效果。小編認為,訓練這些模型有意思的地方在於它是一個雙方面的交流過程,它既能夠幫人類拓展創意,也依靠人類的創意來把它們應用在不同的情況上。

參考

(1) GAN

Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu et. al., Generative Adversarial Networks, 2014

https://arxiv.org/abs/1406.2661

(2) CGAN

Mehdi Mirza, Simon Osindero, Conditional Generative Adversarial Nets, 2014

https://arxiv.org/abs/1411.1784

(3) DCGAN

Alec Radford, Luke Metz, Soumith Chintala, Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks, 2016

https://arxiv.org/abs/1511.06434v2

(4) Pix2Pix

Phillip Isola, Jun-Yan Zhu, Tinghui Zhou, Alexei A. Efros, Image-to-Image Translation with Conditional Adversarial Networks, 2017

https://arxiv.org/abs/1611.07004

(5) Prisma

https://prisma-ai.com/

(6) Chinese Brush Painting Generation

Jingwen (Jacqueline) Wang, Conditional Generative Adversarial Network (cGAN) for Chinese Brush Painting Generation, 2019

https://www.linkedin.com/pulse/conditional-generative-adversarial-network-cgan-chinese-wang/

(7) Suggestive Drawing Among Human and AI by Nono Martinez

https://nono.ma/suggestive-drawing

(8) Architectural Visualisation with CGAN

Yick Hin Edwin Chan, A. Benjamin Spaeth, Architectural Visualisation with Conditional Generative Adversarial Networks (cGAN), 2020

http://papers.cumincad.org/data/works/att/ecaade2020_017.pdf

(9) Deep Generative Adversarial Networks for Image-to-Image Translation: A Review. Symmetry by Alotaibi, A., 2020

https://www.mdpi.com/2073-8994/12/10/1705/pdf

(10)  LoGAN: Generating logos with a generative adversarial neural network conditioned on color by Mino, A., & Spanakis, G., 2018

https://www.researchgate.net/publication/328494719_LoGAN_Generating_Logos_with_a_Generative_Adversarial_Neural_Network_Conditioned_on_color

(11)  Using a Generative Adversarial Network (GAN) to Create Novel Artistic Images by Pydi, A., 2019

https://towardsdatascience.com/using-a-generative-adversarial-network-gan-to-create-novel-artistic-images-e06c65ff43ad

(12) How to Develop a Conditional GAN (cGAN) From Scratch by Brownlee, J., 2019

https://machinelearningmastery.com/how-to-develop-a-conditional-generative-adversarial-network-from-scratch/



FAB-UNION is the most advanced digital design and construction platform in China. Scholars, architects, designers, experts and relevant enterprises, institutions and academic groups of digital construction both inside and outside the United Nations pay attention to international digital design and construction news, recommend excellent digital programming and construction works, and promote the development of digital construction technology. Create social space for cutting-edge digital practitioners.

相關焦點

  • 超全的GAN PyTorch+Keras實現集合
    機器之心編譯參與:劉曉坤、思源、李澤南生成對抗網絡一直是非常美妙且高效的方法,自 14 年 Ian Goodfellow 等人提出第一個生成對抗網絡以來,各種變體和修正版如雨後春筍般出現,它們都有各自的特性和對應的優勢。
  • GAN快速入門資料推薦:17種變體的Keras開原始碼,附相關論文
    在這類GAN變體中,生成器生成的每張圖像,都帶有一個類別標籤,鑑別器也會同時針對來源和類別標籤給出兩個概率分布。論文中描述的模型,可以生成符合1000個ImageNet類別的128×128圖像。Adversarial NetworksEmily Denton, Sam Gross, Rob Fergushttps://arxiv.org/abs/1611.06430CGAN條件式生成對抗網絡,也就是conditional GAN,其中的生成器和鑑別器都以某種外部信息為條件
  • 都在GAN什麼?系列(二)CycleGAN
    在上一篇《都在GAN什麼?系列(一)StyleGAN》裡我們介紹了2014年時被提出的生成對抗網絡(GAN)可有效地通過改進鑑別器(Discriminator)而生成高質量的圖像。那到底什麼是 「成對的數據集」 和 「非成對數據集」?看看下圖:成對及非成對數據圖像 ©  Image from Paper事實上,對於許多使用者來說,這種成對的訓練數據集的要求是一個限制!
  • 異父異母的三胞胎:CycleGAN, DiscoGAN, DualGAN
    事實上,dualgan這篇paper的出發點就來源於此,並且這三篇文章的中心創新點(cycle consistentcy)就是dual learning中的想法。(雖然cyclegan似乎不知道這篇論文,並沒有引用dual learning)CycleGAN的出發點更抽象。
  • 生成式對抗網絡GAN的高級議題
    這是什麼意思?如果生成器太快太好,生成器可以學會一致地欺騙鑑別器,並且不再需要學習任何東西。我們建立了三個網絡。生成器G將真實圖像轉換為梵谷風格圖片。生成器F將梵谷風格的圖片轉換為真實圖像。鑑別器D用於識別真實或生成的梵谷圖片。對於反方向,我們只是反轉數據流並構建一個額外的鑑別器來識別真實圖像。創建斑馬/馬圖像的此實現的示例如下所示。有條件的GAN與在VAE中一樣,GAN可以簡單地用於生成特定的數據模式。
  • 如何使用GAN做一個禿頭生產器
    我們看到了什麼?Bald!對,這正是我們想要的禿頭屬性!  AI Studio是百度飛槳提供的免費雲算力平臺,具有免費的GPU算力,notebook的UI風格,預裝的PaddlePaddle,非常適合我這樣的新手煉丹師去隨意搗鼓。
  • 帶集成驅動和保護功能的高壓GaN FET在工業和電信應用中將功率密度...
    與AC/DC電源、機器人、可再生能源、電網基礎設施、電信和個人電子應用中的矽場效應電晶體(FET)相比,LMG341x系列使設計人員能夠創建更小、更高效和更高性能的設計。有關詳細信息,請訪問 http://www.ti.com.cn/product/LMG3410R050-pr, http://www.ti.com.cn/product/LMG3410R070-pr ?
  • 萬字綜述之生成對抗網絡(GAN)
    穩定GAN訓練的技巧如上所述,GAN 在理論上和實踐上存在三個大問題,導致訓練過程十分不穩定,且存在 mode collapse 的問題。正則項使用餘弦距離懲罰三個生成器生成樣本的一致性。 MRGAN 則添加了一個判別器來懲罰生成樣本的 mode collapse 問題。具體結構如下:輸入樣本 x 通過一個 Encoder 編碼為隱變量 E(x) ,然後隱變量被 Generator 重構,訓練時,Loss 有三個。
  • GAN(生成對抗網絡)萬字長文綜述
    穩定GAN訓練的技巧 如上所述,GAN 在理論上和實踐上存在三個大問題,導致訓練過程十分不穩定,且存在 mode collapse 的問題。正則項使用餘弦距離懲罰三個生成器生成樣本的一致性。 MRGAN 則添加了一個判別器來懲罰生成樣本的 mode collapse 問題。具體結構如下:
  • 萬字長文解讀GAN:從基本概念、原理到實際應用
    許多對 GAN 訓練穩定性的改進,比如 EBGAN,LSGAN 等都是定義了不同的分布之間距離度量方式。正則項使用餘弦距離懲罰三個生成器生成樣本的一致性。MRGAN 則添加了一個判別器來懲罰生成樣本的 mode collapse 問題。
  • 朱俊彥團隊提出GAN壓縮算法:計算量減少20倍,GPU、CPU統統能加速
    構造合適的損失函數因為GAN壓縮算法要面對CycleGAN、pix2pix還有GauGAN,這些模型的損失函數都不盡相同,所以需要構造一個新的損失函數。先訓練一個支持所有通道的「once-for-all」網絡,具有不同數量通道的每個子網絡都經過同等訓練,可以獨立運行,子網絡與「once-for-all」網絡共享權重。在訓練了「once-for-all」網絡後,通過直接在驗證集上評估每個候選子網絡的性能來找到最佳子網。
  • 只需130 行代碼,用 GAN 生成二維樣本的小例子
    不知作者是疏忽了還是有意為之,總之這麼做的結果就是如此簡單的例子收斂都好。可能作者自己也察覺了收斂問題,就想把方差信息也放進來,於是又寫了個預處理函數(decorate_with_diffs)計算出每個樣本距離一批樣本中心的距離平方,作為給判別網絡的額外輸入,其實這樣還增加了輸入維度。結果當然是加不加這個方差信息都能勉強收斂,但是都不穩定。
  • 【技術綜述】有三說GANs(上)
    Beyond face rotation: Global and local perception gan for photorealistic and identity preserving frontal view synthesis[J]. arXiv preprint arXiv:1704.04086, 2017.【16】Creswell A, Bharath A A.
  • 暴力解剖GAN!MIT、港中文團隊GANpaint,一筆成畫不是夢
    也難怪網友驚呼:「以後拆樓都不用費勁了!」那麼這款神器如何操作呢?先奉上傳送門:http://gandissect.res.ibm.com/ganpaint.html?它自己會通過某種方式,知道什麼東西應該出現在什麼地方,不應該出現在不屬於它的地方(例如天空中不應該出現窗戶)。在不同的環境中,它可以創造出不同的視覺效果。例如,假設圖像中有兩個不同的建築物,我們需要為這兩個建築物添加兩個門,GANpaint Studio並不會粗暴的複製兩個相同的門上去,而是會添加兩扇不一樣的門。
  • 歷時6 年發展,GAN 領域當下最熱門的「弄潮兒」都有哪些?
    從數學的角度來看,任何數據都有自己的概率分布特點。生成式模型的任務是從有限的訓練數據中總結出這個概率,將這個概率學習成一個「公式」、一個「模型」或者一種「模式」。當它學習到這個樣本的分布特點後,模型就能夠據此源源不斷地生成新的偽數據了。有些童鞋可能會問這些偽數據有什麼用呢?例如在影視作品中,每個群眾演員都是很貴的,只要露臉了他的薪酬可能就需要翻番。
  • 用Keras搭建GAN:圖像去模糊中的應用(附代碼)
    生成對抗網絡訓練過程— 來源訓練過程主要有三步根據噪聲,生成器這兩種結構都可以很好地進行圖像去模糊。圖像去模糊結果從左到右:原始圖像,模糊圖像,GAN 輸出上面的輸出結果都是我們用Ian GoodfellowICCV 2017: Tutorials on GANGAN Implementations with Keras by Eric Linder-NorenA List of Generative Adversarial Networks Resources by deeplearning4jReally-awesome-gan
  • 誰說一拖三都是假冒偽劣,倍思閃速系列一拖三快充數據線詳細體驗
    打開包裝之後,可以看到主頭和三根子線都被穩穩的固定在塑料包裝結構上,每個插頭上都鐳雕標註了具體的電流,我們還是得來聊聊倍思 閃速系列一拖三快充數據線的表現,搭配測試的是倍思家 GaN 二代 Lite 65W 充電器,後面我們在聊聊它。
  • 《變形金剛》系列機械角色,都是什麼車型
    《變形金剛》系列機械角色,都是什麼車型《變形金剛5》正在火熱上映中,雖然口碑一般但是票房依舊狂飆,而作為一部以機械角色為主角的大片,豪車雲集,使得不少網友好奇,它們分別都是一些什麼車,主形態是什麼,下面我們就一起來詳細了解下吧。