人工生命と蛾の隠蔽色の進化

2016年10月4日改定 松田裕之

 お勧め 進化体験ゲームSPX(兵庫県博沢田佳久氏作成)

(最近の私の講義でよく出している課題)
課題1:自然選択体験ゲームSPXで自分が捕食者の立場に立ってガを捕まえ続けるとする。通常は世代を踏むごとにガの隠蔽色が進化し、捕まえにくくなることが体験できる。しかし、いつまでも蛾を見つけやすい状態に維持する(隠蔽色の進化を止める)方法がある。それは何か
課題2:では、なぜ実際の鳥はこの方法をとらないのか(ヒント:共有地の悲劇)


 人工生命 (artifitial life)*とは、計算機の仮想空間上などの上で、計算機の定める規則に従って生活、死亡、繁殖などを行う生物模型である。(*印は岩波生物学辞典第四版にある項目)ふつう、複数個体を同時に生活させ、その相互作用も考えることがある。特に、生活、死亡、繁殖などの規則を遺伝子*を模したプログラムで表現し、繁殖の際にそのプログラムに突然変異*が起きたり、有性生殖*により両親の規則を混ぜ合わせて子供の規則を作ることができる。これにより、人工生命は進化*を模倣することができる。

 特に、人工生命のうち、遺伝的規則の適応進化 *だけを取り上げたものは、遺伝的アルゴリズム(genetic algorithm*)と呼ばれる。遺伝的アルゴリズムは神経回路模型(neurocomputing*)と並んで、生命を模した「プログラム」である。神経回路模型が人間の試行錯誤による学習*を模したプログラムなら、遺伝的アルゴリズムは進化を模したプログラムである。ともに、パズルのような演繹的な解法が見つからない問題を解くのにも利用される。どちらも生物現象の説明だけでなく、巡回販売員問題(traveller’s salesman problem)など非生命現象に応用されているが、ここでは生物進化を模倣した例であるSPXを紹介する。SPXは兵庫県博の沢田佳久氏が考案した人工生命による自然選択体験ゲ−ムである。

 

 蛾は、背景と紛らわしい模様を進化させることにより、鳥などの捕食者から逃れてきた。あるいは一斉羽化や毒物含有(化学防御)などの防衛手段も進化させている。特に他の生物を模倣することを擬態 *mimicryという。無害なアブがハチに似た黄色と黒の縞模様(警告色)をもつように、天敵が忌避する目立つ生物に似せる標識的擬態*(狭義のmimicry)と、擬態にはシャクトリムシが小枝に似るように発見しづらくなる隠蔽的模倣*(mimesis)がある。前者にはさらに自分が無害なアブの場合をBatesian mimicry(ベーツ擬態)、2種以上の有害な動物が同じ警告色をもち、天敵への警告を強めるMullerian mimicry(ミュラー擬態)がある。熱帯魚などで目の中まで縞模様をつけて尾部に黒い斑点をつけ、頭の位置を錯覚させる形質も擬態である。

 隠蔽的擬態には、青虫やバッタが背景の草むらにあわせて緑色をしたり、ウサギが夏と冬で体毛の色を変える隠蔽色 *も含まれる。

 このような警告色や隠蔽色は、生物が天敵から逃れるために意識的に工夫して進化してきたものではない。突然変異と自然淘汰により、たまたま天敵の被食を逃れた個体が子孫を残し、擬態した形質が子に遺伝し、突然変異を伴い、ますます擬態を進化させた個体が生き残ることを繰り返した結果である。他の個体よりも罷職されにくい個体が子孫を残す上で有利になる。 

 蛾を捕まえる鳥などの捕食者の側でも、無作為に餌を探しているのではない。餌の多い餌場を記憶したり、餌の姿を記憶する。一度捕まえた餌と似た姿の餌を探すことを、探索像*search imageという。我々人間も探索像ができる。都会の雑踏の中で知人を偶然見つけるよりも、ある特定の知人を捜す方が発見効率は高いだろう。

 沢田佳久氏の作った自然選択体験ゲームSPXは、探索像を実感できるゲームである。あなた自身が天敵の鳥になったつもりで蛾を捉えまくる。初めは十人十色(10個体)の模様を持つ蛾の模型(人工生命)がいるが、8個体発見して「捕食」すると残り2個体が両親となり、「有性生殖」して、両親の模様を混ぜ合わせ、少し突然変異も加えた新たな模様をもつ子が10個体できる。残念ながら全部を取り尽くすことはできず、必ず残り2個体の時点で10個体の子を残す。(もっとも、全部食べてしまうと自分が「飢え死に」してしまうだろうが)現実の多くの生物と異なり、2個体に雌雄の別はなく、どの2個体が残っても子を残すことができる。(ゾウリムシの接合はこれに近い)当然、この10個体の兄弟姉妹はある程度、互いに似通っている。それに共通した特徴(たとえば全体の色合いとか、頭や尾部の模様など)を発見できれば、1世代目より2,3世代目の方が、むしろ発見効率が高くなるだろう。

 しかし、発見しやすいものを捉えることは、発見しづらい子孫を残すことになる。苦は楽の種、楽は苦の種というわけである。このとき、たとえば頭が黄色いなどの特徴をもつ個体が多く、あなた(天敵)がそれを捉えまくるなら、頭が黄色い個体は生き残る確率(適応度)が低くなる。今まで捕まえた個体に共通する形質を学習して探索像ができるのだが、それは少なくとも前の世代の多数派の形質である可能性が高い。それに対して、他の個体とかけ離れた形質(模様)を持つ個体は天敵に見つかりにくくなる。このように、自分の子孫の残し易さ(適応度*fitness)が自分の形質(模様)だけでなく、他個体の形質にも左右される状況を、頻度依存淘汰*(frequency dependent selection)という。今の場合、多数派が不利で少数派が有利になるから、子の模様は必ずしも同じ模様ばかりにならずに、多様性が維持される。

 それに対して、背景により近い模様を持つ個体が生き延びることも考えられる。もしも背景に完璧に模した個体が生き残れば、どの個体も似たような「完璧な隠蔽色」が進化するだろう。つまり、頻度非依存で環境に対して最適な形質が生き残る状況では多様性は失われ、頻度依存で他個体とは異なる形質が生き残る状況では多様性が維持される。SPXがどちらの状況をもたらすかは、天敵であるあなたの腕次第である。 

Genetic Algorithm

 SPXでは、蛾が2個体残った際に子孫を残す方法が説明されている。蛾の模様は8桁の数値で特徴化され、その数値を変えれば子の模様が変わる。子は各桁ごとに両親のどちらかの数値を受け継ぐか、確率10%の突然変異で親と無関係の数値に変わる。これが各桁ごとに独立に生じるため、8桁すべてで突然変異が生じない確率は0.98乗で43%に過ぎない。

 このように、通常、遺伝的アルゴリズムでは有性生殖による両親の形質の混ぜ合わせ、突然変異による新たな形質への変化が考慮される。最後に2個体残したのは両親が必要なためだが、この人工生命には性別がないので3個体残しても、4個体残しても良い。ただし、全部残せば自然淘汰が全く働かないから進化は起きない。逆に1個体しか残さないと、子10個体の多様性が低くなり、概ね進化速度が極端に遅くなる。多様性を残すことは適応進化を速める秘訣の一つである。

 SPXでは最終目標はない。しかし多くの遺伝的アルゴリズムの問題では、個体ごとに適応度という評価値が得られ、その高いものから順に生き残るようにする。こうして、より高い評価値を与える「答え」を探すのである。計算を続けても、評価値が増えなくなった時点で計算をやめる。しかしそれが最適解とは限らない。遺伝的アルゴリズムでも神経回路模型でも、局所最適解(local optimum)といって、そこから少し変えただけでは改良にならないが、大きく変えるともっと良い答えが存在することがある。SPXの場合は特に評価値は計算しない。天敵であるあなたが捕まえるかどうかで評価が決まる。

 また、実際の進化では親より子の方が性能が落ちる場合もある。突然変異の多くは有害だから親より性能が悪い。両親の遺伝子を混ぜ合わせることにより、両親の形質より悪い形質しか残らないことがある。SPXでも、それは起こり得る。しかし工学の解法としてはこれは好ましくない。だから、前の世代で最高の性能を持つ遺伝子は、最低一個体は突然変異も有性生殖もさせずに子の世代に受け継がせるように工夫されることがある。これは実際の生物にはないことだが、遺伝的アルゴリズムの研究者は柔軟に物事を考えているのである。

 先のSPXでは8桁すべてが独立に両親のいずれかの数値を受け継ぐと仮定したが、2桁ごとに両親いずれかから受け継ぐと仮定することもある。このとき、一の位と十の位はくっついて遺伝するので、進化の結末が少し変わることがある。どちらが効率的かは、解く問題によって変わる。 

 遺伝的アルゴリズムは計算機の分散処理にも適している。分散処理とは、1台の計算機ですべての計算を行わず、難題化に分散させて計算し、その途中経過を持ち寄って再び計算を進める。最後の結果だけを持ち寄るのは分散処理、途中経過を持ち寄るのを並列処理という。1台の計算機で計算するのに比べてどの程度速くなるかは、計算内容にもよる。2台使えば2倍速くなるわけではない。もし二人の利用者が2台の計算機を並列処理で同時に使おうとすれば、一人の計算を2台がやり終えてからもう一人の計算に入る。これなら一人1台ずつ使う方が効率的である。

 なぜ2台で2倍速くならないかと言えば、両方で分担した計算が同時に終わるとは限らないからだ。早く終わった方は他方が終わるまで待たなくてはいけない。あと、計算機間の情報のやりとりに少し時間がかかるが、これは最近ではほとんど無視できるようになってきた。当然、早く終わった方が他の利用者の計算課題をやり始めれば、全体としての効率は上がるはずだが、いずれにしても、一人分の計算が終わるのは2台で2倍とはいかない。

 ところが、人工生命や遺伝的アルゴリズムの場合は分散処理に適している。実際の生物集団でも、二つの半隔離された分集団で独立に進化し、ときどき個体が分集団間を移動することがある。二つの分集団が同じような進化を起こすとは限らず、しかも途中で個体が移動することで新しい「血」が入り、進化が促進されることがある。

 このような工夫は、計算機では分散処理により簡単にできる。しかも、一方の計算機が計算し終わるまで他方が待つ必要はない。 10世代ごとに移動させるという形の計算でなく、実計算時間で1秒ごとに移動させるという形の計算でも良いのである。むしろ、その方が生物らしいかもしれない。このような計算には再現性がないが、だいたい似たような解が得られればそれでよい。

 

 蛾の進化体験ゲームSPXには終わりがない。あなたが飽きるか、疲れたところでやめればよい。このゲームでは背景は似たような模様を出し続けていたが、背景を途中から暗くすれば、工業暗化 *industrial melanismを模した体験もできるだろう。つまり、背景が明るいうちは明るい色調の蛾が進化し、暗くしてからは暗い色調の蛾が進化するはずである。

 もしもあなた(天敵)がずっと同じ探索像で探し続ければ、どんどん発見しづらくなり、背景に紛れた模様が進化し、そこで進化は止まるだろう。このような状況を進化的安定状態 evolutionarily stable stateまたは進化的安定政略*(evolutionarily stable strategy)という。このとき、両親はほとんど同じ模様で、突然変異で生じた違う模様の子は見つかりやすくて捕まり、親と同じ模様の子が生き残る。突然変異はもはや不利な個体しか生み出さない。

 しかし、あなたが途中で探索像を入れ替えることができれば、今まで発見しづらかった模様が発見しやすくなる。これを繰り返せば、進化は一定の状態では終わらずに、永久に変わり続けて行くはずである。それが昔と同じ状態に回帰する周期変動になるか、非周期的なカオス的変動になるかはともかく、進化が永久変動を生み出すことがある。

 また、SPXではどんな模様でもそれを作る労力 costは考えなかった。しかし、平凡な模様では異性にもてないとか、多大のエネルギーがかかることも考えられる。このような場合、労力がかかる方向に際限なく進化する場合もある。これをランナウェイ説runaway hypethesisという。雄の形質(シカの角など)と雌の好み(長い角をもつ雄を選ぶ)が連動した結果、雄の角がかなり長くなることは良く知られている。

 

 蛾の隠蔽色が人工生命で体験できるなら、長い角の進化が人工生命で模倣できるだろうか?おそらくできるだろう。そのためには、雄と雌の両方の人工生命が必要である。やりようによっては、美しいクジャクの羽の進化も、ウグイスの囀りの進化も模倣できるだろう。

 ただし、長い角を持つクジャクや、尾バネの美しいライオンが進化しないと言う保証はない。SPXでは、被食者と捕食者の共進化のうち、捕食者役を人間(ゲームのプレーヤー)にやらせていた。体験ソフトではなくなるが、捕食者役も人工生命にやらせることもできるだろう。あるいは、背景との類似度を何らかの評価方法で評価し、その点数が上がるように進化させることもできる。

 それに対して、一方の当事者を人間にやらせれば、その人間が思うとおりの(あるいはその人間の思惑をくぐり抜けた)形質を進化させることができる。人間が雌役をやり、 10個体の雄の模様の中から一個体を選ぶ進化を繰り返せば、人間に選ばれやすい模様の雄の蛾が進化していくだろう。あなたが好きな模様が進化していくかも知れない。同じように、人工生命に勝手な31文字の短歌を作らせ、人間が気に入ったものを選び続けることができる。そもそも、チェスでは一度は計算機が人間に勝利したではないか。

 人工生命に多量の短歌を記憶させて、それを組み合わせて適当に新語を交ぜて短歌を作らせれば、(今はまだ不可能だが)それなりに短歌らしいものはできる。その中からあなたが気に入るものを選び続ければ、かなりの精度でよい短歌を作ることができるかもしれない。しかし、それは本質的にあなたが選んだ短歌であって、計算機が作った短歌といえるかどうか、疑わしい。

 

(以上)