週刊ひよこ将棋の計画
コンピューター将棋ソフトの評価関数は近年、「npsを落としてでも正確に」という方向性で進化しています。GPS将棋などにはその傾向が顕著に見られます。
ひよこ将棋シリーズもゆくゆくはそういう複雑で精緻な評価関数に向けて進化していかなければならないわけですが、その前に単純な評価関数でどれくらいの強さになるのかを調べることによって、そのあとの足がかりとします。
そこで、まずBonanza6の評価関数より軽い評価関数について考えてみなければなりません。
週刊ひよこ将棋 創刊号 → Bonanza-KKP
週刊ひよこ将棋 第二号 → Bonanza-KKP + KPPの重要な部分のみ
という予定で考えています。
第二号ではKPPの一部のみを差分計算しやすい形で取り出して使います。
Bonanza4以降のKPPの計算は1000回程度のテーブル参照が必要になります。
Bonanza6では差分評価が導入され、玉を移動させないときは100回程度のテーブル参照で済むようになっています。玉を移動させるときは差分計算せずにそのまま計算するようになっています。
玉を動かす指し手は全ての指し手の1/8ぐらいだと思うので、平均的には100回*7/8 + 1000回 * 1/8 = 212.5回程度のテーブル参照をしている計算になります。
これをこの1/5程度に減らしたKPPの評価関数を私は考えたので、まずはこれを試してみます。1/5程度の計算量で計算できるなら、同nps比較でR100ぐらい下がっても、npsの高さで元のBonanzaを上回るかも知れません。
R100以上下がるようなら…他の評価関数の形を試すことにします。
ただ、1/5程度の計算量で計算できると言いましても、最初から差分計算して極限までチューンするコードを書くのは、これで全然強くなかったときにはまったくの無駄なので、まずは差分計算は一切せずにストレートに計算するコードを書きます。
ストレートに計算するのでBonanza6の(差分計算ありの)評価関数よりさらに時間がかかります。
また、この評価関数はfv.binの一部のみを使用するので、その部分のみを棋譜から学習しなおせば、さらに強くなると思われます。
そのような伸びしろはあるものの、まずはこのストレートに計算したバージョンでR2300程度になってもらいませんと、そこまでする価値がないという判断をせざるを得ません。
ともかく、週刊ひよこ将棋 第二号はそんな予定でいます。
週刊ひよこ将棋シリーズではいろんな評価関数の形を試してみたいと思っています。