読者です 読者をやめる 読者になる 読者になる

永遠の大学生になるために

アラサーリーマンが永遠の大学生気分を味わう日記。就職活動関連記事や、ネタ面白記事、カップルのお話、映画、漫画、ゲームなどを書いていきます。

自作した人工知能に絵(画像)を描かせてみた

【スポンサーリンク】

今回は、私が作った人工知能に絵(画像)を描かせてみたお話です。

f:id:eternalcollegest:20160921182116j:plain

Googleのディープラーニングの手法から生み出された絵画をみて、人工知能の発達に驚いている人も多いと思います。あと数十年したら、人工知能が自発的に絵画を生み出すのではないかと考えている人も、いるのではないでしょうか。

 

私は大学時代に計算機を用いた絵画作成をしていました。しかし使用していた手法はニューラルネットワークなどではなく、『進化的アルゴリズム』を用いた手法です。

 

上述したGoogleのディープラーニングとは全く違った手法で、生成される絵画も異なります。今回はその絵画研究の歴史から始め、手法を説明し、実際に人工知能で作りだした絵をお見せいたします。

現在注目されている人工知能ですが、それには様々な分野があり、その一つが進化的アルゴリズムになります。

非常に長い文章になっていますので、もし難しい説明が苦手な方はこちらのリンクよりページ下部に飛んで頂ければ、人工知能で作った絵が見れます!

では、いってみましょう。

人工知能の絵画研究の背景

以下で人工知能を用いた絵画創発研究の背景を紹介します。この分野について詳しくない方にも是非読んでもらいたいので、省略して記載している部分もあることをご承知おき下さい。

進化的アルゴリズムとは

進化的アルゴリズムとは、下記の意味になります。

進化的計算の一分野を意味し、人工知能の一部です。個体群ベースの最適化アルゴリズムの総称となります。そのメカニズムとして生殖、突然変異、遺伝子組み換え、自然淘汰、適者生存といった進化の仕組みをモチーフとしたアルゴリズムを用います。

今回は進化的アルゴリズムの中でも最も一般的な、遺伝的アルゴリズムについて説明します。

BoxCar2Dというサイトをご存知でしょうか。

三角形とタイヤを用いてコンピュータがランダムで車を作成し、出来るだけ前進する事を目指します。

初期設定で20個の個体をコンピュータが生成しますが、初期の個体はランダムで作成している為、非常に適当なものが多く、ほとんど前進する事が出来ません。

 

f:id:eternalcollegest:20161211110457p:plain

しかし、その中でもより多く進めた個体をそれぞれ父、母として、子供を作成します。この事を『交叉』と呼びます。

 

f:id:eternalcollegest:20161211120440p:plain

より多く進めた個体は強い個体なので、子孫を残す確率が高く、逆に殆ど進めなかった個体は弱い個体なので、子孫を殆ど残せません。そして、何世代か後には下記の様に理に叶った個体が生まれ、長く走るようになります。

 

f:id:eternalcollegest:20161211120720p:plain

まさしく、コンピュータの中で進化が行われるわけです。 

ここで重要なのは、今回の場合は『長く走れる個体』という数値化できる指標があった為、上手く進化出来た事です。この数値化出来る指標を『適応度』と言いますが、遺伝的アルゴリズムにおいて、この適応度をどのように取るかが非常に重要になります。

絵画作成における進化的アルゴリズム適用時の問題点

人工知能における絵画研究はニューラルネットワークを使った研究の他に、進化的アルゴリズムを使った絵画創作の研究もされています。

今回は後者について説明します。ニューラルネットワークとは手法が全く異なるので、その点に注意して読んで下さい。

※もし前者の方を知りたいのであれば、以下のリンクの記事をおすすめします。

進化的アルゴリズムは元々最適解探索や機械学習の分野で採用され、大きな成果を上げてきました。 しかし現在、それらの技法は芸術の分野において、非常に苦戦しています。

なぜなら、創造的な作品を数値化する事が非常に困難だからです。

簡単な例を示します。

ここにピカソの絵画と、ゴッホの絵があったとします。それをAさんとBさんに見せ点数をつけて貰いました。

 

f:id:eternalcollegest:20161211122122p:plain

Aさんは抽象画が好きなのでピカソに高得点を、Bさんは力強い筆致が好きなので、ゴッホに高得点を付けました。

このように、芸術作品は人により捉え方が大きく変わり、数値化しにくい事が原因です。つまり前項で説明した『適応度』を一意に取る事が出来ない為、美しい絵画を描く為に、何を指標に進化させれば良いかわからないのです。 

先行研究概要

この分野の研究はR.Dawkins のバイオモルフから始まり、上記の適応度の問題を解決する為、大きく分けて以下2つの手法が用いられてきました。

  • 対話型進化計算(Interactive Evolutionary Computation)
  • 進化計算(Evolutionary Computation)

◆対話型進化計算(Interactive Evolutionary Computation)

ユーザの主観的評価に基づいて最適化を行う技術であり、簡単に言えば、フィットネス関数を人間に置き換えた技術です。絵画の評価については適応度が数値的に表現しにくいため、この対話型進化計算が非常に多く用いられています。

R.Dawkins のバイオモルフを用いて簡単に説明しましょう。

以下の図の様に、個体があります。この中で、あなたが一番好きな個体を選択します。そうすると、その個体を父として、新たな子が生み出されます。その生み出された子から、また好きな画像を選択するという作業を繰り返します。

f:id:eternalcollegest:20161211122412p:plain

交叉が繰り返される事で、自分が良いと思う個体(絵画)へ少しずつ形が変化していき、最終的には望む個体(絵画)を作成する事が出来るという訳です。 

f:id:eternalcollegest:20161211122425p:plain

言いかえれば、この方法は『適応度』を人間が逐一コンピューターに知らせてあげる方法です。

以下のサイトで、実際にバイオモルフを触る事が出来るので、興味がある人は触ってみて下さい。思いもよらない進化があって楽しいですよ!

◆進化計算(Evolutionary Computation) 

絵画の生成に関する研究においては、前述した対話型進化計算を用いたものがほとんどで、進化計算の手法を用いたものは非常に少ないです。

その中でもJ. McCormackはニッチ構築*1のプロセスを採用し、各エージェントが限られた条件下で様々な絵を描画することを示しました。

f:id:eternalcollegest:20161211122652p:plain

また他にも日本でこの分野を詳細に研究している 畝見達夫氏は、進化計算を用いて複雑なコンピュータグラフィックスを生成しています。

f:id:eternalcollegest:20161211122832p:plain

彼の論文は以下リンクにありますので、興味のある方はクリックしてみて下さい。

人工知能を用いた画像生成モデルの作成

今回モデル作成に当たっては、対話型進化計算(Interactive Evolutionary Computation)ではなく、進化計算(Evolutionary Computation) を採用しました。

対話型進化計算の欠点としては、

  • 人間が世代毎に好きな絵を選ぶ為、絵の進化が非常に遅い
  • 世代毎の絵は似た絵が多く、人間でも優劣を判断しにくい
  • ある程度、システムに慣れなければ、上手く絵を進化させられない

が挙げられます。 従って今回は『適応度』を決定すれば自動で進化する進化計算を採用しています。

モデル概要

モデルの概要を説明します。

初めにユーザーが好きな画像を複数枚用意し、目標画像を一つ選択します。交叉は画像の結合やコラージュによって行われ、それがテーマ画像にどれだけ近いかで、適応度を与えます。高い適応度を与えられた個体は、より多く次の世代に自身の画像を残すことが出来、適応度が低い場合は淘汰されます。また、突然変異によりランダムで画像が変化することがある。

以下、簡単なフローチャートを書きます。 

f:id:eternalcollegest:20161211124318p:plain

制作環境

システムの作成には、Processingを用いました。ProcessingとはCasey ReasとBen Flyによって開発された、電子アートやビジュアルデザインの為のプログラミング言語・総合開発環境(IDE)です。Javaをベースに設計されており、グラフィック機能に特化しています。プログラミングに馴染みのないデザイナーやアーティスト向けに作られていて、複雑なコードを必要とするキーボード操作や、マウス操作などの対話的機能を簡単に記述できます。  

交叉方法

個体の交叉方法について記載します。

交叉は以下4つの結合手法にて行われますが、子画像がどの結合より生成されるかは乱数にて決定されます。

◆縦・横分割結合 

選択された父画像、母画像において、縦割りの場合は縦に、横割りの場合は横にそれぞれの画像を分断し結合させたものを子画像とします。また、分断する箇所は乱数により決定します。

f:id:eternalcollegest:20161211125046p:plain

◆コラージュ結合

コラージュ結合について説明します。選択された父画像、母画像において父画像に縮小もしくは拡大、平行移動、回転を加えた母画像を張り付ける結合方法です。母画像がどの程度変形するかは、乱数により決定されます。また、画像の変化にはアフィン変換*2を用いました。

f:id:eternalcollegest:20161211125512p:plain

◆エッチング結合

エッチング結合について説明します。選択された父画像、母画像において、父画像を元に母画像をアフィン変換後張り付けます。張り付けた母画像の各ピクセルにおいて、母画像が黒かつ父画像が黒の場合は、父画像を白と変化させます。また、母画像が黒かつ父画像が白の場合には、父画像は白のままとします。これにより、父画像を母画像により白く抜き出すことが出来ます。

f:id:eternalcollegest:20161211125808p:plain

適応度計算

適応度評価法について説明します。作成された子画像は目標画像にどれだけ一致しているかで点数が与えられる。目標画像は輝度値より3領域に分類され、それぞれ

領域1:一致したら 2点を与える(一致しなかった場合 -1点を減らす)

領域2:一致したら 2点を減らす(一致しなかった場合1点を与える)

領域3:一致してもしなくても点数に変動なし

とします。ただし、ユーザが任意で入力する事により、領域3にも点数を持たせることが出来る。ピクセル毎に上記を計算し、その総和が個体の適応度となります。

結果

画像を進化させた結果を張ります。 

最初に入力する自分の好きな画像を以下4枚とします。

f:id:eternalcollegest:20161211130217p:plain

そして、目標画像を以下とします。(3領域に分類済)

f:id:eternalcollegest:20161211130628p:plain

以下、世代毎の最も適応度が高い画像をピックアップします。

1) 50世代目

f:id:eternalcollegest:20161211131144p:plain

2)1000世代目 

f:id:eternalcollegest:20161211131253p:plain

3) 2400世代目

f:id:eternalcollegest:20161211131428p:plain

元画像からは想像出来ないような、かなりダイナミックな画像が創出されました。

元々この手法を思いついた経緯として、イラストレーターさんなどがネタに困った時に、適当に画像をコンピューターに入れ、想像をくすぐる面白い画像が出たら、創作活動の助けになるのではないかと思った事がきっかけです。

他生成された画像を何枚か貼っていきます。 

f:id:eternalcollegest:20161211131630p:plain

f:id:eternalcollegest:20161211131906p:plain

また、エリート進化*3を取り入れた画像も以下に貼っていきます。

f:id:eternalcollegest:20161211132313p:plain

左から順番に、200世代目、1000世代目、4800世代目となっています。 

まとめ

以下、まとめます。

人工知能による画像の作成には、現在話題になっているニューラルネットワークを用いた手法以外にも、進化的アルゴリズム(遺伝的アルゴリズム)を用いた手法も存在しています。

今回は進化的アルゴリズムを採用し、2値化した画像を様々な方法で結合し、目標画像に近づける過程で生まれる、画像についてお話しました。

遺伝的アルゴリズムを用いる場合は、どうしても進化過程を数値的に評価する為に、適応度を設定しなければいけません。その為、現在の主流とはかなりかけ離れた手法となりましたが、このような研究分野もあることを知って頂ければ幸いです。

ニューラルネットワークを用いた手法では、より人間に近い絵を描くように進化させていきますが、進化的アルゴリズムの手法の場合は、計算機が生み出す個体のダイナミズムをそのまま芸術と呼ぶような研究も多いです。

現在どちらのアプローチからも様々な研究が行われており、一概に優劣はつけれません。今後、進化的アルゴリズムを用いた手法で大きなブレイクスルーが発見される可能性もあります。

2040から2050年くらいには、人工知能は芸術の分野に進行して、Webデザイン、イラストレーターの仕事はなくなっていくと言われています。

もしかしたらそこまでの時間を要さず、上記業務は、デザインを作るのではなく、クライアントの要望に合わせてAIをチューニングするようになるかもしれません。

芸術の分野ではどちらが素晴らしいかを一概に決める事は出来ません。AIが例えどんなに素晴らしい絵を描いたとしても、上記したピカソとゴッホの例の様に、鑑賞する人によって評価は分かれます。その為、人工知能がどんなに進化しようとも、人が生み出す芸術には、価値があると私は思っています。

おすすめ書籍

以下私が読んだおすすめの書籍について、2冊紹介します。

 

人工知能を研究している方ならば、一度は耳にした事があるリチャード・ドーキンスの名著です。進化論について非常に丁寧な解説があります。他『利己的な遺伝子』もおすすめです。

 

少々昔の本ですが、非常に分かりやすく人工知能についての記載があります。初学者の方でも容易に理解できる内容で、とても読みやすいです。

参考文献

以下、今回のエントリーを書くにあたり参考にした文献を記載します。

  • R. Dawkins, The Blind Watchmaker. Essex: Longman, 1986.
  • Artificial Evolution for Computer Graphics, (Computer Graphics, Volume 25, Number 4, 1991)
  • 畝見達夫, 遺伝的アルゴリズムとコンピュータグラフィックスアート, 人工知能学会, vol.9, No. 4, pp.42-47 (1994).
  • Enhancing Creativity with Niche Construction, (Artificial Life XII ,Odense, Dennmark. MIT Press, Cambridge MA, pp. 525-532, 2010)

 

ウマキ

*1:生物種が同一種ないしは関連する生物種と共同して、固有の環境をつくりだし、生存の可能性を広げることを意味します。ビーバーのダム構築は、典型的なニッチ構築といえます

*2:画像の変形に用いられる手法。拡大、縮小、平行移動、回転を3×3の行列で表す事ができ、画像処理が容易になります。

*3:遺伝的アルゴリズムにおいては、各個体の適応度に基づいて確率的に次世代の母集団を形成する。このため、交叉や突然変異によって良い個体が生まれても次世代に残らないことがある。それを避けるため、個体集団の中で適応度が高い個体はそのまま次世代に残す手法である