aobazero
aobazero copied to clipboard
Aoba Zero
AobaZeroは対Kristallweizenとの棋力計測に磯崎氏が作成された互角局面集を使っています。 これを使わずに「やねうら王 標準定跡」を相手側だけつかうようにすると AobaZero w1650の1手800 playoutは Kristallweizen 1手500k 相手だと +114 ELO 強く、 elmo 1手346k 相手だと +155 ELO 強くなります。 これは互角局面集にAobaZeroが指さない戦型(穴熊や先手振飛車、対振で船囲いから急戦など)が 含まれてるためと思われます。 Kristallweizenやelmoも自分の評価関数が得意な戦型だけを選ぶように調整すれば強くなるでしょうし、 双方に公平な条件での勝率の測定は難しそうです。 AobaZero(w1650)の1手800playout 対 Kristallweizen、elmoで互角局面集、standard_book.dbを使った場合。 AobaZeroは一切乱数性なし。 Kristallweizen 1手500k 勝 分...
今まで気づかなかったのですが、論文のFig 2をよく見ると AlphaZeroはelmoに対して思考時間が長いほど、先手での勝率が上がっています。 下はグラフから読み取ったAlphaZeroの対elmoの勝率です。 グラフに合わせて、AlphaZeroが後手のとき、先手のとき、の勝と引き分けの値、 そして先手と後手での勝率の差です。 思考時間が1/100の時は、先手と後手の差は+30 ELO、勝率で0.54程度の差で、 これなら通常の将棋の勝率に近いです。 しかし、思考時間を増やすごとに先手と後手の差は広がり、 same time(持時間3時間)では +390 ELO もの差になっています。 AlphaZeroは探索速度は4TPUで 58000回/秒 なので持時間3時間の100分の1、108秒だと 1手1秒程度かと思います。elmoは 44 threadで 25100k /秒 です。 現在のAobaZero(w1650)の勝率は 1手 800 playout 対 elmoの1手...
自己対戦と、対Kristallweizenとの宣言勝ちの推移を先手番、後手番で分けて調べてみました。 10000棋譜ごとの自己対戦での宣言勝ちの推移  1000万棋譜から先手番での宣言勝ちが増えています。 現在もゆるやかに上昇中です。 ただ後手番の宣言勝ちは増加が止まってます。 それでも10000局で合計400局、4%程度が宣言勝ちなだけです。 10000棋譜ごとの自己対戦での引き分けの数  こちらは引き分けの数です。やや最近は増加傾向です。 800局なので全体の8%程度が引き分けです。 512手超えはほぼなく、99%以上が千日手です。 対Kristallweizenでの宣言勝ちの推移  対Kristallweizenでもw950(600万棋譜)から先手番での宣言勝ちの 割合が増えています。 w1360(1000万棋譜)ではもうすでに、先手では60%の勝、と 大きく差が出てます。自己対戦では1000万棋譜で ようやく先手が増えだしたのとは、かなり異なります。 現在では先手の勝ちの75%近くは宣言勝ち、後手では35%、と 大きな差が出ています。 ただ、先手、後手の勝率には差はほぼないです。AlphaZeroは 対elmoでは先手勝率98%、後手84%と大きな差があります。
学習率を 0.0002 から 0.00002 に変更しました。 10980422棋譜、weightは w1450 から新しい学習率となります。 (w1449までが古い学習率での更新) AlphaZeroは1000万棋譜で2回目の学習率変更なので、約100万棋譜遅い更新となります。 またGoogle Colabで開発版を使うことで13倍速く(Tesla T4)棋譜を生成できるようになりました。 http://www.yss-aya.com/aobazero/colab.html Tesla K80 36.2 棋譜/時 Tesla T4 130.0 棋譜/時 (9.9棋譜/時) (は以前の速度) Tesla P100 138.3 棋譜/時 (15.5棋譜/時) Tesla...
autousiが同時に21個程度のプロセス(aobaz)を起動して、 aobazが計算するニューラルネットを同時にミニバッチ、7個程度、まとめて 計算するテストをしています。 この効果で1日7000棋譜程度だったのが50000棋譜程度と7倍ほど高速になっています。 これはバッチを組む高速化とともに、開発側でGPUを10枚ほど一時的に増やしたことにもよります。 計算はOpenCLですが、今までのLeelaZeroのOpenCLの流用をやめて 将棋盤の9x9で高速に動くように最適化しなおしたものを使っています。 バッチを組むことで4倍程度、OpenCLの改良で1.7倍程度高速化されてます。 Windows版の対応を含めての公開はもう少し先になると思います。 floodgateではweightを5つごとに試していましたが、今のペースだと 1日で5つ出来てしまい、50局程度しか試せないので AobaZero_w938_n_p800 からweightを10ごとにする予定です(次はw948)。
48さんがsfen方式に対応したAobaZeroを公開されています。 ShogiGUIで動作する 駒落ちにも対応している とのことです。 将棋所はUSIでの局面指定を平手の場合、 position startpos moves 7g7f 8c8d といった形式で送ってくるのですが、ShogiGUIは position sfen lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL b - 1 といったsfenと呼ばれる形式で送ってきます。AobaZeroは上の形式にしか対応して いなかったのでShogiGUIで動作しませんでした。 ニューラルネットワークの入力としてAobaZeroは過去7局面の配置も必要とするのですが それは与えていないとのことです。 sfen対応 https://bleu48.hatenablog.com/entry/2020/01/01/014730 sfen対応(Windowsバイナリ) https://github.com/bleu48/aobazero/releases
こんにちは。rtx2080tiで動作させたところ、GPU使用率が58%止まりになります。使用率を上げることはできますか?また、Averageが1650msくらいです。この速度は正常でしょうか?
1. 平均手数 図1は1万棋譜ごとの平均手数です。 最初の12万棋譜はNNを使わずにPolicy、Valueともにプログラムで乱数を割り当てて作った棋譜で、200手程度で一定です。 現在の平均手数は125手でゆるやかな下降傾向にあります。  2. 先手勝率 図2は1万棋譜ごとの先手の勝率です。 80万棋譜で勝率が0.60からだと0.52まで急落してます。 これは後手が△44歩と角道を止めて振飛車を指しだした時期と一致します。 角道を止めずに単純に殴り合うと先手が勝ちやすく、それを避けたのかもしれません。 振飛車とはいっても△32金と上がる振飛車で△52金型の振飛車を指すのは260万棋譜とかなり後です。 この頃の棋力はアマ3段ほどと思われます。 190万棋譜で勝率が0.60から0.52に急落したのはMCTSの勝率の初期値を引き分け(0)から負け(-1)に 変更したためです。それまではこのバグのため勝率が悪い局面ではpUCTが多くの手を展開するようになり、 結果として「勝率が悪い後手がさらに多くの手を探索」 → 「もっと形勢が悪くなる」 と後手の勝率をさらに押し下げる結果となっていました。 現在の先手勝率は0.546でゆるやかな上昇傾向にあります。  3. 千日手と512手超え(持将棋)の数 図3は1万棋譜ごとの千日手と512手を超えた局数でsy。この2つはともに引き分け、として扱われます。 持将棋の扱いが512手超えともいえます。 学習開始直後は512手超えが全体の半分近くになるほどでした。 これは1手詰の形を学習してそれを避けるようになり手数が伸びたと思われます。 プログラムで乱数を与えた初期の棋譜では探索もしているのである程度の確率で王を詰ませてました。 それ以降、急激に512手超えは減り、引き分けはほぼ千日手です。...
学習率を `learning rate = 0.02, mini_batch = 4096 (mini_batch = 128, iter_size = 32)` から `learning rate = 0.0002, mini_batch = 128 (mini_batch = 128, iter_size = 1)` に変更しました。w787から新しい学習率となります。 これはiter_sizeを使った場合、個々のmini_batchにおけるBatch...
序盤の変遷が分かって面白いです。 http://www.yss-aya.com/aobazero/no_noise/sample.html 大まかな傾向は ・先手は居飛車しかしない。振ってきたら右四間か腰掛け銀で攻める。左美濃が好き。 ・後手は雁木か四間飛車。美濃囲いに落ち着く。 (ただ、これは一番なりやすい変化、というだけで、学習棋譜では相掛かりの乱戦などがよく出てきます) 最近の最初の4手は ▲26歩△34歩▲76歩△44歩、この形が本線のようです。 最近先手勝率が0.542から0.538に下がってきたのは後手が△84歩から 横歩を取らせる変化を指すようになったせいかもしれません。 1手800plyaoutで乱数の要素がないので、常に同じ手を再現します。 w765 ▲26歩△34歩▲76歩△44歩、後手は雁木。▲78金▲77銀。 w755 ▲26歩△34歩▲76歩△84歩、先手だけ横歩を取る。横歩取33角。▲68玉△52玉。 w750 ▲26歩△34歩▲76歩△44歩、後手は雁木。▲78銀、先手は早繰銀。 w735 ▲26歩△34歩▲76歩△32金、先手だけ横歩を取る。横歩取33角。▲68玉△52玉。△24飛とぶつける。 w720 ▲26歩△34歩▲76歩△44歩、後手は四間飛車。美濃囲い△52金。先手は腰掛け銀。左美濃。 w710 ▲26歩△34歩▲76歩△44歩、後手は雁木。先手は▲36歩から棒銀。左美濃。 w690 ▲26歩△34歩▲76歩△44歩、後手は四間飛車。美濃囲い△52金。先手は右四間。左美濃。 w660 ▲26歩△34歩▲76歩△44歩、後手は四間飛車。美濃囲い△52金。先手は右四間。銀冠を目指す? w630 ▲26歩△34歩▲76歩△44歩、後手は四間飛車。後手から仕掛ける。 w610...