SDT5の直前にAWSで20万円かけて生成したという例のやつです。
やねうら王の教師局面データのフォーマットになっており、シャッフル済みです。1つのファイルが圧縮後のサイズで100GBほどあります。平手の初期局面から20手ランダムムーブさせた局面から対局シミュレーションを開始しています。定跡は使っていません。(この生成の仕方が良いのか悪いのかについてはよくわかりません。)
ここからやねうら王のlearnコマンドを用いて学習させるとelmo+R170程度の評価関数が出来上がることがわかっています。
データが非常に大きいので2週間ぐらいで削除すると思います。欲しい人は、早めにダウンロードしてください。
https://drive.google.com/open?id=1P91aWqDnkxRHJcqrph7H9nJ01ieu5Iri
https://drive.google.com/open?id=1-gFyMXU5bbDXkVbatWLl4Z72TZPiTpVP
https://drive.google.com/open?id=1KXr2aj17VOqN0cz-0kZ0Mf-fXJGq-54S
こんにちは
shuffled_sfen1.7zをダウンロードしました。
解凍して、shuffled_sfen1.binがでました。
やねうら王を動かすには、shuffled_sfen1.binを
どこのフォルダにいれたらいいのでしょうか?
よろしくお願いします。
docs/USI拡張コマンド.txtにあるlearnコマンドで教師局面ファイルとして使います/使えます。また、本データは開発者向けのものなので、開発者以外には意味のないものです。(´ω`)
やっぱり2、30億局面くらいだと足りないんでしょうか?
KPPT型評価関数をAdaGradで学習させる場合、2,30億局面では全然足りないですね。110億でも足りているかどうか謎です…。(教師局面を増やしていくとまだ少しずつ強くなるようで…)
公開の教師データをこれから学習したいのですが、公開のファイルは3つに分割されていますが、以下4点の質問をしますので教えて下さい。質問内容により断定しにくいものについては、やね先生だったら、こうするかな?でよろしくお願いします。
1. 1ファイル分を学習した評価関数を元に、2ファイル
分を学習し、2ファイル分を学習した評価関数を元
に3ファイル分を学習する方法で問題ないですか?
2. 3ファイル分を一回学習後、何回か再度学習させた 方が、 良い結果になるのでしょうか。シャッフル
は毎回します。
3. rezeroを学習させる場合はepoch0とepoch8のどち らを使った方が、良い結果になりますか?
4. すでに強い評価関数をブレンドしたものを使用し、 それだけに学習させる方法と、rezeroを使用し、そ れに学習させたものと他の評価関数をブレンドさせ る方法では、どちらが良い結果になりますか?ブレ ンドでは相性があるので、評価関数をいくらか変え て検証します。
1. やねうら王の学習式、AdaGradなので、なるべくたくさんの局面を一度に与えたほうが、出現頻度の低い特徴の勾配が正確に出るので、3つのファイル一度に使うほうがいいと思いますけども。
2. 1回学習させたあと、教師局面をシャッフルして、もう一度学習させるとわずかに(+R20前後)、強くなることはあります。
3. epoch8からのほうがパラメーターの移動量が小さくていいような…。
4. ブレンドしたものに対して追加学習するとブレンド効果がなくなるような。ブレンドしてないものから追加学習させて、そのあとにブレンドしたほうが良いかと思います。ただ、私はあまりブレンドを信じてないですけど。
1について気になったのですが、以前公開されていたDepth6の数億局面と合わせてさらに沢山の局面を与えると学習の効果は大きくなるんでしょうか。
それとも、深さの違う局面をまとめて学習させるデメリットとかがあって、逆効果なんでしょうか
depth 6と10だとレーティングで言うとR400以上異なるので、混ぜることによって得られる多様性や局面数より、教師の質が大幅に下がってしまうことによる損失のほうが大きいように思います。
なるほど。確かに局面の多様性や局面数が教師質よりも重要なら、depth1とか2でもりもり教師を水増ししてもいいわけですね。すると低いdepth側による局面の質の低下が大きいので、異なるdepth教師を混ぜるのは好ましくないと。
Shivorayで遊ぶだけですので、素直にやねさんのデータを使ってみようと思います。ありがとうございます。
前回はありがとうございました。もう一点教えて下さい。3つに分割されている教師データを一度に続けて3つ分学習させるには、以下の入力でよろしいでしょうか。たぶんshuffled_sfen.binの入力部分が間違っていると思うので、正しい入力文を教えて下さい。よろしくお願いします。
YaneuraOuV471learn.exe threads 4 , hash 16 , evaldir eval_zero_epoch0 , evalsavedir new_eval , evalshare false , learn save_only_once batchsize 1000000 eta 30 lambda 0.5 shuffled_sfen1.bin shuffled_sfen2.bin shuffled_sfen3.bin , quit
それで合ってると思いますよ。私は教師データは一つのフォルダに入れて、そのフォルダをtargetdir sfens20171124のようにして指定してますけども。
また同じのを公開して下さい。
(忙しくて無理だった。)
公開するためのストレージがなくてですね…。考えときます。(´ω`)
よろしくお願いします。
本筋ではない質問でここに書くのは恐縮ですが、elmo絞りの公表以降、開発者様達はdepth8や10、12などの教師局面を作ることが多いように思います。
depthが偶数なのには何か理論的背景があるのでしょうか、それとも慣習的・経験的に偶数のdepthが用いられているだけなのでしょうか。(例えば奇数の深さだとなぜか弱くなるとか)
奇数depthでは、探索中に延長やreductionが起きない限りpv(最善応手列)終端までの手数が奇数になります。
KPPT型のように手番を持っている評価関数ですと、その時、ほとんどすべての因子がrootの局面と異なることになります。rootとpv終端との出現する因子の差異はわずかでないと学習が難しくなるのでこれは困ります。
ゆえに偶数depthのほうが好ましいのです。
奇数depthだとn+1手後の局面が相手番になるので、手番も対象にする評価関数だと影響が大きくなってしまうのですね。
此れのWCSC30に向けてのものを公開する予定はありますか?(出来れば公開して頂きたい。)
教師データの公開はいまのところ予定はないです..
そうですか….
いずれ来るであろう公開の日を心待ちにしております。