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

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

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

次回選手権まで残り200日なわけですが

方策勾配法が動くめどは立たず、かと言って他にアイデアがあるわけでも無く。 どうしましょうねぇ。毎度ながら、ピンチです。

いい感じに行き詰ってまいりました

いや、全然よくないんですけどね orz とりあえず方策勾配法+線形の評価関数で4x4のリバーシを解こうとして、色々やってます。 んで、細々とバグを潰してもダメ。パラメータ調整をしてみてもダメ。評価項目を追加してみてもダメ。 …次はどうしようかなぁ。 …

チマチマとデバッグ中

報酬の計算式が変だったり、勾配の計算が変だったりしたのを修正。 ただこれ、リバーシ固有のコードのバグだから、将棋の方には関係無いよなぁ。て事は、このまま将棋にリトライしても望み薄って事で… うーん、どうするか… とりあえず、リバーシの方は一応学…

白くてフワフワでムチムチしてて甘くて柔らかくて…

チョコマシュマロうめーッス。

GPW直前の雰囲気がどっかで見覚えあると思ったら

http://d.hatena.ne.jp/gamidere/20101007/1286445860 http://d.hatena.ne.jp/issei_y/20101007/1286448687 コミケ直前の雰囲気と似てる。一般参加者→「もうすぐだな〜。楽しみ。」 発表する人→「うわぁああああああああああああああああああああああああ、…

4x4リバーシで片一方のプレイヤーだけが最善を尽くす場合の解明結果

対局条件は下記の通り。 4マスx4マスのリバーシ 黒(または白)番のプレイヤーは最善を尽くす 白(または黒)番のプレイヤーは最初の手*1を指す 結果は、黒のみ最善だと+16で黒の勝ち、白のみ最善だと-14で白の勝ちになる。 *1:Ver 5.0.08時点のGA将!!!!!の…

ツツカナさん強えぇー

http://wdoor.c.u-tokyo.ac.jp/shogi/LATEST/html/current/2010-10-Gasyou_Atom-D510_1c2t-tsutsukana.html 選手権の二次予選で当たった時は消化不良で終わっちゃったんですが、floodgateであの時の続きが出来るかと思いきや、ツツカナさんが一気に強くなっ…

リバーシで関数近似を実装

今まで4x4のリバーシはテーブル形式の評価関数でやってたんですが、それじゃぁあんまりテストにならないんで、線形+シグモイドの評価関数も実装。現在テスト中。 後は学習中のパラメータの変化を出力する様にして、将棋同様に発散するかどうかの調査ですね…

ちょっと思い付いて実験中

先手と後手で特徴量の符号を反転したりとか色々やってるんですが、その“色々”が悪さしてるかもしれないと思い、先手だけバージョンと後手だけバージョンを学習モードで走らせてみます。 …ただ、今ざっと見た限り、あんまり芳しくなさそうな感じです。まぁ、…

pishogiは丸山スペシャル(稲庭スペシャル?)を覚えたらしい

http://wdoor.c.u-tokyo.ac.jp/shogi/tools/view/index.cgi?go_last=on&csa=http://wdoor.c.u-tokyo.ac.jp/shogi/x/2010%2F10%2F03%2Fwdoor%2Bfloodgate-900-0%2BGasyou_Atom-D510_1c2t%2Bpishogi%2B20101003123006.csa 負けてますよ、ちくしょー。 んで、そ…

相変わらず発散しまくり

ちょっと思い付いて、π(s,a;θ)が小さい(選択確率が低い)手は学習対象外としたり、シグモイド関数のゲインgをいじってみたりしたんですが、相変わらず将棋だと評価値が発散します。 これって、どっか勘違いしてるか間違ってるか、そういうのが原因か?

将棋だと評価値が発散する問題

三目並べがちゃんと収束したのは、どうも発散前に引き分けに収束したのが理由っぽいです。 んで、将棋だとなかなか収束しないので、収束前に評価値が発散しちゃう、と。 んー、どうすっかなぁ。

失敗orz

評価値が発散しててダメでした。大抵の局面で評価値が1か-1になるんで、マトモに指し手選択が出来ない状況です。 学習率下げても発散を先送りする程度の効果しか無いし、さて、どうしたもんか。

明日からの予定、どうしよう?

とりあえず学習が上手く行ったケースですが、二つほど考えてます。 (1評価関数のまま)学習を並列化した上で、もっと深い探索で学習させてみる。 複数評価関数での合議にリトライ。 要するにシングルエンジンでの強さを求めるか、弱エンジンの強さはそこそ…

と言うか、上のグラフおかしくね?

TDLeaf(λ)だとだんだん勾配が緩やかになる曲線状だったんですが、上のグラフ、すごく一直線です。 これってどんどん値が大きくなって、発散しちゃうかも。やだー、明日の朝が怖いデス。

うがー、まだ収束しねー

とりあえず開発用マシンで走らせてる、5五将棋バージョンのパラメータ。 駒の価値の比率はまぁ妥当そうな感じなんですが、まだ収束した雰囲気が全く無いです。 これは、一晩走らせないと無理ぽ?

よっしゃァ!

評価値計算でシグモイドを使う様にしたら、ちゃんと駒の価値がプラスになってくれました。 これだけじゃまだ強くなってるか不明ですが、数時間学習させてからsspあたりと連続対局してみます。

評価値の計算式を変えるんで、方策勾配法の式を再計算

まず、行動価値関数(≒評価関数)の式は下記の通り。 ここで、Bは特徴量の数(次元数)、は特徴量、sはシグモイド関数(+α*1)で、下記の通り。gはゲイン。 次に、方策は下記の通り。 次に、は下記の通り計算出来る。なお、式中の// 2010/10/17 21:10修正 *…

方策勾配法で温度調整するの、やめそうかな

expの計算で簡単にオーバーフローするし、かと言って多倍長演算は面倒そうだし。 とりあえず自前のアルゴリズムで探査率見つつ温度自動調整は出来てるから、当面それでいいや。楽だし。

ソフトマックス方策を用いた方策勾配法の計算式その2〜温度も学習しよう〜

方策πの式は下記の通り(再掲)。 Qは価値関数で、sの手番が優位な局面ほど高い値となる。 んで、温度Tで偏微分すると下記の通り。 // TeXの式が長すぎて画像表示されなくなったので、続きは別に。

僕の考えた完璧な素数計算プログラム

http://d.hatena.ne.jp/mclh46/20100927/1285605192 のタイトルを見てふと思い出したので。 学生時代の友人が「10以下の素数を出力するプログラムを作成せよ」という問題に対して「これなら完璧。絶対にバグがないぜ!」って言って書いたもの。 printf( "1 2…

と金の価値は

昨日書き忘れてたんですが、三目並べで先後両方共学習するバージョン、ちゃんと収束する様になりました。 原因はソフトマックス方策の温度設定で、1.0だとNG(先手勝ちになる)で0.2だとOKでした。 んで、昨日の夜から学習用マシンで将棋の方の学習をしてい…

やっぱり間違ってた

まぁ、コード書く前に気付いたんでダメージ少ないですが。

温度パラメータの微分

計算してみたらやったら複雑になったんだけど、本当に合ってるんだろうか?なんか心配。

相変わらず、先後両方学習すると先手勝ちになります

先手だけ学習・後手だけ学習で収束速度を比較してみましたが、特に異常なし。 後手だけ学習だとちょっと収束遅いんですが、これは元々先手有利な状況で学習を開始し、一旦は引き分けにする事を学習してから後手が勝つ事を学習しているせいだと思われます。 …

HYBRID W-ZERO3販売再開

http://willcom-blog.com/archives/2010/09/00654.php このまま消えるのは惜しい端末なんで、復活してくれて嬉しいです。 基本的に以前のモノと同じですが、回線と通信部分のハードがSoftbank網対応に変更されているみたいです。 その他詳細はリンク先をご覧…

うわああああああああああぁッ!!

収益の計算式、おもいっきし間違ってたよ orz え、てか、この間違ったコードで何で収束したんだ、三目並べは? あれ、え? なんで?

今日やった事まとめ

手数オーバーでの引き分けの設定を300手から1024手に変更 引き分けの評価値を色々試す 学習中は千日手を回避する様に修正 あれ、ちょっと設定変えて走らせるのしかやってない?ひょっとして。

多少は囲うつもりがあるんだろうか

+---+---+---+---+---+---+---+---+---+ |^と| |^と|v香|v飛|v王| | | | +---+---+---+---+---+---+---+---+---+ |^と| | |v角| |^と|v桂| |^と| +---+---+---+---+---+---+---+---+---+ |^桂| |v香|v歩|v歩| |v歩| |^と| +---+---+---+---+---+---+---+---+…

手数オーバーの場合に対処

学習時は引き分けの評価値を「負けても良いから引き分けを回避する」様な値に設定したら、ある程度対処出来たみたいです。 てか、こんないい加減な対策で良いんだろうか…