編者按:本文作者Helena Sarin是一名藝術(shù)家,同時也是一位神經(jīng)網(wǎng)絡(luò)開發(fā)者。在這篇文章中,她講述了自己在藝術(shù)創(chuàng)作過程中與生成對抗網(wǎng)絡(luò)碰撞出的火花。
美國畫家Jackson Pollock曾說:“所有的一切都是建筑游戲,有些人會用筆刷,有人會用鏟子,還有人會選擇一支筆?!?/p>
而我自己選擇了神經(jīng)網(wǎng)絡(luò)。我是一名藝術(shù)家,但同時我也開發(fā)了很多商用軟件。但是此前,藝術(shù)和編程在我的生活中完全毫無關(guān)聯(lián)。除了偶爾用計算機(jī)作圖進(jìn)行生成藝術(shù)的處理,我所有的作品都是進(jìn)行模擬,直到我發(fā)現(xiàn)了生成對抗網(wǎng)絡(luò)(GANs)。
自從2014年GANs發(fā)明生成之后,機(jī)器學(xué)習(xí)社區(qū)就出現(xiàn)了很多有關(guān)GAN的技術(shù)。在這篇文章中,我將大概講解為什么GANs是如此優(yōu)秀的藝術(shù)類工具,以及我是怎樣用它創(chuàng)造藝術(shù)作品的。
以下是我的一些藝術(shù)作品:
藝術(shù)家眼中的GAN
所以到底什么是GAN?為什么它對藝術(shù)家很有吸引力?
我們可以將藝術(shù)的創(chuàng)作過程看作一種游戲。游戲動作發(fā)生在藝術(shù)工作室中,其中有兩位玩家:評論者和藝術(shù)初學(xué)者。初學(xué)者的目標(biāo)是創(chuàng)作大師級別的畫作,但不能抄襲。而評論者的目標(biāo)是判斷他看到的畫作是大師的作品還是初學(xué)者的作品。一次次判斷之后,初學(xué)者和評論者會進(jìn)行比賽,初學(xué)者會越來越熟練地進(jìn)行模仿,風(fēng)格越來越像大師。而評論者會更容易辨別出哪幅畫作來自初學(xué)者,二者互相督促,水平越來越高。
GAN就是模擬這一過程的神經(jīng)網(wǎng)絡(luò),評論者的角色由判別網(wǎng)絡(luò)D扮演,藝術(shù)初學(xué)者的角色由生成網(wǎng)絡(luò)G扮演。一次次“游戲”過后,生成網(wǎng)絡(luò)模擬的大師畫作風(fēng)格會更逼真:
那么你的角色是什么呢?輕微調(diào)整游戲規(guī)則(網(wǎng)絡(luò)的超參數(shù)),成為了美術(shù)館館長(curator)。作為館長你要從GAN的輸出中進(jìn)行挑選,因為GAN會生成很多不同結(jié)構(gòu)、顏色的組合,與其訓(xùn)練的樣本圖片有各種不同的差異。所以作為館長也不容易,有時你會覺得很多圖像都很有趣,想把它們都留下來。
用上述GAN進(jìn)行創(chuàng)作是很有趣的,可以探索各種新模型和數(shù)據(jù)集。和其他數(shù)字化工具不同,GAN總能給人驚喜,它可以創(chuàng)造出比濾鏡或普通的風(fēng)格遷移更特別的效果。
CycleGAN
應(yīng)用于藝術(shù)生成的深度學(xué)習(xí)技術(shù)種類很多,常見的有以下幾種:
GAN/DCGAN,也就是上文描述的經(jīng)典生成對抗網(wǎng)絡(luò):
神經(jīng)網(wǎng)絡(luò)遷移,將一張圖像的風(fēng)格遷移到另一張圖像中:
成對圖像轉(zhuǎn)換技術(shù),例如Pix2Pix。這種技術(shù)需要含有源圖像和目標(biāo)圖像的數(shù)據(jù)集進(jìn)行訓(xùn)練:
非成對的圖像轉(zhuǎn)換技術(shù)則不用對應(yīng)數(shù)據(jù)集(例如Cycle GAN):
計算機(jī)創(chuàng)作的很多畫作都是由以上技術(shù)生成的,但是為什么最終我只選擇了CycleGAN呢?簡而言之,CycleGAN訓(xùn)練出來的網(wǎng)絡(luò)可以具有其中一個數(shù)據(jù)集的形式(輸入域)和另一個數(shù)據(jù)集的結(jié)構(gòu)(目標(biāo)域)。這一點非常重要。計算機(jī)視覺專家Alyosha Efros表示,我們“仍然非常注重結(jié)構(gòu)”。
我第一次用CycleGAN完成一個項目后,覺得它在模擬結(jié)構(gòu)上太強(qiáng)大了,所以想將其用在生成藝術(shù)上。CycleGAN能讓你處理高分辨率、小尺寸的圖像數(shù)據(jù)集,并且訓(xùn)練模型的速度非???!
我第一項任務(wù)是將食物和飲料的照片轉(zhuǎn)換成靜物素描風(fēng)格。每個數(shù)據(jù)集含有300到500張高分辨率圖像。那一整個月,我?guī)缀趺刻熳龈鞣N實驗,想把輸入數(shù)據(jù)尺寸變小。然后我花了好幾個小時對輸出圖像進(jìn)行篩選,最終效果如圖:
帶有鮮花的圖片轉(zhuǎn)換成了類似零食的東西,飲料的照片也變得非常有趣。我把最終結(jié)果給我的藝術(shù)導(dǎo)師看,她說:“我不懂計算機(jī),但是你這個很有前景??!加油干!”
接著我就繼續(xù)實驗,隨著我對自己的框架越來越熟悉,在實驗中我加入了不同數(shù)據(jù)集:
實驗建議
用了幾個月CycleGAN,我學(xué)到了以下幾個小技巧:
正如CycleGAN最初的論文中說的:“在訓(xùn)練數(shù)據(jù)上轉(zhuǎn)換比在測試數(shù)據(jù)上更吸引人。”所以在很多情況下,我用訓(xùn)練數(shù)據(jù)的子集進(jìn)行推理,我的目標(biāo)并不是泛化,而是創(chuàng)造吸引人的藝術(shù)。
通常,我在較大的數(shù)據(jù)集上開始對模型訓(xùn)練,然后在較小的子集上進(jìn)行微調(diào)。這里就是一個例子:這些圖片是在一個風(fēng)景模型上生成的,之后再日本詩集封面的模型上微調(diào)、
在模型訓(xùn)練的時候有必要查看儀表板。CycleGAN的偏好設(shè)置中可以設(shè)置展示頻率,我設(shè)置的比較高。這一過程對我來說就像在冥想——盯著visdom的UI界面,隨著損失函數(shù)的變化而呼氣吐氣。
隨著訓(xùn)練,結(jié)果變得越來越有趣,增加了檢查點保存的頻率。
將實驗中所有的參數(shù)保存下來,之后還能重新創(chuàng)造。
在推理過程中,目標(biāo)圖像不會影響生成圖像的樣子。這并不意味著你不需要關(guān)心目標(biāo)集中有什么圖像。記住,你有兩個生成器,不要忽略第二個。
默認(rèn)情況下,CycleGAN使用的實例規(guī)范化和batch尺寸都為1。但是一旦你學(xué)習(xí)了規(guī)則,就可以不受這個值的限制。如果你使用了批規(guī)范化,并且batch size大于1怎么辦?
另一項值得運用的技術(shù)是CycleGAN chaining:訓(xùn)練一個模型,然后用其結(jié)果去訓(xùn)練另一個。
下方的圖像是上述兩條tips的結(jié)果展示。我用了鮮花照片數(shù)據(jù)集和人像素描數(shù)據(jù)集。第一個模型用批規(guī)范化在兩數(shù)據(jù)集之間進(jìn)行灰度遷移。第二個模型對第一個模型的結(jié)果上了色。
要注意額外的結(jié)構(gòu),尤其當(dāng)在補(bǔ)丁上訓(xùn)練時。我最初在食物和靜物素描之間進(jìn)行轉(zhuǎn)換的模型,大多數(shù)情況下都將靜物變成了粥,所以一定要花點時間處理訓(xùn)練數(shù)據(jù)集。
另一方面,我的水彩老師曾經(jīng)總說:“其他的事情交給媒介工具做就好?!彼孛柚惶峁┖唵蔚幕A(chǔ)架構(gòu),之后的工作就交給網(wǎng)絡(luò)了,我只是對#brushGAN工具包進(jìn)行調(diào)整。(該工具包含有保存過的訓(xùn)練模型和用作輸入的數(shù)據(jù)集等等)
工具使用
目前為止,我們已經(jīng)談到了收集數(shù)據(jù)和開始利用數(shù)據(jù)。現(xiàn)在我們要談?wù)劰ぞ叩氖褂谩?/p>
無論你選擇哪種神經(jīng)網(wǎng)絡(luò)創(chuàng)造生成性藝術(shù)作品,深度學(xué)習(xí)的設(shè)置都差不多。我最初的設(shè)置是在AWS上進(jìn)行的,雖然它在計算方面比較便宜,但是存儲問題比較令人頭疼?,F(xiàn)在我有了自己的服務(wù)器:一個GTX 1080 GPU、一個275GB的SSD和兩個1TB的HDD。
接著是超參數(shù),其中最重要的就是圖像尺寸。CycleGAN通過設(shè)置可以對圖像進(jìn)行切割,但是可能達(dá)到的最大分辨率取決于你的硬件。在我的GTX 1080上,最大分辨率可以達(dá)到400×400。
數(shù)據(jù)
不要忘記數(shù)據(jù)集!訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò),一定需要大量數(shù)據(jù)。很多AI藝術(shù)家用網(wǎng)絡(luò)抓取的方法獲取數(shù)據(jù),但是我決定用自己的數(shù)據(jù)集,比如自己的照片或繪畫作品。這樣做有幾種好處:
這樣你的藝術(shù)作品會有一致性。
無需擔(dān)心版權(quán)問題。
不用過多處理就能得到高分辨率圖像。
只需一臺相機(jī)就能輕松創(chuàng)建有豐富色彩和結(jié)構(gòu)的數(shù)據(jù)集。
另外,我使用的數(shù)據(jù)機(jī)構(gòu)和處理過程如下:
通用預(yù)處理:從手機(jī)上下載并調(diào)整照片
數(shù)據(jù)集構(gòu)成:根據(jù)圖片中的物體、內(nèi)容、顏色和結(jié)構(gòu)對它們進(jìn)行區(qū)分
三種存儲類型:
遠(yuǎn)程存儲(例如Flickr這種云服務(wù));
HDD:對未使用的數(shù)據(jù)集和權(quán)重進(jìn)行長期存儲;
SSD:對數(shù)據(jù)集和權(quán)重進(jìn)行中短期存儲。
針對GAN的批處理:我使用的是Jupyter notebooks,可以進(jìn)行圖像切割、canny邊緣檢測、圖像分類等等。
結(jié)語
目前,CycleGAN已經(jīng)成為我藝術(shù)創(chuàng)作中的重要部分,即使選擇新的GAN類型進(jìn)行實驗,CycleGAN也是生成圖像的重要工具。下面是我用CycleGAN提高SNGAN輸出效果的結(jié)果:
關(guān)于安裝CycleGAN,我是用的是這一教程:github.com/junyanz/pytorch-CycleGAN-and-pix2pix,它非常簡潔。
對我來說,這項實驗最棒的部分是它們讓我的視覺視野更開闊了,能欣賞到更多色彩和結(jié)構(gòu),給予我更多靈感。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4724瀏覽量
100311 -
GaN
+關(guān)注
關(guān)注
19文章
1895瀏覽量
72325 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8320瀏覽量
132165
原文標(biāo)題:一位藝術(shù)家眼中的GAN:它給予我更多靈感
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論