BioErrorLog Tech Blog

試行錯誤の記録

人工生命をつくりたい - 思うところとアプローチのメモ | ALife

生き物をつくりたい、そのモチベーションと必要そうな知識 / アプローチのメモを書き残します。


こんにちは、@bioerrorlogです。

まず冒頭に、今回の記事を書くに至った個人的所感、背景を書き出します。 必要に応じて本編まで飛ばしてください。

思うところ/個人的背景

個人的な話ですが、幼い頃から虫が好きでした。 道端や空き地に住んでいる彼らは小さく愛らしい一方、不気味で予測不能なところが時間を忘れるほど面白いものでした。

この生き物への興味を持ったまま、大学ではその一分野を研究しました。 面白いデータに出会ったときや膨大な数字の中からパターンを解析したときなど、大いに感動・勉強になった経験がたくさんあります。

しかし、小さい頃に感じたような腹が浮き上がるような好奇心までは感じられなかった、というのが正直なところでした。 その理由のひとつは恐らく、還元主義的な考え方に疑問があったからだと今振り返って思います。

「生物を形作るひとつひとつの遺伝子機能を解明しても、その集合結果たる生物そのものを理解することはできないのでは」ということです。

ある遺伝子の機能をひとつ明らかにすることは、もちろん人類の叡知を一歩拡大する素晴らしいことです。 自分の研究が形になったときは、大きな喜びと充実感が溢れました。

しかし、何万と解明されている遺伝子の機能に何万一個目を追加しても、生命がこの手に感じられるとは思えなかったのもまた事実です。


さて、のちに私はITの世界に飛び込みました。 何でも自分のロジックで作ることができるというのは、この世界の強みです。

材料費も、(生物のような)交配時間も必要なく、知識や情報さえあれば何でも作ることが出来ます。 コンピュータのパワーは、年々掛け算の速度で高まっています。 新しい技術も、日進月歩で進化しています。


ここでひとつ思ったことがあります。

つまり、「生き物も作れるのでは」ということです。

前置きが長くなりましたが、伝えたかったのはこのことです。

生き物をつくりたいのです。

要素ごとに分割し、その一つ一つを解明しても生命を感じられないのであれば、作ればいいのではないか。 目覚ましい技術・研究の進歩は、それを可能な範囲にまで呼び寄せているのではないか。


とはいえ、現時点での私は何の背景知識も、良い考えもありません。 そこで今回は第一歩として、生き物をつくるために着目すべき分野/キーワード/アプローチを思いつくままに書き並べていき、頭の中を整理していきます。

聖書の世界観では、神が最初の人類を創造する | ミケランジェロ 「アダムの創造」 / Public domain

アプローチ

人工生命

まずは何より、人工生命という研究分野を調べる必要があります。

人工生命 (Artificial Life, A-Life, ALife, AL)とは、その言葉を生み出し、第一回人工生命国際会議を主催したクリストファー・ラングトンによると*1

The term Artificial Life literally means "life made by humans rather than by nature."

文字通り、自然によってではなく人間によって作られた生命のことです。

クリストファー・ラングトン | Wikipediaより

面白いのは、ここでいう「生命」という言葉のとらえ方です。 これは、地球上に「すでに存在する生命(life-as-we-know-it)」だけを指しているのではなく、現実世界では生まれ出ることのなかった「ありえたはずの生命(life-as-it-could-be)」をも含んだ言葉として使われているのです。

つまり、私たちが目にしている「すでに存在する生命」は、無数に存在する生命の可能性のひとつに過ぎない、という解釈です。

漠然と新鮮な切り口を求めていた私としては、これはとても魅惑的な考え方でした。


この人工生命という分野にどのような研究があるか、その方位を描くとすれば、次のような二つの軸がわかりやすいと個人的に思っています。

一つ目は、「弱い」人工生命 /「強い」人工生命という軸です*2

「弱い」人工生命は、生命の一側面をシミュレートしようとする考え方です。 「すでに存在する生命」あるいは「ありえたはずの生命」をシミュレートし、それらをより深く理解しようとすることを主眼に置きます。

一方、「強い」人工生命は、文字通り人間の手によって「生きている」生物を作ろうとするものです。

私としてはどちらも大いに興味があるので、隔てなく調べる価値があると思っています(特に後者の研究がどれほど進んでいるのかには興味があります)。


二つ目の軸は、人工生命を実現する手段です。 これによって、ハードウェア / ソフトウェア / ウェットウェアの3つの区分に分けることが出来ます*3

ハードウェアを用いた人工生命は、ロボットやコンピュータアーキテクチャを対象としています。

ソフトウェアを用いた人工生命は、コンピュータ上でのモデルを対象としています。

ウェットウェアを用いた人工生命は、生化学的手法を対象としています。

私としては、ソフトウェアを対象とした人工生命にスポットを当てていきたいと思っています。 ハードウェア/ウェットウェアももちろん興味ありますが、自分一人でやるのには時間・費用が間に合いません。


今はこの分野に対してこのようなぼんやりしたイメージですが、キーとなる研究や書籍にあたっていくことで、少しずつ何かが得られればという思いです。


有名な人工生命モデル、"Tierra"を実行してみた動画:

複雑系

次は複雑系という分野についてです。

この分野については正直何も知らないのですが、生命の本質を語るには避けて通れない考え方のようです。


生命はどのような状態に生じうるのか。
クリストファー・ラングトンは情報の複雑性に着目し、「カオス」と「秩序」の中間点「カオスの淵」に生命はあると考えたそうです。

クリストファー・ラングトンによる複雑性の分類。図はnode99.orgより引用

この図について、スティーブン・レビーの書籍「人工生命-デジタル生物の創造者たち」の解説を引用します。

左側は情報が凍り、何もが生きられない場合。 右に進むと結晶が生じるようなより柔軟性のある領域があるが、情報の移動は限られ、ここでも生命は維持できない。 右端まで行ってしまうと、情報があまりに自由に動きすぎてその構造が維持不能になり、あまりに無秩序なので生命は維持できない。 中央部の「スイート・スポット」といえる部分だけで、情報はその発信構造を維持できるほど安定し、発信できる程度にゆるやかだ。 生命はそこにいる。

完全なカオスでもなく、結晶のように規則的でもない、その中間点に生命は存在する、という話は、直感的にうなずけます。

しかし、私には直感的にしかわかりません。

複雑系という考え方、その原理や既知の事項を知れば、生命とは何ぞやという疑問に対して、情報という側面からの見方ができるようになると感じています。


人工知能

いま流行りの人工知能ですが、人工生命とも密接に関わっていくのではと感じています。

実際、ディープラーニングのパイオニアとして有名なジェフリー・ヒントンや、UberのAI研究所トップであるケネス・スタンリーなど、いま大活躍している人工知能研究者の中にも人工生命から影響を受けた方が多くいます*4

また、2020年のALife conferenceのテーマが “New frontiers in AI: What can ALife offer AI?” であるところを見るに、人工生命側からの人工知能への関心も高まってきているようです。

2020年 ALife conferenceの表紙。画像はカンファレンスホームページより引用


また個人的には、OpenAIのIgor Mordatchの研究が強く印象に残っています。

複数の人工知能エージェントの相互作用を用いた数々の研究を行っており、最近ではエージェントにかくれんぼをやらせる研究が面白かったです。 鬼と子に分かれたエージェントが対戦を繰り返して上達していくうちに、想定されていなかった方法でエージェントがふるまい始めるようになります。

鬼(赤)のエージェントが自ら箱に乗ったまま箱を移動させるという予想外の方法を見出した。Emergent Tool Use From Multi-Agent Autocurricula, Bowen Baker et al., 2019, Fig. 1より引用

設計者の意図しなかったふるまいを始めるというのは、まるで世代を跨ぐ生物の進化のような、単なる最適化で終わらない面白さが伺われます。


人工知能は大きな研究分野ですが、ところどころをピックアップして調べていくと面白そうです。


コンピューターウイルス

コンピューターウイルスは、人工生命をもっともよく体現している具体例のひとつと言えるのではないでしょうか。

これらは自己増殖し、変異し、複雑で、しばしば制御不能です。

実際、人工生命とコンピュータ-ウイルスを結び付けた研究も数多く行われてきたようです。 Google Scholarでちょっと調べただけでも、多くの論文が見当たります。

偶然にも、コンピューターセキュリティについては好きで少し調べていたこともあります

コンピューターウイルスの原理を理解することで、人工生命の具体的なイメージの一例が得られるかも知れません。


近年猛威を奮ったランサムウェア "WannaCry" | Wikipediaより

アート

最後は、アートの世界についてです。

人工生命には、ハードウェア / ソフトウェア / ウェットウェアの3つやり方があると前述しましたが、4つ目のフィールドとしてアートを掲げる向きもあるようです*5

実際、2018年のALife conferenceでは、アートアワードが開催されています。

Lenia – Mathematical Life Forms from Bert Chan on Vimeo.

例えばこの "Lenia – Mathematical Life Forms" はアートアワード受賞作品の一つで、連続的時空間による二次元セルオートマトンです。 論文ソースコードも公開されているので、ぜひ自分でも触ってみたいものです。


個人的には最近、ジェネラティブ・アート(Generative Art)というものにも注目しています。

ジェネラティブ・アートとは、自分の手で絵を描くのではなく、プログラムなどを用いて与えられたアルゴリズムをもとに、生成的に描かれるアート作品です。

簡単なアルゴリズムから生まれる複雑で予想外に美しい絵は、見ていても、作っていても、時間を忘れられるほど面白いものです。

最近描いたジェネラティブアート作品のひとつ。ふわふわな感じが面白い。

私が特に好きなのは、ジェネラティブ・アートの根底にある考え方です。 マット・ピアソンは著書「ジェネラティブ・アート - Processingによる実践ガイド」で、繰り返しジェネラティブ・アートとカオスとの関係性に触れています。

私の考えでは、ジェネラティブ・アートは、光とピクセルのバレエで表されるような、自然な調和をひねりだそうとするカオスと秩序の力の間の、永遠で巨大な戦いの副産物にすぎません。


私たちは、有機性(オーガニック)と機械性(メカニカル)の間、カオスと秩序の間の、ちょうど良くバランスがとれたスイートスポットを探しています。

「カオスと秩序の間のスイートスポット」という考えは、まさしくクリストファー・ラングトンの提唱したカオスの淵、生命のいる場所と一致しています。 一見関係ない二つの分野でこのような同じ考え方が見られるのは、心躍ることです。


このようにアートは、人工生命の有効な出力形式であり、生命を肌に感じる良いアプローチなのでは、と感じています。


人工生命モデルのひとつ、セルオートマトンを利用して描いた絵

おわりに

生き物をつくるために必要そうな知識やアプローチを、思いつくままに書き並べました。

これは、第一歩時点での感情を書き残した、メモのようなものにすぎません。

やりたいことはたくさんありますので、肩の力を抜いて気軽にやっていきます。

関連記事

www.bioerrorlog.work

www.bioerrorlog.work

www.bioerrorlog.work

www.bioerrorlog.work

参考

*1:Artificial life: An overview, CG Langton, 1997 を参照

*2:人工生命-デジタル生物の創造者たち, スティーブン・レビー, 1996 を参考にしました

*3:作って動かすALife, 岡瑞樹 et al., 2018 を参考にしています

*4:Introduction to Artificial Life for People who Like AI, Lana Sinapayen, 2019, The Gradientを参照

*5:再び、Introduction to Artificial Life for People who Like AI, Lana Sinapayen, 2019, The Gradientを参照