人工知能・遺伝的アルゴリズムってどんなの?
さて、昨今話題の人工知能。 先日、囲碁の世界のみならず世界中が驚かされたAlphaGo、これはニューラルネットワーク(NN)を使っていましたね。
ツクガクでも人工知能に興味のある生徒がいたら、やろうかなと思っています。 NNではなくて、Genetic Algorithm、日本語では遺伝的アルゴリズムといいます。
ニューラルネットワークは神経回路で人間の脳の神経回路を模しています。
遺伝的アルゴリズム(GA)は進化の過程を模したアルゴリズムです。
アルゴリズムは問題解決の手順といったところでしょうか。
ではGAのどの辺が遺伝的なのか。 生き物は交配して子供が生まれますね。
馬のサラブレッドなんかは品種改良して作られたエリートです。 エリートの子はエリート。。そのはず。ということで、 優秀な馬同士を掛け合わせて掛け合わせて掛け合わせて作られています。
もちろん、エリートとは言えない子も生まれます。
※写真の馬がサラブレッドかどうかは不明です(汗
この掛け合わせを馬なら「交配」と言いますね。
その時、子の遺伝子は、親同士の遺伝子が混ざったりして子の遺伝子になりますね。
また、交配して子供ができれば、いずれはそのまた子供が生まれます。
そして、その子が競走馬として優秀でなければ、競走馬としての遺伝子は残らなくなっていきます。 競争をして勝つのが目的ですから、競争に強い馬だけが残っていきます。 このことを「淘汰」といいます。
ときには親やご先祖よりも格段に頑丈になったり、急激に速くなってしまったり、もしかしたら賢くなったり、びっくりするような変化をすることがあります。これを「突然変異」といいます。
これら、交配、淘汰、突然変異を繰り返し世代交代していくと徐々により強い馬ができてきます。
GAでも馬と同じように交叉、淘汰、突然変異、世代交代のような考え方を使って問題解決を行います。 個体と呼ばれる遺伝子を使います。
馬のことだと思って下さい。 馬と同様に優秀な個体同士を「交叉」させて子の遺伝子を作ります。
子は問題解決への「適応度」が低ければ優秀とは言えず子孫が残せません。 適応度の高いもの以外は、基本的には「淘汰」されます。
何世代も交配を繰り返し、より適応度の高い子孫を残していきます。 「適応度」は問題の答えに対して、近いものなのかどうかということの度合いです。
時には突然変異を起こし、問題解決を早くすることもあります。
GAではこのように交叉、淘汰、突然変異、世代交代のような考え方を使って問題解決を行います。 という感じで、なかなかドラマチックなアルゴリズムなんです。そんな風に思うのは私だけ?^^;