[PR]
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
プログラミング、3DCGとその他いろいろについて
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
前回のシミュレーションの解説です。
前回、ランダムウォークが学習を繰り返してタイムトラベルをシミュレートするようになるプログラムを書きました。はじめはただのランダムウォークですが、未来からタイムトラベルしてきた情報によって禁止された領域を避けるようになっていくのです(「未来にランダムウォークはそこにはない」という情報がやってきたら、そこに行くのはタイムパラドックスを引き起こします)。
そうなるのは、1.ランダムウォークは禁止された領域ではそこから逃れるように行動し続け、2.最後の行動を覚え続けるからです。
この説明を図にしたのが次のシミュレーションです:
再試行ボタン:別のランダムウォークの学習例に変更します。
これはランダムウォークの学習内容を解説したプログラムです。
左側にたくさんの矢印がたてに並んでいますが、これはランダムウォークが赤い「パラドックスあり」領域でどんな行動を取るようになるかを表しています。左を向いた矢印は、ランダムウォークが左に動く確率を高め、右だと右が高まります。
緑色のブロックの矢印は、すべて左を向いていることに注目してください。なぜこうなるのかと言うと、矢印は常に禁止された領域で最後にとった行動を表すからです。つまり、パラドックスのない平穏な領域では、自ら行動したりはせず成り行きに任せ、最後に自分が行った武勇伝を延々と回想するわけです。
これはある意味、自然淘汰の変形バージョンとみなせます。ランダムウォークは禁止された領域から逃げるように進化するのです。
自然淘汰とは生き物のように、子孫を残すものにのみ適用できる理論です。ではここでは一体何が子孫を残しているのでしょう?それはランダムウォークが左に動くか右に動くかという「行動」です。禁止された領域から脱出に成功した行動は、子孫をたくさん残せますが、失敗した行動はすぐさま次の行動に上書きされ、子孫をあまり残せないのです。
というわけで、このタイムトラベルシミュレーションは、次のように表現することができます:
タイムパラドックスが起きたら、それをなくすための「行動」の入った卵を(ランダムに)孵化させ、実行します。それでもタイムパラドックスをなくせなかったら、別の卵を孵化させます。「行動」は生きていて、生まれるとすぐ卵を生むのですが、別の卵が孵化した瞬間死ぬので、タイムパラドックスをなくせなかった「行動」は短命で子孫もほとんど残せません。タイムパラドックスをなくせた優秀な「行動」は、長生きしてたくさん卵を生みます。よって、タイムパラドックスをなくせる「行動」の入った卵が増えていくのです。