2023年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

最近のトラックバック

無料ブログはココログ

« 2009年4月 | トップページ | 2009年7月 »

2009年5月11日 (月)

もう少しメモ

gpsでは、実現確率を二つ使っている。

一つは、枝刈用の実現確率

もう一つは、本来の意味での実現確率=その手を指した時にdepthに足す値(あまり正確な言い方じゃないけど、自分用のメモなので勘弁)

静止探索は、YSSの残り深さxで読む手、を参考に作成&KFEndを参考に、脅威を評価。

GPS将棋の発表から得たヒントなど

ほとんど個人的なメモです。

…Bonanza Methodを一度は実装した経験がないと意味不明だと思う。

  • Bonanza Methodで『進行度』の計算の仕方を調整
  • 『進行度』を学習する時は、他の特徴量の学習はOFF
  • 序盤/中盤/終盤に評価関数を分けている。ここで、進行度を0~1とすると、例えばある局面の評価値は、
    • 0<=進行度<0.5 の場合 序盤の評価関数×(0.5-進行度)+中盤の評価関数×進行度
    • 0.5<=進行度の場合 中盤の評価関数×(1.0-進行度)+終盤の評価関数×進行度
    のように求めている。
  • Bonanza Methodを行うにあたって、特徴の変更中にPVが変わらないという(かなり強い)仮定を置いている。
    全てのPVを求めて保存→各局面に対してBonanza Method実行を50step程度(これで大体値が収束)
    再びPVを求めて保存→Bonanza Method実行…の繰り返し。
    毎回PVを求める方法と比べるとかなり高速化が期待できそう。
  • 静的探索の中では、stand-patする際に脅威を評価しているが、学習用では普通にstand-patしている。やはり脅威の評価をするとうまくPVが求められなかったりとかややこしい問題に突き当たったそう。(うさぴょんもそれではまった)
  • Bonanza Methodの実行中、慣性項(のようなもの)を持たせて、同じ方向に特徴が動く場合には、大きく動かす。正負が逆転する場合には、直前の学習が過学習だったのではないかと看做して、前回のイテレーションでの増分値の半分だけ戻すなどの工夫を行っている。他にも怪しいヒューリスティックスが入っている(ある条件化で、全ての特徴を全部1/8にするとか)ので、詳しい条件は、gpsshogiの学習部分のソースを読むべし。
  • featureを考えるのは、将棋四段位の人の仕事。ただし、最初は考えたfeatureを入れても強くならなかったそうで、こういうfeatureが足りないからこういう手が指せないとかここで受けに回れないとか、そう言うのはプログラミング的な知識と将棋の知識と両方がないと非常に難しそう。
  • 棚瀬さんの意見では、将棋の知識は初段位あればいいんじゃないかとも言っていたが。
    • 余談として、保木さん=将棋倶楽部24でR500位だと、へぼい道場だと初段相当だとか(^^;
    • R250のオレはどこへ行けばいいのやらwww
  • 特徴を追加・学習した場合、中盤の10局面を用意し、先後を入れ替えて各々一手30秒で直前のバージョンとの自己対戦でチェック/stableなバージョン(手で評価値を調整したもの)との対戦でチェックし、両方に対して13勝7敗(これだと本当は有意性が足りないみたいだけど)以上しない場合、その特徴はReject
  • さらに、featureを追加した四段程度の棋力の人が棋譜を見て、変な指し手がないかどうかチェック。あからさまに変な指し手がある場合にはやはりReject or 再学習
  • 上記のようにしないと、超攻撃性が高い個体が攻撃性の高い個体に勝つというような現象が起きるそう。
  • そして、超攻撃性の高い個体は、うさぴょんみたいなのにもぽろっと負けたり、と。
  • 実際、自己対戦は危ないよなぁ…<個人的経験から。

用語とかは全く正確じゃありませんw 特に、『Bonanza Methodの実行中』と言うのは、本来の意味だと『PVを求める部分』と『PVに対して特徴ベクトルの調整を行う』のは一つの処理のはずなので。上記では、『PVに対して特徴ベクトルの調整を行う』部分のみを指して『Bonanza Methodの実行中』とか言ってたりします。

進行度の調整の仕方に関しては、序盤・中盤・終盤の評価関数がある程度ちゃんとしてからでないと進行度が計算出来なさそう。

2009年5月 9日 (土)

ぽかーん…

この記事を書いている時点で、第19回コンピュータ将棋選手権で優勝した、GPS将棋が、floodgateにおいて、51勝1敗、将棋倶楽部24換算したレーティングでは3000超え。(Bonanzaが選手権と違って1コアなのかも知れないけれど)Bonanzaにも大きく勝ち越しています。

どこかで『今年の優勝はじゃんけん勝負のような感じで、どこが優勝しても別におかしくはなかったんじゃない?』と発言したのですが、上記を見た感じだと、優勝するべくして優勝したとしか言いようがないです。

これは、持ち時間が極端に短い将棋(例えばNHK杯のようなルール)だと、(研究されるまでは)プロにも勝ち越しかねないのでは…。多分、対局している内に人間側が『癖』とか『悪い定跡選択をさせる』とかですぐに勝てなくなるのでしょうけれども。

動かせる環境が限られているので、Bonanzaが現われた時程の衝撃はなかなか普通の人には与えられないのでしょうが、この勝率は凄すぎる…。

2009年5月 4日 (月)

選手権、行って来ました。

第19回コンピュータ将棋選手権、参加してきました。

二次予選からの参加で、4勝5敗。二次予選24チーム中18位。

…昨年と同じ成績です。

午前中は、駒組関連のプログラムがバグっているのに気が付きませんでした _no

「みさき」とやってる時には全然気が付かず、「臥龍」とやっている時にも気が付かず…SPEARとやってる時に、すげー変な手を指し初めて気が付きました… _no

あまりの変さ加減に、SPEARの開発者のグリンベルゲンさんには

『ここからSPEARが負けたら、もうコンピュータ将棋の開発は辞めま~すw』
とか言われる始末…(苦笑)。

ちなみに、上を言われたのは、ここの棋譜の23手目の局面。 17手目が既に変で、二人で笑い出したのですが、致命的に変だったのは23手目です。

その後、ようやっとバグも治ったかと思って迎えたのが、最終のTACOS戦。

…まだこれから難しい捻り合いが延々と続くんだろうなぁという局面で、TACOSがバグで停止してしまい、反則勝ち。

駒組みが変かどうかは、TACOS戦は定跡手順で大分進んでしまったので不明…。

まぁ色々課題があったり、色々知見があったりしたのですが、徹夜で寝ぼけてるので今日はこの辺で…。

2009年5月 2日 (土)

学習のバグは取れそうだけど

学習結果を収束させるのに、回しっぱなしでも120時間位かかりそう(--;

というわけで、うさぴょん2は諦めましたw

うさぴょんで出るなら、後は細かい調整をするだけなんで、明日は見学に行くかなぁ。

2009年5月 1日 (金)

うさぴょん2 半ば ギブアップ

…『うさぴょん2』選手権までに形になりそうにないですw

『静止探索の中でややこしいことをしているのが仇になって、試しに学習をしていたものの、失敗した』のは3月24日にも書いた通りですが、その静止探索を捨てるのも忍びないまま、ついついそのまま過ごしてしまいました。(仕事の方が忙しかったのもありますが。)

で、気合を入れ直して、学習の失敗の原因を探していたら、PVノードの末端で、脅威を考慮している部分の評価値の更新の処理がまずくて、これがどうも学習が収束しなかった原因の模様。このバグ、原因としては分かったけれど、うまく学習の方がコーディング出来ない(爆)。

今から(って、後2日しかないよ?)普通のstand-pat型の静止探索にするかなぁ(--;

他の代案としては、とりあえず駒の位置評価だけでも簡単な方法で求めるとか。(とにかく、定跡を外れた後の駒組みをまともにしてくれないのが一番問題なので。)

今は、対振り飛車に対して、51に玉がいるままに、53銀・52金・41金・42銀に組むという有様ですw いや、有様というよりも無様と言うべき?

« 2009年4月 | トップページ | 2009年7月 »