flint>flint blog>2012>Sep>18>メタヒューリスティクス

メタヒューリスティクス

現在、仕事のオファーが途切れているのですが、せっかく自由になる時間ができたので、営業活動と並行してサーバのメンテナンスや独自システムの開発などに手を付けています。 早期に公開して利用してもらえるようなシステムの計画もあるにはあるのですが、それとは別に若干毛色の変わったもの - 進化的アルゴリズムによる他のシステムへの応用が可能な問題解決の仕組み (メタヒューリティクス) を試作中。

地球上の生物は、(ごく大雑把に説明すると、) DNA上に塩基配列としてコードされた遺伝子を、突然変異自然選択によって進化させることで、複雑で高度な機能を有する肉体 (頭脳もその一部) を作り上げてきました。 この進化の仕組みを、肉体というハードウェアではなく、ソフトウェアへと適用すれば、複雑で高度な機能を有するプログラムを生成することもできるのではないか、というのがこのプロジェクトの基本的な発想です。

とは言え、汎用性のあるものを作ろうとすれば、その規模は非常に大きなものとなり、その開発も緻密な設計と長い期間を要するものに。 最初からそのようなものを目指してしまうと、アプローチの妥当性を検証したり、その結果を修正・改良へとフィードバックさせることは困難になってしまうでしょう。 そのため、現在は非常に限定された範囲 (ドメイン) の問題を解く仕組みを用い、そこで得られた知見をもとに、より広汎な問題を解けるものへとステップアップしていくことを企図しています。

掲載した画像は、初期コードの編集や、進化の途中経過を可視化する目的で作成しているプログラムエディタのスクリーンショット。 このインターフェイスは、私が高校生の頃にハマっていた multiply というゲーム (Vector によるレビュー) のエディタのそれを参考にしています。  (というか、殆どそのまんまですね。) こうしたグリッド構造では、コード断片を「挿入」する処理が容易には行えないため、変異の形態が制限されるかもしれないという懸念がありますが、処理のフローを視覚的に把握しやすく、また、プログラムの構成にトポロジー的な制約が発生するのも面白いと思い、これを採用しました。

「エディタ」の基本的な機能は完成していますが、他にもプログラム群に選択圧としての生存競争を行わせる「シミュレータ (simulator)」と、プログラムコードを変異させる「ミューテータ (mutator)」が必要。 なるべく小規模なプロジェクトになるようにしたつもりですが、やはりそれなりの作業量は必要になってしまうようです。

改めて進化論を学んでみよう

ところで、こうした進化的アルゴリズムは、名前からも伺えるように、(ダーウィンの) 進化論の考え方がその基本にあります。 しかしながら、進化論の概念を正しく理解している人は、実はそれほど多くはありません。 キリスト教原理主義インテリジェント・デザインといった反進化論イデオロギーは世界的に相当な勢力があるようですが、それとは別に、「進化論を受け入れている人たち」の間でも様々な誤解があります。

例えば、「適者生存 (survival of the fittest)」という用語。 これは「環境に適応したものが、次の世代へより多くその遺伝子を残す」という事実を説明するものに過ぎません。 これを「弱肉強食」と同じように「強い者は生き、弱いものは死す (べき)」と解釈する誤りが広がっていますが、これでは、「適したものが生き残るのではなく、生き残ったものを『適している』と考える」という本来の概念に対して、そもそもの因果関係が逆転してしまっています。 キリンは高い位置にある葉を食べるために首を伸ばしたのではなく、首を伸ばしたものも縮めたものも (そして、首の長さを変えなかったものも) いる中で、首を伸ばしたものがより多くの食物を獲得し、結果的に生存に有利となったということ。 進化は予め決められた目的も方向も持たず、ただランダムな変化の選択・累積によって生じるものなのです。

こうした進化論の基礎について学ぶには、リチャード・ドーキンスの著作、とりわけ、右にあげた『盲目の時計職人』がおすすめ。 コンピュータシミュレーションを交えての説明もあり、プログラマであればその内容を一層深く楽しむことができるでしょう。

盲目の時計職人

ダーウィン主義とは、要するに、そこに遺伝的変異があって、しかもでたらめではない繁殖のもたらす結果が累積される時間がありさえすれば、途方もない結果が生まれる、という考えに過ぎない。 しかし、この単純さは見かけのものだと信ずべき根拠がたっぷりある。

自然淘汰は盲目の時計職人である。 盲目であるというのは、それが見通しをもたず、結果についてのもくろみをもたず、めざす目的がないからだ。 しかしそれでも、現在みることのできる自然淘汰の結果は、まるで腕のいい時計職人によってデザインされたかのような外観、デザインとプランをもつかのような錯覚で、圧倒的な印象をわれわれに与えている。

小さな変化が数多くの段階にわたって蓄積されるという考えは、とてつもなく強力な考えであり、それ以外には説明できないような莫大な範囲のことがらを説明可能にする。

「盲目の時計職人」 / (著) Richard Dawkins, (訳) 日高 敏隆

また、自然選択説の原典であるダーウィン『種の起源』は、気軽に読むには難解過ぎるシロモノですが、幸いなことに、次のような解説書があったり。 これもキーポイントとなる概念を詳細に説明しているため、簡単に読み流せるほどに軽い内容ではありませんが、それでもかなり分かりやすい説明がなされています。

ダーウィン『種の起源』を読む

ようするに私たちの認識それ自体が問題なのだ。 創造論者でなくとも、多くの人は種から種が生じることにたいへんな困難があると感じるものだ。 かつて日本をにぎわした今西錦司による「今西進化論」がそうであろう。 この理論は種が突然に一斉に変化すると説明した。 しかし原理は不明であるし、彼はそれを説明しなかった。 今西進化論は理論としては劣悪な部類に入る。 有名な古生物学者グールドらが提案した「断続平衡説」もそうであろう。 彼らは種が誕生するときには独自の作用があると考えた。 これも結局、同じ問題を抱えている。 この人たちは種の間に乗り越えがたいギャップがあると感じていたらしい。 だからその本質的な違いを飛び越えるなんらかのすっごい方法を考え出す必要があったのだろう。

そもそも私たちは一五〇年前の成果にさえ届いていない。 『種の起源』を理解するには私たちの発想はあまりに古すぎる。 まるで中世からいきなりやってきて電気を理解しようとする錬金術師のようだ。 自分たちの考えを根本から切り替えねば感電死してしまうだろう。 『種の起源』は古典だが、本当にクラシックなのは私たちの中世的な頭脳のほうだ。

Narita (「無料の昼食」などというものはない。)
このエントリーをはてなブックマークに追加

Comments

Author
URI
Mail
Title
Content