利きを活かした評価関数

Bonanzaを代表格とするbitboard型の将棋ソフトと、GPS将棋やなのはを代表格とする非bitboard型の将棋ソフトとで、一般的には前者のほうが全体的に見て速いと私は思うのですが、利きを活かした評価関数にするなら、話は違ってきます。今回は、どんな評価関数が考えられるか考えてみます。
続きを読む

棋譜のコンバーターはどこにありますか?

棋譜からの学習なり何なりで入力棋譜がCSA形式やKIF形式ということはよくあります。しかし、いまや将棋ソフトの思考エンジンはUSIプロトコルでやりとりするのが標準的であり、USIプロトコルでの局面形式(sfen)の入出力部しか書いていない & 書きたくないという開発者の方も多数おられることでしょう。

続きを読む

それ本当に過学習?

prediction(棋譜との指し手一致率)が上がっている限り棋力は上がっていくと言う話をpredictionと棋力との関係に書きました。

ボナメソで学習させるとしてもiterationが50を超えた辺りからpredictionの伸びは非常にゆるやかになっていきます。ついでに言うと、条件によっては、このあと学習させればさせるほど弱くなっていきます。

人はこれを過学習と呼ぶかも知れません。
しかし本当にこれは過学習でしょうか?

続きを読む

MultiPVと手加減モードとの関係

コンピューター将棋が強くなりすぎた結果、相手が人間(アマチュア)の場合は、手加減しないと勝負にならなくなってきました。

従来、探索深さを浅くしたり(depth limit)、探索ノード数を制限したり(nodes limit)、思考時間を制限したり(time limit)することによって弱さを実現してきましたが、それだと自然な弱さにはなりませんでした。(序盤がすごく弱いのに終盤だけが相対的に強いというような…)

続きを読む

定跡の生成に使った評価関数を用いるべき?

定跡の生成のため探索をして評価値が一定以上悪くなる指し手は定跡DBには登録しないだとか、探索して棋譜の指し手の評価値を定跡DBに記録しておき、ベストの評価値とかけ離れた評価値の指し手は採用しないだとかして定跡DBを作っていたのですが、少し興味深い現象があったので書いておきます。

続きを読む