新聞中心

EEPW首頁 > 智能計算 > 設計應用 > 學貫中西(7):介紹生成對抗網(wǎng)路(GAN)

學貫中西(7):介紹生成對抗網(wǎng)路(GAN)

作者:高煥堂(銘傳大學、長庚大學教授,臺北) 時間:2022-05-19 來源:電子產(chǎn)品世界 收藏


本文引用地址:http://butianyuan.cn/article/202205/434275.htm

1   與NFT的結(jié)合

在上一期里,我們說明了天字第一號模型:分類器。接著本期就來看看它的一項有趣應用:(generative adversarial networks,生成對抗網(wǎng)絡)。自從2014 年問世以來, 在電腦生成藝術(shù)(generative art) 領域,就開始涌現(xiàn)了許多極具吸引力的創(chuàng)作和貢獻。GAN 如同生成藝術(shù)的科技畫筆,使用GAN 進行創(chuàng)作特別令人振奮,常常創(chuàng)作出很特別的效果,給人們許多驚喜的感覺,例如圖1。

 1652963835927949.png

圖1

近年來,非同質(zhì)化代幣NFT(non-fungible token),可以讓藝術(shù)創(chuàng)作者發(fā)行其創(chuàng)作品,使得電腦生成藝術(shù)和NFT 結(jié)合起來,成為一條鳥語花香的新領域。換句話說,NFT 讓生成藝術(shù)獲得了很好地表達機會,它將在NFT 的土壤里成長茁壯、無盡繁榮。

2   從分類器到GAN模型

GAN 是由蒙特利爾大學的Ian Goodfellow在2014 年提出來的神經(jīng)網(wǎng)路模型。GAN 通常包含兩個角色,兩者互相較量( 對抗),但又展現(xiàn)出教學相長,共同成長的美好機制和效果。這兩個角色就是:判別者(discriminator) 與生成者(generator)。其中判別者的實現(xiàn)架構(gòu)就是上一期所介紹的分類器。所以分類器在GAN 里扮演很重要的角色就是判別者。這判別者(D) 是老師角色,而生成者(G) 則是學生角色。

老師引導學生創(chuàng)作,兩者互相較量( 對抗),但又展現(xiàn)出教學相長的效果。例如,在圖像渲染的應用上,它們的功能分別如下所述。

●   G( 學生) 負責生成圖片。它接收一個隨機噪聲(z),或者其他條件( 如黑白底圖或邊框),然后基于這個噪聲或條件來生成新圖片。

●   D( 老師) 負責辨別一張圖片的真或假。它的輸入是一張圖片,進行辨別之后,輸出其判斷為真品或假品的概率。如果輸出值愈接近于1,代表其為真品的概率愈大;而當輸出值愈接0,代表其為假品的概率愈大。

在GAN 模型的訓練過程中,我們會拿真品來輸入給D,也會拿由G 生成的假品來輸入給D。其目的是要訓練D,以便提升它判斷圖片真或假的能力。如果D 判斷正確,表示G( 學生) 生成的新作品( 假品) 被D 識破了,這意味著G 的作品不夠逼真,此時G 就會依據(jù)D 的反饋而調(diào)整其參數(shù),因而G 就成長了。反之,如果D判斷錯誤,表示D的辨別能力不足,例如被G騙了( 將假品誤判為真品),于是D 就會調(diào)整其參數(shù),因而D 也成長了。這樣的訓練過程,持續(xù)重復下去,GAN 里的兩個角色,互相較量( 對抗),展現(xiàn)出了教學相長的美好效果。最后,G 大幅成長了,繪制出來非常逼真的作品( 假品) 了。

1652963977754426.png

圖2

3   解說<教學相長>的情境

話說有一位學生(G),想從老師(D) 學習畫漫畫( 例如龍貓故事的插畫)。但是這位老師并不會畫漫畫,那么他( 她) 又如何教學生畫漫畫呢? 在教學的過程中,兩者都是從零開始,一起成長。這可以說是一個教學相長的過程(如圖3- 圖)。一開始,老師和學生,兩者都是從零開始。

1.雖然老師不會畫,但它會拿學生作品來與龍貓漫畫書來做特征對比。

2.如果學生作品沒有龍貓漫畫的重要特征,就會感覺畫得不像。

3.于是,學生開始作畫了。

4.老師發(fā)現(xiàn)了學生作品里沒有龍貓漫畫的重要特征:胡須。

5.老師就要求學生加以改善。

6.老師又發(fā)現(xiàn)學生作品里少了龍貓漫畫的另一項特征:娃娃哭時嘴巴張很大。

7.老師就要求學生加以改進。

8.兩者互相較量,又協(xié)同創(chuàng)新、教學相長。

1652964055461256.png

圖3

1652964079610507.png

圖4

1652964111738406.png

圖5

1652964138427108.png

圖6

1652964168336360.png

圖7

1652964212411487.png

圖8

1652964239849599.png

圖9

1652964267901201.png

圖10

1652964290826470.png

圖11

然后,持續(xù)不斷地改進下去,就會止于至善。圖12里,左圖是鑒賞者所握有的原圖,而右圖則是創(chuàng)作者所生成的創(chuàng)作品。可以看出來了,透過生成對抗協(xié)同創(chuàng)新,所生成的作品已經(jīng)幾可亂真了。

1652964329225478.png

圖12

4   范例解說:學習畢加索的畫作風格

此范例使用百度飛槳(PaddlePaddle) 框架而設計來的GAN 模型。它可以自己觀察畢加索(Picasso) 的畫作而自我學習。并且渲染很接近原圖的彩色作品了。其目標是:訓練了一個GAN 模型,學習畢加索的畫風。其作法:采取Lab 顏色空間,將*.jpg 圖像,分解為L、a、b 三通道。將單通道 L 輸入給G( 生成者),由G 自己生成兩通道:new_a 和new_b。然后將[L, new_a,new_b] 匯合成為一張新的*.jpg 圖像。

在您的電腦上,需要安裝飛槳模型框架,以及相關(guān)的套件。然后準備訓練資料:即10 張畢加索的畫作(*.jpg)。

1652964389556900.png

圖13

圖片大小不拘,GAN 會自動調(diào)整為256 x 256 大小。接下來,就以這10 張圖像作為訓練數(shù)據(jù),在飛槳環(huán)境里,對這GAN 模型展開訓練。訓練完畢了,就可以來檢測一下了。現(xiàn)拿畢加索的一張畫作原圖如圖14。

image.png

圖14

這模型會先取出圖像的L 通道,也就是一張黑白底圖。

image.png

圖15

于是GAN 就基于張黑白底圖,自動生成new_a 和new_b 兩通道的值,最后匯合出極為接近逼真的新圖像,如圖16。

image.png

圖16

于是,這個GAN 模型學習了畢加索的畫作風格。您也可以把您自己的任何彩色(JPG) 圖片,取出L 通道,輸入給這訓練好的模型。它就會重新彩繪出畢加索的色彩風格了。此外,您還可以繼續(xù)拿莫內(nèi)、梵高等的畫作讓它學習,就能將您的圖像彩繪出這些名家的混合風格了。

4   結(jié)語

本文首先說明GAN 在電腦生成藝術(shù)領域里,將提供更精彩的貢獻,然后說明了GAN 的架構(gòu)。GAN 里的重要角色之一就是判別者(D),它就是分類器,這在上一期里已經(jīng)詳細介紹過了,請您復習之。至于生成者(G)的架構(gòu),就請您期待本專欄的下一期繼續(xù)解說GAN 的更多魅力。

(本文來源于《電子產(chǎn)品世界》雜志2022年5月期)



關(guān)鍵詞: 202205 生成對抗網(wǎng)路 GAN

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉