Google大腦教機器畫簡筆畫,神經網絡的大作都長啥樣?

雷鋒網 於 15/04/2017 發表 收藏文章
雷鋒網AI科技評論按:雖然簡筆畫與實物的逼真程度相去甚遠,但即便是一個小孩也能輕易理解圖案中的內容。原因其實很簡單,因為人類懂得通過判斷圖案中的關鍵特徵,與現實物體進行匹配。那麼,如果是用 RNN 教機器學會畫畫,它是否能抽象出畫中的概念,並用同樣的方式作畫呢?Google大腦的 David Ha 近日撰文指出了他與 Douglas Eck 在研究 sketch-rnn 時的一些想法和觀點。

人們在傳遞思想、進行交流時有一個非常關鍵的要素,那就是懂得如何用抽象的視覺內容進行溝通。我們從小就培養孩子用畫筆描述事物的能力,畫出一個物體甚至表達自己的情緒。這些簡筆畫並不一定像照片一樣逼真,但誠然,它們傳遞出了人們如何重現與重構身邊事物的方法。


一些 sketch-rnn 創作的畫

在 David Ha 與 Douglas Eck 合作的論文《A Neural Representation of Sketch Drawings》中,研究者設計了一個名為「sketch-rnn」的生成式 RNN,它能夠用簡單的筆觸描繪出日常物體,系統旨在訓練機器如何像人類一樣提煉事物的抽象概念。

研究者在一個手繪 sketches 數據集中進行訓練,控制提筆落筆的時間及方向,進而創造一個具有可觀前景的應用:不僅能幫助藝術家迸發藝術靈感,還能教授學生繪畫的基本技巧。

鑑於採用神經網絡之時,生成模型用於訓練的圖像過多,圖像以 2D 像素的點陣圖來構建。而由於它所具有的高解析度,這些模型很容易會生成一些連續的圖像結構,比如會畫出三隻眼睛的貓,或是幾個頭的狗。


採用 128*128 ImageNet 數據集訓練的 GANs 模型,可能會產生像上圖這樣的詭異情況。

上圖為 Ian Goodfellow 在 NIPS 2016 Tutorial 展示 GANs 時所採用的圖片

而在Google大腦研究者的工作中,他們受人類繪畫的啟發,採用了更低維的、基於向量的方式。Sketch-rnn 基於 seq2seq(雷鋒網注:前段時間雷鋒網(公眾號:雷鋒網)做過覆蓋和報道)的自動編碼框架,結合變分推斷並採用了超網絡作為 RNN 的核心。

seq2seq 的作用在於訓練隱向量(latent vector),即一個能夠將輸入序列編碼為浮點數向量的網絡,以此在儘可能逼真地模擬輸入序列的情況下,利用解碼器重構輸出序列。


實驗過程

在模型中,研究者故意往 latent vector 中加入了一些噪聲,而實驗結果呈現,模型在噪聲的干擾下不能非常準確地重現輸入的內容,但依然捕捉到了連同噪聲在內的關鍵信息。解碼器將隱向量進行處理,併產生了一個能構建簡筆畫的動態序列。研究者們輸入了幾個小貓的簡筆畫內容,而機器進行後重構產生的圖畫又是怎樣的呢?答案就是像下面這樣:


模型通過訓練人類所畫的小貓簡筆畫而重構的圖畫

值得強調的是,模型並不是簡單地照貓畫虎,面是學習了輸入特徵後,重新按照理解再畫圖的。也就是説,模型是學會了「畫貓的方式」後,根據自己的理解再作圖的。

比如,當研究者故意畫了一個三隻眼睛的貓作為輸入,模型基於對常識的認知,生成的依然是兩隻眼的貓。而為了拓寬系統認識物體的多樣性,研究者加入了迥然不同的內容,比如一把牙刷。從圖中可以發現,系統依然將牙刷抽象成了一隻貓的樣子(比如尖耳朵和觸鬚)。這一結果表明,神經網絡已經學會了從輸入中抽象出貓的概念,也能根據隱向量重構新的簡筆畫。


如果你還是將信將疑的話,下面這個小豬的例子或許可以説服你。八條腿的小豬和卡車「亂入」了訓練數據中,但在神經網絡的理解中,小豬隻有四條腿,而卡車看起來也具有小豬的樣子(比如有條小尾巴)。


為了了解為何隱向量是如何抽象出動物的體徵概念,研究者首先採用了兩幅不同的小豬畫(一幅只有頭,一幅是全身)獲得不同的隱向量,並在這兩個隱向量計算差值,並在生成簡筆畫後進行可視化。可以看到,隱向量掌握了鼻子與頭的相對位置,並且在逐步的嘗試後形成了身體和腿的概念。


那麼,如果是不同的動物進行融合,如何整合它們的特徵?研究者分別輸入了一個貓頭和一個全身小豬的圖像,從左往右看可以發現,小貓開始長出尾巴和身子,最後貓的頭逐步被抽象化,最後變成一隻小豬。當然,反過來試驗的結果也是一樣的。


這個實驗意味着隱向量確實對抽象的概念特徵進行了解碼,但我們是否能採用這些特徵擴大繪畫的靈活性,比如給小貓的頭加上身子?


在學習中,系統懂得了一些「公式」

研究者發現可將身體的部分進行分類,採用一些公式性的編碼讓系統理解內容,比如將不同的隱向量加在「貓頭」上,就能得到想要的結果(貓頭+身子=全身貓)。這一舉措得以讓研究者更好地探究模型是如何組織它的隱空間(latent space),以表達不同的概念。

創造性應用

研究者不僅為實驗結果而振奮,也同時為 sketch-rnn 未來可能的應用方向而高興。比如圖案設計者們能夠用該網絡生成非常多看起來相似,但實際上又有各自特色、能用於不同場景的設計圖案。

從框內圖案生成的相似但各具風格的小貓

而就像我們先前看到的一樣,畫小豬的模型如果加入了卡車的圖畫,也能夠畫出有着小豬特徵的卡車。研究者將這一結果拓展開來,認為這能夠給設計者提供抽象設計的靈感。


在向小貓模型中輸入了四把姿態各異的椅子圖案之後,模型學習了椅子的特徵,進而生成了各種具有椅子特徵的小貓,併產生了多種設計方案。研究者相信,將不同種類的事物交給神經網絡,可能產生意想不到的交互和想象。


此外,研究者們還將 sketch-rnn 的模塊解碼成單獨模型,讓系統嘗試在不完整圖畫的基礎上「腦補」內容。下圖是系統產生出的一些靈感閃現的圖案。


甚至,同一個模型也能充分發揮機器的想象力。研究者用圓形和正方形的圖案讓系統自由作畫,進而有了火烈鳥、螞蟻、貓頭鷹、直升機等等結果。設計者在研究這些機器產生的圖案時在,也能夠設計出富有創造力的作品。


Sketch-rnn 能夠讓機器作為人類靈感的來源,也可以有非常多的應用。而機器與人類的交互與溝通,在未來的想象空間是無窮的。

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知



資料來源:雷鋒網
作者/編輯:奕欣

留言


請按此登錄後留言。未成為會員? 立即註冊
    快捷鍵:←
    快捷鍵:→