LINK
遺伝的アルゴリズムなどの生物の進化の仕組みにヒントを得た最適化の仕組み(進化計算 Evolutionary Computation)、人工生命 (A-Life) などの研究で生まれたさまざまな「想定外の結果」「失敗」のエピソードを集めた論文。
たくさんの事例が紹介されている中で、冒頭を飾るのは、Karl SimsのEvolved Virtual Creaturesです。仮想生命体の進化のシミュレーションの金字塔として名高い 1994年の実験・作品で、かくいう筆者にとってもこのシミュレーションに衝撃を受けたことが、この道に進むきっかけになったという思い入れのあるものです。
上記の動画には含まれていませんが、実は次のような不思議な仮想生命も生まれていたそうです。このシミュレーションでは、平均の移動速度によって評価される(=速く動ける個体ほど子孫をたくさん残せる) ようになっていたため、高く背を伸ばした上で重力によって倒れることで、速い移動速度を実現する、というある種のハックが行われたわけです。
同様に、いかに高くジャンプできるかという評価基準でシミュレーションを行った別の実験の例も紹介されています。地面に接触していた”足”とジャンプ後の頭の距離が遠ければ遠いほど高く評価されるという評価関数(fitness function)を元にシミュレーションした結果、次の動画のような仮想生命体が誕生しました。高く頭を伸ばした上で、宙返りのように倒れつつ足を地面から離すことで、評価関数を出し抜いたかたちです。
そのほかシミュレーションの限界を利用した例なども紹介されています。次のシミュレーションでは、計算コストを抑えるために、構成する「細胞」の数が増えるにつれて、シミュレーションのタイムステップを短くして細かく計算するようになっていました。進化した個体はそこを逆手に取り、逆に細胞数を極端に減らすことでシミュレーションの間隔を長くします。それによって、一時的に地面を「突き抜けた」状態を作り出し(昔のゲームでよくありましたよね)、次のシミュレーションのタイミングで強い反発力を得ることに成功しました。
次のシミュレーションは、過酷な環境での運用を想定し、6足のロボットにその一部が壊れても大丈夫なように様々な歩き方を進化によって習得させたという例です。使えない足を徐々に増やしていったあげくに、すべての足が地面と接していないという状況を試しに作って見たところ… なんとひっくりかえって「肩」で張って進むような動きが生まれました。
そのほかにも、ソートのアルゴリズムを進化で生成しようとしたところ、空っぽの配列を返すように進化した、なぜなら空っぽな配列は常に正しい順序になっているから、といった人間の想定の甘さをついて進化したような例も。
とにかくたくさんの実例が載っていて、とてもすべて紹介しきれないのですが、この論文で面白いと思ったのは、論文をまとめようとした動機の部分です。要約すると…
実験前の想定に沿った結果になりました!というのに比べて、想定外の面白い結果が生まれました! というのはアカデミックな論文に書きにくい、でもこの定量化できない「驚き」の部分にこそ、こういった研究の本質があるのではないか。
だからこそ、なかなか一般的には書きにくいさまざまな逸話を集めてみた、というもの。
自分が研究をしていた当時のフラストレーションをまさに言い表しているような一節でした。
80年代末に盛り上がった人工知能研究が冬の時代を迎えた90年代に人工生命、進化計算研究が注目を集めたように、人工知能と人工生命の研究は交互に盛り上がりのピークが来るという話もあります。AIに注目が集まる中で、一部ではEvolutionary Strategiesなどの進化的アルゴリズムに、もういちど脚光が当たるような動きも生まれてきています。究極の最適化手法とも言える「進化」という切り口は、人間の創造性を考える上でも示唆に飛んでいます。本論文は過去の研究の広がりを知る上でも参考になる資料だと言えるでしょう。