コンピュータゲームプレイヤmine/japanese/it/2017/tsuruoka1.pdfmcts) – ai...

Post on 15-Aug-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

鶴岡 慶雅

工学部 電子情報工学科 情報理工学系研究科 電子情報学専攻

情報・システム工学概論 2017-12-18

ゲームと人工知能

• 人工知能研究 – 計算機で知的な情報処理ができるようにしたい

• ゲーム AI

– 限定された「世界」 – ルールが明確に定義 – 手法の性能評価が比較的容易 – 強い人間プレイヤの存在

コンピュータ囲碁

AlphaGo vs 李世ドル

AlphaGo 4勝 李世ドル 1勝

4 https://www.youtube.com/watch?v=qUAmTYHEyM8

コンピュータ囲碁

• コンピュータ囲碁の進歩 – 初段手前でしばらく停滞 – モンテカルロ木探索アルゴリズム

の登場(2006年ごろ) – アマチュアトップレベルに – 再び停滞(~2015年)

• 難しさ

– 合法手が多い – 評価関数の設計が難しい

• 地が確定するのは最後 • 石の生死の判定 • 離れた場所にある石の影響 • etc

5

コンピュータチェス・将棋・囲碁

http://blog.livedoor.jp/yss_fpga/archives/53897129.html FPGAで将棋プログラムを作ってみるブログ

レーティング

• 棋力を数値化する手法 – Elo rating system

– 対局相手と勝ち負けの履歴から最尤推定

( ) 400/1011

AB RRAE −+=

AEARBR

: プレイヤAが勝つ確率 : プレイヤAのレーティング : プレイヤBのレーティング

モンテカルロ木探索(MCTS)

• モンテカルロ木探索(Monte Carlo Tree Search, MCTS) – AI 研究に大きな影響

• 囲碁で大成功 • 他のゲーム、プランニング、制御、最適化問題などへの応用が進む

– 特長 • ドメイン知識が不要 • 他の手法がうまくいかない難しい問題で成功 • 計算パワーの向上がそのまま性能の向上につながる

モンテカルロ法

• 円の面積

原始モンテカルロ法

• 各合法手からランダムプレイ – 評価関数不要

• 勝率の一番高い手を選ぶ

• ダメな手に対しも多くの試行を行うので効率が悪い

1 0 1 1 1 1 0 0 1

勝率 2/3 3/3 1/3

多腕バンディット問題

• 多腕バンディット問題(multi-armed bandits)

• どのスロットマシンにお金をつぎこむべきか? – 儲かるマシンに集中したい(exploitation) – 儲かるマシンを見つけたい(exploration)

UCB

• Upper Confidence Bounds (UCBs) – 多腕バンディット問題の近似解法 – Regret が O(ln n)

jj n

nX ln2UCB1 +=

腕 j の平均報酬 腕 j の試行回数

総試行回数

利用(exploitation) 探索(exploration)

UCB 例

• 各イテレーションでUCB 値が最も高い手を選ぶ

• 有望な手に関して多くの試行

1 0 1 1 1 0

UCB ∞ ∞ ∞ 1.0 ∞ ∞ 1.8 1.8 ∞ 2.0 2.0 1.0 1.3 2.1 1.1 1.3 1.8 1.2 1.4 1.7 1.2

jj n

nX ln2UCB1 +=

UCT

• UCB の問題 – 2手目以降のプレイアウトに無駄が多い – 相手の悪手に期待するような手を選ぶ

• UCT (UCB applied to Trees)

– Kocsis & Szepesvari (ECML 2006) – UCB を各ノードで適用 – 勝率等を各ノードに保存した木を成長させる – MINMAX値に収束

MCTSの基本動作 • 各イテレーション

1. Selection 2. Expansion 3. Simulation 4. Backpropagation

• UCT 値が最大の子ノードを再帰的に選択

simulation (playout)

jpj n

nCX ln22UCT +=

コンピュータチェス・将棋・囲碁

http://blog.livedoor.jp/yss_fpga/archives/53897129.html FPGAで将棋プログラムを作ってみるブログ

AlphaGo

• Google DeepMind が開発 • 従来の囲碁プログラムを圧倒的に上回る棋力

– 500勝1敗(?)

• 深層学習(deep learning)による強化学習

– ポリシーネットワーク • 個々の指し手が選択される確率

– バリューネットワーク • 局面の評価(勝敗の予測)

• ニューロン

ニューラルネットワーク

入力

Dx

1x1

= ∑

=

D

iii xwfy

0

入力の線形和に非線形な 活性化関数を適用

活性化関数 2x

y

Hyperbolic tangent ReLU (Rectified Linear Unit)

Dw

2w

重み

18

• 多数の入出力のペアから入出力関係を学習

多層ニューラルネットワーク

入力

Dx

1x

0x

出力

Ky

1y

19

畳み込みニューラルネットワーク (Convolutional Neural Network, CNN)

• 全結合

• 局所的結合 • パラメータ共有

パラメータ数 5 x 3 = 15

パラメータ数 3 x 3 = 9

パラメータ数 3

パラメータ数を減らすことにより過学習を回避 画像認識、テキスト分類などに有効

20

AlphaGo

• CNN による打ち手予測、局面評価 – 入力 19x19x48 深さ12層

打ち手予測 局面評価値

局面 局面

D Silver et al. Nature 529, 484–489 (2016) doi:10.1038/nature16961 21

D Silver et al. Nature 529, 484–489 (2016) doi:10.1038/nature16961

AlphaGo

• ニューラルネットワークの学習 • 高段者の棋譜による教師付き学習+強化学習

高段者の棋譜 自己対戦の棋譜 (3000万局面)

局面評価CNN 打ち手予測CNN 打ち手予測 打ち手予測CNN

50GPUで一週間

22

(D Silver, ICML Tutorial 2016)

AlphaGo の棋力

23

AlphaGo Zero [Silver et al., 2017]

• 2017年10月に発表された AlphaGo の後継

• 特徴 – 囲碁の知識を(ルール以外は)ほとんど利用しない

• プロ棋士の棋譜は使わない • ニューラルネットワークへの入力は黒白の石の配置だけ

– ランダムなパラメータから強化学習 • AlphaGo の棋力を36時間で上回る

– ニューラルネットワーク専用ハードウェアを利用 • Tensor Processing Unit (TPU)

自己対戦による学習

・ ニューラルネットワーク

・ 学習の目的関数

局面 s から合法手の確率分 布 p と局面評価 v を計算

局面評価 v と実際の勝ち負け のずれが少ないほど良い 確率分布 p とモンテカルロ木 探索によって得られた分布 π とのずれが少ないほど良い

(Silver et al., 2017)

モンテカルロ木探索

( ) ( )( )( )asN

bsNascPasQ b

,1

,,,

++

∑ ( ) ( ) ( )∑′→′

′=sass

sVasN

asQ,,

1,

手の選択の基準

(Silver et al., 2017)

ニューラルネットワークの予測性能

・プロ棋士の手を予測 ・プロ棋士の棋譜の勝敗を予測

(Silver et al., 2017)

AlphaGo Zero の強化学習

(Silver et al., 2017)

マルチタスク学習及びResNetの効果

(Silver et al., 2017)

AlphaGo Zero の強さ

(Silver et al., 2017)

top related