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

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

2014-04-01から1ヶ月間の記事一覧

頓死チェックの実装結果

反復深化の前回イテレーションの1割の時間を、ルートノードでの頓死チェックに使う設定です。 で、対ssp(本将棋モード・Ponder無し)に1秒将棋で214-0-41の勝率83.9%、95%信頼区間は78.8〜88.2。 前の結果より勝率が微増していて、60%の確率で強くなって…

さくらのクラウド

http://cloud.sakura.ad.jp/payment/simulation.php 料金シミュレーションしてみたら、仮想4コア・RAM 8GBで12台使っても月額15万円台。 これは、来年の選手権で使ってみようかな。48コアマシンを買うと多分一桁違うから、結構リーズナブルかも。 やるとした…

Deep Reinforcement Learning

http://sssslide.com/www.slideshare.net/mooopan/ss-30336609 TVゲームのプレイヤーをDeep Learning+強化学習で実装したらしいです。 強化学習+ニューラルネットは鬼門と言われているらしいですが、技術がある人がやればちゃんと動くんですね。

Aspiration Search

実装してみたものの、遅くなったので不採用。GA将!!!!!!!の場合だと、何度も再探索するコストより一度にウィンドウ(-∞,+∞)で探索した方が速いみたいですね。 さて、それじゃぁ次は頓死チェックですか。 当初考えていたマルチスレッドでのチェックはエンバグ…

VS ssp連続対戦結果

Core i7 4930Kとi7 940で並行して同じプログラムを走らせてて、結果はそれぞれ156-0-30と150-0-32。トータルの勝率は306-0-62で83.2%。 前回との差分は詰将棋ルーチンの有効化とグローバル詰みテーブルの実装なので、まぁこんなもんかなって感じです。 選手…

グローバル詰みテーブル有効にした場合の結果

ssp(本将棋モード・Ponder無し)相手に216-0-60で勝率78.3%、95%信頼区間は72.9〜83.0。 弱くなってます。明らかに。 まずはグローバル詰みテーブルを無効にして、それでどう変化するか見てみますか。

Ponder・詰将棋ルーチンでバグ発見

本日2件目のデカいバグです。 んで、Ponder実装時に詰将棋ルーチンを別スレッドで動かすコードを少し修正したんですが、そん時にミスってました。 どうなっていたかと言うと、思考開始(通常探索&詰将棋スレッド)→すぐに詰将棋スレッドを終了させる→通常探…

今更、局面クラスにバグ発見 _| ̄|○

え〜、対局開始時に香車が駒台にあると、局面のメタ情報(利きとか駒番号テーブルとか)が異常になるバグでした。 ファイルの作成日時を見てみると去年の5/25。つまり、一年近く潜在していたバグって事ですね。 まぁ、発見出来たから良しとしますし、普通に…

各種枝刈りのパラメータ調整結果

ssp(本将棋モード・Ponder無し)相手に140-0-31で勝率81.9%、95%信頼区間は75.3〜87.3。 調整前より微妙に勝率が上がっていますが、明確に強くなったとは断言出来なさそうな感じです。 まぁ、悪くなってもいないんで、この結果で納得しておきます。 と言…

枝刈り関連はほぼ完了

以下は実装済み。 LMR(パラメータ調整中) Null Move Pruning(パラメータ調整中) Futility Pruning・Extended Futility Pruning(パラメータ調整中) Transposition Table Ponder 以下は未実装で、やってみたい。 グローバル詰みテーブルの実装 頓死チェ…

ログ出力削減バージョン結果

今度はGA将!!!!!!!、ssp共にCore i7 4930Kで動作させた結果。 んで、216-0-54で勝率80.0%。95%信頼区間は74.6〜84.5。前の結果と大差無いです。 チューニングしてGA将!!!!!!!が速度アップしたのと、sspが動作するマシンが高速になったのが打ち消しあった感…

枝刈りの各種パラメータを調整

んで、枝刈り無しとの指し手の一致率は90.7%、高速化率はMacro Average,Micro Averageでそれぞれ2.43と4.73になりました。 前は一致率83.5%で高速化率が7.6,16.8だったので、一致率が上がったけど速度は落ちてます。 まぁ、読み抜けばかりで深く読めても意…

Futility Pruningの結果

181-0-45で勝率80.1%、95%信頼区間は74.3〜85.1。 前が199-0-49で勝率80.2%なので、全く効果無しみたいです。 …とりあえずログ出力を削減したバージョンで連続対戦させつつ、Futilityのパラメータを再調整してみますか。

60%高速化!!!

まず、探索ルーチンの速度計測時に、自己対戦用の探索関数を呼ぶと500knps出てるのに、実戦用の探索関数だと200〜300knpsでした。 で、どこがおかしいか調べてたら、実戦用ではログ(評価値・読み筋・経過時間等)出力に時間がかかってたみたいです。 試しに…

Ponder有りでの実験結果

GA将!!!!!!!@Core i7 4930K vs ssp@Core i7 940での結果。 199-0-49で勝率80.2%、95%信頼区間は74.7〜85.0。 前が124-0-37なので、80%の確率で強くなっているみたいです。 さて、それでは次はFutility Pruning/Extended Futility Pruningを追加して連続対…

Ponder予備実験

ssp(本将棋モード・Ponder無し)@Core i7 940相手にGA将!!!!!!!はCore i7 4930K(Ponder無し)での連続対戦結果。 124-0-37で勝率77.0%。前の結果*1よりやや勝率下がってますが、まぁ誤差の範囲内でしょう、多分。 と言う訳で今度はGA将!!!!!!!のみPonder…

Ponder途中結果

対ssp(本将棋モード・Ponder無し)が38-0-9で勝率80.9%、95%信頼区間は66.7〜90.9。 んで、詰将棋ルーチンの終了待ちでいつまで経っても終わらないバグが発動しちゃったんで、これからデバッグです。

ThinkPad X220のスペックアップ

メモリを標準の4GBから8GBに増設。容量アップ&デュアルチャネル化で多少は性能アップしたはず。 ストレージもHDDからSSDに換装済みだし、手軽にいじれる所はやり尽くした感がありますね。 正直、今のThinkPadはキーボードとかトラックポイントとかが好みじ…

細々更新

以下は実装済み。 LMR Null Move Pruning Futility Pruning(パラメータ調整中) Transposition Table Ponder 以下は未実装で、やってみたい。 Extended Futility Pruning Aspiration Search グローバル詰みテーブルの実装

探索関連でやってる事・やってない事

以下は実装済み。 LMR Null Move Pruning Transposition Table 以下は未実装で、やってみたい。 Futility Pruning、Extended Futility Pruning Aspiration Search Ponder

ツツカナ流探索ルーチンの学習法(ニュートン法)

学習ルーチン(続き)

とりあえず特徴は一通り実装し終わり、並列化も完了。特徴量は結構増え、計1248個になりました。 という訳で、例によって学習用マシン(アサーション無効、本番用設定)と開発用マシン(アサーション有効)で走らせてみます。 明日朝には学習が終わってて、…

ツツカナ流探索ルーチンの学習ルーチンの進捗

とりあえず、絶対消費深さ計算用関数の特徴は、実装が厄介な物数個を残して実装完了。 それから、学習ルーチン本体はほぼ完成。1000局・初手だけ学習だと、ちゃんと2七歩と7七歩の2つが上位に来ました。 ただ、私の実装だと学習がかなり遅い(1万局分の学…

ツツカナ流探索ルーチンの学習法

アピール文書には「学習は式(2)を勾配法等で最小化する」とサクッと書かれていますが、私の頭では微分がすぐには出来なかったのでメモ。 まずの微分。 んで、の微分。 の微分は指数部をとして 今度はの偏微分で はシグモイド関数の合成関数なので かなり自…

探索用の特徴量として使いたいもの

とりあえず思い付くままに列挙してみて、後で不要そうなら削る方向で。 移動元のマス(駒台含めて82通り) 移動先のマス(81通り) 移動後の駒の種類(14通り) 成る手か否か(2通り) 取られる駒の種類(13通り) 取った駒と取られた駒の種類(14×13通り) …

色々あって探索ルーチンの改良に着手する事にした

WCSC21の一丸さん(ツツカナの開発者)のアピール文書を読んで、ツツカナの新手法だとαβ+LMRに対して勝率75%、Rは+190*1ってのを見て、これはやらねば! と。 つー事で情報収集。枝刈りとか探索の延長・短縮関連の学習について覚えてる範囲で列挙。 「棋理…

二つ↑で書いたパラメータ

バグ持ち学習ルーチンの出力ですが、とりあえず連続対戦中。 …3連敗してから10連勝って、いくらなんでもおかしいだろう。いや、単に乱数が偏っただけでしょうけど。

千日手と置換表がらみのバグ発見

前から自己対戦学習がアサーションエラーでたまに止まると思ってたら、置換表のバグでした。 原因としては、まず千日手に至る途中の局面(3回目の同一局面とか)の評価値が、3.5とかの普通に評価関数で計算した値で置換表に保存されています。 で、4回目の同…

報酬の計算方法を修正

改良型PGLeafで報酬計算の式を修正。 で、結果。23万局学習したパラメータで対ssp(5五将棋モード)は300-?-93で勝率76.3%、95%信頼区間は71.8〜80.5。 わりかしいい感じなので、次は60万局学習後のパラメータで連続対戦してみます。

なんか弱くなってる

探索・評価関数以外の対局部分の細々した修正(通常探索ルーチンが詰将棋ルーチンより短手数の詰みを発見した際の処理等)をしたら、何故か対sspの勝率が下がってます。81%→75%位。 と言う訳で4月3日バージョンのソースをビルドして連続対戦中。結果が良け…