引言:前有阿爾法狗後有Dota2機器人,AI技術涉足的領域愈來愈廣,能力也愈來愈強大。如今可使用AI技術自動生成插畫,看來插畫師們要有危機意識了。具體實現方法見論文《Create Anime Characters with A.I. !》,論文主要是經過各式屬性生成二次元人物的頭像,使用的方法是cGAN。微信
經過頭髮、五官、表情等屬性來實現人物的生成,左側屬性具體爲blonde hair, twin tails, blush, smile, ribbon, red eyes生成的人物,右側屬性具體爲silver hair, long hair, blush, smile, open mouth, blue eyes生成的人物。網絡
模型生成的隨機樣本:app
固定cGAN噪聲部分生成的樣本,此時人物具備不一樣的屬性,可是面部細節和麪朝的角度基本一致:機器學習
做者搭建了一個網站MakeGirls.moe,咱們能夠利用訓練好的模型生成圖像。學習
根據界面上的信息選擇想生成圖像的相應屬性,點擊generate,生成圖像,查看結果。舉例以下:優化
下面來介紹一下論文中涉及到的GAN網絡網站
自從 Ian Goodfellow 在 2014 年發表了 論文 Generative Adversarial Nets 以來,生成式對抗網絡 GAN 廣受關注,加上學界大牛 Yann Lecun 在 Quora 答題時曾說,他最激動的深度學習進展是生成式對抗網絡,使得 GAN 成爲近年來在機器學習領域的新寵。人工智能
GAN 啓發自博弈論中的二人零和博弈(two-player game),GAN 模型中的兩位博弈方分別由生成式模型(generative model)和判別式模型(discriminative model)充當。生成模型 G 捕捉樣本數據的分佈,用服從某一分佈(均勻分佈,高斯分佈等)的噪聲 z 生成一個相似真實訓練數據的樣本,追求效果是越像真實樣本越好;判別模型 D 是一個二分類器,估計一個樣原本自於訓練數據(而非生成數據)的機率,若是樣原本自於真實的訓練數據,D 輸出大機率,不然,D 輸出小几率。能夠作以下類比:生成網絡 G 比如假幣制造團伙,專門製造假幣,判別網絡 D 比如警察,專門檢測使用的貨幣是真幣仍是假幣,G 的目標是千方百計生成和真幣同樣的貨幣,使得 D 判別不出來,D 的目標是千方百計檢測出來 G 生成的假幣。如圖所示:spa
在訓練的過程當中固定一方,更新另外一方的網絡權重,交替迭代,在這個過程當中,雙方都極力優化本身的網絡,從而造成競爭對抗,直到雙方達到一個動態的平衡(納什均衡),此時生成模型 G 恢復了訓練數據的分佈(造出了和真實數據如出一轍的樣本),判別模型再也判別不出來結果,準確率爲 50%,約等於亂猜。.net
上述過程能夠表述爲以下公式:
當固定生成網絡 G 的時候,對於判別網絡 D 的優化,能夠這樣理解:輸入來自於真實數據,D 優化網絡結構使本身輸出 1,輸入來自於生成數據,D 優化網絡結構使本身輸出 0;當固定判別網絡 D 的時候,G 優化本身的網絡使本身輸出儘量和真實數據同樣的樣本,而且使得生成的樣本通過 D 的判別以後,D 輸出高几率。
本文分享自微信公衆號 - AI MOOC人工智能平臺(AIMOOC_XLAB)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。