今回のやねうら王は、学習時に人間の棋譜を用いていない。いわゆるリゼロ系である。学習時に人間の定跡も用いていない。初期局面から何手かランダムムーブさせた局面からdepth 10で対局させたものを教師局面として用いている。
だから、今回、定跡を作るときも、人間の棋譜を使うのではなく、完全に自力で(自ら探索して)生成することにした。人間の対局に一切左右されたくないからである。
定跡を作った詳しい手法については別の記事で書くが、こうして作った定跡が不思議なことにプロ棋戦でよく現れる形をたくさん包含していた。プロ棋士の遠山先生にこのことを話したところ「いまさらそんなことでは驚きませんけども」と軽く言われたのだが、以前作成した定跡(真やねうら定跡)ではプロ棋戦に出現するような指し手は指さない(指せない)ので、私にとっては意外であった。
プロの定跡は、江戸時代から連綿と続く試行錯誤の結果到達した人類の叡智の結晶である。そのプロの定跡に自ら到達したことには驚きに値すると思うのだが、プロ棋戦で現れるような形を好んで指すようになった弊害もあった。それは、対局相手がこの定跡を長い手順まで(手で)入力していることがありうるということだった。本大会では予選で2回も見事にハマってしまった。
第一局は、やねうら王は18号との対局です。18号さん、千田先生の定跡を搭載しているそうで、どうも横歩取りの怪しげな(やや不利な?)変化に飛び込んでしまいました。ううう。
— やねうら王 (@yaneuraou) November 11, 2017
18号、千田先生の定跡を教師局面を作るときに使っているそうで、この定跡に対する評価関数の学習がかなり進んでいるようです。そこにハマっちゃった感じですね。うーん、これは悲しい。
— やねうら王 (@yaneuraou) November 11, 2017
やねうら王、後手で第一局に似た変化に飛び込んでしまった。shotgun作者「floodgateでこの変化でボコボコにやられたので、このへん、定跡を念入りに入れてます」とのこと。うわー。
— やねうら王 (@yaneuraou) November 11, 2017
51手目、いまだ先手、青野流(?)の定跡局面だそうで、ノータイム指し。こっちは思考時間半分以上つかいきってしまいました。
— やねうら王 (@yaneuraou) November 11, 2017
2つの対局のうち、青野流にハマったほうは、定跡を抜けた付近(50手目付近?)では互角の局面なのであるが、相手はほとんどノータイムで、こちらは半分以上持ち時間を消費していたので、これでは勝てる道理がない。(同系の評価関数で持ち時間が半分だとR200程度の差)
このへん、勝負の上では大変損をしたが、かと言って、この自力で定跡を作った方法を改めれば良かったとは思っていない。リゼロ系のコンセプトとして、人間の棋譜を一切参考にしないというのがあり、本大会のやねうら王は、このコンセプトを実証する機会でもあるからである。
なので、改めるべき点があるとすれば、定跡を作成するときの探索深さ(現在depth 34。もっと深くすべき!)であり、また、定跡を作成する初期局面からの手数(現在ply=18付近。もっと深くまでツリーを作成すべき!)である。あとfloodgateなどの実戦で現れた局面に関してはその局面での指し手ぐらいdepth 34で思考させて入れておくべきである。
色々反省点は多いが、本大会の定跡を掘るのに、AWSの費用で言うと15万円分ぐらいの計算リソースを用いているので、本大会向けとしてはこれぐらいが限界であった。
15万円分←いままでのやねさんの歴史からすると大したことないなと感じてしまいました(^ω^)
depth 34,ply=17の定跡生成に15万円。depth 10×100億の教師生成に15万円。// 今回ここまで
depth 34,ply=21の定跡生成に60万円。depth 12×300億の教師生成に150〜210万円。// 次回目標
wwwwwwwwwwwwwwwwww
見ている方としては面白いですが狂気の沙汰ですね。。。
すみません、書くところがわからなかったのでここに書きます。教師局面を学習させようとするとError! read packed sfen , failed.とでてできません。初心者なので分かりやすく教えてもらえると幸いです。
教師ファイルの読み込みに失敗してます。learnコマンドの使い方については、こちらを。
ランダムムーブは何手ほど入れているのですか。
このころは初期局面からランダムムーブ8手ぐらいで生成してました。(穴熊っぽい局面を出したかったため)
ただ、初期局面から8手も動かすと互角とほど遠い局面になることが多く、よろしくないですね…。互角局面集みたいなものからスタートしたほうが良いです。