偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

【機(jī)器學(xué)習(xí)】如何教機(jī)器繪畫?

開發(fā) 開發(fā)工具
在最新論文《簡筆畫繪圖的神經(jīng)表征》 中,我們提出了一個(gè)能夠生成常見物體簡筆畫的生成式循環(huán)神經(jīng)網(wǎng)絡(luò),其目標(biāo)是以類似于人類的方式訓(xùn)練機(jī)器繪畫和概括抽象概念。

抽象的形象溝通對于人們交流思想發(fā)揮了重要的作用。孩子們很小的時(shí)候就發(fā)展出用簡單的線條來描繪事物甚至表達(dá)自己情感的能力。這些簡單的繪畫可能沒有照片來得真實(shí),但它確實(shí)可以讓我們從另一個(gè)角度了解人們是如何描繪和重建周圍的世界的。

sketch-rnn 生成的矢量圖

▲ sketch-rnn 生成的矢量圖

在最新論文《簡筆畫繪圖的神經(jīng)表征》(A Neural Representation of Sketch Drawings) 中,我們提出了一個(gè)能夠生成常見物體簡筆畫的生成式循環(huán)神經(jīng)網(wǎng)絡(luò),其目標(biāo)是以類似于人類的方式訓(xùn)練機(jī)器繪畫和概括抽象概念。我們利用一個(gè)手繪簡筆畫的數(shù)據(jù)集訓(xùn)練我們的模型,其中每張簡筆畫表示握筆動(dòng)作的一個(gè)序列:往哪個(gè)方向移動(dòng),什么時(shí)候提筆以及停筆。這樣我們就可以創(chuàng)建一個(gè)具有廣泛應(yīng)用潛力的模型,從協(xié)助藝術(shù)家進(jìn)行創(chuàng)作到幫助教學(xué)生如何繪畫。

對于使用神經(jīng)網(wǎng)絡(luò)的生成式建模方面,目前已做了大量工作,其中大部分工作的重心是以 2D 像素網(wǎng)格來表示光柵圖像。盡管這些模型目前能夠生成逼真的圖像,但由于 2D 像素網(wǎng)格的高維度,其面臨的一個(gè)關(guān)鍵挑戰(zhàn)是生成具有連貫結(jié)構(gòu)的圖像。這些模型有時(shí)產(chǎn)生的圖像很有趣,例如,有三只乃至更多眼睛的貓,或有多個(gè)頭的狗。

 GAN 模型

▲ 上圖展示了生成的身體部位數(shù)量錯(cuò)誤的動(dòng)物,這些是使用 128x128 ImageNet 數(shù)據(jù)集訓(xùn)練的先前 GAN 模型生成的。上圖是 Ian Goodfellow 的 NIPS 2016 教程《生成對抗網(wǎng)絡(luò)》(Generative Adversarial Networks) 中的第 29 圖。

在這項(xiàng)工作中,我們受到人類繪畫方式的啟發(fā),對更低維度的基于向量的表征進(jìn)行了研究。我們的模型 sketch-rnn 以 sequence-to-sequence (seq2seq) 自編碼器框架為基礎(chǔ)。它融入了變分推理,并將超網(wǎng)絡(luò)用作循環(huán)神經(jīng)網(wǎng)絡(luò)細(xì)胞。seq2seq 自編碼器的目標(biāo)是訓(xùn)練網(wǎng)絡(luò)將輸入序列編碼成一個(gè)被稱作隱向量的浮點(diǎn)數(shù)向量,并通過一個(gè)解碼器盡可能接近地再現(xiàn)輸入序列,從這一隱向量中重建輸出序列。

 sketch-rnn 的原理圖

▲ sketch-rnn 的原理圖

在我們的模型中,我們刻意向隱向量添加噪音。在我們的論文中,我們展示了通過將噪聲引入編碼器和解碼器之間的通信通道中,讓模型無法再準(zhǔn)確地再現(xiàn)草圖,而是必須學(xué)會(huì)以噪音隱向量的形式捕捉草圖的本質(zhì)。我們的解碼器將使用這個(gè)隱向量生成用于構(gòu)建新簡筆畫的一系列動(dòng)作。在下圖中,我們將幾個(gè)表現(xiàn)真實(shí)的貓的樣子的簡筆畫輸入編碼器中,以使用解碼器生成重建的簡筆畫。

受過貓簡筆畫訓(xùn)練的模型重建的簡筆畫

▲ 受過貓簡筆畫訓(xùn)練的模型重建的簡筆畫

需要強(qiáng)調(diào)的是,重建的貓簡筆畫并不是對輸入的簡筆畫的復(fù)制,而是與輸入的簡筆畫具有相似特征的全新草圖。為證明模型不是簡單地復(fù)制輸入順序,而是確實(shí)學(xué)會(huì)了人類畫貓的一些技巧,我們可以嘗試將非標(biāo)準(zhǔn)簡筆畫輸入編碼器中:

將非標(biāo)準(zhǔn)簡筆畫輸入編碼器中

當(dāng)我們輸入一個(gè)三眼貓的簡筆畫后,模型將生成一個(gè)具有類似輪廓的貓,但它只有兩只眼睛,這就表明我們的模型已經(jīng)知道貓只有兩只眼睛。為證明我們的模型并不是簡單地從大量儲(chǔ)存的貓簡筆畫中選擇最接近正常的貓的簡筆畫,我們可以嘗試輸入一些完全不同于貓的物體,如一只牙刷的簡筆畫。我們看到網(wǎng)絡(luò)仍然努力生成了一只貓的形象,擁有長長的胡須,同時(shí)盡量遵循牙刷的形狀。這表明網(wǎng)絡(luò)已經(jīng)學(xué)會(huì)了將輸入簡筆畫編碼成一組抽象的貓的概念,并嵌入到隱向量中,同時(shí)還能基于這個(gè)隱向量重建一個(gè)全新的簡筆畫。

還是不太相信?我們再用一個(gè)受過小豬簡筆畫訓(xùn)練的模型來重復(fù)此實(shí)驗(yàn),看看能不能得出相似結(jié)論。如果輸入一只有八條腿的豬,該模型生成的形狀將與豬相似,并且只有四條腿。如果向畫豬的模型輸入一輛卡車的簡筆畫,那么它就會(huì)畫出一頭長得像卡車的豬。

受過小豬簡筆畫訓(xùn)練的模型重建的簡筆畫

▲ 受過小豬簡筆畫訓(xùn)練的模型重建的簡筆畫

為了研究這些隱向量是如何編碼動(dòng)物形態(tài)特征的,在下圖中,我們首先從兩張迥然不同的小豬簡筆畫中獲得隱向量,在此案例中是一個(gè)豬頭(綠色框中)和豬的全身(橙色框中)。我們希望了解我們的模型是如何學(xué)會(huì)表現(xiàn)豬的形象的,一種方法是在兩個(gè)不同的隱向量之間進(jìn)行內(nèi)插,并將內(nèi)插的隱向量生成的每個(gè)簡筆畫進(jìn)行可視化。如下圖所示,我們展示了豬頭的簡筆畫是如何慢慢變成整頭豬的,以及模型是如何理解豬的簡筆畫這個(gè)概念的。我們可以看到隱向量控制著簡筆畫中鼻子相對于頭的位置和尺寸,然后又添加了身體和腿。

從一個(gè)受過豬簡筆畫訓(xùn)練的模型生成的隱空間插值

▲ 從一個(gè)受過豬簡筆畫訓(xùn)練的模型生成的隱空間插值

我們還想知道如果模型學(xué)會(huì)了表現(xiàn)多種動(dòng)物,那它們將會(huì)是什么樣子?在下圖中,我們通過在貓頭和整頭豬之間內(nèi)插隱向量生成簡筆畫。我們可以看到表征是如何慢慢地從貓頭過渡到具有尾巴的貓,再過渡到一個(gè)有肥胖身體的貓,最后變成一頭完整的豬。就像兒童學(xué)習(xí)繪畫一樣,我們的模型通過將動(dòng)物的頭、腿、尾巴添加到身體上來畫出自己想要的動(dòng)物。我們看到,模型還可以繪制與豬頭完全不同的貓頭。

受過貓和豬簡筆畫繪制訓(xùn)練的模型的隱空間插值

▲ 受過貓和豬簡筆畫繪制訓(xùn)練的模型的隱空間插值

以上這些插值示例表明隱向量確實(shí)對簡筆畫的概念特征進(jìn)行了編碼。但是,我們是否可以使用這些特征來填充沒有此類特征的其他簡筆畫,比如為一個(gè)貓頭加上身體?

 探索使用隱向量算法學(xué)習(xí)抽象概念之間的聯(lián)系

▲ 探索使用隱向量算法學(xué)習(xí)抽象概念之間的聯(lián)系

確實(shí),我們發(fā)現(xiàn)受過貓和豬繪制訓(xùn)練的模型可以進(jìn)行簡筆畫繪制類比。例如,我們可以從整頭豬的隱向量減去已編碼的豬頭的隱向量,從而得到一個(gè)表現(xiàn)身體概念的向量。將這一區(qū)別添加到貓頭的隱向量中,從而得到一只完整的貓(即,貓頭+身體=整只貓)。這些繪圖類比讓我們可以探索模型是如何組織其隱空間以在生成的眾多簡筆畫中體現(xiàn)不同概念。

【本文是51CTO專欄機(jī)構(gòu)“谷歌開發(fā)者”的原創(chuàng)稿件,轉(zhuǎn)載請聯(lián)系原作者(微信公眾號:Google_Developers)】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2018-04-12 13:53:19

2023-12-21 17:05:46

機(jī)器學(xué)習(xí)MLOps人工智能

2017-08-25 14:05:01

機(jī)器學(xué)習(xí)算法模型

2020-11-13 09:58:19

機(jī)器學(xué)習(xí)金融行業(yè)深度學(xué)習(xí)

2017-02-15 14:20:48

2022-10-08 11:11:25

機(jī)器學(xué)習(xí)人工智能

2017-07-26 17:25:22

機(jī)器學(xué)習(xí)SparkAPI

2021-03-29 23:12:51

機(jī)器學(xué)習(xí)人工智能游戲

2015-04-14 10:40:31

云計(jì)算機(jī)器學(xué)習(xí)

2021-03-15 11:35:28

人工智能機(jī)器學(xué)習(xí)

2021-04-12 10:46:15

人工智能機(jī)器學(xué)習(xí)

2017-07-07 14:41:13

機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)JavaScript

2021-06-17 10:27:03

人工智能AI機(jī)器學(xué)習(xí)

2022-10-26 11:06:16

機(jī)器學(xué)習(xí)農(nóng)業(yè)

2021-11-02 09:40:50

TensorFlow機(jī)器學(xué)習(xí)人工智能

2017-08-25 14:29:43

機(jī)器學(xué)習(xí)Java

2022-06-02 15:42:05

Python機(jī)器學(xué)習(xí)

2021-09-24 16:30:28

無代碼低代碼機(jī)器學(xué)習(xí)

2024-11-26 08:09:40

2017-07-13 10:12:58

機(jī)器學(xué)習(xí)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號