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

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

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

プロセス・スレッド優先度の話

現在のGA将は8クライアントの合議ですが、スレッドとしては合議サーバが1スレッド・合議クライアントが計8スレッド走っています。 んで、Core i7 5960X*1マシンでは問題なく思考時間制御が出来ているんですが、Athlon 5350*2マシンだと時々ラグが出る(思考…

再度放流します

色々な持ち時間・対局相手で一晩ローカル対局した結果、バグで落ちる事は無くなりました。 という訳で、18:30の回から放流します。 …レーティング付くまで、ちゃんと動くかなぁ。

絶賛デバッグ中

合議が動き出しはしたのですが、まだまだバグ持ちなのでデバッグ中。 んで、今日も2件ほど潰しました、ここに書くのがはばかられるほどアホらしいのを2つ。 さて、んじゃ寝ます。

タイマーのバグの件

まず、タイマーのバグだと思ってたのはそうではありませんでした。あと、OS依存の問題でも無さそうです(多分)。 最初に原因を書くと、詰将棋ルーチン用スレッド*1にアフィニティマスクを設定していたのが原因でした。 元々、詰将棋ルーチンは「マルチスレ…

VS ssp(5五将棋モード)

Dropoutを用いた多数決合議を実装したバージョンでの結果。 959-0-41で勝率95.9%、95%信頼区間は94.5〜97.0になりました。 同じマシン*1・同じ評価関数パラメータで並列探索バージョンだと844-0-154で勝率84.6%でしたので、確実に*2強くなっているみたい…

一旦引っ込めます

まだバグ持ちみたいで、対局者の皆様、ご迷惑をお掛けしました。 という訳で、一旦放流はやめてローカルでテストしてみます。 …てか、勝ちを読み切った時に(むちゃくちゃシビアな)タイミング依存の問題が有るってのは、早めに見つかって良かったかも。本番…

23:00の回から放流します

なんか、原因不明のバグが有ってWindows 10マシンでは思考時間制御にバグが有る*1ので、開発用のWin 7マシンで。 ザックリ調べた結果、Core i7 5960XなWin 10マシンとAthlon 5350のWin 10マシンはNGで、Core i7 4930KのWin 7マシンはOKでした。 まだOS依存の…

思考時間制御用のデータ採取完了

5五将棋用のデータが出揃って集計してみました。 んで、どうも3段階の制御だと無駄が多そうなので、ちょっと修正します。 まず、2段階目終了時点で、得票数の差が1票以下なら思考時間延長時に50〜40%程度の割合で指し手が変化します。2票〜4票程度の差でも2…

VS ssp(5五将棋モード)途中経過

608-0-28で勝率95.6%、95%信頼区間は93.7〜97.1。イイ感じです。 とりあえずこのまま1000局まで続行させてみます。

VS ssp(5五将棋モード)途中経過

さっき開始したばかりなので対局数少ないですが、現在21勝2敗。良いペースです。 この調子で、勝率9割行ってくれると嬉しいなぁ。

痛恨のミス発覚

探索ルーチンから合議サーバに最善手更新を通知するロジックに漏れがあって、正常に動いていませんでした。 んで、修正したんで対局は出来る様になったんですが、問題は思考時間制御の基礎データ。 こっちにも影響があるんで、データ取り直しです _| ̄|○ と…

長年のバグをFIX

25回選手権時の無明戦の痛恨の千日手、ようやく原因が判明しました。 原因としては単純で、詰将棋ルーチン内部での千日手の扱いが不正だったのが理由でした。 修正して軽くテストした感じ、ちゃんと動いています。 …さて、後は合議の方をちゃんと動く様にし…

思考時間制御の実装はほぼ完了&合議での探索も半分完成

まず、思考時間制御のルーチンは完成。みっちりテストしたんで多分大丈夫。 一応、秒読み有り(電王トーナメント用)・切れ負け(UEC杯5五将棋大会用)・フィッシャークロックルール(GPW杯用)の3通りに対応した、ハズ。 んで、前も書いた様に思考時間は3段…

思考時間制御に着手

本当はαβ探索をリファクタリングしてからやりたかったんですが、そっちは失敗したんで第25回選手権バージョンの探索ルーチンを使う事にして改良開始。 んで、今日は合議の票数ベースの思考時間制御の為のデータを収集するコードを書いて終了。 遅くとも明日…

Off-Policy PGLeafは失敗

色々試してみたんですが、5五将棋では上手く行きませんでした。 んで、学習ルーチンの改良は後回しにして、電王トーナメント&UEC杯5五将棋大会に向けて準備中。 多数決合議で対局するルーチンをちゃんと実装して、合議の票数ベースで思考時間制御をする所ま…

久々の更新

開発日記を書くのも久々ですが、とりあえず現状。 合議の方の乱数のパラメータ調整ですが、正規乱数をパラメータに足すよりも、Dropoutで1割程度のパラメータを強制的に0にした方が強くなる様です。 という訳で、電王トーナメント・UEC杯5五将棋大会にはDrop…

Exploration in Gradient-Based Reinforcement Learning

http://dspace.mit.edu/bitstream/handle/1721.1/6076/AIM-2001-003.pdf?sequence=2

Deterministic Policy Gradient Algorithms

http://jmlr.org/proceedings/papers/v32/silver14.pdf

学習用マシンのOSをアップグレード

電王トーナメントの使用マシンが確定したので、Windows 8.1 ProからWindows 10 Proにアップグレードしました。 今ん所無事動いています。つっても、コマンドプロンプトとGA将の学習ルーチン、タスクマネージャしか動かしてないですが。 あ〜、でも、コマンド…

細々としたメモ

例によって自分用のメモなんで、大概イミフだと思いますがご了承下さい。 まず、USIを使っての連続対局で「初手のみランダム」と「p=0.2でDropout」を対局させた結果*1。 Dropout側から見て376勝352敗なので、勝率にはほぼ差が無し。終局図の重複割合は2%程…

電王トーナメントにエントリーしました

さー、これで後戻り出来ないぞ〜。

第3回将棋電王トーナメント

http://info.nicovideo.jp/denou/tournament2015/ エントリー受付中ですが、私はしばらく様子見。 理由の一つはUEC杯5五将棋大会と日程がかぶっている事、もう一つは選手権以降棋力アップが全く出来ていない事です。 とりあえず、早々に5五将棋の学習を成功…

合議用PGLeafでの学習を開始

PGLeaf単体では行き詰まり気味なので、合議用に複数の評価関数を同時並行して学習するルーチンを引っ張り出してきて学習開始。 んで、以前は評価項目ごとにOn/Offを切り替えて複数の評価関数を作成していましたが、それを変更。 今度は、評価項目ごとの重み…

RMSPropをすっ飛ばして、Adamを実装

してみました。 とりあえず一晩走らせてみて、効果がある様なら採用します。 んで、powの計算がやったら重かったので高速化するコードを探して真似てみたりとか。なんか、そっちの方が時間かかってました。

AdaGradとRMSProp

http://qiita.com/skitaoka/items/e6afbe238cd69c899b2a 上記サイトを参考に勉強していますが、ようやくAdaGradとRMSPropの違いが理解出来ました。 大雑把に書くと、AdaGradは「勾配の累積が大→学習率小」なので、「学習初期に大きく値を動かしたパラメータ…

評価項目ごとのテスト

教師ありの方策勾配法で、特定の評価項目*1を無効にした場合の学習の成否を確認してみました。 んで、結果として「大駒の自由度」と「二駒の相対位置」を無効にした場合にそこそこちゃんとした結果になりました。 逆に言うと、上の2つのどこかにバグが有る可…

メタ学習の実装を検討中

PGLeafのテストも行き詰まりがちなのと、もうすぐ盆休みでまとまった時間が取れそうなので、デッカイ改良を検討中。 んで、表題のメタ学習。 一般的に、学習ルーチンの挙動を決めるパラメータを「メタパラメータ」とか「ハイパーパラメータ」と呼びます。例…

Windows 10アップグレードの記録

コンピュータ将棋の方でネタがないのでPC関連の話でも。 という訳で、表題の通りWindows 10にアップグレードしました。 つっても、いきなり開発用マシンとか学習用マシンをアップグレードするのはリスキーなので、万一の時一番影響の無いfloodgate常駐用マシ…

ドロップアウトの効果

試しにP=0.5でDropoutを実装してみました。 んで、駒の価値が急に減少する事は無くなったので、ある程度の効果はありました。 ただ、駒の価値が金<龍<馬になっていたり、棋譜との一致率が微妙に下がったりという状況です。 試しにLesserkaiと対局させると…

テスト中

とりあえず、学習用棋譜約5万局から、20局分は汎化誤差検証用に取り出して学習する様に修正。読み通り過学習なら、汎化誤差はどっかのタイミングで大きくなっていくはずです。 んで、現在バグの再現&状況検証中なんですが、ひたすら時間かかってます。 …こ…