AI

CPPN ~幻想的な幾何学模様を生成するAIモデル~

こんにちは!今回は生物の発生過程で起こる化学反応を再現したAIモデル「CPPN: Compositional Pattern Producing Network」を紹介したいと思います。

CPPNとは

CPPN: Compositional Pattern Producing Network とはネットワーク構造をもった幾何学的パターンの生成器です(元論文: Compositional Pattern Producing Networks: A Novel Abstraction of Development)。元になっている理論は生物の不思議な模様が作られる過程や、発生途中でのタンパク質の空間的パターン形成を再現する化学反応式です。例えば、ショウジョウバエの体節の配置は受精後のごくわずかな時間で決定しており、その要因である胚内での空間的なタンパク質勾配がガウス分布に伴った拡散反応で制御されていることが明らかとなっています。

Figure2: Compositional Pattern Producing Networks: A Novel Abstraction of DevelopmentFigure2: Compositional Pattern Producing Networks: A Novel Abstraction of Development

 

CPPNモデルの入力として空間座標(x, y)を入れると、その座標の潜在値(value)を返します。これを空間内の全座標で行うことによって手書きでは骨が折れそうな、規則性のある幾何学模様を生成することができます。

Compositional Pattern Producing Networks: A Novel Abstraction of Development (Figure1)Figure1: Compositional Pattern Producing Networks: A Novel Abstraction of Development

 

このネットワーク構造の最大の特徴は多層パーセプトロンと比べて自由なネットワーク構造をとるところです。各ノードには線形、周期性、対称性などの様々な特性を持った単純な関数が入り、ノードを通過するたびに各関数が合成されて最後の潜在値が出力されます。

Figure3: Compositional Pattern Producing Networks: A Novel Abstraction of DevelopmentFigure3: Compositional Pattern Producing Networks: A Novel Abstraction of Development

 

また、多層パーセプトロンのようにレイヤーと呼ばれる層があって層と層の間で全結合するのではなく、ネットワーク間で自由な動きをします。

Figure4: Compositional Pattern Producing Networks: A Novel Abstraction of DevelopmentFigure4: Compositional Pattern Producing Networks: A Novel Abstraction of Development

CPPNから生成される幾何学模様、他応用例

では、実際にどのような幾何学模様が作られるかを見ていきましょう。簡単にPythonでコードを書いて作ってみました(複雑なところまではいかずに多層パーセプトロンで実装しています)。用意したノードは tanh, tanの二種類だけですが、それでも幻想的な幾何学模様が生成できています。

また、元論文では色々な幾何学模様が生成されています

Figure14: Compositional Pattern Producing Networks: A Novel Abstraction of DevelopmentFigure14: Compositional Pattern Producing Networks: A Novel Abstraction of Development

 

さらに、Web上でシミュレーションもできます。ここでは入力変数に時間とマウスの座標も追加され、ぐりぐり動くようになっています。

Real time abstract art generation using a neural net (CPPN)

他にも、CPPNを generatorと見たてて discriminatorと敵対させるGANとの併用によって、独特な表現を持った文字を生成しています。(CPPN-GAN)

 

また、ネットワーク構造を進化させるモデルである NEATと併用し、絵を進化させることもできます。(HyperNEAT)

Picbreeder

同じ技術でソフトな仮想生物を生成することにも成功しています。(3Dでの生成)

Unshackling Evolution: Evolving Soft Robots with Multiple Materials and a Powerful Generative Encoding

というわけで、少し変わったAIモデルを紹介しました。生物の進化が AIで表現でき、オマケにアートにもなるというとても不思議なモデルでした。

最後まで読んでいただきありがとうございました。

Yasui
アナリティクス&デベロップメント所属 特技はPCR