2012年05月19日
時期を逸してしまった人間対コンピュータの戦い
下はYSSやPonanza、ボンクラが24で出したレーティングを元に
作ったプログラムのレーティングの推移です。
将棋だけでなく、囲碁、チェスも並べています。
レーティングは将棋倶楽部24と一致するように囲碁、チェスは調整しています。
チェスは1997年にカスパロフがDeppBlueに敗れました。
囲碁はモンテカルロが登場した2007年以降、急激に、とはいっても
将棋なみの速度で上昇しています。
将棋はおそらく2010年ぐらいには人間のトップに並んでいたと思われます。
2012年、そして雷王戦が開かれる2013年、その差は開く一方です。
ボンクラが24で出した点数をみて、渡辺竜王が「あれは人間に出せる点数ではない」
と断言されていたのもショックでした。
おそらく長い時間でも人間は勝てないでしょう。
最強のコンピュータを最強の人間が破る、という棋譜はもう生まれないかもしれません。
2009年、GPSが最初に優勝した年に、人間との5番勝負を見たかったです。
羽生さんがソフトに圧勝する姿を見たかった・・・。
願わくばこんな予想がはずれることを祈ってます。
作ったプログラムのレーティングの推移です。
将棋だけでなく、囲碁、チェスも並べています。
レーティングは将棋倶楽部24と一致するように囲碁、チェスは調整しています。
チェスは1997年にカスパロフがDeppBlueに敗れました。
囲碁はモンテカルロが登場した2007年以降、急激に、とはいっても
将棋なみの速度で上昇しています。
将棋はおそらく2010年ぐらいには人間のトップに並んでいたと思われます。
2012年、そして雷王戦が開かれる2013年、その差は開く一方です。
ボンクラが24で出した点数をみて、渡辺竜王が「あれは人間に出せる点数ではない」
と断言されていたのもショックでした。
おそらく長い時間でも人間は勝てないでしょう。
最強のコンピュータを最強の人間が破る、という棋譜はもう生まれないかもしれません。
2009年、GPSが最初に優勝した年に、人間との5番勝負を見たかったです。
羽生さんがソフトに圧勝する姿を見たかった・・・。
願わくばこんな予想がはずれることを祈ってます。
2012年01月24日
GoogleのGo言語で囲碁プログラムを
作ってみよう、と思って、まず前例がないか探したのですが、
・・・検索の仕方が分からない。
「Go language game sample」とかやってもさっぱり。
しかし日本語で検索したらあっさり見つかりました。
Go言語で囲碁ゲームできたよー\(^o^)/
http://d.hatena.ne.jp/technohippy/20101104#1288900355
もちっとユニークな名前にしてくれれば良かったのにねぇ。
・・・検索の仕方が分からない。
「Go language game sample」とかやってもさっぱり。
しかし日本語で検索したらあっさり見つかりました。
Go言語で囲碁ゲームできたよー\(^o^)/
http://d.hatena.ne.jp/technohippy/20101104#1288900355
もちっとユニークな名前にしてくれれば良かったのにねぇ。
2010年12月13日
NHKのトップランナー、井山名人の収録を見てきました
先月のアジア大会で世界最強のイ・セドルを倒すなど活躍されている
井山名人がトップランナーに出演する、とのことで渋谷のNHKまで見学してきました。
100人ぐらいの人が見学に来ていて、一緒に拍手役?をつとめてきました。
面白かったです。
放送は来年の1月8日の23:30からの予定とのことです。
NHKさんからはエコバッグのおみやげまで頂きました。
シールは見学者の印で見学中はこれを足に張っていました。
井山名人がトップランナーに出演する、とのことで渋谷のNHKまで見学してきました。
100人ぐらいの人が見学に来ていて、一緒に拍手役?をつとめてきました。
面白かったです。
放送は来年の1月8日の23:30からの予定とのことです。
NHKさんからはエコバッグのおみやげまで頂きました。
シールは見学者の印で見学中はこれを足に張っていました。
2010年09月22日
nngsサーバに自宅PCから接続するメモ
Olympiadでは電源が足りないからサーバ(みたいな)マシンは
持ってこないで下さいね、とのことで初めて自宅のマシンから
会場のnngsサーバにつなげてみることに。
結構大変だったので手順をメモ。
1. sshで myadress.ddo.jp にログイン。cd aya/aya32
2. java -jar gogui-server.jar "/home/hyama/aya/aya32/ayamc -gtp" -port 5555
3. 別のWindowで ssh でvmwareにログイン
4. ssh -N -L 15555:127.0.0.1:5555 myadress.ddo.jp
5. password入力。これでポート15555に5555がトンネルされる
6. さらに別のWindowで ssh で新規にvmwareにログイン
7. cd aya/Ruby_nngs に移動して
8. config.rb で 'command'=>'java -jar /home/hyama/aya/aya32/gogui-client.jar localhost 15555'
9. ruby nngsCUI.rb
10. 黒番ならそのままEnter, 白番なら相手の名前を入力
他には
GTPでlinux版も対局できるように。
ルータでポート22を192.168.xx.yyyに開放。
64bitのdebianをインストール
http://ddo.jp/ でDDNSを登録して
"http://free.ddo.jp/dnsupdate.php?dn=myadress&pw=secret" を定期的に取得するバッチファイルを
などでした。
gogui-server.jar とか立てなくても出来そうな気がするのですが。
持ってこないで下さいね、とのことで初めて自宅のマシンから
会場のnngsサーバにつなげてみることに。
結構大変だったので手順をメモ。
1. sshで myadress.ddo.jp にログイン。cd aya/aya32
2. java -jar gogui-server.jar "/home/hyama/aya/aya32/ayamc -gtp" -port 5555
3. 別のWindowで ssh でvmwareにログイン
4. ssh -N -L 15555:127.0.0.1:5555 myadress.ddo.jp
5. password入力。これでポート15555に5555がトンネルされる
6. さらに別のWindowで ssh で新規にvmwareにログイン
7. cd aya/Ruby_nngs に移動して
8. config.rb で 'command'=>'java -jar /home/hyama/aya/aya32/gogui-client.jar localhost 15555'
9. ruby nngsCUI.rb
10. 黒番ならそのままEnter, 白番なら相手の名前を入力
他には
GTPでlinux版も対局できるように。
ルータでポート22を192.168.xx.yyyに開放。
64bitのdebianをインストール
http://ddo.jp/ でDDNSを登録して
"http://free.ddo.jp/dnsupdate.php?dn=myadress&pw=secret" を定期的に取得するバッチファイルを
などでした。
gogui-server.jar とか立てなくても出来そうな気がするのですが。
2010年09月12日
CSA例会でShuesoの竹内さんの話を聞いてきました
昨日は農工大で選手権で準優勝の習甦の竹内さんの発表がありました。
評価関数の作り方と学習のさせ方が特徴的で面白かったです。
(理解できてないところ多数ですが・・・)
後日、CSA資料集に詳しく載ると思います。
説明するのを放棄した手抜きのメモなどはこちらに。
----------------------------------------------------
8000行
駒番号もなし。81マスサーチして。
静止探索4手。成は歩成りだけ。
npsは100万/秒
dfpnはPVノードだけ。
nll move prunning
history reduction
prob cut 残り深さ4手で。Futulityが面倒そうなのでこちらで。
check +0.5
evasion +0.5
recapture +0.5
詰めろだったら +0.5
線形関数では限界が?
最大6まで。先手の利き3、後手の利き2、を区別している。
各升目の利き数を入力
それに重みをつけて 3つ?のニューロンの中間層に
1. 普通の評価関数(2駒関係)
2. 先手安全度(王の位置ごとに81箇所全部+持駒など)
3. 後手安全度
シグモイド。これ以上安全にして金打っても仕方がない、みたいな。
200万特徴ぐらい。
2. 3. はシグモイド関数を通して、さらに重みをかけて1.と
足し合わせて評価値とする。
駒の価値が王の安全度により変わる。
ニューラルネットに似てる。
自玉が安全な局面では危険な局面よりも
潜在力、将来性を評価すべき
学習
1. ボナメソ
2. 2手深い探索結果に対する評価値の差の自乗を最小化。深さ2と4。
標準偏差/マージン(ProbCut)が目標値となるように 1. 重みを調整。
マージンは王が危険なほど、380 -> 1000 ぐらいに。
戦型別に評価関数。7種類。
定跡が終わった時点の戦型とする。棋譜に戦型が書いてある。
全戦型で学習した後、戦型別に軽く追加学習
・序盤で筋が良くなる?
学習。
1手読みで一致したら、それで。40%
一致しないのは2手。3手、4手。4手で60%。
2,3週間ぐらい。
PVを求めて10回。次は9回・・・・最後は3回まで。
ほんのり羽生名人棋風、羽生さんの棋譜だけ重み2倍。
敗者の棋譜は使わない
棋譜との一致率が数%向上。
----------------------------------------------------
評価関数の作り方と学習のさせ方が特徴的で面白かったです。
(理解できてないところ多数ですが・・・)
後日、CSA資料集に詳しく載ると思います。
説明するのを放棄した手抜きのメモなどはこちらに。
----------------------------------------------------
8000行
駒番号もなし。81マスサーチして。
静止探索4手。成は歩成りだけ。
npsは100万/秒
dfpnはPVノードだけ。
nll move prunning
history reduction
prob cut 残り深さ4手で。Futulityが面倒そうなのでこちらで。
check +0.5
evasion +0.5
recapture +0.5
詰めろだったら +0.5
線形関数では限界が?
最大6まで。先手の利き3、後手の利き2、を区別している。
各升目の利き数を入力
それに重みをつけて 3つ?のニューロンの中間層に
1. 普通の評価関数(2駒関係)
2. 先手安全度(王の位置ごとに81箇所全部+持駒など)
3. 後手安全度
シグモイド。これ以上安全にして金打っても仕方がない、みたいな。
200万特徴ぐらい。
2. 3. はシグモイド関数を通して、さらに重みをかけて1.と
足し合わせて評価値とする。
駒の価値が王の安全度により変わる。
ニューラルネットに似てる。
自玉が安全な局面では危険な局面よりも
潜在力、将来性を評価すべき
学習
1. ボナメソ
2. 2手深い探索結果に対する評価値の差の自乗を最小化。深さ2と4。
標準偏差/マージン(ProbCut)が目標値となるように 1. 重みを調整。
マージンは王が危険なほど、380 -> 1000 ぐらいに。
戦型別に評価関数。7種類。
定跡が終わった時点の戦型とする。棋譜に戦型が書いてある。
全戦型で学習した後、戦型別に軽く追加学習
・序盤で筋が良くなる?
学習。
1手読みで一致したら、それで。40%
一致しないのは2手。3手、4手。4手で60%。
2,3週間ぐらい。
PVを求めて10回。次は9回・・・・最後は3回まで。
ほんのり羽生名人棋風、羽生さんの棋譜だけ重み2倍。
敗者の棋譜は使わない
棋譜との一致率が数%向上。
----------------------------------------------------
2010年08月04日
2010年08月02日
Ekispresso!
とある知り合いが街情報サイトを構築してるそうですので
ささやかながら宣伝を。
Ekispresso!
http://www.ekispresso.com/stations/
日本全国の駅にランキングをつけて周辺情報を出してくれるようです。
駅のランキングは
> 主に駅間の接続関係や食べ物屋の数を元に計算されています
とのことで、乗降客数の情報なしに結構正確な乗降客数の予測を出してるようです。
私が昔仙台に住んでたころの最寄り駅(北山駅)の情報とかも
ちゃんと入ってました。
http://www.ekispresso.com/stations/2687
ささやかながら宣伝を。
Ekispresso!
http://www.ekispresso.com/stations/
日本全国の駅にランキングをつけて周辺情報を出してくれるようです。
駅のランキングは
> 主に駅間の接続関係や食べ物屋の数を元に計算されています
とのことで、乗降客数の情報なしに結構正確な乗降客数の予測を出してるようです。
私が昔仙台に住んでたころの最寄り駅(北山駅)の情報とかも
ちゃんと入ってました。
http://www.ekispresso.com/stations/2687
2010年07月22日
Bonanzaの1秒将棋はちょっと強い
YSSの強さ測定に、自己対戦は信用できないので最近はBonanzaのpipe経由の
対戦を使っていたのですが、
1手1秒同士で対戦させたときと、1手2秒、1手4秒、1手10秒、と時間をかけると
少しずつYSSの勝率が上がっていく現象がありました。
1秒(0.33)4秒(0.40)10秒(0.43) といった感じです。
全幅と選択の違いかな?とか思ってたのですがはっきりした原因は
Bonanzaは1手1秒に設定すると1.8秒使う。(2秒なら2.8秒)
というものでした。
どうりで勝率が上がっていくわけです・・・。
(他にも理由があるのかもしれませんが)
1秒ぴったりで打ち切るには
shogi.h 96行目の
#define TIME_RESPONSE 200U
を
#define TIME_RESPONSE 1000U
にすれば1秒ぴったりで手を返します。
Bonanzaに送っている初期コマンドは下のような感じです。
-> new
-> ponder off
-> limit time 0 1 ... 1手1秒の場合
対戦を使っていたのですが、
1手1秒同士で対戦させたときと、1手2秒、1手4秒、1手10秒、と時間をかけると
少しずつYSSの勝率が上がっていく現象がありました。
1秒(0.33)4秒(0.40)10秒(0.43) といった感じです。
全幅と選択の違いかな?とか思ってたのですがはっきりした原因は
Bonanzaは1手1秒に設定すると1.8秒使う。(2秒なら2.8秒)
というものでした。
どうりで勝率が上がっていくわけです・・・。
(他にも理由があるのかもしれませんが)
1秒ぴったりで打ち切るには
shogi.h 96行目の
#define TIME_RESPONSE 200U
を
#define TIME_RESPONSE 1000U
にすれば1秒ぴったりで手を返します。
Bonanzaに送っている初期コマンドは下のような感じです。
-> new
-> ponder off
-> limit time 0 1 ... 1手1秒の場合
2010年06月15日
週刊将棋のGPSの自戦記が新鮮でした
GPS将棋の思考ログを貼り付けるだけ、という斬新さです。
・・・もうちょっと金子さんに何か書いて欲しいかったかなっと。
・・・もうちょっと金子さんに何か書いて欲しいかったかなっと。
2010年06月04日
2010年05月11日
floodgateの対人間フラッシュがかっこいいです
土曜日にCSA例会に参加したときに金子さんにfloodgateの人間用
フラッシュがあることを教えていただきました。
http://wdoor.c.u-tokyo.ac.jp/shogi/view/81SquareShogi/
Flash自体は別の方が作成されたそうですが非常にかっこいいです。
yowai_gpsとはすぐ対局できて、勝った時の音がいいです :-)
後floodgateの2週間のレーティングが100点ぐらい上にインフレしてるようです。
無印YSS(opteron 852 2.6GHz 1c)は2年前と変わらないソフトで
2300前後のはずですが2380近くになってます。
アンカーのgps_normalがしばらく留守にしてたせい?かもしれません。
フラッシュがあることを教えていただきました。
http://wdoor.c.u-tokyo.ac.jp/shogi/view/81SquareShogi/
Flash自体は別の方が作成されたそうですが非常にかっこいいです。
yowai_gpsとはすぐ対局できて、勝った時の音がいいです :-)
後floodgateの2週間のレーティングが100点ぐらい上にインフレしてるようです。
無印YSS(opteron 852 2.6GHz 1c)は2年前と変わらないソフトで
2300前後のはずですが2380近くになってます。
アンカーのgps_normalがしばらく留守にしてたせい?かもしれません。
2010年05月05日
第20回選手権の優勝は激指でした
いや、鮮やかでした。
鶴岡さん、横山さん、おめでとうございました。
下は「なんとなく見学に来てやろうかと」現れた棚瀬さんや勝又さんに
祝福される激指のお二人です。
この電通大の会場はいつも囲碁の大会で使われていたので選手権で
将棋のメンバーであふれかえる会場は何だかとっても違和感がありました。
見学者の方も自由に来れたらいいのにな、と思っていたのですが
1Fの解説会場に行ってみると200人近い!人で満席になっていて、
これは無理だと思いました。
東京近郊だけあって、見に来ていただける方は3倍くらい増えたような気がします。
個人的に一番のインパクトは300台の東大の情報処理センターの研修マシンを
つないでぶっつけ本番で参加したGPSチームです。
300台のうち、一つでも落ちたらアウト、だそうで、よくもまぁ7局指しきったと
思いました。懇親会会場での田中先生の疲労困憊ぶりがすごかったです。
・・・お疲れ様でした。次回はもっとすごい台数を期待しています^^;
鶴岡さん、横山さん、おめでとうございました。
下は「なんとなく見学に来てやろうかと」現れた棚瀬さんや勝又さんに
祝福される激指のお二人です。
この電通大の会場はいつも囲碁の大会で使われていたので選手権で
将棋のメンバーであふれかえる会場は何だかとっても違和感がありました。
見学者の方も自由に来れたらいいのにな、と思っていたのですが
1Fの解説会場に行ってみると200人近い!人で満席になっていて、
これは無理だと思いました。
東京近郊だけあって、見に来ていただける方は3倍くらい増えたような気がします。
個人的に一番のインパクトは300台の東大の情報処理センターの研修マシンを
つないでぶっつけ本番で参加したGPSチームです。
300台のうち、一つでも落ちたらアウト、だそうで、よくもまぁ7局指しきったと
思いました。懇親会会場での田中先生の疲労困憊ぶりがすごかったです。
・・・お疲れ様でした。次回はもっとすごい台数を期待しています^^;
2010年03月24日
Bonanza Methodをお試し中
遅ればせながら私もボナメソやってみました。
うーん、すごいですね。
2駒の関係と金銀の絶対位置による隣接する金銀歩の関係、
という特徴だけなのですが、旧YSSに戦わずに駒組みだけで勝つ、みたいな棋譜を作ったり。
例によって?Bonanza囲い(△32玉、△42金、△33銀)の形にも組んだりしてます。
これは多分、相手の飛車の位置を見てないのが原因なのかなーと推測。
結局、部分的に3駒の関係は入れないとダメそうです。
保木さんが3駒関係に逃げた?理由もなんとなく分かります・・・。
うーん、すごいですね。
2駒の関係と金銀の絶対位置による隣接する金銀歩の関係、
という特徴だけなのですが、旧YSSに戦わずに駒組みだけで勝つ、みたいな棋譜を作ったり。
例によって?Bonanza囲い(△32玉、△42金、△33銀)の形にも組んだりしてます。
これは多分、相手の飛車の位置を見てないのが原因なのかなーと推測。
結局、部分的に3駒の関係は入れないとダメそうです。
保木さんが3駒関係に逃げた?理由もなんとなく分かります・・・。
2009年10月08日
JISAコンベンション2009に参加してきました
2年前は保木さんや勝又さんが講演されて、それをちゃっかり聞きに行ったのですが
今年は私が王メイエンさんや矢内さんと共に講演させていただくことに。
JISAコンベンション2009−新たなる挑戦への礎−
http://www.jisa.or.jp/info/jc2009.pdf
メイエンさんのお話も面白かったのですが、個人的には
矢内さんの司会の上手さが際立っていたと思いました。
鋭い突っ込みや笑いを誘う質問など、たじたじ(汗)でした。
私のスライドはこちらです
http://www.yss-aya.com/jisa2009.ppt
その後には北京オリンピックのシンクロで中国チームを銅メダルに導いた井村雅代コーチの話があったのですがパワーに圧倒されました。
現在はロシアが強く、ロシアのコーチが世界に派遣されていて、このままでは
シンクロはロシア流、になってしまう、日本流のシンクロを広げてもいいのではないか。ホスト国である中国から指名されたことは名誉なこと、など。
私も最初に日本のコーチが中国に行った、という話を聞いた時に、ふーん?なんで?
という感じだったのですが話を聞くと「なるほど!」でした。
最後に流れた中国の演技は、本当に選手の足が長く(広い中国の中からスタイルのいい人を集めてるみたいです)技にもキレがあって感動でした。言われてみるとなんとなく日本のシンクロに似てたような気もしました。
今年は私が王メイエンさんや矢内さんと共に講演させていただくことに。
JISAコンベンション2009−新たなる挑戦への礎−
http://www.jisa.or.jp/info/jc2009.pdf
メイエンさんのお話も面白かったのですが、個人的には
矢内さんの司会の上手さが際立っていたと思いました。
鋭い突っ込みや笑いを誘う質問など、たじたじ(汗)でした。
私のスライドはこちらです
http://www.yss-aya.com/jisa2009.ppt
その後には北京オリンピックのシンクロで中国チームを銅メダルに導いた井村雅代コーチの話があったのですがパワーに圧倒されました。
現在はロシアが強く、ロシアのコーチが世界に派遣されていて、このままでは
シンクロはロシア流、になってしまう、日本流のシンクロを広げてもいいのではないか。ホスト国である中国から指名されたことは名誉なこと、など。
私も最初に日本のコーチが中国に行った、という話を聞いた時に、ふーん?なんで?
という感じだったのですが話を聞くと「なるほど!」でした。
最後に流れた中国の演技は、本当に選手の足が長く(広い中国の中からスタイルのいい人を集めてるみたいです)技にもキレがあって感動でした。言われてみるとなんとなく日本のシンクロに似てたような気もしました。
2009年05月30日
CGOS9路が大人気
現在14試合!も組まれていてCGOSが大人気です。
http://cgos.boardspace.net/9x9/standings.html
きっかけはValkyriaさんが400playoutだけのバージョン、1000playoutだけの
バージョン、とかテストをしてたのですが、それを見て?Fuegoも同じように
参加。で、私も対抗して投入してたらZenも入ってきました。
・・・Zenの1000playout強すぎ!です。
モンテカルロ囲碁はどういう方向性に行くのかよく分からないのですが
今のところ、playoutを正確にしていく、という方向が正しいような感じです。
ちなみにZenは19路では1000playoutでGnuGoと互角とのこと。
CrazyStoneは2000程度でAyaは8000。なかなか上は高いです。
しかしCGOS19路は人気ないですねぇ・・・。
http://cgos.boardspace.net/19x19/standings.html
アンカーのGnuGoもお休み中です。
時間がかかる、というのもありますが、19路でGnuGoレベルを作るのが
かなり大変、というのも理由の一つのような気はします。
http://cgos.boardspace.net/9x9/standings.html
きっかけはValkyriaさんが400playoutだけのバージョン、1000playoutだけの
バージョン、とかテストをしてたのですが、それを見て?Fuegoも同じように
参加。で、私も対抗して投入してたらZenも入ってきました。
・・・Zenの1000playout強すぎ!です。
モンテカルロ囲碁はどういう方向性に行くのかよく分からないのですが
今のところ、playoutを正確にしていく、という方向が正しいような感じです。
ちなみにZenは19路では1000playoutでGnuGoと互角とのこと。
CrazyStoneは2000程度でAyaは8000。なかなか上は高いです。
しかしCGOS19路は人気ないですねぇ・・・。
http://cgos.boardspace.net/19x19/standings.html
アンカーのGnuGoもお休み中です。
時間がかかる、というのもありますが、19路でGnuGoレベルを作るのが
かなり大変、というのも理由の一つのような気はします。
選手権優勝はGPS将棋
すっかり出遅れですが、GWの恒例の選手権はGPS将棋が初優勝でした。
下の写真は優勝直後に勝又さんから祝福されるGPSチームのものです。
おめでとうございます!
今回は完敗だったのですが、今年の選手権でうれしかったのは
ソフトの力だけでレーティングが100点近く上がった!ということです。
GPS、Bonanza、大槻さん、など、正直、評価関数がここまで精度が
上げれるものとは思ってもいませんでした。
次の土曜日のCSA例会にはGPSの金子さんと林さんが説明会をしてくれたのですが
とても勉強になりました。
まず、冒頭に柿木さんが「どうぶつ将棋」というのがあって
解析して欲しいとの依頼が、というとすかさず田中先生が
「あ、もう解析終わってます」と。
・・・すごい!
何でも全部の局面を作成して、勝敗が付いている局面から後ろに
さかのぼって行く方法で解かれたとのこと。(引き分けになるそうです)
田中先生によると、バグがあったそうで78手で後手勝ちになるとのことです。
(コメント欄参照してください)
以下は例会のメモです。
5x5将棋は千日手は後手の勝ち
どうぶつ将棋は田中先生が解析済み。
引き分け。レトログレード。可能な局面を全部作って繰り上げ。
GPS 8コア+HTで16スレッド
進行度、評価関数、どちらかを固定して学習させている。
静止探索が9割くらい!王手とかも読んでいる。
確率探索している部分は短い。でもPVは16手ぐらい出てくる。
200回出てこない特徴は無視する。
40000棋譜、8000棋譜
動き幅を特徴ごとに持たせる。
微分値がマイナス、プラス、とかは幅を小さく。プラスプラスなら大きく、とか。
Linuxがあれば将棋所で対戦できる。
gpsshogi\sample\eval 学習の評価関数
opneMidEnding.cc
PVそのままで50回ぐらいまわす。2,3GBくらいある。
PV1回更新+50回、これが1セットの学習。これでだいたいの評価関数が出来る。
(8コアで)選手権の決勝で追加した角と王の間3駒は2セットまわした。
一致率が上がっても弱くなりうる。
13万(旧GPS) 、8万/nps(学習版)
1秒テストは怪しい。10秒と30秒でもどうか。
テストは20局やって14-6なら採用、とか。
X座標ごとの銀の価値、Y座標の駒の価値、とか細分化。
SSEを使って4つの(3つの)整数を同時に足す。
builtin_ia32_paddd128() _mm_add_epi32
序盤、中盤、終盤の時の足し算が一発で出来る。
例えば進行度が 0(序盤) 50(中盤) 100(終盤) とすると、
0の時は序盤だけ。25だと序盤50%、中盤50%、のような感じで。
進行度(progress value) lib progress experimental
王の周り5x5を見る。他に5x3を見る。
利きの差、その王からの距離。
進行度の計算あ評価関数の15%!も。
棚瀬さんの話。
大きすぎる特徴の値は別の条件を追加して分割できるようにした方が
いいのではないか?
例えば敵玉の近くの金の価値が+450とか出てた場合に、+200程度に
なるような別の要素を追加。
(よく分からないのですが、例えば敵玉の近くの金銀枚数が1枚だけ、2枚以上とか)
実際に画像認識で文字を識別するときに、ある一定値以上の値になる場合は無視する、
というのを追加したことで識別率が向上したそうです。
下の写真は優勝直後に勝又さんから祝福されるGPSチームのものです。
おめでとうございます!
今回は完敗だったのですが、今年の選手権でうれしかったのは
ソフトの力だけでレーティングが100点近く上がった!ということです。
GPS、Bonanza、大槻さん、など、正直、評価関数がここまで精度が
上げれるものとは思ってもいませんでした。
次の土曜日のCSA例会にはGPSの金子さんと林さんが説明会をしてくれたのですが
とても勉強になりました。
まず、冒頭に柿木さんが「どうぶつ将棋」というのがあって
解析して欲しいとの依頼が、というとすかさず田中先生が
「あ、もう解析終わってます」と。
・・・すごい!
何でも全部の局面を作成して、勝敗が付いている局面から後ろに
さかのぼって行く方法で解かれたとのこと。
田中先生によると、バグがあったそうで78手で後手勝ちになるとのことです。
(コメント欄参照してください)
以下は例会のメモです。
5x5将棋は千日手は後手の勝ち
どうぶつ将棋は田中先生が解析済み。
GPS 8コア+HTで16スレッド
進行度、評価関数、どちらかを固定して学習させている。
静止探索が9割くらい!王手とかも読んでいる。
確率探索している部分は短い。でもPVは16手ぐらい出てくる。
200回出てこない特徴は無視する。
40000棋譜、8000棋譜
動き幅を特徴ごとに持たせる。
微分値がマイナス、プラス、とかは幅を小さく。プラスプラスなら大きく、とか。
Linuxがあれば将棋所で対戦できる。
gpsshogi\sample\eval 学習の評価関数
opneMidEnding.cc
PVそのままで50回ぐらいまわす。2,3GBくらいある。
PV1回更新+50回、これが1セットの学習。これでだいたいの評価関数が出来る。
(8コアで)選手権の決勝で追加した角と王の間3駒は2セットまわした。
一致率が上がっても弱くなりうる。
13万(旧GPS) 、8万/nps(学習版)
1秒テストは怪しい。10秒と30秒でもどうか。
テストは20局やって14-6なら採用、とか。
X座標ごとの銀の価値、Y座標の駒の価値、とか細分化。
SSEを使って4つの(3つの)整数を同時に足す。
builtin_ia32_paddd128() _mm_add_epi32
序盤、中盤、終盤の時の足し算が一発で出来る。
例えば進行度が 0(序盤) 50(中盤) 100(終盤) とすると、
0の時は序盤だけ。25だと序盤50%、中盤50%、のような感じで。
進行度(progress value) lib progress experimental
王の周り5x5を見る。他に5x3を見る。
利きの差、その王からの距離。
進行度の計算あ評価関数の15%!も。
棚瀬さんの話。
大きすぎる特徴の値は別の条件を追加して分割できるようにした方が
いいのではないか?
例えば敵玉の近くの金の価値が+450とか出てた場合に、+200程度に
なるような別の要素を追加。
(よく分からないのですが、例えば敵玉の近くの金銀枚数が1枚だけ、2枚以上とか)
実際に画像認識で文字を識別するときに、ある一定値以上の値になる場合は無視する、
というのを追加したことで識別率が向上したそうです。
2008年10月24日
KGSでは白番有利?
KGSで彩のモンテカルロ版を動かしているのですが、
白番(自分が上手)の時の勝率が明確に高いです。
黒では5割ぐらいなのに白だと7割近いです。
古い彩や私自身の結果でも同じく白番の勝率が高いです。
自分が下手だと、上手にうまく対応されると戦意喪失してしまう
(逆に上手は簡単にはあきらめない)とか、心理的要素もありそうなのですが。
KGSの今のハンデ仕様(1級差はコミ0.5、2級差で2子)
は上手に有利な仕様なのかもしれません。
AyaMC2 6k ... 10000playout
通算勝率 0.593 9393勝6442敗 全15835局(公式戦は13986局)
黒番 0.494 3660勝3753敗 全7413局
白番 0.680 5782勝2718敗 全8500局
AyaBot 8k ... 以前のクラシックな彩
通算勝率 0.537 2608勝2248敗 全4856局(公式戦は4098局)
黒番 0.446 809勝1003敗 全1812局
白番 0.588 1857勝1299敗 全3156局
HYamashita 2d ... 私
通算勝率 0.602 103勝 68敗 全 171局(公式戦は141局)
黒番 0.500 35勝 35敗 全 70局
白番 0.660 68勝 35敗 全 103局
統計を取るにはこちらの Itteyoshi! を使わせていただきました。
http://www.geocities.jp/ittesyoshi2ch/
白番(自分が上手)の時の勝率が明確に高いです。
黒では5割ぐらいなのに白だと7割近いです。
古い彩や私自身の結果でも同じく白番の勝率が高いです。
自分が下手だと、上手にうまく対応されると戦意喪失してしまう
(逆に上手は簡単にはあきらめない)とか、心理的要素もありそうなのですが。
KGSの今のハンデ仕様(1級差はコミ0.5、2級差で2子)
は上手に有利な仕様なのかもしれません。
AyaMC2 6k ... 10000playout
通算勝率 0.593 9393勝6442敗 全15835局(公式戦は13986局)
黒番 0.494 3660勝3753敗 全7413局
白番 0.680 5782勝2718敗 全8500局
AyaBot 8k ... 以前のクラシックな彩
通算勝率 0.537 2608勝2248敗 全4856局(公式戦は4098局)
黒番 0.446 809勝1003敗 全1812局
白番 0.588 1857勝1299敗 全3156局
HYamashita 2d ... 私
通算勝率 0.602 103勝 68敗 全 171局(公式戦は141局)
黒番 0.500 35勝 35敗 全 70局
白番 0.660 68勝 35敗 全 103局
統計を取るにはこちらの Itteyoshi! を使わせていただきました。
http://www.geocities.jp/ittesyoshi2ch/
北京ではMFGが9路、19路ともに優勝しました
9月末にComputer Olympiad(中国の要請?で今年はOlympiadという名前は
使えなかったようですが)に参加するために北京まで行ってきたのですが
結果は9路で7位(18チーム中)、19路で4位(13チーム中)と厳しい結果でした。
優勝はどちらもManyFaces。CrazyStoneがなぜか不参加だったのですが
文句なく、現在の世界最強でしょう。
作者のFotlandは20年近くコンピュータ囲碁を作っている人で、
今年の2月くらいにモンテカルロに切り替えて、さくっとこれだけのものを
作ったのは大したものです。
19路はモンテカルロが上位7つまでを独占し、クラシックの付け入る隙は
まったくありませんでした。
今回の特徴は上位のチームは全部、インターネット経由で
自国にあるサーバに接続して対戦した、ということです。
MFGはアメリカのマイクロソフトの8コアマシン4台、全32コアのクラスタ
マシンを利用し、MoGoはHuygens(ホイヘンス)という160コアもあるクラスタマシンに
つないでいます。他は8コアサーバが多かったです。
ただ、ネットワーク経由対戦は不安定で、会場のネット接続が不安定、
サーバ自体が起動しない、などのトラブルで対戦は3日の予定が4日かかる遅れを
出していました。
私自身は8コアマシン(Xeon2.66GHz)をケースなしで持参。
しかし前日にホテルで電源ユニット裏にある赤いスイッチの設定を110Vから220V
に変えるのを忘れて、(中国は220V)接続テストをした瞬間、「バチッ」とユニットから
音がしてホテルの部屋のヒューズが飛んで真っ暗に。
ヒューズはホテルの人に直してもらったのですが、電源は復帰せず。
仕方なく、次の日、北京市内の電気屋さんまで30Kmタクシーを飛ばして
EPS12V対応の電源ユニットを買ってきたのですが、これも会場で試すと
「バチッ」と音がして10秒ほどで停止。
初日は仕方なくレンタルマシンを借りました。
2日目の朝に壊れたと思った電源ユニットを試すと復活!
2日目以降は8コアで対戦できました。
今回の教訓:外国にパソコンを運ぶときは電源には気をつけましょう。
ということでした・・・。
9路の結果
http://www.grappa.univ-lille3.fr/icga/tournament.php?id=180
19路の結果
http://www.grappa.univ-lille3.fr/icga/tournament.php?id=181
2008年07月14日
アンチコンピュータ戦略で4級ぐらいは強くなるようです
ソフトの弱点を知っていれば、かなり弱い棋力でも勝つことはできると思います。
私の囲碁の棋力はKGSで3k(3級)なのですが、
最近、ちょっとソフトだけを相手に10局ほど打ってみました。
相手はMoGoや彩のMC版です。
で、あっさり3kから2d(2段)まで4ランク上がりました。
グラフ
棋譜
KGSではしばらく打っていないとレーティングが不安定になり、過去数局の結果が
過大に反映される、というものを利用したためですが、私の棋力はほとんど変わってないのですが
ソフト相手だけだとかなり上のレーティングで安定できる感じです。
棚瀬さんがよくGPWでコンピュータ相手に勝っていましたが、
棚瀬さんの棋力をアマ4段としてアマ7段?程度のソフトに勝ってもおかしくないのかも
しれません。
逆に、プロが本気でアンチコンピュータ作戦を使えば、相当勝つのは難しい感じがします。
私の囲碁の棋力はKGSで3k(3級)なのですが、
最近、ちょっとソフトだけを相手に10局ほど打ってみました。
相手はMoGoや彩のMC版です。
で、あっさり3kから2d(2段)まで4ランク上がりました。
グラフ
棋譜
KGSではしばらく打っていないとレーティングが不安定になり、過去数局の結果が
過大に反映される、というものを利用したためですが、私の棋力はほとんど変わってないのですが
ソフト相手だけだとかなり上のレーティングで安定できる感じです。
棚瀬さんがよくGPWでコンピュータ相手に勝っていましたが、
棚瀬さんの棋力をアマ4段としてアマ7段?程度のソフトに勝ってもおかしくないのかも
しれません。
逆に、プロが本気でアンチコンピュータ作戦を使えば、相当勝つのは難しい感じがします。
2008年06月23日
CGF特別例会に参加してきました
ものすごく久しぶりにブログを書いてみます。
21,22日と秋葉原、ダイビルのCGF特別例会に参加してきました。
今回は9路と19路の開催だったのですが、人がたくさん!
いらしてたことにビックリでした。
参加者も9路が10、19路が8。
9路はモンテカルロが多かったのが印象的でした。
2日目にはNHK囲碁将棋ジャーナルの取材でいらしていた向井プロを
はじめ、コンピュータ将棋関係者の方もたくさん見学にいらして
賑わっていました。
結果はうれしいことに9路、19路ともに全勝で彩が優勝しました。
モンテカルロ様さま、ですね。
ちなみに左の方で扇風機を突っ込んでるマシンが私のXeon2.66GHz x8のマシンです。
9路では6コア、19路では8コアを使ってました。
9路では2コア以上では並列効果ががた落ちするので、(まったく調べてないのですが)6コアなら、ぎりぎりかな?ということで6コアにしてます。
21,22日と秋葉原、ダイビルのCGF特別例会に参加してきました。
今回は9路と19路の開催だったのですが、人がたくさん!
いらしてたことにビックリでした。
参加者も9路が10、19路が8。
9路はモンテカルロが多かったのが印象的でした。
2日目にはNHK囲碁将棋ジャーナルの取材でいらしていた向井プロを
はじめ、コンピュータ将棋関係者の方もたくさん見学にいらして
賑わっていました。
結果はうれしいことに9路、19路ともに全勝で彩が優勝しました。
モンテカルロ様さま、ですね。
ちなみに左の方で扇風機を突っ込んでるマシンが私のXeon2.66GHz x8のマシンです。
9路では6コア、19路では8コアを使ってました。
9路では2コア以上では並列効果ががた落ちするので、(まったく調べてないのですが)6コアなら、ぎりぎりかな?ということで6コアにしてます。