持ち時間によって勝率が大きく変わりうることは、いままでに何度か書いたが、今回は、このことについてさらに詳しく書く。
結局、魔女+Apery20160917といま公開されている技巧とはどれくらいの差なのか。
1秒4HT..魔女側+R30
3秒4HT..魔女側+R50
6秒4HT..魔女側+R70
10秒4HT..魔女側+R90
※ 1秒4HTとは、1手の思考時間が4論理スレッド(2コア相当)、1秒という意味。1コア性能は、Skylakeの0.7倍程度。
それぞれ3000局程度の計測なのであまり正確ではないが、だいたいこんな感じのようだ。このように持ち時間を倍にすると技巧との勝率はR20ずつぐらい離れていくようである。
いまどきのCPU(Skylakeなど)で、20秒8HTでやるとたぶん魔女側+R140ぐらいになるのではなかろうか。
電王トーナメント予選では15分10秒なので1手当たり、平均的には20秒ずつぐらいは思考できるだろうから、技巧との差はこの+R140ぐらいということになる。
何故、持ち時間を倍にするごとにこのように乖離していくのかは私にはよくわからない。技巧の探索パラメーターが比較的短い時間に対してチューニングされているせいなのか、それとも評価関数が2駒関係と3駒関係である差が長い時間において表面化してくるのか。
ともかく、このように長い持ち時間になればなるほど有利なソフトが存在する以上、PCのスペックが上がって有利になるのは、そういったソフトの存在である。
持ち時間が倍になるごとにR20ではなくR30ずつ乖離していくソフトがあるとしたら?
PCスペックが上がっていくと探索部の性能の違いで極めて大きな差を生みかねない。
今年のPonanzaが(電王トーナメント決勝日の持ち時間において)去年のPonanzaよりR300ぐらい強くなっていても全く不思議ではない。
電王トーナメントのPCスペックは年々下がっていくけどw
下がってくれたほうがponanzaが優勝する確率は下がるはずなので、他の開発者にとっては、悪くないのかも…。
すべての原因ではありませんが、これは明確に理由を説明出来ます。
まず、公開されている技巧と新評価関数にはR200程度の差があります。これを技巧は登録定跡などでR150程度に縮めています。
※定跡ON、OFF、初手から、指定局面から等比べるとすぐに分かります。
そして秒数が短い設定ほどもつれた終盤を迎え、終盤に強い技巧がさらにRを縮めます。
設定時間が長くなるほどに、元々のR差に近づいていくので、SMに横綱相撲をされます。
長時間設定で500局程度対局させれば、おそらくR150~200の差になるハズです。
これはSMが極端に終盤に弱いからでもあります。
おそらく探査を早めるために初期の枝狩りに関するコメントアウトをミスっています。(同じ評価関数を使っても、やねうら王ではあまり出ないので)
具体的にはたびたび例にして悪いですが、以前書込みました棋譜の中で、
102手目の5七龍引がSMには理解しずらい手になっているハズで、74手目の5六龍でこのラインに相手玉を釣り上げたら決まるなと狙っていました。
SMはこういった局面の1手目で、龍という配点の高い駒を切ってくるような手を探査でもらします。
これは最後の112手目の9三香打でも同じです。これは簡単な13手詰めですがSMはなかなか出ません、1手目で9三香打を捨てる。3手目で9六金打を捨てる。といった手順を初期探査でもらすからです。
技巧なら一瞬で出ます。この辺が終盤は技巧が強い。SMは頓死すると言われる原因です。
こういったテクニックで私はSMを狙い打ってるだけで、タネが分かれば何てことないマジックのようなものです。
これは将棋が強くなるわけでは無いので、プロ棋士の人が将棋ソフトに勝とうと思えば、ガチガチの相矢倉なんかで将棋ソフトに妙手を出させないようにするのが良いと思います。
終盤でもつれて逆転負けするのが多いということですね。長い持ち時間であれば、その逆転が減るというわけですね。なるほど…。
しかしそうなってくると技巧相手にチューニングしていくと、逆転を減らすだけのチューニングになって、よろしくない可能性がありますね。いやー、将棋の「強さ」って難しいですね。
真やねうら王は非常にバランス感覚にすぐれ、決まった材料で料理を作るのが上手い印象です。
受けるなら受ける。攻めるなら急戦で頓挫しても上手く修正してきます。
逆にプロっぽい選択肢が多い局面になると、候補手が多くなり読み負けて劣勢になります。
テストで言うと、1問目(depth1)からじっくり考えすぎて後半問題(depth)までたどり着けず、総合得点が相手より低くなるみたいな感じです。
たぶんこれを定跡で持久戦や急戦といった、自分が得意な問題から解かせるように調整すれば総合得点が高くなるような気がします。
非常に興味深いです。
枝刈りしまくると、もつれた泥沼乱戦で読み落としが出る。枝刈りしないとおだやかな局面で深く読めない。みたいなのかな
間違っていたら、やねうら王さんが指摘してくれるハズなので。
私の対局推移を観察した感想だと、同じ評価関数を持つSMとやねうら王をある中盤初期局面で読ませると、
SM=1700万ノードでdepth24
やねうら王=1700万ノードでdepth22
といった差が出ます。同じノード数でdepthが2も違う!でも指し手は一緒。
といった状況が続くんですが、たまにSMのほうが深い探査で評価値の良い手を見つけちゃって評価値が傾きます。
ただしこの手が良かったかどうかは、ずっと後になってからしか結果がでません。SMが正しかった場合はSMの勝ち。SMが間違っていた場合SMの負けとなります。
そんなにdepthに差があるの?と思うかもしれませんが、将棋の指し手は未来に向けて枝わかれしていますので、
到達するdepth≒1手当たりの平均候補手の乗算となりますので、
SMは1手当たりの平均候補手数≒2手^24depth≒1700万ノード
やねうら王は1手当たりの平均候補手数≒2.1手^22depth≒1200万ノード(次の+1depthまでに必要なノード数は+1400万ノード)
たった0.1手平均候補手が増えるだけで、ここまでの差がでます。
SM作者は自分が必要を感じなかった項目をいくつかコメントアウトすることで平均候補手を減らし、到達depthを上げている工夫をしている感じで考えています。
しかし気分的に到達depthが早いほうが強い気がします。(プラシーボ効果)
なので、プロっぽい選択肢が多い局面を避けたり、戦法を絞り込んだり、守りに徹して駒当たりを減らして候補手を減らしたりすることで、結果到達depthをあげる工夫ができないかな?と思った次第です。
【マメ知識】
SM:Ver.1.1は44角を自陣の33角に後退すると33馬になってすごい良い評価値になる!みたいなバグがありましたが、Ver.1.1.02は成り駒の確認とフィッシャールールに対応するという修正をしていたハズです。
上記でも書きましたが、たった0.1手平均候補手が増えるだけでものすごい到達depthに差が出ます。ので、成り駒の確認という項目がひとつカムだけですごい遅くなります。
SM:Ver.1.1と1.1.02を中盤後期辺りで見比べると良くわかると思います。
まあ、そのへんはやねうら王2016Lateでずいぶん改善していることでしょう…。たぶん..。
ところで、ゲーム木は「探査」(investigate)ではなく「探索」(search)です。前者は、あるかないかわからないものを探る、後者は、未知のものを探るという違いがあります。