GA将?開発日記~王理のその先へ~

ネタ勢最強を目指して絶賛開発中。

2017-01-01から1年間の記事一覧

GA将が振り飛車苦手なのは良く分かった (´・ω・`)

前々からずっと気になっていた、本将棋で飛車を振った直後に角道開けて馬を作られる現象、ようやく原因が判明しました。 まず、探索ルーチンの方は正常でした。角道開けてから2七角成まで読めてます。枝刈りのし過ぎとかではありませんでした。 んで、肝心…

【お知らせ】非公開設定を解除しました

現在はパブリック設定ですので、今後はどなたでもご覧頂けます。 書き込み頻度は低いですが、これからもよろしくお願いします。

【主に】現在の課題と、今後の展望【強化学習方面】

えー、まず前提として、現在のGA将の学習ルーチンですが、EB-PGLeafと呼んでいるPGLeafの拡張版がベースです。 んで、これには桜丸さん提唱の「レベルアップ判定ルーチン」が有ります。エース(過去最強)の評価関数パラメータを保存しておいて、Greedy方策…

Null Move Pruningと必至絡みの微妙なバグ、発生

「必至をかける→パスする→詰まないじゃん!」という誤解をしてしまう現象が起きています。 んで、実際はパス以外を指すと全て詰む手順だったりするんで、終盤で大反省してしまう事がチラホラと。ついでに、連続対局がエラーになって止まる事もあり、困りまし…

対ssp(5五将棋モード)のベースライン

試しに、駒割のみ適当に初期化して、後の三駒関係+αはごく小さな乱数で初期化した評価関数を使って、sspと対局させてみました。 んで、驚愕の事実!!! 2勝21敗で勝率8.7%でした!!! 全く勝てないかと予想してたんですが、駒割のみでも意外と行けるもん…

EB-PGLeafの微調整中

パラメータの更新回数を、本譜の手のPV Leafでのみ更新する様に変更。 ミニバッチサイズ*1を100→1000に変更。 Bonanza 6.0のFV_SCALEに相当する値*2を微調整。 王将の移動可能範囲評価で特徴量計算式を修正。 んで、現在5時間ほど学習させて、駒割はほぼ収束…

前の論文の手法は断念(半分だけ)

http://d.hatena.ne.jp/Gasyou/20170701/1498906118 上記論文の手法ですが、5五将棋で使用するのは難しそうです。 と言うのは、論文中でρとρ'という値を計算する必要があるのですが、現状のGA将の評価関数ではどちらも0.0になってしまいます*1。多倍長浮動小…

さて、今後のプランはどうしようか

http://d.hatena.ne.jp/Gasyou/20170701/1498906118 先日書いた論文ですが、アルゴリズムの解説まで目を通して、残るは理論的な部分と実験結果のみ。ボチボチ読んで行きますが、とりあえずGA将に組み込む為の設計は可能な段階だと思います。 んで、以前書い…

Count-Based Exploration in Feature Space for Reinforcement Learning

https://arxiv.org/pdf/1706.08090.pdf 強化学習と関数近似を組み合わせた場合に、 φ-pseudocountと呼ぶ指標を元に探査を行う手法らしい。 大きな状態行動空間でも効率的に学習可能とあるので、コンピュータ将棋への応用も期待出来そう。

ダメでした _| ̄|○

前に書いた、探索深さをランダムに決める方式での学習ですが、強くなりませんでした。 正確に書くと、学習序盤は比較的伸びが良かったんですが、対局数を増やしてもそっからあんまり伸びませんでした。最終的に、対ssp(5五将棋モード)で勝率77%前後だった…

過去半年で最高の出来(当社比)になる!…かも

CNNを使ったActor-CriticとPGLeafのハイブリッド構成ですが、全然強くなる気配がありません。 …で、ですね。ちょっと思い付いたんですよ。従来のPGLeaf改の問題点。 今までは、全幅3手・静止探索10手とかで探索深さを固定して学習させてました。 ただ、これ…

Parameter Space Noise for Exploration

https://arxiv.org/pdf/1706.01905.pdf 前やって失敗した手法に似てるかも。何か新しい知見が得られればと。

行きつ戻りつ、でも元には戻れなかったっポイ

前回の日記からしばらく間が空きましたが、ぼちぼち進んでます。 まず、5五将棋・本将棋でもDNNを使ったActor-Criticが動く様に修正。ただ、5五将棋でもCriticの処理*1に1局あたり200ミリ秒とかかかってて実用的ではありませんでした。 んで、次にやったのが…

三目並べの学習はほぼ成功

目標探査率*1が0.5の場合、92000局前後・約90分で学習成功。0.33だと19万局経過後もまだ収束していません。 グラフには出してないですが、先手側が学習した評価関数で、後手完全読みプレイヤーの場合は、もっと早期に収束しています。 三目並べなので、「真…

オーバーフィッティングしてるよ (´・ω・`)

えー、うちのCritic曰く「三目並べの初期局面の評価値は0.6点」だそうです。勝率80%に相当する数字。 うん、バグってますね。 どこが悪いのかな〜。ネットワークがデカすぎる*1? それとも学習率*2? RMSPropが悪さしてるって事は無いよね〜、多分。 15:14:…

Deep Learning始めました

Caffeの導入も無事終わり、現在は三目並べにDeep Learningを利用して実験中です。 んで、困った現象が一つ。 まず、学習自体はちゃんと出来ている様です。学習した評価関数*1を使用して自己対局すると、ちゃんと引き分けます。また、片方のプレイヤーを学習…

Caffeはじめました(数カ月ぶり3度目)

Twitterでもちらっと書きましたが、GA将にDeep Learningを取り入れたくてCaffeを使ってみる事にしました。 と言っても、対局用(実戦用)の評価関数は三駒関係+αの線形のやつで、学習時のみDNNを使用する予定です。 やりたいのは、基本的にActor-Criticアル…

VS ssp(5五将棋モード)

KKPのバグを潰して、EB-PGLeafで147万局学習させたパラメータ。割引率は1.0。 結果、782勝190敗で勝率80.5%。あっさりと前回UEC杯時のパラメータを超えました。 まぁ、元々2つほどバグが有ったんで、強くなって当然っちゃ当然なんですが。 んで、現在は238…

Sample Efficient Actor-Critic with Experience Replay

https://arxiv.org/abs/1611.01224 Actor-Criticと方策勾配法・Experience Replayを組み合わせた手法らしい。 一度読んでみて、GA将に取り入れられそうなら実装しますか。 あ、それから、前書いた「好奇心」の手法ですが、「報酬がスパースな場合*1に極めて…

KKPバグってるのか正常なのか…

http://d.hatena.ne.jp/Gasyou/20170521/1495317822 の続き。 え〜、学習を進めた結果、KKPで先手55玉・後手11玉に対する先手33金の価値が、マイナスになりました。 んで、これが正常なのか異常なのかの判断が付かないんで、玉の位置は同じで33に銀が居る場…

ベースラインの測定完了

現状手持ちの最強パラメータを使って、Athlon 5350マシンでsspとのスパーリングが終わりました。 結果、647勝310敗で勝率67.6%。 という訳で、当面はこれを越えるのを目標にしていきます。

新 検証用マシンのセットアップ完了

試しにGA将のベンチマーク取ってみたら、5五将棋モードで0.8Mnps _| ̄|○ ちなみに4コアフル稼働の状態でコレですw RyzenやCore i7に敵わないのは分かりきっていましたが、ここまで遅いとは… ま、とりあえずこのマシンで当面は検証していく事にします。

満身創痍(PC環境が)

開発用マシンと学習用マシンはまぁ無事なんですが、棋力検証用マシン*1が熱暴走で頻繁に落ちる様に。ついでに、半年ほど起動していなかったfloodgate常駐用マシン*2はOSが吹っ飛んでるらしく、起動不可能に。 という訳で、FX-8350は引退してもらって、Athlon…

KKPのバグ修正、完了

まだテスト完了してないですが、とりあえず動く様にはなりました。 んで、ついでにKKP/KPPの一部パラメータをログ出力する様にしてみました。 一応、予想通りの方向に修正されている様なので、一安心。

Curiosity-driven Exploration by Self-supervised Prediction

piqcyさんのツイートから発見。強化学習において、特に高次元になると報酬が得られる機会はとても少なくなる。そこで「好奇心」、つまり新規性のある環境への到達について報酬を設定することで学習速度を上げる試み。これによりベースライン(A3C)よりも高い…

おおう、KKPにバグ発見

現在のGA将の評価関数は、Bonanza 6.0の三駒関係をベースに手番を考慮した評価も実装しています。 …で、テストしていたらKKPの手番考慮の部分でロジックの誤りを発見。 ちょっと規模が大きな修正になりそうなので、じっくり設計してから修正する事にしました…

テスト用のログ出力完了

100局面ランダムに生成して、局面評価に使用した全特徴量の名前を出力完了。 という訳で、楽しい楽しいテストの時間です (`・ω・´)

評価関数のテスト中

KPP_手番側14_手番側飛15__持ち駒(相手側_歩_0枚)(0_15_28923)(1242732) : -0.0779578 * 0.25, score==-0.253623 KPP_相手側43_手番側飛15__持ち駒(相手側_歩_0枚)(1_13_28923)(2821337) : -0.0392326 * 0.25, score==-0.263431 PP_手番側飛15__持ち駒(…

個々の駒の位置評価に対するQ学習の適用

前にもブログに書いたか実装したかした覚えは有るんですが、見つからなかったので再度書いてみる。 んで、やる事。例えば駒の位置評価*1を考える。 この時、「先手2四歩の価値」は「max(先手2三歩の価値,先手2三と金の価値)」に近い(はず)。 なので、パ…

面白い終局図が出来た

10700局終了 +---+---+---+---+---+ | | | |v角|v王| +---+---+---+---+---+ | | | |^金|v歩| +---+---+---+---+---+ | | |^銀| | | +---+---+---+---+---+ | |^銀| | | | +---+---+---+---+---+ |^王| | | | | +---+---+---+---+---+ 歩,香,桂,銀,金,角,飛,…