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

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

昨日のアイデアを再考してみる

 http://d.hatena.ne.jp/Gasyou/20120224/1330097571

 とりあえず自己対戦学習で手を選択する場合の流れはこんな感じ。

  1. 各クライアントは個別に現局面での全指し手の評価値・指す確率を計算する。
  2. その後、指す確率を票数として合議サーバにどの手に何票投票という情報を送る。
  3. 合議サーバは票数が最大の手を選択する。

 2.の部分は「評価値最大の手に一票」って実装も考えたけど、確率を元に票数を決めた方が良さそうな気がする*1ので、一度それでやってみます。

 3.は票数を元にソフトマックスで手を選択する事も出来ますが、面倒なんで当面はパス。

 んで、昨夜から引っかかってるデメリットについて。

 メリットとして、例えば「終盤が得意だけど序盤が苦手なクライアント(評価関数)」と「序盤が得意で終盤苦手なクライアント(評価関数)」がいたとして、それぞれが合議で選ばれた別のクライアントの指し手を見て「序盤(終盤)ではこういう手が有効なんだ」と気付く事が出来ないかな、と考えています。

 もちろんデメリットもあって、全クライアントが同じ棋譜から学習する事になるので、合議に必要なクライアントの多様性が失われる可能性もあります。

 結局、この辺のメリットがデメリットを上回るか、って話ですが、どうなんだろうなぁ…

 このままクライアント単独での学習を進めても、現状では上手く行く可能性がありません。なので、仮に合議での伸び率が悪くなったとしても、シングルクライアントでの棋力が向上すれば、トータルでは強くなる、ハズ…

 ま、悩んでても無意味ですし、いっちょ実装してみますか。

*1:あくまで気がするだけ