谷歌大腦教機器畫簡筆畫 來看神經(jīng)網(wǎng)絡的大作長啥樣

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

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

谷歌大腦教機器畫簡筆畫,神經(jīng)網(wǎng)絡的大作都長啥樣?

一些 sketch-rnn 創(chuàng)作的畫

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

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

鑒于采用神經(jīng)網(wǎng)絡之時,生成模型用于訓練的圖像過多,圖像以 2D 像素的點陣圖來構建。而由于它所具有的高解析度,這些模型很容易會生成一些連續(xù)的圖像結構,比如會畫出三只眼睛的貓,或是幾個頭的狗。

谷歌大腦教機器畫簡筆畫,神經(jīng)網(wǎng)絡的大作都長啥樣?

采用 128*128 ImageNet 數(shù)據(jù)集訓練的 GANs 模型,可能會產(chǎn)生像上圖這樣的詭異情況。

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

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

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

谷歌大腦教機器畫簡筆畫,神經(jīng)網(wǎng)絡的大作都長啥樣?

實驗過程

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

谷歌大腦教機器畫簡筆畫,神經(jīng)網(wǎng)絡的大作都長啥樣?

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

值得強調的是,模型并不是簡單地照貓畫虎,面是學習了輸入特征后,重新按照理解再畫圖的。也就是說,模型是學會了「畫貓的方式」后,根據(jù)自己的理解再作圖的。

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

谷歌大腦教機器畫簡筆畫,神經(jīng)網(wǎng)絡的大作都長啥樣?

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

谷歌大腦教機器畫簡筆畫,神經(jīng)網(wǎng)絡的大作都長啥樣?

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

谷歌大腦教機器畫簡筆畫,神經(jīng)網(wǎng)絡的大作都長啥樣?

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

谷歌大腦教機器畫簡筆畫,神經(jīng)網(wǎng)絡的大作都長啥樣?

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

谷歌大腦教機器畫簡筆畫,神經(jīng)網(wǎng)絡的大作都長啥樣?

在學習中,系統(tǒng)懂得了一些「公式」

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

創(chuàng)造性應用

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

谷歌大腦教機器畫簡筆畫,神經(jīng)網(wǎng)絡的大作都長啥樣?

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

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

谷歌大腦教機器畫簡筆畫,神經(jīng)網(wǎng)絡的大作都長啥樣?

在向小貓模型中輸入了四把姿態(tài)各異的椅子圖案之后,模型學習了椅子的特征,進而生成了各種具有椅子特征的小貓,并產(chǎn)生了多種設計方案。研究者相信,將不同種類的事物交給神經(jīng)網(wǎng)絡,可能產(chǎn)生意想不到的交互和想象。

谷歌大腦教機器畫簡筆畫,神經(jīng)網(wǎng)絡的大作都長啥樣?

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

谷歌大腦教機器畫簡筆畫,神經(jīng)網(wǎng)絡的大作都長啥樣?

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

谷歌大腦教機器畫簡筆畫,神經(jīng)網(wǎng)絡的大作都長啥樣?

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

極客網(wǎng)企業(yè)會員

免責聲明:本網(wǎng)站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內容可能涉嫌侵犯其知識產(chǎn)權或存在不實內容時,應及時向本網(wǎng)站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。

2017-04-14
谷歌大腦教機器畫簡筆畫 來看神經(jīng)網(wǎng)絡的大作長啥樣
雖然簡筆畫與實物的逼真程度相去甚遠,但即便是一個小孩也能輕易理解圖案中的內容。原因其實很簡單,因為人類懂得通過判斷圖案中的關鍵特征,與現(xiàn)實物體進行匹配。那么,如

長按掃碼 閱讀全文