昨日の記事で書いた羽生さんの件ですが、twitterとコメント欄で出典を教えていただきました。
「コンピューター将棋全般」カテゴリーアーカイブ
コンピューター将棋による次の一手問題集
コンピューター将棋同士で自己対戦させていると長手数の勝ち手順や鮮やかな寄せが見られることがあります。
ブラウザ版Bonanza
ブラウザで動くBonanzaを作られた方がおられるので紹介させていただきます。
C/C++のソースコード → コンパイルしてLLVMのバイトコード → EmscriptenでJavaScriptのソースコードに変換という手順で動かしてあるようです。
利きを活かした評価関数
Bonanzaを代表格とするbitboard型の将棋ソフトと、GPS将棋やなのはを代表格とする非bitboard型の将棋ソフトとで、一般的には前者のほうが全体的に見て速いと私は思うのですが、利きを活かした評価関数にするなら、話は違ってきます。今回は、どんな評価関数が考えられるか考えてみます。
続きを読む
羽生善治4冠、将棋とチェスの違いを語る
羽生先生がTata Steel Chess Tournamentのインタビューに答える形で将棋とチェスの違いを語っています。
Tata Steel Chess 2015 – En passant – Yoshiharu Habu
棋譜のコンバーターはどこにありますか?
棋譜からの学習なり何なりで入力棋譜がCSA形式やKIF形式ということはよくあります。しかし、いまや将棋ソフトの思考エンジンはUSIプロトコルでやりとりするのが標準的であり、USIプロトコルでの局面形式(sfen)の入出力部しか書いていない & 書きたくないという開発者の方も多数おられることでしょう。
トップコーダーはいまこそ将棋ソフトの開発に参加すべき
最強最速アルゴリズマー養成講座 プログラミングコンテストTopCoder攻略ガイドの著者として名高い高橋 直大さんがコンピューター将棋の開発に興味を持っておられるようです。
それ本当に過学習?
prediction(棋譜との指し手一致率)が上がっている限り棋力は上がっていくと言う話をpredictionと棋力との関係に書きました。
ボナメソで学習させるとしてもiterationが50を超えた辺りからpredictionの伸びは非常にゆるやかになっていきます。ついでに言うと、条件によっては、このあと学習させればさせるほど弱くなっていきます。
人はこれを過学習と呼ぶかも知れません。
しかし本当にこれは過学習でしょうか?
MultiPVと手加減モードとの関係
コンピューター将棋が強くなりすぎた結果、相手が人間(アマチュア)の場合は、手加減しないと勝負にならなくなってきました。
従来、探索深さを浅くしたり(depth limit)、探索ノード数を制限したり(nodes limit)、思考時間を制限したり(time limit)することによって弱さを実現してきましたが、それだと自然な弱さにはなりませんでした。(序盤がすごく弱いのに終盤だけが相対的に強いというような…)
定跡の生成に使った評価関数を用いるべき?
定跡の生成のため探索をして評価値が一定以上悪くなる指し手は定跡DBには登録しないだとか、探索して棋譜の指し手の評価値を定跡DBに記録しておき、ベストの評価値とかけ離れた評価値の指し手は採用しないだとかして定跡DBを作っていたのですが、少し興味深い現象があったので書いておきます。