Continue(s)

Twitter:@dn0t_ GitHub:@ogrew

GANerativemasksと盆栽。(解説&ポエム編)

この記事は解説&ポエム編です。

実際の作品はこちら。


まずは制作のきっかけから書き始める。

8月に徳井直生さんの「創るためのAI」*1を読んでから、人間の持つ創造性とAIの可能性みたいなことを考えることが増えた。

とは言っても何か具体的なアイデアがあるというよりは一人の視聴者としてこれからが楽しみだなあ、くらいのぬるい感覚のものだった。*2

この書籍は素晴らしくて今どきな”AI”というワードがタイトルに入ってはいるものの、中身のエッセンスとしては、地道な手作業という営みから解放された先にある人間の創造性が主題で、人類が経験してきた技術的転換点の事例(例えば蓄音機やカメラの発明)と比較しながらAI技術の可能性を示している。

近年のAIのフレームワークを活用するアーティストの紹介も豊富で、中でも個人的にDribnet(Tom White)氏の"The Treachery of ImageNet"という作品が印象に残った。これは(ざっくりとした説明だが)コンピュータが如何に世界を認識しているかをニューラルネットワークによって抽象的なペインティングに落とし込んだ一連のシリーズ作品である。

f:id:taiga006:20211214004447p:plain

Tom White - AI Art Galleryより


同じ時期、takawoさんの"Generativemasks"というコードアート作品がNFTマーケットで即完したというニュース*3が耳に入った。

アートマーケットにNFT参入することの功罪については専門ではないのでここでは深く踏み込まないが、とても大きなニュースだと思った。

あくまで私の視点からは、これまでせいぜい「趣味の延長としての自己表現」(言い方はアレだけど決してネガティブな意味ではない)として賑わっていた国内のCreative Coding界隈に巨大な資本が入ってきたという風に見えた。

もちろん、ポジティブに捉えることもできるが、手放しに受け入れることは非常に難しいなあという感情も大きかった。

以前から私は「Creative Codingは盆栽」という考えでやってきた。それはつまり日々のままならない生活に対しての抵抗というか、言うなれば小さい世界ながらも自分だけで完結した世界がある安心感こそCreative Codingをする最大の恩恵であり、他の人にも勧めたい理由でもあったからだ。(何を持って"Creative"なんじゃい、みたいな議論もここではしない。)

それがここに来て、作品が金になる、つまり(自分だけで完結しない)世界と繋がる手段になりえるという時代が突然やってきた。

私利私欲のためではなく利益は寄付するからいいでしょ、というスタンスの人もいるし、もちろん否定するつもりもないが、慈善活動のすばらしさと自分(の作品)に値札が貼られるということは別の話だ。

当事者としてそれ相応の「覚悟」がいるのは間違いない。作品をSNSにアップロードする感覚の延長でNFT販売もしてみるか、というのはどうも危うそうだ。現にそういった理由で病んでいる(?)人の話も聞いたりした。

話はだいぶ横道に逸れてしまったが、そんなことをひとり悶々と考えていたときにとても良い記事に出会った。

takawoさんのインタビュー記事。

グリッチアートでおなじみ*4のucnvさんが聞き手となって"Generativemasks"を中心としたtakawoさんのこれまで、そしてこれからのコードアートに対する姿勢を問うような内容となっている。

単刀直入に、ここまでヒリヒリするインタビューはそうそうお目にかかれないんじゃないかと思った。

もちろん、両者互いにリスペクトがあった上でのやりとりというのは読めばわかるとおりで、文面が殺伐としているわけではない。ただucnvさんの純粋で鋭利な問いと、それに対して可能な限り真摯に応えようとするtakawoさんの返し、読みながら「もしも同じような質問されたら自分だったらどう答えるだろうか」というのを考えあぐね胃をキリキリさせながら読み進めた。

そんな風に目を皿にしてインタビューを読んでいると、私はある部分で引っかかった。

ucnv ちょっと聞いてみたいんですけど、たとえば90%ほどコードをコピペされて、全く違う見た目のものがNFTで販売された。そういう人が現れたら、怒りますか? 怒らないですか? 

takawo 怒らないかもしれないですね。

ucnv だとしたら、takawoさんの自己評価は、出力された視覚表象にあるんでしょうか。

takawo 書き換えられたコードの分量や「文字数」で評価してしまうと……どう言ったらいいんだろうな。コードを自然言語的に扱うとするなら、一文が変わっただけで物語の印象が変わることがあり得るわけじゃないですか。だから分量ではなくて「書き替えられた内容」と「変化したグラフィック」の差異こそが、オリジナリティを認められるかどうかに関わってくるんじゃないでしょうか。

コードアートの価値はコードにあるのか出力結果にあるのか、という部分を問いたいのだと思う。

なぜ私がこの部分が引っかかったのか。それは私が考えるCreative Codingの魅力にコードが出力する絵はそこまで重要ではないような気がしたからだ。

では一体何が大切なのか?詳細は後述するとして、この文章を読んで私はCreative Codingの作品とGANを組み合わせてみようと思いついた。

そういうわけで自分が行ったCreative Coding x GANの作品シリーズは、きっかけとなった作品から名前を拝借して"GANerativemasks"と名付けている。エス、便乗商法。

GANは誤解を恐れずに言えば、たくさんの既存データセットを学習して新しい”それっぽいもの”を生成する技術だ。

そこには元となる作品が持っていたコンテキストは当然含まれない。

これはパクリであろうか?

しかし、もとのProcessing/p5jsのコードは1行も使用していない。

それでもこの作品に価値はあるのか?

無限にコピーできるデジタルアートの価値とは何だろう。

NFTマーケットに出したら価値はつくのだろうか?

たとえばソースコードが(Generativemasksがそうであるように)Creative Commonsでオープンにされていたとしてそのコードが生み出す出力結果の著作権はどうなるのか?

そもそもこの作品の"作者"は誰なんだ?

………

特に最終的な着地点が見えるわけでもなく、私は日本で活躍するCreative Coderたちにお願いをして彼らの作品をGANで学習させて生成してみることにした。

ここまでが経緯。


ここからは具体的にどのようにしてゼロから勉強して作品を作ったかを時系列に沿って説明する。

手始めに機械学習の"き"の字も知らない状態からのスタートだったのでまずは参考書を読んで勉強をすることにした。

最初に手に取ったのは「実践GAN」*5だった。理由は、約1年前にこのツイートを読んだからだ。

とても面白いなーと思って、その後すぐに質問したところ親切に本の紹介をしていただいていた。

(私は人に勧められて買った本を1年ちかく積読していた。)

あとはKerasの作者が書いた書籍*6も購入した。

だが2冊ともどちらかと言えば応用的な内容で、何事もできるかぎり基礎から理解したいタイプの自分は「結局、逆誤差伝播法ってなんじゃ!」となって一番有名な「ゼロから作る〜」*7も買って読んだ。(この本は本当に基礎の基礎からニューラルネットワークを学べるので素晴らしい。)

そんな風に紆余曲折、書籍を読みながらこれまた一番ベーシックなDC-GANを自分で一から実装してGenerativemasksを学習させてみた。

うーーん、なんとも。というかだいぶ厳しい。8時間かけてこれかーみたいな気持ち。

そこからさらにネットでサーベイを続けてlightweightGANというのを知った。

github.com

ちなみにこの名前は正式?なものではなく論文発表後に公式より先に公開された上のGitHubレポジトリからそう呼ばれているだけで、その後論文著者が公開した方のモデルはFastGANという名前になっている。

FastGANの方は更新頻度があまり高くないため、非公式だがメンテされており使いやすいlightweightGANを今回は使用した。

使用例についてはここでは解説しないがGitHubのREADMEがだいぶ親切なので苦労は少ないはず。

他にCLI部分のソースコードを読めば引数に様々なパラメータを設定できることがわかる。

このあたりの数字が何を意図した設定値なのかは先の参考書を読んでいたので割とすんなり理解できた。

とはいっても専門分野ではないので全部を理解しているわけではない。

それでもちょっとの知識とお金で好き勝手に動かせてしまうのは素晴らしい。

(気になる方はこちらの記事*8を読まれたい。)

言い忘れていたが私は実行環境にGoogle Colabを使用している。

無料でもGoogleの潤沢なリソースの一部を利用して試せるが、実行時間やメモリ容量にだいぶ制限があるため今回のようなことを自分もしたいとなった場合はColab Pro(月額約1000円)になったほうが良いだろう。

手順としては、OpenProcessingやNEORTからもととなる作品のソースコードをforkしてきて256x256サイズに収まるように手を加える。400~500枚ほど出力させてそれをGoogle Driveにアップロード。今度はGoogle Colabからマウントしてそれらの画像を読み込める形にする。(地道である。)

出力結果はみなさんにみてもらった通りだ。


さて、そんな感じで私の11月はあっという間に過ぎた。

結果的に生成された作品を眺めながら考えた。

今はノイズまみれの、それもせいぜい256x256サイズが、私がGANを使って生成できる限界だ。

5才児が学習元の素晴らしい作品を真似てクレヨンで書きました、みたいなところが表現の関の山で、その拙さを"面白い"と評価することもできるだろう。

しかし、GANやその周辺技術は日進月歩の世界で日々新しいフレームワークが開発されている。

今はまだネタツイートの延長線だが数年もすれば、本当に元のコードアートと見分けがつかない作品が大量に生成できるようになるかもしれない。

そうなったときにまたコードアート作品の権利について議論が起こるのだろうか。わからない。

わからないが、今回の制作を通してそうした未来が、少し楽しみになった。

私はやはり「Creative Codingは盆栽」だと思っている立場なので、仮に本物みたいな美しさだとしてもフェイクフラワーを買いたいとは思わない。

(GANで生成したコードアートをフェイクフラワーと解釈するのは個人的にはしっくりくる。)

一方で仮に私が逆の立場だったら、今度は先読みして事前に大量生成した作品をBotを使って毎日予約投稿しておくとか考えるか。

そうやって日々愚直に頑張っている姿をネット上で演ずる?十分、あるかもしれない。

もしそうなったらOpenProcessingやNEORTのようなところでソースコードと合わせて作品を公開することにまた意義が生まれるかもしれない。

もう一つの視点としては「動き」。

今回はあえて静止画の作品だけをお借りしたが、デジタルアートの大きな長所は時間という変数を使えるということだ。

(しかしそれもNVIDIAのフレーム補間技術とか見ていると確実とは言い切れなそうだが。)

いずれにせよ私は消費者として制作者のアウトプット以上にその人の姿勢を見ていたいのだな、ということを今回改めて認識できた。

翻ってそれは自分が制作する立場になったときに対しても同じことを思う。

もともとデジタルアートなんて、極論なくたって死なないわけですし。

今のネットの世界なんてどこを見渡してもエンドレスイタチごっこだしな。マジになるのは難しい。


wired.jp

気力が尽きたので、告知です。

今週末から京都の建仁寺両足院でインスタレーション展示を行います。

ここではStyleGANで学習&生成した枯山水のイメージをInstance Segmentationで分析するという作品を披露する予定です。

コンテキストを持たないイメージからコンテキストを読み取ろうとする、AI vs AIの構図の作品です。

(実は現場で設営しながら、この文章の最終チェックをしていたり。)

お時間あって暇な方、よかったら来てください。


最後に今回ご協力してくださったCreative Coderの皆さんに感謝します。

みなさんの作品が今後より適切に評価され、また多くの人たちの刺激になることを願います。

また、ご協力いただいた方々含めてNFTで自らのデジタル作品を出品こと自体を否定する意図はないことを念の為、強調しておきます。

非常にチャレンジングなことであることは間違いなく、私もいつか挑戦したいと思っています。

その上で、ただ「買ってくださーい」と言うのではなく何かみんなを納得させる展開が必要だなとも思っています。

先ほど書いた「姿勢」がその人の過去のストーリーであるとするならば、未来のストーリーまで考えてアクションを起こしていきたい、と意識高いことを言ってみたり。

そして、たまたまTLで見つけていい機会だと勝手に便乗させていただいた創作+機械学習 Advent Calendarの方々には技術的におもろいことやってねーじゃん、とか思われてたらごめんなさい。

来年はGANだけでなくもっと広く機械学習のことを学んでいきたいと思っています。

※この記事は創作+機械学習 Advent Calendar 2021の12月15日の記事です。