情報技術論第13回 機械学習とコンピュータ ゲームプレイヤへ...

Post on 15-Jul-2020

2 views 0 download

Transcript of 情報技術論第13回 機械学習とコンピュータ ゲームプレイヤへ...

情報技術論 第13回

機械学習 と コンピュータゲームプレイヤへの応用

工学部 電子情報工学科

近山 隆

情報技術論 第13回 1

講義の概要

機械学習(前回)

コンピュータ将棋プレイヤと機械学習(今回)

コンピュータゲームプレイヤ研究の状況

コンピュータゲームプレイヤ激指

ゲーム木の探索手法

機械学習のゲーム木探索への応用

モンテカルロ法と機械学習

情報技術論 第13回 2

コンピュータゲームプレイヤとは

コンピュータの誕生当初から研究されてきた

人間の知性の象徴

もともとゲームは現実世界の縮図

組合せ探索問題の一種

多数の選択肢の中から最適なものを選択

初期局面から必勝手を選べれば最高だが無理

与えられた時間内に、できるだけ良い手を選択

3情報技術論 第13回

種々のゲームのプレイヤ

オセロ: 1990年代に人間を凌ぐ

6x6のオセロは完全に解かれている(必勝手順が既知)

チェス: 人間のトップを破る

IBM Deep Blue vs 世界チャンピオン カスパロフ (1997)

将棋: トッププロに迫る

平均的プロ棋士程度の力はある?

囲碁: 初級者レベル ⇒ 近年急激に実力向上

新しいアルゴリズムが大きな役割

4情報技術論 第13回

コンピュータ将棋プレイヤ「激指」

現時点でトップのプレイヤのひとつ

近山研究室の大学院生が開発

世界コンピュータ将棋選手権で活躍し、商品化も

開発者の修了・就職後も開発チームは継続

研究室の後輩による関連研究

情報技術論 第13回 5

「激指」の歴史(誕生⇒成長)

1999.秋 大学院生4人、将棋でもやってみようか「速い実装をすれば勝てるんじゃないの?」

2000.3 世界コンピュータ将棋選手権(WCSC)挑戦二次予選 9 位 決勝進出ならず

2000秋 実現確率打切りを提案、実装(鶴岡)

2001.3 WCSC二度目の出場 決勝進出 4位他ソフトと違う特徴的棋風に注目集める

2001.12 商品版 毎日コミュニケーションズより発売

6情報技術論 第13回

「激指」の歴史(円熟期)2002.5 WCSC初優勝

2003.5 WCSC 3位

2004.5 WCSC 2位

2005.5 WCSC 全勝で全勝優勝勝又プロ五段との記念角落ち戦にも勝利

2005.6 アマ竜王戦全国大会出場 ベスト16

2005.7 「将棋世界」企画 トッププロとの角落ち戦渡辺竜王に敗れるも、木村一基7段に勝利

7情報技術論 第13回

2006.5 WCSC 5位

2007.5 WCSC 4位

2008.5 WCSC 3度目の優勝

エクシビションで清水上アマ名人に勝利

2009.5 WCSC 6位

2010.5 WCSC 4度目の優勝

この間にどの強豪ソフトも確実に強くなってきている

「激指」の歴史(停滞 ⇒ 復活)

8情報技術論 第13回

人間 vs. コンピュータ将棋

2011/07/11 情報技術論 第13回 9

決定的完全情報零和ゲーム

決定的: 偶然性なし (⇔ backgammon)

完全情報: 全情報は開示 (⇔ contract bridge)

⇒ 互いに最善を尽くした場合の勝負は原理的には決まっている

(たとえば、○×ゲームで賭けられる?)

ゼロサム: 自分の勝ちは相手の負け

10情報技術論 第13回

AND-OR 木探索

自分の手番:ひとつ勝つ手があればいい

相手の手番:ひとつでも負ける手があると困る

OR

局面

指し手

AND

11情報技術論 第13回

最後までは読みきれない ある局面で可能な手は60種ぐらい

∴1手深く読むには約60倍の時間

ゲームの終了まで探索するのは事実上不可能

⇒ 最後まで読むのはあきらめて、読める範囲でなるべく有利になる手を探索

勝ち負けの二値 ⇒ 有利不利の度合いの多値局面の評価が重要に

AND/OR 探索 ⇒ Mini-Max 探索

6手先: 1秒7手先: 1分

8手先: 1時間9手先: 2.5日10手先: 半年11手先: 30年

12手先: 1800年…

12情報技術論 第13回

Mini-Max探索

-5 -2 7 -8 13 6 -4

先手番

後手番

先手番

もっとも先手有利の手を選択

Max 節

もっとも後手有利の手を選択

Min 節

-2 7 6 1

-2 1

1

選択手

13情報技術論 第13回

2 7 -3 ?

2

探索の省略: α枝刈り

-5 2 3 ? ?7 -3 -4

先手番

後手番

先手番

後手が左の枝をとれるのでこの局面の評価は-3以下

先手は左の枝をとれるのでこの局面の評価は 2以上

ここがどうだろうと、この手は選ばない

2

14情報技術論 第13回

β枝刈り: α枝刈りと先後逆

2 ?

-5 2 ? ?7

先手番

後手番

先手番

? ?

先手が左の枝をとればこの局面は 7以上

後手は左の枝をとれるのでこの局面の評価は 2以下

ここがどうだろうと、この手は選ばない

15情報技術論 第13回

探索窓:α値とβ値の範囲

2 7 -3 ?

2

-5 2 3 ? ?7 -3 -4

先手番

後手番

先手番

各局面で考慮すべき評価値の下界・上界

ここは最低でも評価値 2最高は不明(∞)

ここは最高でも評価値 -3親から2 以下は不要とわかる

⇒ これ以上の探索不要

[2,∞]

[2,-3]

16情報技術論 第13回

αβ枝刈りの効率向上 有望な手を先に探索するのが大事

⇒ 早く大きく枝刈りできる

理想的探索順なら約倍の深さ読める

反復深化 iterative deepening

繰返し段々深く読んでいく

浅い読みの結果で深い読みの際の順序を決める

浅い読みは何度も行なうので冗長だが…

深さ優先の探索がメモリコスト上で有利

探索コストは深さの指数関数⇒浅い探索は安価17情報技術論 第13回

探索窓を縮小した探索

探索窓をあらかじめ縮小して探索

結果が窓の外だと、どちら側かしかわからない

結果が窓の内なら、探索が効率的∵ 悪い着手を早くあきらめられる

探索窓の決め方

以前の着手決定の際の結果から推定

反復深化の際、浅い読みの結果から推定

幅0の探索を繰り返す手法も

18情報技術論 第13回

水平線効果 Horizon Effect

限られた深さの mini-max 探索の本質的問題

読める深さは限られている

読める範囲内で最適なものを探す

読める範囲のちょっと先の不利に気づかない

どうやっても先が不利になりそうな局面で小さな不利の手伸ばし(歩の打捨てなど)で、大きな不利を視界の外に追いやる振舞い

19情報技術論 第13回

どこまで深く読むか

単純には最大「n 手」先まで

最後の一手がはんぱだったら?

駒の交換で

取ったところまで(大きく有利?)

取られたところまで(大きく不利?)

「ほんのちょっと先まで読むと全然違う」という局面は、少し先まで読みたい

n

20情報技術論 第13回

選択深化 selective deepening

枝によって先読みの深さを変える

少し読めば精度が大きく高まるなら、より深く

i.e. 限界効用の高いところに資源投入

従来からゲームプレイヤで広く採用

連続王手が終わるまで

駒の取り合いが一段落するまで…

⇒ アドホックに人手で設定するのでは将棋の知識が必要、考え落ちが生じやすい

21情報技術論 第13回

実現確率打切り

選択深化の一手法

方針: 実現しそうな局面は深く読む

現局面から始めて、各局面の実現確率を推定

実現確率は棋譜から得た統計データから推定

打切り閾値以上の実現確率の部分木のみ探索

22情報技術論 第13回

局面の実現確率の算定手法 指し手の実現確率を求める

指し手を表す特徴を適宜設定

約600局のプロ棋士の棋譜から各特徴を持つ手について、指せるときに実際に指した率を計算

現在の局面からある局面に至る指し手の確率の積が、その局面の実現確率

e.g., 大駒の交換は、たいがい取り返す

⇒ 取った局面、取り返した局面はほぼ同確率

23情報技術論 第13回

実現確率打切り

p1

p2

p3

局面の実現確率p = p1×p2×p3

実現確率 q1 以上

実現確率 q2 以上

実装は対数で管理乗算⇒加算

24情報技術論 第13回

実現確率打切りは、なぜ有効?

強いプレイヤが実際に指すことが多い手は良い手である可能性が高い

良い手は有利な局面をもたらしやすい

有利な局面に至る手は詳しく調べる価値あり

注: 「強いプレイヤが指しそうな手を選ぶ」のではない「強いプレイヤが指しそうな手は詳しく調べる」

すなわち、資源投入量の制御にあたる

情報技術論 第13回 25

コンピュータ将棋と機械学習

コンピュータ将棋の黎明期: 職人芸

局面のどこに注目、どの局面を探索、…

計算機が遅いときには、これしかなかった

激指の実現確率: データからの学習の導入

職人芸的プログラミングからの解放

近年では機械学習の適用が当然に

コンピュータが十分速くなった

大量のデータが扱えるようになった

26情報技術論 第13回

実現確率算定の改良

指し手の確率=指し手を生成する尤度を学習

特徴として盤面パターンなどを追加

手の移動先・移動元の3x3のパターンなど

約4000局のプロ棋士の棋譜(約50万局面)で、指された手を正例、指されなかった手を負例とし、Maximum Entropy 法で学習

「ひと目」で「この手は65%指しそう」とわかる

27情報技術論 第13回

局面評価関数の機械学習

かつてはなかなかうまくいかなかった

コンピュータ将棋プレイヤ Bonanzaの登場

比較学習を導入して初出場で優勝 (2006)

大きなインパクトを与えた

評価要素: 玉と他の2個の駒の位置関係すべて

100万におよぶ次元の重みを調整する学習

今日では多くのコンピュータプレイヤが同様の方法を採用

28情報技術論 第13回

比較学習:局面評価パラメタの学習法

Deep Thought: IBMによるチェス専用機

世界チャンピオン Kasparov を破ったDeep Blue (1997) の前身

評価関数の重みを自動学習 (1988)

強いプレイヤが指したと同じ手を指すように調整

指した手/指さなかった手の評価値の相対値が問題

指した直後の局面の評価を高くするのではダメ

先まで読んだ結果、その手を指すように調整

29情報技術論 第13回

詰将棋と指将棋の関係

詰将棋は読み切る ⇒ 指将棋とは異なる発展 証明数・反証数に基づく選択深化による探索

プロ棋士を大きく上回る実力

それでも殊に「不詰」の判定には時間がかかる

指将棋でも詰の判定は重要 終盤はもちろん、序盤でも「頓死」の可能性あり

激指では全体の30%の時間が詰み探索

詰むはずもない局面では時間をかけたくない

30情報技術論 第13回

証明数と反証数proof number/disproof number

AND-OR 木全体の真偽を決める問題たとえば詰将棋

木をあまり展開せずに真偽を決めたい

証明数:あと p ノード展開するだけで真とわかるかも

反証数:あと d ノード展開するだけで偽とわかるかも

証明数・反証数の小さなノードを優先して展開∵ 最小限のコストで結論を得られそうな戦略

31情報技術論 第13回

「直感」の重要性

強い将棋指しは先読みで手を探さない?

「よい手は直感的に思いつく」

「時間をかけて読むのは直感を確かめるだけ」

「実はよくない手だった」とわかる場合も

⇒ 「直感」は「どの手をよく読むべきか」の資源配分制御に使っている!

⇒ 詰み判定への資源配分を「直感」で制御

32情報技術論 第13回

詰・不詰の予測 (三輪2004)

将棋の局面をいくつかの特徴量で表現

多くの局面について詰将棋プログラムで詰・不詰を決定

詰・不詰と特徴量との関係を SVM で学習 特徴量1

特徴量2

33情報技術論 第13回

ソフトマージンの SVM

線形分離不能の場合

線形では誤分類

誤分類の程度を数値化

誤分類コスト最小となる分離超平面を選択

Support Vector

34情報技術論 第13回

局面の特徴129種を人手で選択

玉将について: 絶対位置、玉間の距離

玉周辺の状況:

周辺の各位置は盤端/空/味方/敵

玉の可能な動きの数

守り駒、攻め駒、合い駒状態の駒の数

手駒の種類と数

可能な王手の種類

35情報技術論 第13回

学習に用いたデータ

終局に近い四万局面を生成

プロ棋士の四千局の棋譜を用意

終局近くからランダムに進めて各十局面を生成

詰将棋プログラムで判定(最長30秒で判定)

全四万局面中10,159局面が詰み

棋譜 局面集 判定進行不詰

詰み

2010/07/12 36情報技術論 第13回

Cross Validation

限られた数のデータを学習と評価に使いまわし

3-fold cross validation では:

学習 評価

学習 学習評価

評価 学習

データ全体

37情報技術論 第13回

実験の結果(4-fold cross valid.)

実際は 詰 不詰 計

詰と判定 6,414 1,865 8,279

不詰と判定 3,745 27,976 31,721

計 10,159 29,841 40,000

正解率 再現率 F値

詰 0.775 0.631 0.696

不詰 0.882 0.938 0.909

38情報技術論 第13回

この精度の判定が数マイクロ秒で可能

詰みの見逃しは少なくない

詰み判定としては

信用できない

詰判定に時間をかける価値

詰み判定超平面との距離に注目

大きく離れていれば判定は信頼できそう

距離にしたがって詰み判定にかける時間を調節 特徴量1

特徴量2

39情報技術論 第13回

いかにも詰みそう

いかにも詰まなさそう

なんともいえない

詰判定への資源投入量制御

局面と分離超平面との距離で詰判定ルーチンへの時間配分を制御(Sigmoid関数)

40情報技術論 第13回

詰み判定にかける時間

分離超平面との距離- ← 0 → +

詰みそうなら時間をかけて詰みを読む詰まなそうなら

詰みを読むのに時間をかけない

資源投入量制御の効果

この制御を行わない版と千局対戦させたら…

平均計算時間を 65.6% に削減して、勝率 53.4%

3/4 の計算時間だと、勝率55.3%(3.26σ)

⇒ 強さを保って 2/3 の計算時間

⇒ 少ない計算時間で有意に強くなった

41情報技術論 第13回

特徴量の自動生成(三輪2005)

局面を表す特徴量は人間が選ぶのが普通

問題領域の知識が必要

見落としが生じる可能性

多数の事例から自動生成できないか?

単純で自明な特徴の組合せを特徴量に

有利不利との関係が強い組合せを自動選択

2010/07/12 42情報技術論 第13回

特徴パターンの生成手順

単純な特徴要素

特徴パターン

棋譜+ラベル付け

頻出するもの抽出

組合せ

頻出飽和パターン

選択

有用なパターン

2010/07/12 43情報技術論 第13回

これだけは人手で

パターン選択と評価関数構築1. 頻出するパターンの中から、

独立して意味を持つ(飽和)パターンのみ選択

2. 有用なパターンを選択

① 条件付相互情報量の大きいものを選択

② 各訓練局面の持つ頻出飽和パターンのうち、ラベル付けとの相互情報量上位のもののみ考慮∵ すべて考えるとメモリに載りきらない

Naive Bayesian classifier で評価関数構築

2010/07/12 44情報技術論 第13回

詰将棋問題での実験

基本特徴要素: 駒の位置、効きの 41,224 種

組合せは論理積のみ考慮

訓練用 80,000局面(← オンライン将棋対局サイト)

2%以上の局面で出現するもの 38,173,197 種

事前選択を上位100, 200, 500, 1000 種で試行

評価関数に用いる評価要素数 100~10,000

9,768 局面を用いて評価

2010/07/12 45情報技術論 第13回

処理に要した時間

2種類のシステムを利用

Xeon 3.06 GHz ×2, メモリ 2GB

Opteron 250 2.4 GHz ×2, メモリ 8GB

頻出飽和パターン抽出: Xeon で 38分

有用なパターンの抽出: Opteron で5日間

実用的な時間でできる範囲内に設定

2010/07/12 46情報技術論 第13回

詰将棋問題への適用結果

2010/07/12 47情報技術論 第13回

詰将棋のための評価関数自動構築実験のまとめ

上位200, 評価要素数 2,000 で最良の結果正解率 約74%

計算量膨大: さまざまな工夫をして計算量を削減して、なんとか実現可能に

人手で評価要素を選択、SVM で評価関数を作った場合の 84% にはまだ及ばない

ゲーム以外の問題への適用も十分考えられる

2010/07/12 48情報技術論 第13回

局面評価の見直し(卒論テーマ)

局面の評価値 ≒ その局面から勝てる確率?

強い棋士は:

不利な局面では紛れを求める

実力差があるときの駒落ち将棋は最初から不利

上手はわかりにくい局面に持ち込もうとする

有利な局面からは紛れにくい手を選ぶ

紛れを定式化・数量化したい ⇒

49情報技術論 第13回

局面評価と勝率の関係

局面評価関数は優勢度の推定値

所詮は推定値 — 実際の値は広がりがある

真の優勢度

勝敗

勝敗ラインの右側部分の面積が問題

形勢不利なら推定が不正確な方が高い可能性不正確な評価

50情報技術論 第13回

局面評価の誤差の推定

局面評価値は「真の優劣」の期待値を表現

分散までわかれば「勝率」を表現できる

機械学習で分散を推定

局面評価値と深い読みの結果を大量に比較

評価要素ごとに誤差を推定

⇒ 分散がわかれば「勝率」を計算可能

51情報技術論 第13回

段位は現在の強さを表すものではない

レーティング:チェスなどのゲームで使われる指標

対局成績からの相対尺度

敗者から勝者に得点を移動 ⇒ 合計は一定

レーティングが高い相手に勝てば大きくプラスレーティングが低い相手に勝てば小さくプラス

勝敗が3:1の割合なら200点差

レーティングが1000点違えば千勝一敗の差

コンピュータは時間を3倍使うと約200点強くなる

将棋の強さの尺度

コンピュータは2年ごとに倍程度速くなっている

10年では25=32倍 ⇒ 3倍が3回程度(∵33=27)

レーティングで200×3=600点ぐらい強くなる計算

現状で女流トップやアマチュアトップより少し強い

トッププロ棋士との差は600点ぐらいか

ソフトが現状でも、コンピュータが速くなるので、10年後には勝てる?

⇒ という単純な考えは成り立ちそうにない

コンピュータ将棋は名人に勝てる?

そんなに早くは勝てないかも

CPU単体はもうあまり速くできず、並列化が必須将棋のような最適化探索は並列処理が難しい(現状は並列処理に何台使っても実質数倍程度)

日本将棋連盟が対局を承知しないかも

もっと早く勝てるかも

画期的な並列処理手法が出てくるかも

画期的なアルゴリズムが出てくるかも

そう単純ではない理由

ランダム試行を何度も繰り返し、それらの平均で真の値を推定する確率的手法

例) 円周率の計算

① 正方形中に一様にランダムに点をバラ撒く

② 内接円内の割合を計算

③ 点の数を増やしていけば割合は π/4 に近づくはず

異なるアプローチ:モンテカルロ法

55情報技術論 第13回

ゲームへのモンテカルロ法適用

モンテカルロ法の最適探索への適用

① 候補手を指した局面から開始

② その後は合法手中からランダムに着手していく

③ その結果の勝敗数を記録

これを繰り返し、勝ちが多かった候補手を選ぶ

○ 簡単に並列処理できて高速化可能

× ランダムプレイに対して勝率が高くても…

56情報技術論 第13回

Multi-Armed Bandit 問題

One-Armed Bandit(片腕の盗賊=スロットマシン)

何本もレバーがあるスロットマシン

それぞれ当たり確率が違う(かもしれない)

何回か試した後、次はどのレバーがいい?

今まで当たりが多かったもの?⇒ 高確率だが運が悪かっただけのがあるかも

ランダムに選ぶ?⇒ よいレバーの見当が少しはついてるのに…

57情報技術論 第13回

Multi-Armed Bandit の最適解

レバーを引いてみることによって得られるのは

当たりが出ることによって得る直接の利得

試してみることによって得る情報 ⇒ 将来の利得

両者の適切なミックスが最適

理論上は、試行回数 n のうち最適でないものを選ぶ回数を(確率1で)O (log n)回以内にできる

最適な選択方法は複雑で非実用的

→ 近似的方法を使うのが有力

58情報技術論 第13回

UCB: Upper Confidence Bound

以下のUCB値最大の選択肢を試す(UCB1)

最適手以外を試す回数はO (log n)回に漸近理論上最適な手法との違いは定数倍程度

他にも近似方式はいくつかある

選択肢 i のUCB値

選択肢 i の勝率選択肢 i の試行回数

全体の試行回数

59情報技術論 第13回

UCT: UCB for Tree UCB に基づく選択を探索木のノードごとに適用

⇒ 見込みの高い手、試行の少ない手を優先

コンピュータ囲碁では大成功

単純な UCT 探索ではなく、知識との組合せ

大規模な並列処理が比較的容易

将棋などより局面評価が難しい⇒ ランダムに近くてもいいから

終局まで打ってみた方が確かな結果

将棋でも成功する可能性はある?

60情報技術論 第13回

機械学習の視点でUCTを見ると…

どの手を多く試すか=どこに資源を投入

資源投入をそれまで得られた結果で制御

⇒ 自ら作ったデータからの学習による資源投入制御

情報技術論 第13回 61

メタ計算の重要性

メタ計算: 計算の進め方についての計算

コンピュータが速くなっても計算量は有限⇒ 「どの計算をすべきか」が重要

賢い人は何を考えればよいかわかる人

賢いコンピュータは何を計算すればよいかわかっているコンピュータ

62情報技術論 第13回

成長するコンピュータ

コンピュータは学べる

機械学習が有利な領域は急速に拡大中

入手可能な電子データはますます大量に

解析のための処理能力も向上していく

コンピュータは経験を積める

コンピュータ自身が熟考して結果を蓄積

蓄積した結果(経験)から知識を抽出して利用

人間の場合より経験の共有はずっと容易

63情報技術論 第13回

まとめ

コンピュータゲームプレイヤの構成法

いろいろなアプローチ探索、機械学習、確率的手法、…

完全に計算しきれない場合の対処法

問題が複雑であるほどメタ計算が重要

情報処理技術の進展のひとつの重要な方向

64情報技術論 第13回

近山担当分のレポート課題

十年後を見据えて、機械学習の適用が有効と思われる領域をあげ、その根拠を述べよ

考慮すべき点

コンピュータの能力は百倍に ← Moore 則

機械学習には大量データの利用が不可欠

需要がないところに技術の発展はない

期待する分量: ワープロなら2~3ページ

情報技術論 第13回 65

成績評価方法

出席回数

学期末レポートの提出と評価

全6教員の課題から3課題以上について提出

どの教員の課題を選んで提出するかは自由

調査は大事だが引用は引用と明示すること

コピペをオリジナルかのように偽るのは絶対ダメ

情報技術論 第13回 66

レポート提出について

提出方法 電子メールによる場合 (原則):

宛先: chikayama@logos.t.u-tokyo.ac.jp

タイトルに「情報技術論: 氏名・学生証番号」

紙媒体の場合 (特に指定のある場合等): アドミニストレーション棟 教務課前 提出箱

締切 教務前提出箱: 7月25日(水) 16:30

電子メール: 7月27日(金) 23:00

2011/07/11 情報技術論 第13回 67