第28回 『遺伝的アルゴリズム』

皆様こんにちは,同志社大学の土屋誠司です.人工知能の第28回目の今回は,遺伝的アルゴリズムについて書いてみたいと思います.

前回の『横型探索』や『縦型探索』とは別の探索方法があります.いろいろ経験して,勉強して,想像できるようになると「多分,こっちに答えがあるんじゃないか」と考えることができるようになります.人工知能でも同じように,答えがありそうなところを予想しながら探すことができます.このような探索方法を『発見的探索』,『予測駆動型』と呼びます.答えがないと思うところは後回しにして,答えがありそうなところを中心に先に探すというのは効率が良くて,賢い方法です.

『発見的探索』の面白い方法として『GA(Genetic Algorithms):遺伝的アルゴリズム』というものがあります.『アルゴリズム』とは,正解を見つけるための決まったやり方,『遺伝』は,生物が進化していくことです.親から子供が生まれ,その子供は大きくなってまた子供を産みます.子供は親の特徴を持ちながら,さらに個性と合わせて,人間として徐々に変化していきます.このような話は「ダーウィンの進化論」として知られています.

草食動物だったキリンは,初めは首が短かったので,地面の低いところの草木を食べていました.しかし,キリンより強い動物が増えてきて,その位置にある草木を食べることができなくなりました.どうしましょう?このままだと絶滅してしまいます.そんなとき,普通よりちょっと首の長いキリンがたまたまいて,そのキリンはちょっと高いところにある草木を食べることができました.そのため,敵がいなく,生き延びることができました.そのキリンは大きくなり子供を産むと,その子供の首はちょっと長かったのです.これで安心!と思ったのも束の間,その高い位置の草木も食べてしまう強い動物が現れてしまいました.するとまた,それよりもちょっと首の長いキリンがいて...というように,親が子供を産んで,その子供が大きくなって子供を産んで,徐々に徐々にキリンの首は長くなっていったと言われています.

環境は日々変化していきます.その変化を知って,我々生物も進化していかなければ,その変化した環境で生きていくことはできなくなります.この遺伝という仕組みをコンピュータで行うのが遺伝的アルゴリズム(GA)です.初めは,答えがまったく分からないのですが,答えがありそうな方へちょっと変えて,またちょっと変えてをどんどん繰り返していくと,いつしか適切なもの,つまり答えが見つかるという方法です.

コンピュータと生物の話はまったく関係がないように思うかもしれませんが,実はそんなことはありません.賢いコンピュータを作ろうとすると,身の回りにある賢いものを参考にするのが一番です.この遺伝的アルゴリズム(GA)という方法は,生物の賢さをまねした方法ということになります.

次回は,物事を分類するクラスタリングについてについて書いてみたいと思います.