テトリスの学習
強化学習を使ったおもちゃとして、今回はテトリスをやってみようと思う。テトリスの場合、迷路より状態行動空間が大きくなるため状態の一般化がかかせない。つまり、状態行動価値の表現をテーブルではなく、線形関数やニューラルネットにする必要がある。
テトリスでは状態をどのように表現するかが非常に難しい。うまく学習させるために適切に状態を表さなければならないことはよく言われている。具体的にどうするかは、今、考え中。行動はブロックの左右移動、回転で、報酬はブロック1行消したら+10、4行消せたら+100、つみ上がったら-200みたいにやっとけばいいと思う。このように設定してしばらくほっとけば、4行消し連発するような賢いエージェントになっていく(といいなあ)。
ちなみにJavaプログラムにはEclipseというのを使ってみた。評判は聞いていたけどいいと思う。なんかプログラミングが楽しくなる感じがする。