GA将?開発日記~王理のその先へ~

ネタ勢最強を目指して絶賛開発中。

GA将!!!!!には何が足りないのか考えてみた

 とりあえず、ちゃんと攻めてちゃんと囲って欲しいんで、それに足りないのは何か。

仮説その1 評価関数 OR 探索の能力不足

 以前にBonanza Methodで学習した時は、今とほぼ同じ評価関数・探索ルーチンでちゃんと囲うし攻めてたんで、この可能性は低い。

仮説その2 自己対戦での学習時に、質の低い棋譜しか得られていない

 自己対戦の質が悪い→強くならない→質が悪いままという悪循環にハマってるパターン。

 有りそうっちゃ有りそうな話ですが、それじゃぁ駒割とか終盤のパラメータは何で学習出来てるんだって話になります。

 本命かと思ってましたが、この可能性は低い…かも。

仮説その3 自己対戦での学習ルーチンにバグがある

 ド本命ですが、どこにあるのかさっぱり見当もつきません。

仮説その4 TDLeaf(λ)のアルゴリズムを誤解している

 いやでも、さんざん論文読み直したし、まさかねぇ…

 あぁでも、ひょっとしたらその可能性もなきにしもあらずかも。

仮説その5 序盤〜中盤の指し手選択から報酬を得るまでの時間が長いから

 要するに、終盤は指し手の良し悪しが報酬*1の大小に直結するので、ちゃんと学習出来ている。けど、序盤とかだと良い手を指してもそれが報酬に直結しない(後で悪手があって逆転されたりすると、マイナスの報酬しかもらえない)ので、ちゃんと学習出来てないんじゃないかって仮説。

 ただ、それだとブートストラップ*2が上手く行ってないって話になりますが、εグリーディでε=0.5とかにしてもそこそこちゃんと学習してるんで、ブートストラップ自体は機能してる…ンじゃないかなぁ。

 と言うか、この仮説を認めちゃうと「終盤はほぼ教師あり学習に近いからたまたま成功しただけ」って事になっちゃうんで、あんまり認めたくないです。

まとめ

 何が原因か、さっぱり分かりません!

*1:今の設定だと、勝った時に+1.0、負けたら-1.0

*2:コンピュータ将棋の場合だと、ある局面の評価値を、それより後の局面の評価値を頼りに修正する事