daruma3940の日記

理解や文章に間違い等あればどんなことでもご指摘お願いします

備忘録

http://www2.computer-shogi.org/wcsc27/appeal/Apery/appeal_wcsc27.html
なんで強いソフト深い探索の評価値に今の局面の評価値を近づける学習方法使う時に静止探索の末端局面の特徴に対して更新しているのか?


静的な局面でないとあまり正確な局面評価ができない
つまり今の評価関数は静止探索をする前提である
今の評価関数では静止探索を表現できない?(手番があればある程度はできるような気がするのだけれど。しかしまあ最新の強いソフトがまだ静止探索をしてるってことはまあそういうことか。DNNほどの特徴があれば静止探索も表現できるだろうが静止探索するより遅いので論外)
静止探索を前提としているということはつまり今の評価関数には静止探索も含まれているということ?


Stockfish探索では静止探索はleaf nodeでしか呼び出されない。すべてのゲーム木内のノードで静止探索が呼び出されるわけではない。つまりleaf以外では完全な評価はできていないので前向き枝切りの精度が悪い?

この点ソースコードを見直してみると多くの前向き枝切りで静止探索をした点数を用いていたため大丈夫そう。
唯一使ってなかったのがfutility prunning。
これも静止探索した方がいいと思うがそれだとrazoringとかぶるよなとも思う。
この辺よくわからん

そして静止探索の末端局面の評価値を深い探索の値に近づけている都合上、ノードの評価値が深い探索の値に近づいているかといわれると直接的に近づいているわけではない
(しかし反復進化の考えによると一度はleaf nodeであったことがあるはずで静止探索の値がTTに格納されているはずなのでそこまで気にする必要はないのか?しかしnullwindowsearchとか枝切りとかが起こると読まれないし...)

RootStrapで静止探索をせずにRootの局面に対して値を更新する?
通常探索用の評価関数(手番付き)(rootにそのまま深い探索の値を近づける)と静止探索用の評価関数を用意する?(取り合いを読ませた後なら手番がなくても表現できるはず)(しかし取り合いがいつ終わるのかということはStandPatなどの影響で簡単にはわからない この辺がネック)