●NineDayFever 局面評価の極北を目指しています。 ・対戦中に現れた局面を調べ、機械学習結果の欠陥を探して修正していています。 ・三駒関係の各変数を分解して共通する要素を抽出したうえで機械学習することで未知の局面への対応能力を高めています。 ・手番を考慮した評価値を使用しています。 ・定跡では自己対戦結果から各局面の勝率の分布を推定して各手の採用確率を決めています。自己対戦で振り飛車を採用すると負ける確率が高いのが原因で、早めに3二金を上がるとか相手が飛車を振っているのに3二金を上がるなどの手がbookに入っていて、きちんと振り飛車を指せるプログラムを相手にすると自爆するようです。が、人力チューニングを始めるときりがないので、データを増やしていけばいつかは自然に修正されると信じてそのまま放置します。 ・プログラムはbonanza 6.0にstockfish の手法を取り入れています。 昨年からの相違点は、LazySMP の実装、楽観合議(8台)による並列化となりました。楽観合議は連休に入ってから作ったものなので効果は不明です。一応弱くはなってないっぽいですが。 実現確率探索も実装してみようとして、三駒関係の評価値が変わりやすい手は王手、駒を取る手、手番ボーナスが高い手などということがわかったのでそれぞれの場合ごとに評価値とか SEE とかの値と、数手進んだところで評価値が逆転する確率の関係を、ロジスティック回帰で見つけてやれば何とかならないかと思って試しに作ってみたのですが、こんな手抜きな実装では評価値ベースの打ち切りと効果が変わらず、きちんと機械学習しないといけないらしいということがわかったのでした。