為什麼說GANs是一個絕妙的藝術創作工具?

大資料文摘發表於2018-10-15

對於藝術創作來說,有的人會使用刷子,有的人會使用鐵鏟,有的人會選擇鋼筆。

而有的人,比如說我,選擇使用神經網路

我是一個藝術家,同時也是一位開發者。藝術和軟體在我的生活中曾經是兩個平行的軌道,直到我發現了GANs(Generative Adversarial Networks):在一次偶然中,我嘗試用Processing和計算攝影學來生成藝術,這將我所有的藝術作品都變成了模擬量。

為什麼說GANs是一個絕妙的藝術創作工具?

自從2014年GANs被髮明以來,機器學習領域關於這一技術生產了大量有深度的,有技術性的作品。但是今天我想說的不是這種作品。比起這個,我更想大致分享一下,為什麼說GANs是一個絕妙的藝術工具,以及我創造的用GAN來擴充藝術創作的方法。

但是首先,請先看一下我的藝術創作,作為具體的範例來了解我在討論的是什麼:

為什麼說GANs是一個絕妙的藝術創作工具?

如何把GAN當做一個藝術家/評論家的遊戲

所以什麼是GAN,以及為什麼它對藝術家特別有吸引力?

我們可以把藝術創作想象成一種遊戲。這個遊戲的行為在一個藝術工作室內進行,現在有兩個玩家:一個評論家和一個學徒畫家。學徒畫家的目標是在不抄襲的情況下,以大師的風格生成畫作,評論家的目的是評判這幅作品是來自於學徒還是大師。

一輪又一輪的遊戲之間,學徒和評論家相互競爭。當學徒變得更擅長模仿大師畫作的時候,評論家也被迫變得更加擅長從學徒的畫作裡區分大師的作品,而當評論家變得越來越好的時候,學徒的模仿技藝也必須被提高。

GAN是一個模仿這個過程的神經網路結構。評論家的角色由一個辨別器網路D來扮演,學徒畫家的角色則是由一個生成網路G來扮演。很多輪遊戲以後,生成網路模仿得越來越像大師 —— 也就是你的輸入資料集。

為什麼說GANs是一個絕妙的藝術創作工具?

而在這個遊戲中,你的角色是什麼呢?你是調整遊戲規則(網路裡的引數)的人,也是一個監管者。作為監管者,你必須從GAN的輸出中做出選擇,因為它會生成大量不同構圖,顏色,質感的組合,和用來訓練的資料集可能有很多的不同。這項工作並沒有表面上聽起來納悶輕鬆 —— 有時你會發現自己被有趣的影象所淹沒,想留住每一幅。

為什麼說GANs是一個絕妙的藝術創作工具?

但是用GANs來工作,你不僅會感受到興奮快樂。使用GANs的過程就像是一場關於新模型和新資料集的冒險。一定會有驚喜的元素出現在你面前,一定會有一些不可預測性激發、解鎖、創造了特別的東西,這一點不像其他數字化工具 —— 它們遠遠超越了instagram的濾鏡和普通的風格轉換工具。

為什麼要用CycleGAN

藝術生成可以運用很多不同的深度學習技術。

最受歡迎的有:

1.GaN/DCGAN,原方法如下:

為什麼說GANs是一個絕妙的藝術創作工具?

2.神經網路風格轉換,把一張圖片的風格運用到另一張的內容上:

為什麼說GANs是一個絕妙的藝術創作工具?


3.配對圖片轉化技術,比如像Pix2Pix,需要一個原影象和目標影象的配對資料集:

為什麼說GANs是一個絕妙的藝術創作工具?一個用Pix2Pix影象轉化的例項

4.未配對的影象轉化技術:比如說CycleGAN

為什麼說GANs是一個絕妙的藝術創作工具?

所以我為什麼唯獨選擇了用CycleGAN呢? 簡而言之,CycleGAN可以幫助你訓練一個網路,這個網路可以把一組資料集(輸入域)中同樣風格的圖片轉換成另一組資料集(目標域)裡紋理的圖片。這是非常重要的;就像計算機視覺的先驅Alyosha Efros曾說過的那樣,我們“還處於紋理的階段”

我最開始因為一個工作專案用了CycleGAN,並深深迷戀上了它的風格模仿能力,以至於我想轉而用它來生成藝術影象。CycleGAN給予了我們一種處理相對較小尺寸的高解析度資料集的能力,模型訓練得很快 。

我的第一個專案是把我的食物和飲料照片轉化成我的靜物畫和花卉素描作品。每個資料集都由300到500個高解析度圖片組成。整整一個月,我做了各種實驗,大部分都是圍繞輸入的資料大小。我花了好幾個小時篩選輸出影象,放上我覺得看上去有趣的圖片。

為什麼說GANs是一個絕妙的藝術創作工具?


壽司卷?黃金比率?卡莎·馬列維奇(馬列維奇風格)?......

我的花卉畫作被轉化成了迷幻零食,我的飲料照片變得更加有趣了——我的視覺使我重新認識了它們。最後,懷著不安的心情,我和我的美術指導分享了這些畫。她的反應是:“雖然我對軟體一無所知,但你對此很著迷!繼續加油!“

所以我繼續探索。當我變得對框架更加熟悉的時候,我繼續用其他的資料集來做實驗——花卉寫實變成花卉攝影,風景寫實變成風景攝影,以及更多。有一些實驗失敗了,有一些非常成功。

為什麼說GANs是一個絕妙的藝術創作工具?

實踐建議

這裡有一些我從幾個月CycleGAN實驗中學到的小技巧:

1.像原CycleGAN論文中觀察到的那樣,“訓練集影象的轉化往往比測試集的更吸引人。”所以在很多情況下,我用訓練集的子集來做推斷 ——我的目標不是一般化,我的目標是創造吸引人的藝術。

2.我常常用一些較大的資料集來開始我的初始化訓練,然後在較小的資料集上調整他們來取得某種特效。這裡是一個例子:這些圖片是用風景模型產生然後用日本詩集封面進行調整的。

為什麼說GANs是一個絕妙的藝術創作工具?

3.模型訓練的皮膚值得一看。CycleGAN的實現允許你設定顯示的頻率,所以我把它設得很高來觀察有趣的意象。這個過程對我來說像是冥想——從visdom的介面開始,迴圈損失函式

為什麼說GANs是一個絕妙的藝術創作工具?

4.當訓練的程式和結果變得越來越有意思時,提高檢查點的儲存頻率。

5.儲存所有的實驗資料,這樣以後可以重現(然而,說實話,即使不能重現一些結果也不是大問題——新的實驗帶來新的驚喜)。

6.在推論過程中,一些目標影象不會影響生成影象的外觀。但這並不表示你可以對把什麼圖片放進目標集毫不關心。記住,你有兩個生成器。不要閒置其中的任何一個—— 否則你可能會發現一些有趣的多無,比如說當生成器嘗試再生成輸入影象時。

7.在預設設定中,CycleGAN引數設定為例項正則化和批處理量大小為1。但是一旦你學會了這些規則以後,你就可以改變它們。萬一你想用批量正則化和更大的批量大小呢?

8.另一項值得探索的技術是CycleGAN連結:訓練一個模型並使用該模型的結果訓練另一個模型

下面的圖片是最後兩個專案的圖示 - 我使用了一套花卉和一套人畫素描。第一個模型在灰度級中使用批量標準化的方法,在這兩組素描圖畫之間進行轉換。下一個模型對第一個模型的結果進行了升級和著色。

為什麼說GANs是一個絕妙的藝術創作工具?

注意過度紋理,特別是在修補補丁時。我最初對食物做的實驗很糟糕,訓練出來的結果是將食物中的大部分變成了粥(由於過度紋理導致);所以有必要花一些時間去訓練訓練資料集。

另一方面,正如我的水彩老師曾經說過的那樣:讓中介去做。確實是這樣-我的草圖只是提供了基礎,然後我讓GANs完成接下來的工作;我的要求不高,只是不斷調整#brushGAN工具包(由儲存的訓練模型和輸入的資料集等組成)。

這讓我想到了下一點-在磁碟空間允許的情況下,儲存儘可能多的模型。並將這些模型作為作為個人風格的轉變器。

請將本文作為探索CycleGAN和其他GANs的跳板。這些提示和要點只是粗略的指導方針,在個人的探索旅程中,你會根據自己所擁有的資料集,個人藝術的敏感度和目標形成屬於自己的風格。最重要的是要注意GAN生成影象的質量,從而及時調整訓練過程。

使用的工具

到目前為止,已經介紹了一般的流程:收集一些資料,並開始用它來訓練模型。現在來談談所使用的這些工具。

無論你為衍生藝術選擇什麼神經網路深度學習的設定或多或少都是一樣的。在過去一年左右的時間裡,我所有的工作都是在我自己構建的伺服器上完成的。

我的原始設定在AWS上,雖然它在計算能力方面更便宜,但儲存是一個令人頭疼的問題 - 忘記斷開卷之間的連線和從S3與卷之間轉移資料浪費了我大量的事件。現在我執行了自己的伺服器,並配備了GTX1080 GPU,275GB SSD(固態硬碟)和兩個1TB(機械)硬碟,雖然儲存空間不斷耗盡,但一想到擁有對儲存的控制,我認為也是值得的。

然後是引數,其中最重要的是影象大小。CycleGAN設定允許指定影象裁剪,但最大解析度取決於硬體。在我的GTX1080上,訓練的最大值為400x400。通過理論推斷,這一數值可以更高,但這會影響到結果的準確性。

為了使第一次實驗變得簡單(估計大家只想使用CycleGAN的預設設定)其中影象被載入並重新縮放到278X278並隨機裁剪為256X256。我有在1024/800/400規格上訓練的模型 - 有時從頭開始,有時從某一個尺寸開始,然後隨著訓練的進行而改變它。

資料集是十分重要的

不要忘記資料集!眾所周知,要訓練任何深度學習網路,需要大量資料。許多AI藝術家使用網路抓取來獲取資料集。但是我反其道而行之,我決定使用自己的資料集,即我的個人照片和塗鴉/繪畫。這樣會有明顯的優勢:

  • 將在風格和主題方面為你的照片繪畫等賦予獨特性和凝聚力。

  • 無需擔心版權問題。

  • 無需大量預處理即可獲得高解析度影象。

  • 通過使用相機可以輕鬆建立特定顏色和成分的資料集。

關於我的資料庫的組織結構也值得說幾句。這是我正在使用的資料結構和處理渠道:

  • 常規預處理:從智慧手機載入和調整照片

  • 資料集組合:根據主題/內容/顏色/紋理等對照片進行排序。

  • 三層儲存組織結構

  • remote(像Flickr這樣的雲服務):用於儲存原始影象。Flickr適用於團隊,它提供了一個不錯的編輯器和無限的儲存空間。

  • HDD:用於長期儲存未使用的資料集和權重

  • SSD:用於資料集和權重的短期和中期儲存。我的SSD分為幾個資料夾,包括原始影象的通用儲存庫和預處理影象的GAN特定儲存庫。

  • 特定於GAN的批處理:我在資料集儲存中使用Jupyter筆記本,它具有用於方形裁剪的實用程式,用於精確邊緣檢測(用於Pix2Pix)和排序影象等。

為什麼說GANs是一個絕妙的藝術創作工具?我的固態硬碟儲存結構從何而來?

此時,CycleGAN已成為我的藝術家工具包的重要組成部分。即使我開始嘗試新型的GANs,CycleGAN仍然是生成流程的一部分:現在我將GANs的輸出連結到CycleGAN,以便與傳統的CV技術相結合,超解析度和著色。以下是使用CycleGAN將SNGAN的輸出從128x128增強到512x512的示例:

為什麼說GANs是一個絕妙的藝術創作工具?

等待安裝CycleGAN的過程是一個休息的好時機。我一直在使用CycleGAN團隊的PyTorch(它也可以以相同的價格提供Pix2Pix),由於它擁有簡潔的程式碼、完整的文件、良好的結構和出色的訓練介面這些特性,使用它簡直是一種享受。

對我而言,這些實驗最大的價值是它們使我的視覺世界更加豐富,讓我更多地觀察和欣賞顏色和紋理,讓我產生新的想法和新的專案,並激勵我更多地繪製和拍攝。

相關報導:

https://thegradient.pub/playing-a-game-of-ganstruction/

相關文章