人工生命による発生と進化の研究
ayu-mushi
1
人工生命とは?
・コンピュータで生物っぽい現象をシミュレートする (※機械や化学物質で作るのもある)
・進化
・Tierra (遺伝子をコンピュータプログラムとして表す)
・自己複製
・生態系
・動き
・歩く、泳ぐなど。 Karl Sims
・蟻のエサ探し (蟻コロニー最適化)
・発生
・今回のテーマ
2
遺伝的アルゴリズム
進化を参考にしたアルゴリズムの一種
プログラムを何らかの目的を達成するために進化させる
1. ランダムに最初の世代を作る
2. 遺伝子に基づき動かしてみて、目的を表現した評価関数に基づき、その中からたまたまうまくいった個体 (エリート) を何匹か選抜 (選択)
3. (2)のエリートの遺伝子を突然変異・交叉して新世代を生成
5. (2)に戻り、繰り返す (100世代でも1000世代でも)
品種改良みたいな
(画像: Wikipedia)
3
遺伝的アルゴリズムの例: ブランコを漕ぐ
・ブランコを一周する間の動きを遺伝子で表現。漕ぐ途中でしゃがむ動きは0、立つ動きを1で表現する。1001010100のように (本当は32個) 並べて動きを表す。
4
人工生命による発生のシミュレート
積み木のようなものを組み合わせるアプローチと、1つの細胞から分裂して作るものがある。
積み木タイプはKarl Simsのもの (画像右)などで、
矢印と丸の図から生物の形を作る仕組み。
1細胞タイプはミハウ・ヨアヒムタークらのものがある
1細胞からのはリアルだが遅い。
どちらのモデルもただ発生するだけでなく、何らかの動き
(移動など)をして、評価が高いものが選抜される仕組み
5
ミハウ・ヨアヒムタークらの発生・変態シミュレータ
・単細胞から分裂して体を作る
・移動距離で評価
・ニューラルネットワークで遺伝子を表す (!)
・各細胞のニューラルネットは最初は同じのが用意されているが、動作中は細胞毎に独立して動く
・NEAT (neuroevolution of augmenting topologies) という遺伝的アルゴリズムの一種に基づき進化させる
・最初は (ランダムではなく) シンプルなネットワークから進化させる
・両生類や昆虫のように変態し、水と陸の両方で歩く泳ぐ移動距離を評価される
6
ヨアヒムタークらの発生・進化シミュレータ
発生の結果としてタコのような柔らかい体が作られる。各細胞についたバネのようなものが周期的に伸縮して体は運動する。
「次にどっち方向に分裂を作るか」「分裂するかどうか」「細胞死」「モルフォゲンの分泌」「伸縮による運動の仕方 (伸縮速度・周期のズレなど)」が遺伝子で制御されている
※モルフォゲンは、場所によって濃度が違って位置情報として働く物質 (ショウジョウバエで前後軸の情報を伝えるビコイドなど)
7
参考文献
・Michał Joachimczak ”Harnessing evolutionary creativity: evolving soft-bodied animats in simulated physical environments” https://www.youtube.com/watch?v=CXTZHHQ7ZiQ
・むにむに ”遺伝的アルゴリズムでブランコの漕ぎ方を学習させた。”https://www.youtube.com/watch?time_continue=2&v=8vzTCC-jbwM&feature=emb_title
・Joachimczak, Michal・ Suzuki, Reji ・Arita, Takaya (2014) "Fine grained artificial development for body-controller coevolution of soft-bodied animats"
謝辞
情報学研究科の有田隆也先生にメールで質問して回答いただきました
8
参考文献
・Karl Sims “Evolving 3D Morphology and Behavior by Competition”
・Arita, Takaya Joachimczak, Michał Ito, Takashi et al. “ALife approach to eco-evo-devo using evolution of virtual creatures”
・Joachimczak, Michał・Suzuki, Reiji・Arita, Takaya ”Artificial Metamorphosis: Evolutionary Design of Transforming, Soft-Bodied Robots”
・有田隆也『心はプログラムできるか』
9