迷路問題アプレット
を書いた。
- 強化学習で迷路の最短経路を見つける(2005/1/21)
迷路問題は強化学習の性能を調べる一つの基本問題になっている。ここではあまり大きい迷路にすると、収束するまでうろうろする時間が長くなって見るに耐えないので、適当に小さくしておいた。コンソールの数字の羅列じゃなくて、こうやってアニメーションで見ると挙動がよくわかる。何かかなり無駄な動きが多いような気がするけれど、どうしてこうなるかはアルゴリズムをよく見てみる。ここで使っているQ学習は学習収束まで時間がかかるという欠点があるが、これで直感的に納得か。
改良点として、インタフェースの改善、パラメータの設定、迷路の大きさの変更を可能にする、グラフで報酬獲得の推移を表示するなどがある。特に、パラメータの設定は、エージェントの挙動に関わりが深いので調べてみる。また、スレッドの扱いで推奨されない機能を使っているらしい。JDKの仕様が変更されて、1年ときに習った方法とはずいぶん違っている。
また、違う強化学習アルゴリズムで実装して、学習収束速度の違いなんかも調べる。その場合は、こんなちっこい迷路じゃなくて、もっと巨大迷路でやった方がいいかもしれない。