1 - 東京大学

Download Report

Transcript 1 - 東京大学

東京大学大学院
三木理斗 三輪誠 近山隆
背景
関連研究
提案手法
1.
2.
3.
◦
◦
◦
4.
5.
カーネル法を用いたSVM
麻雀における木カーネル
カーネルSVMによる順位学習
実験
結論

特徴要素作成の難しさ
◦ 対象のゲームについての深い知識が必要
◦ 単純な線形和では取れない特徴がある
 XORなど

カーネルをゲームの特徴表現に応用する
◦ 入力には比較的単純な構造を使える
 今回は木構造
◦ 線形で取れない特徴が取れればうれしい
 暗黙的に高次の特徴空間での分類ができる

麻雀の手牌をカーネルSVMで分類する
◦ 麻雀は探索よりも高精度な評価関数が重要
 カーネル法は向いている
◦ 麻雀の手牌を木構造とみて木カーネルを利用
 手牌の類似度は木カーネル関数で表現される
◦ 熟練者の牌譜を使用
 「熟練者の手>それ以外の手」という順位関係をSVMで学習
背景
関連研究
提案手法
1.
2.
3.
◦
◦
◦
4.
5.
カーネル法を用いたSVM
麻雀における木カーネル
カーネルSVMによる順位学習
実験
結論

単純な特徴からの機械学習
◦ TD-Gammon [Tesauro, 1992]

麻雀に関する研究
◦ 牌譜を用いた評価関数の重み調整 [北川ら, 2007]
ゲーム
麻雀
特徴要素
人手で作成
手法
Bonanza method
(探索なし)
一致率
56%
面前の持ち牌
面前の持ち牌2枚の組み合わせ
面前の持ち牌3枚の組み合わせ
鳴いた牌の構成と状態
面子数
リャンメン数
自分の状態
カンチャン数とペンチャン数の和
トイツ数
テンパイしているかどうか
ドラの枚数
面前であるかどうか
親であるかどうか
リーチしているかどうか
自分が捨てたことのある牌
鳴いた牌の構成と状態
鳴いた回数
鳴いた牌の中で見えているドラの数
他プレイヤの状態
親であるかどうか
リーチしているかどうか
そのプレイヤに対する完全安牌
筋や壁などによって安全度が高い牌
自分との点差
場の状態
オーラスかどうか
見えていない牌の残り枚数
背景
関連研究
提案手法
1.
2.
3.
◦
◦
◦
4.
5.
カーネル法を用いたSVM
麻雀における木カーネル
カーネルSVMによる順位学習
実験
結論
背景
関連研究
提案手法
1.
2.
3.
◦
◦
◦
4.
5.
カーネル法を用いたSVM
麻雀における木カーネル
カーネルSVMによる順位学習
実験
結論

2クラスの分類器

 
g ( x)  w  x  b

g ( x)  1

g ( x)  0
1

w
2
マージン  を最大化
w
1

w

g ( x )  1
13

非線形分類における手法


x   (x )


 ( x1 )   ( x2 )
 
K ( x1 , x2 )
明示的な特徴
置き換え
背景
関連研究
提案手法
1.
2.
3.
◦
◦
◦
4.
5.
カーネル法を用いたSVM
麻雀における木カーネル
カーネルSVMによる順位学習
実験
結論
手牌
孤立牌
面子候補
面子
暗刻
リャンメン
カンチャン
ペンチャン
明刻
トイツ
この下に具体的な牌のまとまりが付く
(一つの牌が複数個所に所属可)
暗順 …
孤立牌
リャンメン
カンチャン
ペンチャン
トイツ
暗刻
暗順
手牌
孤立牌
手牌
面子候補
リャンメン
面子
カンチャン
孤立牌
面子候補
暗順
リャンメン
面子
カンチャン
共通部分木を数える
暗順
SST
手牌
…
…
…
リャンメン
…
リャンメン
…
面子候補
面子
リャンメン
暗順
…
面子候補
リャンメン

深い木は遠回りなので重みを下げる
面子
暗順
暗順

depth (0    1)
暗刻
K t (t1 , t 2 ) 
  (n , n )
n1N t1 n2 N t2
1
2
F
(n1 , n2 )   
l ( fi )
i 1
I i (n1 ) I i (n2 )
Nt
木 t のノード集合
F  { f1, f 2 ,, f F }
部分木空間
l ( fi )
部分木 fi の深さ
1
I i (n)  
0
fi が n を祖先に持つとき
それ以外
背景
関連研究
提案手法
1.
2.
3.
◦
◦
◦
4.
5.
カーネル法を用いたSVM
麻雀における木カーネル
カーネルSVMによる順位学習
実験
結論

SVMは単なる2クラス分類器
◦ 順位を学習するには?

3つの手の順序を知りたければ・・・
( m1 , m2 )
m1  m2
( m1 , m3 )
m1  m3
( m2 , m3 )
m2  m3
Rank
m3  m1  m2
順序関係 ( > or < ) を2つのクラスとして分類器を作ればよい
データとして手の「ペア」を与える

1つの訓練データは2つの木(手牌)のペアからなる
ei  t , t
l
i

r
i
tl > trの時 +1 とラベル付け
tl < trの時 -1 とラベル付け
ペアに対してカーネル関数を定義する
Ktr (e1, e2 )  Kt (t1l , t2l )  Kt (t1r , t2r )  Kt (t1l , t2r )  Kt (t1r , t2l )
“tl > tr” と “ tl< tr”を分類できる
背景
関連研究
提案手法
1.
2.
3.
◦
◦
◦
4.
5.
カーネル法を用いたSVM
麻雀における木カーネル
カーネルSVMによる順位学習
実験
結論

実験環境
◦ Dual-Core AMD Opteron 2.4GHz
◦ 32GB RAM

実装
◦ SVM-Light-TK [Moschitti, 2004]
 ソフトマージンのコスト C=0.1
 最適化の閾値 ε=0.1

熟練者のツモ局面から学習
◦ “攻め”の局面のみ
 誰もリーチしていない
 誰も3鳴きしていない
◦ とつげき東北氏の牌譜を使用
 最大で285試合分(約13,000局面)

評価
◦ 牌譜の手と分類器の判断した最善手の一致率
◦ 4-fold cross validation
100%
90%
80%
70%
rank 1
rank 1-2
60%
rank 1-3
rank 1-5
50%
40%
30%
0
2000
4000
6000
8000
10000
training positions
12000
14000

“降り”の局面

役の知識を必要とする局面

[Kitagawa, 2007]で用いられた特徴を使用
◦ 手牌以外の局面情報を含む

実装
◦ Ranking SVM in SVM-Light [Joachims, 2002]
100%
90%
80%
70%
rank 1
rank 1-2
60%
rank 1-3
rank 1-5
50%
40%
30%
0
2000
4000
6000
8000
10000
training positions
12000
14000

Core2 Duo 1.06GHz
91819 support vectors
1つのペアの分類に約700ms

一手におよそ7秒


◦ 2スレッドで並列化すれば4秒ほどに
◦ 高速化すれば対人戦にも十分使える
背景
関連研究
提案手法
1.
2.
3.
◦
◦
◦
4.
5.
カーネル法を用いたSVM
麻雀における木カーネル
カーネルSVMによる順位学習
実験
結論

木カーネルを用いて手牌の順位を分類した
◦ 木構造というシンプルな入力で分類が可能に

57% の最善手一致率
◦ 手牌の情報のみ
◦ まだ向上する見込み

それなりの精度で、現実的な計算量
◦ ただし訓練局面に比例して分類時間は増大

分類した局面の詳しい分析

木構造の検討

他の情報を組み込む
◦ 線形が不得意な局面で正解できていれば・・・
◦ 現状だと根に近い部分の情報量が乏しい
◦ 手牌を他のカーネルで表現する
 文字列カーネル
◦ 敵の捨て牌やドラなどの情報
 線形特徴や他のカーネルで容易に追加できる

学習・分類コストの高さに対処する
◦ 麻雀以外に利用するには不可欠