テトリスの学習 続き
テトリスの学習(2003/9/30)の続き。
テトリスくらい楽だろうと思っていたが、想像以上に難しい(まあいつものことだが)。強化学習を実装して、実行したまま1日放置してみたが、全く変化なしだった。へたくそのまま。2,800,000エピソードまで学習させたのにちっとも上達してない。
アルゴリズムが悪いのか、プログラムにバグがあるのか、状態の表現方法が悪いのか、学習時間が足りないのか全く見当がつかない。
以上のようなわけで、参考になるのがないかとWebで探してみた。
- Reinforcement Learning Tetris Example(リンク切れ)
- Reinforcement Learning Playing Tetris
この2つを調べてみた。テトリスはテトリスなのだがルールが違っている。まず、ブロックの種類が少なく、2X2マスに小さくデフォルメされている。また、10000個のブロックを落としたときに積み重なるブロックの高さで良し悪しを評価している。行を消してなるべく高さを低く抑えようという趣旨らしい。グラフを見ると高さが39くらいで収束している。普通のテトリスのルールでは、高さは20マスなのでこのエージェントはゲームオーバーばかりすることになる。
たかがテトリスだけど難問。こうやって、強化学習の限界がだんだん分かっていくのだろうか。それ以前に今の自分の限界か。