昨日は電王戦でしたね。ということで、細々と続けている私のモンテカルロ法の試みの中間報告でもここに書こうと思います。詳しいことは過去のエントリを「モンテカルロ」でブログ内検索して読んでください。このシリーズはどうぶつしょうぎから始めたのですが、その最初のエントリはこれです。
さて、まだ本将棋に至っておらず、相変わらず5五将棋なのですが、棋譜がそこそこまともになってきつつあります。前回のベンチマークと同様に、駒割りのみの単純なmin-max4手読みを後手にして、先手を私のモンテカルロ試行数10000試行/局面で対戦してみたところ、先手の85勝15敗でした。前回が28勝22敗だったので、結構な性能向上です。
何を改善したかということですが、本質的なことはほとんどどうぶつしょうぎの頃と変わっておらず、特徴量を変えてみたり、パラメータの数値をちょっと変えてみたりしただけです。ただし、一行だけ本質的な改善をしています。その一行は何かというと、局面評価関数にわずかな割合で乱数を混ぜたということです。なぜそれが本質的なのかということは面倒なので説明しません。
そこそこのまともさなので、来年の秋くらいのUEC5五杯に出てみたくなりました。一勝くらいはできるんじゃないでしょうか。でも、私はGUIが作れません。将棋所の使い方(USIの使い方)も分かりません。CUIならなんとかいけますが、体力がないので会場で操作をし続けることができません。というわけで、結局出ることはないでしょう。そのうちソースを公開すると思います。
ところで、私のソフトの最大の特徴はモンテカルロがどうのこうのということではなく、棋譜なしで学習しているところだと思います。学習の仕方は過去の記事に書きました。予想するに、やはりモンテカルロではなくmin-maxの方が強いと思います。でも、学習法は私がやっているような感じの方がコンピュータらしい手が出るんじゃないかと思っています。
以下、棋譜の一例。棋譜はご自由にお使いください(使う人はいないと思いますが)。
持:
v飛v角v銀v金v玉 |
・ ・ ・ ・v歩 |
・ ・ ・ ・ ・ |
歩 ・ ・ ・ ・ |
玉 金 銀 角 飛 |
持:
hashCount:861241
score: 0.562433
※hashCount:は読んだ局面の数
※scoreは
モンテカルロが思っている勝率
持:
v飛v角v銀v金v玉 |
・ ・ ・ ・v歩 |
・ ・ ・ ・ ・ |
歩 ・ 銀 ・ ・ |
玉 金 ・ 角 飛 |
持:
※これは普通は悪手だと思うんですが。
持:
v飛v角 ・v金v玉 |
・v銀 ・ ・v歩 |
・ ・ ・ ・ ・ |
歩 ・ 銀 ・ ・ |
玉 金 ・ 角 飛 |
持:
hashCount:821373
score: 0.587547
持:
v飛v角 ・v金v玉 |
・v銀 ・ ・v歩 |
・ ・ ・ ・ ・ |
歩 ・ 銀 ・ 飛 |
玉 金 ・ 角 ・ |
持:
※飛角交換を目指しています。
※初手▲3四銀なのでこうしないと大駒がさばけません。
持:飛
v飛 ・ ・v金v玉 |
・v銀 ・ ・v歩 |
・ ・ ・ ・ ・ |
歩 ・ 銀 ・v角 |
玉 金 ・ 角 ・ |
持:
hashCount:722487
score: 0.469865
持:飛
v飛 ・ ・v金v玉 |
・v銀 ・ ・v歩 |
・ ・ ・ ・ ・ |
歩 ・ 銀 ・ 角 |
玉 金 ・ ・ ・ |
持:角
持:飛
v飛 ・ ・v金v玉 |
・v銀 ・ ・ ・ |
・ ・ ・ ・v歩 |
歩 ・ 銀 ・ 角 |
玉 金 ・ ・ ・ |
持:角
hashCount:781973
score: 0.498860
持:飛
v飛 ・ ・v金v玉 |
・v銀 ・ ・ ・ |
・ ・ ・ 角v歩 |
歩 ・ 銀 ・ ・ |
玉 金 ・ ・ ・ |
持:角
持:
v飛 ・ ・v金v玉 |
・v銀 ・ ・ ・ |
・v飛 ・ 角v歩 |
歩 ・ 銀 ・ ・ |
玉 金 ・ ・ ・ |
持:角
hashCount:746136
score: 0.640414
持:
v飛 ・ ・v金v玉 |
・v銀 ・ ・ ・ |
・v飛 ・ 角v歩 |
歩 ・ 銀 角 ・ |
玉 金 ・ ・ ・ |
持:
※放置すると▲4三銀△同銀▲5一角成です。
持:
・ ・ ・v金v玉 |
v飛v銀 ・ ・ ・ |
・v飛 ・ 角v歩 |
歩 ・ 銀 角 ・ |
玉 金 ・ ・ ・ |
持:
hashCount:560065
score: 0.847767
持:
・ 馬 ・v金v玉 |
v飛v銀 ・ ・ ・ |
・v飛 ・ ・v歩 |
歩 ・ 銀 角 ・ |
玉 金 ・ ・ ・ |
持:
※一気に先手有利になったと思ったようです。
持:
v飛 馬 ・v金v玉 |
・v銀 ・ ・ ・ |
・v飛 ・ ・v歩 |
歩 ・ 銀 角 ・ |
玉 金 ・ ・ ・ |
持:
hashCount:734494
score: 0.890710
持:
馬 ・ ・v金v玉 |
・v銀 ・ ・ ・ |
・v飛 ・ ・v歩 |
歩 ・ 銀 角 ・ |
玉 金 ・ ・ ・ |
持:飛
持:金
馬 ・ ・v金v玉 |
・v銀 ・ ・ ・ |
・ ・ ・ ・v歩 |
歩 ・ 銀 角 ・ |
玉v龍 ・ ・ ・ |
持:飛
hashCount:705225
score: 0.836768
持:金
馬 ・ ・v金v玉 |
・v銀 ・ ・ ・ |
・ ・ ・ ・v歩 |
歩 ・ 銀 角 ・ |
・ 玉 ・ ・ ・ |
持:飛 飛
持:金 角
v銀 ・ ・v金v玉 |
・ ・ ・ ・ ・ |
・ ・ ・ ・v歩 |
歩 ・ 銀 角 ・ |
・ 玉 ・ ・ ・ |
持:飛 飛
hashCount:664302
score: 0.823784
持:金 角
v銀 ・ ・v金v玉 |
・ ・ ・ ・ ・ |
・ 飛 ・ ・v歩 |
歩 ・ 銀 角 ・ |
・ 玉 ・ ・ ・ |
持:飛
※銀を取らずに飛打ちでした。
持:金 角
・ ・ ・v金v玉 |
v銀 ・ ・ ・ ・ |
・ 飛 ・ ・v歩 |
歩 ・ 銀 角 ・ |
・ 玉 ・ ・ ・ |
持:飛
hashCount:640040
score: 0.819885
持:金 角
・ ・ ・v金v玉 |
v銀 ・ ・ ・ ・ |
・ ・ ・ ・ 飛 |
歩 ・ 銀 角 ・ |
・ 玉 ・ ・ ・ |
持:歩 飛
持:金 角
・ ・ ・ ・v玉 |
v銀 ・ ・ ・v金 |
・ ・ ・ ・ 飛 |
歩 ・ 銀 角 ・ |
・ 玉 ・ ・ ・ |
持:歩 飛
※後手、なぜ移動合にしたのか分かりませんが、そんな弱さの後手です。
hashCount:458054
score: 0.977234
持:金 角
・ ・ 飛 ・v玉 |
v銀 ・ ・ ・v金 |
・ ・ ・ ・ 飛 |
歩 ・ 銀 角 ・ |
・ 玉 ・ ・ ・ |
持:歩
※△2一合でも、▲2一同飛成△同玉▲1二飛で、多分受からないと思います。
持:金 角
・ ・ 飛 ・ ・ |
v銀 ・ ・v玉v金 |
・ ・ ・ ・ 飛 |
歩 ・ 銀 角 ・ |
・ 玉 ・ ・ ・ |
持:歩
hashCount:260301
score: 1.000000
持:金 角
・ ・ 飛 ・ ・ |
v銀 ・ ・v玉 飛 |
・ ・ ・ ・ ・ |
歩 ・ 銀 角 ・ |
・ 玉 ・ ・ ・ |
持:歩 金
※どちらの飛車を取っても頭金。
持:金 角 飛
・ ・ 飛 ・ ・ |
v銀 ・ ・ ・v玉 |
・ ・ ・ ・ ・ |
歩 ・ 銀 角 ・ |
・ 玉 ・ ・ ・ |
持:歩 金
hashCount:14623
score: 1.000000
持:金 角 飛
・ ・ 飛 ・ ・ |
v銀 ・ ・ ・v玉 |
・ ・ ・ ・ 金 |
歩 ・ 銀 角 ・ |
・ 玉 ・ ・ ・ |
持:歩