2021.01.12

Alifeは何だ?「人工生命」の作りを体験してみる(一)

こんにちは、次世代システム研究室のC.Z.です。

ここ数年、「AI」という言葉を聞いたことがない人がほぼいないだろうと思います。「AI」、すなわち「人工知能」はすでに、一つの研究分野だけではなく、社会の各所に浸透していて、さらに日々進化していきます。

その一方、「人工生命」といえば、ロボットなどの実物をすぐに思い浮かべるだろうと思います。ところが、「人工生命」が「人工知能」技術によって作られる「生命」だ、という直観的な認識のほかに、「人工生命」それ自体は「Alife」という一つの研究分野として、ある程度の独立性をもち存在しています。

そこで、本文において、筆者は「Alife」の背景(先行研究)とコンセプトをまとめて、また、Alifeモデルの実装体験(「作って動かすALife」– O’Reilly)をしてみました。

Alifeはどんなものを研究する?

Alifeとは、Artificial Life(人工生命)のことです。

この分野における一番大規模な学会の「Alife」学会は、International Society for Artificial Life (ISAL)により毎年開催されています。

Previous ISAL-supported conferences – Artificial Life (alife.org)

なお、2020年にALIFE Lab.と東京大学次世代知能科学研究センターとの共同主催で「TOKYO ALIFE 2020」学会も行われました。

https://alifeconference.jp/

このなか、2018年のAlife 2018学会は東京のお台場に開催され、筆者も見学に行きました。当時のメモをたどると、その学会の一番著しいスローガンは:

LIFE AS EMERGENT PHENOMENA.

(筆者訳:生命が創発的な現象である・創発的な現象である生命)だろうと思います。

その文によって、「Alife」という研究の本質が定義されただけではなく、「Alife」と「AI」の区別も明確に提示されたと思います。

近年、「AI」の研究が急速に発展し、直近に結構注目が浴びる成果を挙げると、DeepMind(Alpha GOを開発した企業)のプロテイン予測AIや、ルールなど知らずにゲームできるMuZeroがあり、また、OpenAIもGPT-3の上で画像とテキストを連携できるDALL/EとCLIPという2つの神経ネットワークを発表しました。

しかし、どれだけ強いといっても、「AI」ができることは、大量の情報に基づき「最適」な結果を探し出すことです。すなわち、現在「AI」分野の強みは、「最適化」問題の解決だと思います。その一方、無から有に、完全な新しいもの・自然・アイディアを作ることなど「創発的」問題に弱いです。

それに対し、「Alife」研究は、生命をどうやって作る・作ったという目的をした研究より、むしろ生命の働き方(例えば自己組織化など)から、「創造性」が必要な全ての分野に、その創造性を活用するというテーマの研究だ、のではないかと考えます。

生命のパターン

自然界では、生命だけでなく、非生命現象にも色々なパターンが見えます。これらのパターンは誰かが設計したのではなく、自然に生まれて出現したものです。たくさんの研究より、パターンの構成要素が違いますが、幾つ普遍的な構造が存在することがわかります。

以下において、代表的なパターン生成モデルとして、Gray-Scottモデルを紹介し、実装体験します。

Gray-Scottモデルの概要

「反応と拡散」というロジックの代表的なモデルとして、Gray-Scottモデルが挙げられます。

その全体の仕組みは以下のページにきれいに説明されています:

Reaction-Diffusion Tutorial (karlsims.com)

その内容を抜粋すると、

まず、「反応」は、3つのルールよりコントロールされています。

  1. A要素が一定の”feed” rateより追加されている
  2. 2つB要素が1つA要素をB要素に転換することができる(実質の化学反応)
  3. B要素が一定の”kill” rateより減少されている
次、「拡散」について、


拡散の速度も定義されています(A>B)。

この二つの作用によって、Gray-Scottモデルが以下のようになりました:


ここでは、

は濃度と考えられ(A+B=1)、は拡散の度合(は事前設定した常数→拡散の速度)、は反応作用(B+B+A→B+B+B)、は要素AとB自身の変化(feedとkill)になります。
laplacian_a = (np.roll(a, 1, axis=0) + np.roll(a, -1, axis=0) +
               np.roll(a, 1, axis=1) + np.roll(a, -1, axis=1) - 4*a) / (dx*dx)
laplacian_b = (np.roll(b, 1, axis=0) + np.roll(b, -1, axis=0) +
               np.roll(b, 1, axis=1) + np.roll(b, -1, axis=1) - 4*b) / (dx*dx)

a_new = a + (Da*laplacian_a - a*b*b + f*(1.0-a))*dt
b_new = b + (Db*laplacian_b + u*b*b - (f+k)*b)*dt
このような空間内要素状態の不安定より、色々のパターンが自発的に生成し、組織化(一定の安定模様)になります。

生成したパターン

feed rateとkill rateの調整により、自然界に見えるさまざまなパターンが作れます。

以下では幾つのパターンが挙げられます(ブログ上に表示させるため、各パターンの録画時間や画像の表示頻度が異なります)。
  • stripe(f, k = 0.022, 0.051)
  • waves(f, k = 0.025, 0.05)
  • bubbles(f, k = 0.012, 0.05)
  • amorphous(f, k = 0.04, 0.06)
  • spots(f, k = 0.035, 0.065)

個体の創発

まずは、「個体」はどのように定義されるかについて考える必要があります。後で紹介する個体創発のSCLモデルを例として、生物の細胞を考えましょう。

細胞は膜に囲まれます。膜は細胞を外と隔離させますが、透過性を持つ組織であるため、ほかの物質(栄養など)の流出と流入ができます。そのような機能を備える膜があったこそ、細胞は個体として初めて成り立ち、生命になることが可能となります。

なぜかというと、もし「ある細胞」が周囲の環境から完全に独立すると、安定の唯一状態になり、生命になれません。一方、もし「ある細胞」に膜がないと、その構造がどんどん変わっていくことになり、個体というコンセプトが存在しなくなります。

前節に紹介したGray-Scottモデルにより色々なパターンを生成しました。しかし、パターンの模様が安定なので、パターンだけでは生命とは言えません。環境の変化に適応できる、ある程度の不安性が持つシステムでないと、個体の創発ができなく、生命になれません。

上記の概念の代表的なモデルとして、SCL(Substrate Catalyst Link)モデルを紹介し、実装体験します。

SCLモデル

名前の通り、SCLモデルには以下の3つ種類の分子が存在します。
  • S:Substrate(基質分子)
  • C:Catalyst(触媒分子)
  • L:Link(膜分子)
また、膜分子のなかで、ほかの分子が存在することも可能です。

さらに、Gray-Scottのように、要素間の反応作用が適用されます。但し、SCLモデルは6つの反応があります。
  1. 膜分子の生成:S + S + C→ L + C
  2. 膜分子の分解:L → S + S
  3. 膜間の結合:L + L → L_L
  4. 結合膜の崩壊:L_L → L + L
  5. 膜分子の基質分子吸収:L + S → L(S)
  6. 膜分子の基質分子放出:L(S) → L + S
各分子はランダムで移動でき、各反応は異なる条件でそれぞれが一定の確率で発生しています。

例えば、2つの膜分子の結合確率について、以下の膜分子の状態に応じ、確率が変わります。
  • 2つの膜分子ともまだリンクされていない
  • なかの1つの膜分子たけが既にリンクされていた
  • 2つの膜分子ともまだリンクされている
if len(p['bonds'])==1 and len(n_p['bonds'])==1:
    prob = chain_none_prob
elif len(p['bonds'])==0 and len(n_p['bonds'])==0:
    prob = chain_double_prob
else:
    prob = chain_single_prob
結論を話す前、まず実際の可視化を見てみしょう。
  • 1つ触媒分子だけ(赤:Catalyst、緑:Substrate、青:Link)
  • もう少し基盤を広める

このように、膜のリンクできたら、破壊されたり、また修復されたり、ほんとの細胞のような生成プロセスが見えてきました。

つまり、SCLモデルの示した結論として、「個体の構成プロセスが個体の存在を決める」ということです。その一方、ロボットに自主的に行動させるため、感知用センサーと行動用のモーターが必要で、この間の接続が行動の源となります。これこそが「AI」と「Alife」の違いだろうと思います。

まとめ

まだ浅いですが、Alifeの勉強より、生命のプロセスがただの理論ではなく、自身の手よりそれほど目の前に再現できるという、びっくりほど面白さを感じました。

この分野をぜひ勉強続けていきたく、Alifeの創発性の活用性を探索していきたいと考えます。

最後に、次世システム研究室では、ビッグデータ解析プラットホームの設計・開発を行うアーキテクトとデータサイエンティストを募集しています。興味を持って頂ける方がいらっしゃいましたら、ぜひ 募集職種一覧からご応募をお願いします。 一緒に勉強しながら楽しく働きたい方のご応募をお待ちしております。

Pocket

関連記事