Hatena::ブログ(Diary)

gamidereの日記

2012-05-09

がくしゅう(仮)でがっかり

02:15

懲りずにTD(1)-leafで学習させてみた。

という条件で学習してみた。

で対局実験を行った結果、

CSAの大会のプログラム(駒割のみ)に

3勝-29敗-0分

という残念な結果に。

駒割は

と 482

杏 650

圭 665

全 656

馬 1230

龍 1368

金 652

歩 71

香 359

桂 423

銀 545

角 896

飛 1053

とそんなに悪いあたいではないのだけれど。

しかし学習版の評価値を見ると、

f:id:gamidere:20120510020716p:image

の局面で2秒探索させて

<1:search depth 6 result -699

<1:search depth 6 result -697

<1:search depth 7 result -398

<1:search depth 7 result -399

<1:search depth 8 result -622

<1:search depth 9 result -430

<1:search depth 10 result -551

<1:search depth 11 result -477

<1:search depth 12 result -589

<1:search depth 13 result -481

といってるので約桂一枚分損と思っているらしい。

位置価値が大きすぎるのかもしれない。

ボナメソに心が揺れる今日この頃。

週末にボナメソ実装予定。

GasyouGasyou 2012/05/10 21:00 >評価項目は
> 駒割
> KKP
> KPP
これだけ特徴が多いと、それなりの対局数が必要そうな気がします(10万局以上?)。
あと、駒割と3駒の関係の間に「駒1枚の位置評価」「駒2枚の位置関係の評価」とかを挟むと、汎化能力が上がって嬉しい様な気もするんですが、未検証なのではっきりした事は言えません(申し訳ないです)。
参考までに、WCSC22バージョンのGA将の評価関数パラメータは、TDLeaf(λ)で探索は全幅1手+静止探索(この他に、方策内部で全幅もう1手)で学習しました。

2012-05-06

余談

22:36

将棋とはまったく関係なく面白いなと思ったところを箇条書きしてみる。

研究室のOBとのお話が盛り上がり、終電を逃す。

 メカウーサー将棋さんと一夜を共にする。「爆走兄弟レッツ&ゴー!!」と「Working」を読む。どちらも面白かった。

研究室の教授が2回表彰されたこと

なのはさん送りバント失敗さんのパーティでのスピーチ

研究室で作ってもらったパーカーがニコ生に映る

目標

22:16

やはりちょくちょくブログ更新しないとだめだなと思う。

あまり厳しい目標だと投げ出すので、とりあえず3日にいっぺん、更新しようと思う。

と言っておけば実現するだろう。

書くことが大事なはず。

CSA振り返り3(2012年版)

22:11

3. 総括

2勝4敗1分で終了。

残念な小谷研クラスタの一員となった。

2次予選、決勝と見学したが、やはりレベルが段違いだった。

1次 草野球

2次 セリーグ

決勝 メジャーリーグ

という感じ。

自分の理想を追うのもいいけど、やっぱり勝ちたい。

それを強く感じた。

というわけで来年の目標。

・1次突破(シード獲得(笑))

・まったりゆうちゃんに対して全駒する

送りバント失敗をボコボコにする


 

CSA振り返り3(2012年版)

21:34

2.5 対白砂将棋さん

昨年も対局させていただいた。昨年は終盤で逆転された。

桂得され、6筋に飛を回られて負けかなと思った。

相手の玉もすごいところにいるけど。

以下水平線っぽい手を繰り返し淡々と形勢が悪くなる。

しかし▲7七銀が「駒をちょうだい」という手で個人的には

いい手だなと思った。

ここら辺から相手の攻めを利用してなんと馬まで作れた。

▲8六角と覗いたときには逆転してるかもしれない。

以下金を捨てて▲4三馬で必死。ぱたぱたと進んで対局終了。

「やった勝った!」と思うとなんだか画面がおかしい。

なんと打ち歩詰めで負けていた。非常にがっかり。

2.6 対なり金将棋さん

なり金将棋さんと話すことに夢中で気がつくと序盤が終わっていた。

ひたすら攻められてひやひやする展開に。

なぞの端攻めをしている間に、急所に飛を成られる。

以下ボコボコにされた。かなり出来の悪い展開で完敗だった。

2.7 対椿原将棋さん

ぐだぐだして終わり。対局よりも作者さんとのお話の方が面白かった。

CSA振り返り2(2012年版)

21:10

2. 1日目

通信テストを前日にサボったため早めに家を出たつもりが・・・

すでに多くの人が会場にいる。

その後メカウーサー将棋さんと通信テストを慌ててやってもらう。

その際にネットワークの設定をすべてやってもらう。

大分恥ずかしい思いをした。

無事通信テスト終了。


2.1 対こまあそびさん

序盤から珍妙な動きのさわにゃん。駒価値のみなので、駒の交換

が発生しない限り合法手からランダムに選択するのでしょうがない。

一方相手は美しい駒組み。内心相当あせる。

その後、不思議なやり取りの後、さわにゃんが小賢しいたれ歩。

▲1三同香では▲1四歩で困ったかなと思っていたが、△2五桂〜△5四歩で

飛が死ぬので意外と難しいかもしれない。

上手いこと香getして飛を取ることが出来たため形勢が傾いた。

あとはなんとか即詰みに討ち取ることが出来た。

1手詰め関数の導入で通常探索でも詰みを見つけやすくなったよう。


2.2 対クマ将棋さん

歩損の仕掛けをされたので、いけるかなと思ったがレベルが違った。▲7九銀が謎の一手。要検証あり。

2.3 対AWAKEさん

筋違い角に。歩得しか考えていないのでしょうがないか。

順調に4筋から破られる。▲4四角を喰らって悪いと思っていないのでがっかり。

以下入玉模様でがんばるも水平線っぽい手が出て負け。

力の差を大いに感じた。

2.4 対ym将棋さん

棒銀で攻められたら完敗のところを見逃してもらい、だらだらした対局に。

作者の方はTreeStrapを使われているとのことで、いろいろ教えてもらう。

学習の際に、自己対局ではなく強いプログラムと対局させているらしい。

やはり自己対局ではだめかも。

などとお話させていただいていると、ようやく局面が動き出す。

2.1のときと同様に、香が上がった瞬間△18歩。どうもこれが好きらしい。

しかし2.1の場合と異なり桂馬が取られる形なのであっという間に不利に。

△13同桂では△同香がいいのではと思っていたら、▲1四歩〜▲2四歩で香

が取られるからだめ、との読み筋。たしかにそうかもしれない。

水平線気味の手をはさみながら着々と悪くなる。

ここでは負けを覚悟した。ただし、相手の持ち時間が少ないので、

勝つとしたら切れ負けかなと考えていた。

△9七歩成とやけくそ王手すると▲同角と取った。

逃げるかなと思っていたので意外だったが、逃げるのも結構怖い。

その後、飛交換になり、相手に駒が渡ったため、攻めの手立てが出来て終わったな

と思った。▲8四香はうまい手で、絶望した。

このあたりから相手は1秒モードに突入。

△9四歩の応対を間違えてもらい即詰みに。

銀を捨てて、銀を打ち直して詰みというのがちょっとおしゃれだなと思ったり。

サクサに紛れて勝った感じだけどうれしかった。

かず@なのはかず@なのは 2012/05/06 22:25 そうそう、書くことが大事。
実現確率が上がりますw

hyperion_ymhyperion_ym 2012/05/06 23:56 お疲れさまでした。
△13同桂のところ、ym将棋は△13同香▲同香成△同桂と来ると読んでました。

TreeStrapで、今考えてるのは、当日もお話しましたけど、2駒間の相対位置評価ですね。
今は絶対位置で評価していて、たとえば矢倉囲いみたいな守りの形は理解してるっぽいんですが、これは形がなかなか崩れずに、学習機会が多いからだと思うんです。
逆に、攻めの形(囲いの急所を突くとか)は、局面に出現しても一瞬なので、守りの形に比較すると学習機会が少ないようで、どうしても値がつきにくい。
敵陣にいる飛車とかには、わずかなプラス値しかついてなかったりします。
なので、相対位置評価にして、学習機会を増やしてあげようと思ってます。

コメントで語る話じゃなかったですね^^;
来年もよろしくお願いします。

山田 剛@CSA山田 剛@CSA 2012/05/07 01:25 選手権お疲れさまでした。
捲土重来を期待しています。

gamideregamidere 2012/05/10 01:50 >かず@なのはさん
ありがとうございます。がんばります。

>hyperion_ymさん
相対位置のほうがいいのかもしれませんね。
学習機会はパラメータの更新のタイミングを変えればよいのかなと考えています。
具体的には毎手番ごと、ではなく100局終了後など。
効果は不明ですが。。。

>山田 剛@CSA
運営お疲れ様でした。気持ちよく対局させることができました。
来年もよろしくお願いします。

2012-05-03

CSA振り返り1(2012年版)

00:57

みんな着々と更新しているので、自分も更新してみる。。。

とりあえず簡単に振り返り。

1. 前日まで

TD-leafもどきで学習を約1万対局ほどやってみる

前日に学習結果を確かめるため自分と対局させて見る

駒を捨てまくる

駒価値だけの評価関数にする。(1ヶ月がまるで無駄に・・・)

/(^o^)\

2011-09-30

夏休みがもう終わってしまう。。。

夏休み中、ふとさわにゃんRLが遅いのに頭に来てプログラムを作りなおすことにした。

「よ〜しMagic bitboardでもやってやるか!」と思って去年のGPWを引っ張り出して作るもmagic numberを出すところで面倒になって挫折。

→ 調べてみるとMagicがrotatedより完全に速いとは言い切れないみたいなページも見かけて萎える(http://www.talkchess.com /forum/viewtopic.php?topic_view=threads&p=140141&t=16002)。(Harald Lüßenさんスゲェ。)

→その時ちょうどツツカナさんのブログにKindergarten Bitboards(http://d.hatena.ne.jp/minute_hand/20110819/1313759957)が載っていたのでそのまま写してみたところサクッとできて感動。

→現在に至る。

rotatedを作ったときに斜めのattack tableを作ったときに発狂しそうになったり局面を動かすときに右45,右90,左45も更新しなくちゃいけないの

でかったるいなぁと思っていたのでKindergarten Bitboardsはmaskして掛け算してシフトするだけなので(デバッグが)ラクチンでとても気に

入っています。

現在は普通のαβ+駒価値のみの評価関数まで出来ました。とりあえずはやく学習部分まで作らないと。。。


僕は情弱なので今日これに気づきました。はずかしくて顔真っ赤です。うれしいやらはずかしいやら。。。http://www.usapyonsoft.jp/shogi/wiki/wiki.cgi?%b6%af%b2%bd%b3%d8%bd%ac

GasyouGasyou 2011/10/01 23:25 Bitboardは難しそうで手を付けてないんですが、やっぱり速くなりますか?
あと、wikiの記載で誤りがあったら修正しますのでご指摘お願いします。

gamideregamidere 2011/10/07 00:00 勘違いさせてしまい大変申し訳ありません。記事を修正しました。

GasyouGasyou 2011/10/07 07:36 あ、いえ、勘違いとかそういう事ではないです・・・
わざわざ記事修正までしてもらってすいません(汗

2011-06-29

CSAまとめ

19:36

正直プログラムの出来が悪すぎた。バグが多すぎる。

来年はもうちょっとまともなプログラムで出たい。

ライブラリの話が大会のときのアンケートやその後のメールでたくさん流れたのだけ

れどライブラリに関してなんか文句ある人いたのかな?ちょっとよくわからないんだ

けど。。。個人的にはどうでもいいので(あるとすごく便利だけど)。うちの大学で

会合があるみたいなので出てみようかな。何も意見ないけどw。面倒で出ないかもし

れないけどw

CSA振り返り2

19:26

約2ヶ月前のことですが、振り返ってみる。

四戦目:メカウーサー将棋

この将棋はいろいろな意味でひどい将棋将棋とは違う別のゲーム。駒特を重ねて

いってこれはもらったなと思ったら、47手目を見て固まる。何かオカシイ。以下ステ

キな手順を繰り返してあっという間に必敗形に。またもや死にたくなった。以下相手

も決めきれず、50万のPCを使って駒を動かすお仕事を行わせた。もうどうでもいいや

と思っていると135手目いっちょ前に詰めろ馬取りをかける。

「詰めろに気づくな気づくな気づくな気づくな気づくな」と思っていると謎の王手

ラッシュ。これはキタか?と思っていると相手が自分の一手詰めを見逃し、さわにゃ

んはノータイムで詰ます。なんとか初勝利。正直何が何だか分からなかったけど、と

りあえず全敗が無くなったので良かった。

五戦目:白砂将棋

自分が高校生のときに白砂さんのサイトを見つけちょくちょく閲覧してたので、

本人に会えたのでとてもうれしかった。

将棋の内容はそこそこ良くて、序盤も綺麗に美濃囲いに囲った。序盤は定跡を使っ

て学習の対象にしてないんだけどなんか上手く囲うことができた。51手目に銀をた

だ取りしたときには勝ったなと思ったw しかしここからがひどい(何回目だろう

w)。67手目の6二角成がひどくてあっという間に詰まされた。ここでログを見てみ

るとなぜかなんでもない局面で評価値が無限大になっていた。(例えば69手目で無限

大になっていた)。正直意味がわからず頭が真っ白。

六戦目:こまあそび

頭が真っ白のままとりあえず対局開始。すると謎の飛車モノレール状態。行ったり

来たりして早くも作戦負け。以下ずるずると負けかなと思っていると突然投了。

ログを見るとなんでもない局面で評価値がマイナス無限大になっていた。(さわにゃ

んは評価値がマイナス無限大になると投了するようになっていた)不完全燃焼でこま

あそびさんには大変申し訳ない気持ちでいっぱいになった。

七戦目:STR

なんかよくわからないけど探索がバグってるようなので会場でαβ探索のプログ

ムを書くw。時間制御なし、ハッシュなし、PVを出力もなしの簡単設計でデバッグ

なしでぶっつけ本番。深さで打ち切ってるので序盤はホイホイ指すのに終盤になる

と突然1分とか考え出す。正直気が気ではなかった。しかも駒をただ捨てする

し。。。。これはやばいかと思ったけどなんとか詰まして勝ち。ほっとした。

CSA振り返り1

18:48

約2ヶ月前のことですが、振り返ってみる。

一戦目:隠岐

お話にならない将棋。特に何も考えないで前日まで学習させていた重みを使う。する

と何かオカシイ。さわにゃんは王の周りの特徴がほとんど無いので王が危険でも

気にしないのはいつものことだけどなんかおかしい。そして1七桂で歩損確定。ここ

らへんではPCを止めたい気分全開でした。昨日まではこんなミスは無かったはずなの

に・・・。以下あっという間に詰まされる。

二戦目:無名2

とりあえず以前の重みに変更。ごちゃごちゃやっているうちに相手がいきなり角切

りしてくれたので自然に優勢に。73手目8六歩と激辛な手が出てニヤニヤしてしまっ

た。と、おもったら79手目気前よく8五歩と取ってしまった。原因がよくわからない

けど、さわにゃんは持ち駒にするとすごく加点されているので激しい駒の交換が大

好き。だから盤上の駒を取らせたのかな。けど、その後順調に駒得。これは勝ちだ

なと思ったw ところがここからがひどい。115手目2二香?意味が分からない。そ

の後非合法手を指し手負け。原因は前日に入れたアスピレーションサーチのとこ

ろ。死にたくなった。

三戦目:Haskell将棋

アスピレーションのところを全部消す。これで大丈夫だろうと思ったが。。。

Haskellは授業でやったけど一回もプログラムを書かないでテストを受けてCだった

気がする。正直Haskellイミフなので素直に作者さんを尊敬する。

で、内容ですが、相手の桂はねが早くちょっと有利かもしれない。

けど飛車先のところなのでどっかで歩を手に入れてからゆっくり桂馬を取りに行け

ばいいのにさわにゃんはすぐに桂馬を殺しに行く。。。以下攻めきるか受けきるか

といった展開。80手目の1七歩が意味が分からない手で汗が噴き出た。何回も書くけ

ど王の周りの評価が無いので駒が近づいても何も感じていない様子w以下は順当に

押しつぶされた感じ。評価関数の精度の差を痛感。

就活終了

18:27

CSAの大会のあとはずっと就活をしていてなんとか内定ゲット。

最近やったのはRoot strapもどきをずっといじってます。

最近効果があった気がするのは評価関数そのまま使うのではなくシグモイド関数

入れてからやるってやつ。

式にすると

OF=(H深-H浅)^2

じゃなくて

OF=(T(H深)-T(H浅))^2

とするといい感じ。(Tはシグモイド関数)

詰みを発見したときに評価値が無限大になるので

前は|H深-H浅|の値がある値をこえると0にしてたんだけど、

シグモイドVerはそれをしないでOK。なのでTDっぽく報酬が得られる。

mclh46mclh46 2011/07/02 08:03 2ヶ月ぶりです!さわにゃん×Haskellの将棋は、ライブラリの評価関数切ってたら負けていたと思います。俺も評価関数を自作した人はすごいと思いますが、自作してない自分が勝っちゃって・・。ライブラリの評価関数ありだと500npsぐらいで、それだと確かに時期尚早な25桂が後でボロっと取られるのは読めませんw しかし、形よく指せるのは大きすぎる有利でした・・。ちょっとこの話を持ち出してライブラリルールについて記事書こうかな・・。