svm を用いた麻雀の打ち手の学習
Post on 04-Jan-2016
66 Views
Preview:
DESCRIPTION
TRANSCRIPT
SVMSVM を用いた麻雀の打ち手を用いた麻雀の打ち手の学習の学習M2 三木理斗
発表の流れ発表の流れ1. 背景と目的2. 関連研究3. 提案手法4. 実験結果5. 今後の課題
背景と目的背景と目的Section 1
背景背景多人数不確定ゲームである麻雀
探索の問題◦確率ノードの扱い◦上がりから遠ざかる手変わり
評価関数作成の問題◦探索打ち切り局面をどう評価するのか
目的目的麻雀の手牌評価
SVM によって手を直接選択する◦探索や評価値を用いなくてもそこそこ良い手を判別できる
関連研究関連研究Section 2
手牌評価関数の学習 手牌評価関数の学習 [[ 北川ら北川ら , 07] , 07]
牌譜を用いた Bonanza method◦3 層ニューラルネットワーク◦1,532 の boolean 特徴要素
最大一致率 56% ( ツモ局面 )
提案手法提案手法Section 3
概要概要手の順位付けを SVM で学習
◦牌譜の手 > 他の手
Support Vector MachineSupport Vector Machine2 クラスの分類器
bxwxg
)(0)( xg
1)( xg
1)( xg
w1
w1
マージン w2
を最大化
順位の学習順位の学習順序関係 ( > or < ) を 2 つのクラスとして分類器を作ればよい、が
今回は Ranking SVM を使用
Ranking SVM [Joachims, Ranking SVM [Joachims, 02]02]検索エンジンのページランクの学習
◦一つの検索クエリに対するページ群のランクを学習
ゲームでは、◦「検索クエリ」⇔「局面」◦「ページ」⇔「打ち手」◦一つの局面に対する手のランクを学習
特徴要素特徴要素 (1)(1)手牌の構成
◦各牌の所持数◦面子 ( とりうるパターンすべて )◦面子候補 ( とりうるパターンすべて )
木カーネルの葉ノードにあたる
特徴要素特徴要素 (2)(2)手牌のその他の特徴
◦何回鳴いているか、など自分の状態
◦ドラの所持数、親かどうか、など相手の鳴き牌
◦鳴き面子、確定ドラ数、など場の特徴
◦リーチ、点差、オーラスかどうか、など
約 500 の要素の実数特徴ベクトル
実験結果実験結果Section 4
実験実験手のランク付けを学習
◦牌譜の手 > 他の手
分類器によって 1 位と判定された手と牌譜の手との一致率を評価
特徴◦A: 手牌の構成のみ◦B: 全て
実験データ実験データとつげき東北氏の牌譜
◦100 試合分と 2808 試合分◦4-fold cross validation
学習局面は約 20,000 と約 600,000
◦全プレイヤーの打ち手を使用◦リーチしていない局面◦牌譜の手をランク 2 、それ以外の手をすべてランク 1 とラベル付けした
実験環境実験環境実装
◦SVMrank http://svmlight.joachims.org/
マシン◦Dual-Core Opteron 2.4GHz * 2◦32GB RAM
牌譜の手との一致率 牌譜の手との一致率 [%][%]
手牌の構成のみ 全特徴
100 試合分 49.7 50.9
2808 試合分 50.3 51.1
ソフトマージンパラメータ c は 1000
ソフトマージンパラメータソフトマージンパラメータマージンとエラーのバランスを制御するパラメータ c
cw
L2
2
マージン エラー
分離平面を越えた距離のパラメータ
パラメータによる変化パラメータによる変化全特徴、 100 試合分
結論結論線形 SVM で一致率 51%
手牌の構成のみでかなり高い一致率
パラメータの調整でかなり増減
今後の課題今後の課題Section 5
今後の課題今後の課題カーネルの利用
特徴の追加◦相手の捨て牌◦手牌の細かい関連
応用◦鳴き局面◦合法手選択
順位の高い手を残して探索など
top related