忍者ブログ

Memeplexes

プログラミング、3DCGとその他いろいろについて

強化学習でマウスポインタを追いかけるロボット(actor critic)1D

強化学習のactor criticアルゴリズムのデモを作りました。
マウスポインタをボール型のロボットが追いかけます。
マウスポインタに近づくことがボール型ロボットにとって報酬なのです。


デモ

遊び方

マウスポインタをキャンバスの上で動かしてみてください。
すぐにロボットがそれを追いかけるようになります。

意味

ロボットは最初、どう行動していいのか何も知りません。
自分が1次元の世界にいることはもちろん知りません。
自分の身体の操作の仕方すら知らないでしょう。

しかしマウスポインタに近づいた瞬間、報酬を得ます。
そして報酬を得た直前の行動を繰り返そうとします。

報酬を得た直前の状態には新たに価値が生じます。
「報酬はもらえないけどマウスポインタには近い」位置に価値が生まれます。
そして、これが重要なのですが、価値のある状態にたどり着いた時、その直前の状態にも価値が生まれるのです。

ちょっとわかりにくいかもしれませんが、つまり、時間を遡るようにして価値が伝わっていくのです。
最初は「マウスポインタに近づいた直前の状態」を再現しようとします。
そしてその後、「「マウスポインタに近づいた直前の状態」の直前の状態」も再現しようとします。
その次は「「「マウスポインタに近づいた直前の状態」の直前の状態」の直前の状態」も再現しようとします。
時間を逆向きに、どんどん学習していくわけです。

ほんの僅かでも過去へタイムトラベルできるなら、それを何度も繰り返して原理上は無限の未来から情報を取ってこれるというグレッグ・イーガンさんのSFと似ていますね。
最初は自分の行動が後でどんな結果を生み出すか知らなくても、ほんの少しずつ直前の行動の状態を更新していけば、試行錯誤のすえに、無限の未来にどれくらい報酬をもらえるかをだいたい当てられるようになるわけです。

最終的には、どんな状態からでもマウスポインタにまっすぐ突っ込むようになります。

拍手[0回]

PR