762alpha アピール文書 2020年3月31日 V0.1 天野史斎 ■ まえがき 762alphaは学習の自動化を目的とするコンピュータ将棋プログラムです。 学習の自動化のゴールとは、コードの手直し無しで、 計算資源(CPUパワーとメモリー)を投入すればするほど 完全解析の結果に漸近していくソフトウェアーの実現にあります。 一度この境地が成ったならば、ムーアの法則の続くところ、 人手によるad-hocな最適化などそのうち割の合わないビジネスになる!(のか?!) ■ 新機軸(と私が勝手に思いこんでいるブツ) 今回の新機軸は、 1. 局面の順序ベースの評価関数 2. ベイジアンフィルタベースの自動定跡獲得 の2点となります 局面の良し悪しの順序を片っ端から覚えていけば 完全解析の結果を表現できることはほとんど自明ですが、 これを局面(ベクトルとみなせる)をキーとしてKD木で順序を記憶する、 みたいな素朴なやり方で行うとまるで汎化能力が得られません。 この障害のため今まで成功例がなかった(のだと思います)。 今回は  - プロトタイプ法  - 線形分離  - 比較二分木' という非常にレトロなツールを用いて上記障害の克服を試みます。 決定木系の学習アルゴリズムは、サンプル数に応じてモデルのパラメータ数を 明示的にスケールできるも同然でありなおかつ何も考えなくとも転移学習OKなので 用途によってはかなり使いでがある(気がします)。 ■ その他 以下は開発完了した内容です(※1)。 - FlowBoardによるオーダリング付き指し手生成: 前回と同じです。 - 探索部からad-hocな要素を排除:(まえがきのお題目に適うように) 1. Interior nodeにおいて全ての合法手を展開 2. 全てのinterior nodeで千日手判定を実施 3. 探索に対して完全に透過的に働く置換表を導入 具体的には以下を実現 (1) 履歴依存の評価値(※2)を一切置換表に書かない (2) 葉までの深さがrの探索結果と、より深い探索結果の直接比較が起きないようにする。 (兄弟ノードの深さがrまでの探索で得られた探索結果に基づく探索窓と、 より深い探索結果の2種類の深さのみが絡む比較は行う。) - 置換表を共有する並列探索: InterlockedCompareExchangeで置換表エントリ毎の高速な排他を実現 NPSはというとCore i7-860(2.8 GHz)で1スレッドあたり22万NPSぐらい、 なのでトップレベルのソフトとは3桁ぐらい違いますねorz ※1: ではそれより上に書いてあるのは開発完了しているのではないのかというと以下略 ※2: 千日手の評価値、連続王手の千日手の評価値、 null window searchのad-hocに狭めた側が該当。 以上