4人ともAIにして、一晩かけて自己対戦させたけど、2000戦ぐらいだとまだ勝率25%にならないですね。
モブ子とAliciaは12枚スタート。Unitychanと手前は13枚スタートなんでそのへんの差も出るかと思ったけど。
AI自己対戦を使うと、思考ルーチンを改良して、勝率で評価したりできるかも。
でももっと早くしないと時間がかかりすぎるか。
強化学習できるといいんだけど、初めの手札の良し悪しも大きいし、できるのかなあ?
論文でも検索してみるかな。
http://www.aaai.org/Papers/AAAI/1999/AAAI99-099.pdf
日本語論文あった
札譜データの学習を用いた大貧民モンテカルロプレイヤの強化
https://ipsj.ixsq.nii.ac.jp/ej/index.php?action=pages_view_main&active_action=repository_action_common_download&item_id=146675&item_no=1&attribute_id=1&file_no=1&page_id=13&block_id=8
モンテカルロ法シミュレーションの手法ですね。以前、単純なモンテカルロ法による囲碁は作ったことがあります。
プレイアウトの確度を十分に得られないことがある. この原因の 1 つは,実際のゲームにおいては選択されないような 弱い手を選択してしまうためである.
詰碁やモンテカルロ法で将棋をやった場合の問題点と同じですね。
1プレイアウトを高速に正確に偏りなく実装することが大事と。
(この前、プロに勝ったGoogleのAlphaGoもモンテカルロ法で、評価関数に深層学習の結果を用いていた)
本研究では,出す手役の優先度を求める評価関 数(提出手役評価関数)を機械学習を用いて作成 する.提出手役評価関数は,場と手札の状態,評 価値を計算する手を入力として与えることで,そ の手を選択するべきかどうかを評価値として出力 する.
ここが肝ですね。
何を教師にしてるのかがいまいちよくわからないな。
学習対象のプレイヤが出した手役を正解, 学習対象のプレイヤが出さなかった合法手を不正解とする
?
すでにあるモンテカルロ法を使った思考ルーチンの手を教師にして学習ってこと?
モンテカルロシミュレーションした結果を、一発で判断できる評価関数を学習ってことかな。
将棋でいうと10手先を読んだ手を5手探索で発見できる評価関数みたいな感じで。