スライド 1

電気系工学専攻 融合情報学コース
近山・田浦研究室
三木 理斗
1


背景と目的
UCTによる打ち手の探索
◦ 関連研究
◦ 提案手法
◦ 実験

補助問題を利用した評価関数の学習
◦ 関連研究
◦ 提案手法
◦ 実験

結論
2

多人数不完全情報ゲーム
◦ 探索の問題
 状況によって戦略が変わる
 不完全情報、不確定要素のため空間が膨大

研究の浅いゲーム
◦ 評価関数の問題
 特徴要素の構築・重み付けが難しい

例:麻雀
3

麻雀において良い手を求める
◦ 探索によって(手法ひとつめ)
◦ 評価関数によって(手法ふたつめ)

前述の問題を次のアプローチで解決する
◦ なるべく高度な知識を必要としない手法
◦ 知識をデータから自動的に抽出できる手法
4
提案手法1
5

麻雀の性質
◦ 多人数(4人ゲーム)
◦ 不完全情報(山や相手の手がわからない)
◦ 鳴き(他の人が捨てた牌を自分のものにできる)

Minimax探索の適用が困難
◦
◦
◦
◦
戦略が複雑(トップを狙うか、2位確定するか、など)
局面状態が不確定なため探索の分岐数が膨大
鳴きによる手番の不規則な変化
(高精度な評価関数が必要)
6

麻雀の打ち手の探索
◦
◦
◦
◦
戦略の推定
不完全情報の推定
手番の割り込み
評価関数

これらの課題に対応したい

知識を用いずシミュレーションで手を求める
◦ Minimax探索でやるには知識が必要
7

Minimax探索の拡張
◦ *-Minimax探索 [Ballard, 1983]
 不確定ゲームへの拡張
 不完全情報ゲームでは探索空間が膨大
 鳴きにも対応しづらい
◦ Maxn探索 [Luckhardt et al., 1986]
 多人数ゲームへの拡張

UCT探索とその応用
◦ 多人数ゲームへの拡張
◦ 不完全情報ゲームへの拡張
8

UCB値が最大の子ノードを探索する(UCB1方策)
ln T
UCB i  X i  C
Ti
知識項

探索項
Xi
:子
i
の平均報酬
Ti
:子
i
の探索回数
T
:親の探索回数
C
:バランス定数
未探索ノードから先はプレイアウトを行う
◦ ランダムor知識利用
◦ 終局の結果を報酬として観測
11

多人数ゲームへの拡張 [Sturtevant, 2008]
◦ ダイヤモンドゲーム
◦ ε-greedy方策でプレイアウト
◦ Maxn探索に対して73%の勝率

不完全情報ゲームへの拡張 [Schaeffer, 2008]
◦ トランプのSkat
◦ 相手の手札をランダム生成
◦ ヒューリスティックプレイヤや人間にはやや及ばない
12

麻雀の打ち手をUCTアルゴリズムで探索する
◦ UCB1方策で手を決定
 高度な戦略の推定を必要としない
◦ 不完全情報はランダムシミュレーション
 膨大な探索を必要としない
◦ ランダムプレイアウト
 評価関数を必要としない
◦ 鳴きによる手番の割り込みにも適用できる
15
1.
局面の見えていない部分をランダム生成する
2.
終局までの探索を1回行って木を更新する
3.
1,2を繰り返す
4.
最も平均報酬の高い手を選択する
16
相手の手牌と牌山をランダムに割り当てる
17
14牌ノード
13牌ノード
一萬切り
六索切り
南をカン

どの牌を切るか、またはカンするか

UCB1方策によって手を決定
18
13牌ノード
14牌ノード
対面がポン
下家がチー
誰も鳴かない
(下家がツモ)

ポンするか、鳴かないか
チーするか、鳴かないか

選択権の高いプレイヤ順にUCB1方策によって決定

19

終局までランダムプレイアウト
更新
東
南
西
北

-4000
+8000
-2000
-2000
結果を報酬として経路上のノードを更新
20

実験環境

実装

実験方法
◦ Core2 Duo 3GHz
◦ 2GB RAM
◦ C++
◦ 約2000~数万ループ/秒
◦ 一致率評価
◦ コンピュータおよび人間との対戦

各種パラメータ
◦ 報酬は得点収支
◦ UCB値のC=1000
21
14牌ノード(ツモ局面)
100.0%
一致率
90.0%
3位以内率
80.0%
5位以内率
ランダム
70.0%
一致率

線形SVM
60.0%
50.0%
40.0%
30.0%
20.0%
10.0%
0.0%
100
1000
10000
ループ回数
100000
22
13牌ノード(鳴き局面)
100.0%
90.0%
80.0%
70.0%
一致率

60.0%
50.0%
40.0%
30.0%
UCT
20.0%
ランダム
10.0%
SVM
0.0%
100
1000
10000
100000
ループ回数
23

縦軸は一致率
100.0%
100.0%
90.0%
90.0%
80.0%
80.0%
70.0%
70.0%
60.0%
60.0%
50.0%
50.0%
40.0%
40.0%
30.0%
UCT
30.0%
UCT
20.0%
ランダム
20.0%
ランダム
10.0%
10.0%
SVM
0.0%
100
1000
10000
ループ回数
牌譜で鳴いた局面
SVM
0.0%
100000
100
1000
10000
100000
ループ回数
牌譜で鳴かなかった局面
24

ループ回数を増やすと鳴きが増える

ランダムプレイアウト中にあがることはほとんどない
◦ 報酬のほとんどがノーテン罰符
◦ 流局テンパイを目指している

適切な報酬を設定する必要がある
25
グリーディ 対 UCT (100試合400局)
プレイヤ
Greedy A
UCT A
Greedy B
UCT B
あがり率[%]
13
23
16.5
23.25
平均収支
-624.5
478.25
-269.25
402
SVM 対 UCT (100試合400局)
プレイヤ
SVM A
UCT A
SVM B
UCT B
あがり率[%]
16.75
19
22.5
21.5
平均収支
-458.5
399
118.75
-62.5
26








第一東風荘(東風戦 食いタンあり ノーテン親流れ)
1手5秒
123試合631局
R976 (安定R849)
あがり率
15.8%
放銃率
22.0%
2回以上鳴き率 30.3%
平均収支
-716
27

麻雀の打ち手をUCT探索によって求めた

ツモ局面で 46% の最善手一致率
◦ 知識を用いなくてもSVMなどに匹敵する性能

問題点
◦ プレイアウトではほとんどあがれていない
◦ 流局テンパイを目指す打法
◦ 無駄な鳴きが増えてしまい、振り込みも多い
28
提案手法2
29

訓練データ(棋譜)には多くの情報が含まれており、
それらを有効に活用したい
◦ 将棋の囲い
◦ 麻雀の役・点数など

評価関数の特徴として組み込めばよいが、特徴空間
の構築と重み付けが難しい
◦ 効く特徴と効かない特徴にしっかり重みを付けたい
◦ 記述が難しい特徴をうまく表現したい
30

訓練データに含まれる情報を有効に抽出・活用
◦ 情報を抽出する
 機械学習の問題として解き、モデルを作成
◦ 情報を活用する
 モデルそのものの情報を利用
 モデルを用いた予測結果を利用

抽出した情報で特徴空間の構築・重み付けを改善
◦ モデルを主成分分析して有効な特徴の重み付けを促進
◦ 予測結果を使って記述しにくい特徴を表現
31

Bonanza

牌譜を用いた評価関数の学習

SVD-ASO
32

比較学習・・・棋譜の局面の評価値が他の局面の評価値よりも良くなるように調整

Bonanzaでは棋譜から探索した先の局面で調整
p pos
pneg
探索
p pos
が棋譜の局面
p' pos  p'neg
となるように調整
p' pos
p'neg
特徴空間の設計が重要
33

牌譜を用いた評価関数の調整 [北川ら, 2007]
◦ ニューラルネットワーク
◦ 1,532のboolean特徴
◦ 一致率56%

木カーネルを用いたSVMによる学習 [三木ら, 2008]
◦ 手牌の木構造特徴
◦ 一致率53%

非線形学習で特徴要素に重み付け
34

ラベルなしデータを用いた半教師あり学習

補助問題を作成して解き、得られたモデルを並べた行
列からSVD(特異値分解)によって特徴抽出
◦ 主成分分析と実質的に同じ

抽出した特徴を既存の空間に追加し、その上で学習
を行う
ラベルなしデータから情報を抽出し、
有効な特徴空間の発見に利用
35

麻雀の訓練データ(牌譜)から作成した補助分類問題
を利用した特徴空間の拡張による、評価関数の学習
36

既存の特徴空間上で大量の補助分類問題を学習

補助分類問題を利用して特徴空間を拡張
◦ 得られたモデルから特徴空間を抽出・追加
◦ モデルによる予測結果を特徴として追加

拡張された特徴空間上で主問題(評価関数)を学習
37

人手では抽出が困難だが、評価関数に利用できる情
報を分類問題として抽出する
◦ 麻雀ではそのような補助分類問題が多くある

例:(この局面から)あがるか
◦ 特徴として記述するのは困難
◦ 人間は「あがりやすい局面」を選択しているはず
38

どの特徴が効くか、効かないかはわからない
◦ 学習しても、うまく重み付けがされるとは限らない

補助分類問題を解くのに有効な特徴は、評価関数の
学習においても有効である可能性が高い
◦ 例:「何切る」問題で有効な特徴は、実戦局面でも有効

モデルの行列から主成分分析で特徴抽出
◦ 重みが大きく動いている軸が取り出される
◦ 間接的な特徴選択効果
39

直接記述するのは難しい特徴がある
◦ 例:(この局面から)あがるか?
◦ 「あがりやすい局面」を選択していれば、有効な特徴になる

予測結果をそのまま特徴として用いる
40
w  f all
T
all
 forg 
I


 
T
T
T


 w all  Pforg  w all   P   f org  u  forg


M
 Mf 
 
 org 
f all
: 拡張された特徴空間
f org
: 元の特徴空間
P
: 主成分分析の変換行列
M
: 補助問題のモデルの行列
元の特徴空間で計算できる
41
元の特徴が2次元、補助問題が1つの場合
主問題の重み
 w0  w p p0  wm m0 

u
 w w p w m 
p 1
m 1 
 1
主成分分析による補正項
予測結果による補正項
42

線形だと次元数が変わっていない
正則化項
◦ 同じ結果になるのでは?

正則化する(ペナルティをかける)と・・・

min Loss ( X, w )  C w
2

u1
w1
wp p1  wm m1
w0
u0
wp p0  wmm0
補助問題なし
原点の近くで解を探す
補助問題あり
補助問題で最適だったところ
の近くで解を探す
43

拡張した特徴空間上で学習を行う

今回はSVMを用いる
◦ (牌譜の局面-それ以外の局面)を正例、逆を負例
44

学習した評価関数と牌譜の手との一致率・不一致度
を計測
◦ 不一致度=予測順位の1位からのずれの平均

学習にはLIBLINEARを使用
◦ L2損失・L2正則化・SVM
45

22個の問題を作成(あがりに関するもののみ)
◦
◦
◦
◦
◦
◦
◦
◦
あがり
面前あがり
鳴きあがり
順位の上がるあがり
特定の点以上のあがり
各役のあがり
ドラn枚のあがり
・・・
46
カテゴリ
要素数
牌割
38
面子
239
面子候補
133
自分の状態
6
手牌の1枚と河の1枚の組み合わせ
5776
状況別牌危険度
240
合計
6432
47
60
4.00
3.50
50
不一致度
一致率[%]
55
45
40
3.00
2.50
35
30
2.00
0
20000
40000
60000
80000
0
20000
学習局面数
40000
60000
80000
学習局面数
補助問題なし
モデルのみ
補助問題なし
モデルのみ
予測結果のみ
モデル+予測結果
予測結果のみ
モデル+予測結果
48


そもそも補助問題が解けていないと意味がない
訓練データで4-fold cross validationを行い、F値
が0.4以上の問題12個を選択
49
60
4.00
3.50
50
不一致度
一致率[%]
55
45
40
3.00
2.50
35
30
2.00
0
20000
40000
60000
80000
0
20000
学習局面数
40000
60000
80000
学習局面数
補助問題なし
モデルのみ
補助問題なし
モデルのみ
予測結果のみ
モデル+予測結果
予測結果のみ
モデル+予測結果
50

前述の補助問題を、残りツモ数ごとに作成(×18)

そこからさらにF値0.1以上のものを絞り込み
51
60
4.00
3.50
50
不一致度
一致率[%]
55
45
40
3.00
2.50
35
30
2.00
0
20000
40000
60000
80000
0
20000
学習局面数
40000
60000
80000
学習局面数
補助問題なし
モデルのみ
補助問題なし
モデルのみ
予測結果のみ
モデル+予測結果
予測結果のみ
モデル+予測結果
52
60
4.00
3.50
50
不一致度
一致率[%]
55
45
40
3.00
2.50
35
30
2.00
0
20000
40000
60000
80000
0
20000
学習局面数
40000
60000
80000
学習局面数
補助問題なし
モデルのみ
補助問題なし
モデルのみ
予測結果のみ
モデル+予測結果
予測結果のみ
モデル+予測結果
53
予測結果による拡張 対 補助問題なし (400試合1600局)
プレイヤ
prediction
w/o A
w/o B
w/o C
あがり率[%]
17.88
19.44
18.81
16.69
平均収支
36
-46
166
-141
モデルによる拡張 対 補助問題なし (400試合1600局)
プレイヤ
model
w/o A
w/o B
w/o C
あがり率[%]
20.13
18.31
17.44
17.75
平均収支
185
21
-107
-84
54

補助問題を用いて特徴空間を拡張して学習

モデルを用いた拡張では最高9%の一致率上昇
◦ しかし学習の進行が不安定
◦ 適切な補助問題を設定する必要がある

予測結果を用いた拡張では一致率・不一致度ともに
そこそこ改善
◦ こちらは学習の進行が安定
◦ 「記述しにくい特徴」を抽出できる手法
55
56

多人数不完全情報ゲームにおけるUCTの有効性
◦ 不完全情報・不確定要素・多人数戦に適応

補助問題を用いた評価関数の学習の有効性
◦ 予測結果による特徴空間の拡張が効果的
◦ 線形分類問題でも有効

残る問題
◦ 探索と評価関数を組み合わせて検証する必要あり
◦ 作成したプレイヤが実戦では強くない
57

UCTによる探索
◦ 不完全情報の推定
◦ プレイアウトの改善
◦ 探索効率の向上

補助問題を用いた評価関数の学習
◦ 適切な補助問題の設定
◦ 非線形学習
◦ 他のゲームへの応用

その他の問題
◦ 実戦的なプレイヤの設計
 分類器を使って評価関数を切り替える、等
58