「マッチ箱の脳 WEB」を読んだ

2014-07-04 22:11:27

「マッチ箱の脳」という本がある。
「アストロノーカ」というゲームで有名な森川幸人という方が書いた、AIの本。
この人はウゴウゴルーガのCGを開発してたりと、知る人ぞ知る結構すごい人。

で、この本がWeb版として、ほぼ日刊イトイ新聞で掲載されている。

ほぼ日刊イトイ新聞 - がんばれ森川くんの遺伝子くん

僕は最近この存在を知ったのだが、
面白くて、一週間もかからず読んでしまった。
元々AIには興味があったからだけど、
特に、AIの研究がどう進んできたかというのは面白かったね。

今(といってもこれも結構前の本だけど)、どういうAIモデルの研究があって、
どれが盛んで、どれが廃れているのかということがよく理解できた。

しかし、
その中でもやっぱり遺伝的アルゴリズム(GA)は面白いよなー。
これのために読み始めたといっても過言ではない。

さて、じゃあGAで何を作るのか?
ということになるね。

いくつかアイディア(とよべないもの)をあげてみると、

  • 進化シミュレーションゲーム
    これは最初からずっと作りたかった。
    ダーウィンズ・ガーデン的なやつ。
    とっかかりとして、MineCraftのMODとして作ってみるのもいいかもしれない。
    他のAI(考えない脳)などと組み合わせると、一個体の動きに複雑さが見られて、予想外のほうへいってくれるかも。

  • 現実にあるサーキットを走れるように進化していく車のGA
    これは、より早くなるライン取りにすると面白いかも。
    WebGLなどと組み合わせると現実に見れて楽しいかもしれない

  • どうにかプログラマーとしての仕事に応用できないか?
    たとえば、

    • WebサイトのデザインをGAで探索してくれる
    • コードからカバレッジ100%になるようなテストを探索してくれる
      コードじゃなけりゃ、Web画面でもいい。全てのルート通ってくれるとか。
    • セキュリティのために、暗号を短時間でとくようにGAしてくれるとか。

WebGLと組み合わせるのは、色々と広がっていきそうなんだよねー。

そういえば、本書の中で特に気になったことがあるのだが、
GAは普通どういうパラメータを遺伝子とするかということ最初に決めるが、
解きたい問題に対して、直接パラメータを規定するよりも、
パラメータをどう変化させるか?などのルール自体をGAで発達させた結果のほうがうまくいくらしい。

たとえば、マークシートのような4択問題を解くとき、
A〜Dのうちどれを選ぶかということ自体を遺伝子とするより、
その答えにたどり着く過程を遺伝子化したほうがいい結果がでるらしい。

うーん、これは実際にやってみないとわからないね。
でも試してみたい。