Bonanza Method を用いた 囲碁評価関数の設計

32
Bonanza Method をををを ををををををををを ををを ををををを をををを ,, ををををををををををををを

description

Bonanza Method を用いた 囲碁評価関数の設計. 橋本剛,松井利樹,野口陽来 北陸先端科学技術大学院大学. こちらの分野のホットな話題 (昨年のスライドより). コンピュータ将棋: 評価関数の自動学習(Bonanza Method , 保木 2006 ) プロレベルまであと少し コンピュータ囲碁: モンテカルロ法(+UCT)が猛威を振るう 9 路盤ではプロに勝った? 19路盤でも有段者に. 今日の発表:コンピュータ将棋の学習方法で コンピュータ囲碁の評価関数を学習. 本日の発表の流れ. モンテカルロ法を使ったコンピュータ囲碁 - PowerPoint PPT Presentation

Transcript of Bonanza Method を用いた 囲碁評価関数の設計

Page 1: Bonanza Method  を用いた 囲碁評価関数の設計

Bonanza Method を用いた囲碁評価関数の設計

橋本剛,松井利樹,野口陽来北陸先端科学技術大学院大学

Page 2: Bonanza Method  を用いた 囲碁評価関数の設計

こちらの分野のホットな話題(昨年のスライドより)コンピュータ将棋: 評価関数の自動学

習(Bonanza Method , 保木2006 )プロレベルまであと少し

コンピュータ囲碁: モンテカルロ法(+UCT)が猛威を振るう9 路盤ではプロに勝った? 19路盤でも有

段者に今日の発表:コンピュータ将棋の学習方法でコンピュータ囲碁の評価関数を学習

Page 3: Bonanza Method  を用いた 囲碁評価関数の設計

本日の発表の流れモンテカルロ法を使ったコンピュータ囲

碁ゲーム評価関数の学習と Bonanza

methodBonanza Method を用いた囲碁評価関数

の設計まとめ今後の目標

Page 4: Bonanza Method  を用いた 囲碁評価関数の設計

モンテカルロ法を使ったコンピュータ囲碁

Page 5: Bonanza Method  を用いた 囲碁評価関数の設計

探索空間 強さチェッカー 10 の 30 乗 solvedオセロ 10 の 60 乗 世界最強全宇宙の原子の数 10 の 78 乗 どうやって数えた?チェス 10 の 120 乗 世界最強将棋 10 の 220 乗 奨励会3段~4段囲碁 10 の 360 乗 アマ二段

Search Space

Target

•目標は名人に勝つこと•欧米ではゲーム研究現在のメインターゲット

(フランスが強い: Crazy Stone, MoGo )•日本では将棋後のメインターゲット?

コンピュータと囲碁

Page 6: Bonanza Method  を用いた 囲碁評価関数の設計

   

従来は…  MINMAX + 評価関数

現在大流行: モンテカルロ法

1. 全ての合法手からランダムに一手選び手を進める2. 終局まで繰り返し、勝った数をカウントする3. 勝ち数が一番多い手を最善手として選ぶ

コンピュータ囲碁とモンテカルロ法

石の働きがダイナミックに変化パターンや空間の認識が重要

評価関数の作成が困難: (苦労の割には)精度悪い、 重い

評価関数が不必要

Page 7: Bonanza Method  を用いた 囲碁評価関数の設計

モンテカルロ法 オセロに実装 例

•白の手は a2,a3,a4,b4 の 4 種類

•a2 と指した後の勝率は 68% (6810/10000) と一番高いのでa2 を選ぶ

•a3 だと勝率が 32% で、悪手の可能性高い

Page 8: Bonanza Method  を用いた 囲碁評価関数の設計

モンテカルロ木探索( Monte-Carlo Tree Search, MCTS )MINMAX とモンテカルロの合体

「選んだ」ノードでモンテカルロシュミレーションを行い、勝率を計算

MINMAX で勝率の最も高いノードを選ぶどのノードを選ぶ?

⇒ Multi-Armed Bandit Problem

Page 9: Bonanza Method  を用いた 囲碁評価関数の設計

Multi-Armed Bandit Problem スロットマシンをプレイ(日本人はパチンコを

イメージするとわかりやすいかも) どのマシンがいいかわからない

どのマシンをどの程度プレイすれば最も儲かるか? 少しずつプレイして、一番よさそうな台でしば

らくやってみよう! でももっといい台があるかもしれない⇒他のも

試さないと…

「 収 穫 と 探 検 の ジ レ ン マ 〈 exploitation-exploration dilemma 〉」

Page 10: Bonanza Method  を用いた 囲碁評価関数の設計

Upper Confidence Bound method ( UCB ) A [Auer, 2002]

i

iT

ncX

log

以下に定義される UCB スコアが最大になる台を選ぶ

がプレイされた回数 : マシン の報酬期待値  マシン

試行した回数

i

i :

:

i

i

T

X

n

Page 11: Bonanza Method  を用いた 囲碁評価関数の設計

UCT [Kocsis, Szepevari 2006]

UCB for Trees現在ほとんどの囲碁プログラ

ム、 AMAZONS などで採用されているアルゴリズム

From :Sylvain Gelly, Yizao Wang, Remi Munos and Olivier Teytaud Modifications of UCT with Patterns in Monte-Carlo Go.Technical Report 6062, INRIA ,2006

Page 12: Bonanza Method  を用いた 囲碁評価関数の設計

5

モンテカルロ囲碁と評価関数コンピュータ囲碁を強くするためには??

7 3

Progressive Widening (In UCT)手に評価値を与えて評価の高い手から生成していく精度の高い評価関数を必要とする特徴の設計が重要である

評価関数を使ったプレイアウト (In MC)手に評価値を与えて確率分布を生成する高速な評価関数を必要とする評価値の重み付けが重要である

二種類の評価関数が必要

機械学習 !!

やはり評価関数が必要!ただし手の評価関数

評価関数を使ったプレイアウト 例

Page 13: Bonanza Method  を用いた 囲碁評価関数の設計

ゲーム評価関数の学習とBonanza Method

Page 14: Bonanza Method  を用いた 囲碁評価関数の設計

局面評価関数の学習 TD-Gammon (G. Tesauro, 1998]

バックギャモン(双六に似たゲーム)思考部の学習 Temporal difference + neural network

Logistello (M. Buro, 1999) オセロプログラム(人間チャンピオンに勝利したこ

とで有名) パターンの重み学習 最小二乗法

Bonanza Method [ 保木 , 2006] Minimax 探索結果の最適制御 コンピュータ将棋 Bonanza で大成功 ⇒ 現在大流行中

Page 15: Bonanza Method  を用いた 囲碁評価関数の設計

Logistello (オセロ)の評価関数

• 左の各パターンセットの全パターン値を計算しておく

オセロの重要な概念1. 確定石2. 着手数3. 偶数理論などを近似している

線形回帰でパターン値を計算(訓練用セット 8 万対局 300 万

局面 ,すべての局面で Negamax 探索した石差を記述)

13 段階( 13-16 石 ,17-20 石、…)

で計算

評価値は各パターン値の線形和

結論の出しやすいオセロならではの手法!

From: M. Buro, Experiments with Multi-ProbCut and a New High-Quality Evaluation Function for Othello , Games in AI Research, 2000

Page 16: Bonanza Method  を用いた 囲碁評価関数の設計

将棋などの局面評価関数の学習がなぜ困難だったか? 大量のデータをどう扱う?

これまで TD 法、ニューラルネットなどによる学習が試みられた

• 非現実的な時間がかかり実用化に到らず ⇒BonaMetho : 最適制御法+さまざまな工夫

教師データをどうするか? 棋譜は表面的な情報(プロは深い読みの結果手を選

んでいる) ⇒BonaMetho : 一手探索+静止探索の最善応手手順末端局面で比較、学習する

Page 17: Bonanza Method  を用いた 囲碁評価関数の設計

Bonanza Method 1 最大(小)化問題として力

学系の最適制御理論を用いる ラグランジュ形式の解析力

学 パルス整形による化学反応

制御 最小燃料のロケット弾道 池の鯉に与える餌

t を手数、 x を局面、 u を特徴ベクトルとみなし機械学習を行う

棋譜の指し手と minimax探索がよく一致する特徴ベクトル (評価関数)を求める

制御変数:系の状態

時間に関する数

u

:(t)

:

),,(0

x

t

dttuxlT

Page 18: Bonanza Method  を用いた 囲碁評価関数の設計

Bonanza Method 2 :誤差関数の設計

min1

1

10,,

x

N

i

M

mixmixx pfpfTSJ

棋譜中で選択された手   を最良 (教師信号 ) とし,その他の手   を教師信号より小さくする学習を行う.

0p

mp

xexT

1

1)(難しい手は学習したくない

誤差の影響を小さくしたい

T[x] :シグモイド関数

N: サンプルされた棋譜の全局面数M : 局面 Pでの合法手の数m=0 : 棋譜で指された手T[x] : 評価値の差を、棋譜の指し手との一致度に変換する関数

f: minmax 探索の評価値Φ: 拘束条件

Page 19: Bonanza Method  を用いた 囲碁評価関数の設計

Bonanza Method 3  ベクトルの更新 ベクトルの要素数が

多く、目的関数の勾配を求めて最適化 目的関数が十分滑らか

ではない2次収束を持つ手法は

うまくいかない軽い探索の結果得ら

れる最善応手手順の末端局面同士を比較

l

oldl

newl v

Jhsignvv

Page 20: Bonanza Method  を用いた 囲碁評価関数の設計

Bonanza Method の 長所学習の時間が比較的早い

これまで実用的な時間で十分な性能を得られる手法はなかった

大量の評価項目を持てる従来はハンドチューニングが基本: 評価項

目の数が限られていた人間らしい指し手が可能になった

• 2駒、 3駒の位置関係をすべて学習

将棋の学習結果例はこちら

Page 21: Bonanza Method  を用いた 囲碁評価関数の設計

Bonanza Method を用いた囲碁評価関数の設計

Page 22: Bonanza Method  を用いた 囲碁評価関数の設計

BackGround

モンテカルロ囲碁: UCT と プレイアウトに手の評価関数が必要 ⇒ 評価項目の掛け算

これまでにいくつか学習方法は提案されている

Bonanza Method を使うともっといい学習結果が得られないだろうか?⇒ Challenge!  

Page 23: Bonanza Method  を用いた 囲碁評価関数の設計

Design of Feature Vector

一.盤端からの距離 (15)二.12近傍パターン (18)三.8近傍パターン (18)四.トリに関する特徴 (12)五.ノビに関する特徴 (12)六.アタリに関する特徴 (3)七.ヌキに関する特徴 (3)八.直前の手からの距離 (15)九.二手前の手からの距離 (15)

赤字は UCT 用評価関数でのみ使用する特徴

パターンやヒストリーで特徴を構成する

⇒  特徴が異なる

モンテカルロ用評価関数: 高速性が重要

UCT 用評価関数:  精度が重要

Page 24: Bonanza Method  を用いた 囲碁評価関数の設計

Design of Machine Learning

棋譜が選択した手を教師信号とした教師あり学習

勾配法( Bonanza Method ) を使って設計

Approach

少数化最大化法

最大エントロピー法

Another Method

Computing Elo Rating of Move patterns in the Game of GO , Remi Coulom 2007

Move Prediction in Go with the Maximum Entropy Method, 荒木 2008

•合法手で最大評価の手 = 棋譜の手 となるよう無理矢理 調整•コンピュータ将棋で盛んな手法 ( 保木 2006)

Page 25: Bonanza Method  を用いた 囲碁評価関数の設計

0,,,:

1

1:

21

xxxxx

otherwisex

existpl

xplp

TALL

jj

ALL

jjj

Evaluation function

Design of Evaluation Function

局面の評価値は積で表現

γ(p) 評価関数(確率) l(p) 特徴ベクトル x パラメータベクトル

probability function

ALL

movemove

ii

p

ppf

学習による自動調整を行おう!!

Page 26: Bonanza Method  を用いた 囲碁評価関数の設計

教師信号は棋譜で選択された手

Design of Gradient Method

min0 i

iiv pfpfTxJ

:00 ppfv 棋譜で遷移した局面

:T 誤差汎化関数   シグモイド関数

ALL

movemove

iiv

p

ppf

微分可能で連続

学習時に探索は行わない

Page 27: Bonanza Method  を用いた 囲碁評価関数の設計

一致率と確率関数には大きな誤差がある

Design of Machine Learning

Hypothesis一致率 <確率関数確率関数を過大評価

一致率 >確率関数確率関数を過小評価

一致率と確率関数が等しければ最適と仮定

ALL

movemove

ii

p

ppf

フィルタを設計する!!

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

1 2 3 4 5 6 7 8 9 1011 12 13 1415 16 17 1819 20

順位

[%]

確率 一致率

確率関数の累積確率

Page 28: Bonanza Method  を用いた 囲碁評価関数の設計

パラメータベクトルを累乗しても順位は保証される

Design of Filter

nxx学習後にパラメータを n 乗して代入する

n をどうやって定めるのか??

学習で決める!!

第一合法手の一致率

minmax, TpfJAll

iifiln

:

:

:max,

fil

i

f

T

p 第一合法手の局面

調整後の関数

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

1 2 3 4 5 6 7 8 9 1011 12 13 1415 16 17 1819 20

順位

[%]

確率

一致率

確率関数の累積確率

補正関数の累積確率

うまくいった! n =1.75497

Page 29: Bonanza Method  を用いた 囲碁評価関数の設計

Experiments : 対戦実験 我々のプログラム誤碁能美譚(誤碁能美譚( nomitan )で対戦 9路盤プログラム , 一手 30秒 , 200戦先後入れ替え 提案手法 vs. 少数化最大化法: 142-58 提案手法の優秀性を証明!

Page 30: Bonanza Method  を用いた 囲碁評価関数の設計

UEC杯( 2008 年 12月)の結果 77位(位( 2828 プログラムプログラム中)中)

開発期間は開発期間は 11 年あまり年あまり 若手奨励賞受賞若手奨励賞受賞 準優勝不動碁作者の自戦準優勝不動碁作者の自戦記:記:「「対局が始まると不動碁はジリジリ引き離されて必敗の局面に.」」

Page 31: Bonanza Method  を用いた 囲碁評価関数の設計

まとめコンピュータ囲碁はモンテカルロ+コンピュータ囲碁はモンテカルロ+

UCTUCT に手の評価関数で強くなる!に手の評価関数で強くなる!機械学習では将棋で開発された機械学習では将棋で開発された

Bonanza Method Bonanza Method が成功を収めるが成功を収める囲碁評価関数を囲碁評価関数を Bonanza Method Bonanza Method

で学習する手法を提案で学習する手法を提案我々のプログラム「誤碁能美譚」で我々のプログラム「誤碁能美譚」で

その優秀性を証明、大会でも好成績その優秀性を証明、大会でも好成績を収めたを収めた

Page 32: Bonanza Method  を用いた 囲碁評価関数の設計

今後の目標コンピュータ将棋: 名人に勝つ!

数年~ 10 年後ぐらい? (現在は羽生さん)評価項目をどのように選べば強くなるか?ペナルティの設定など泥臭い調整が必要⇒よ

り自動的で高性能の学習を目指すコンピュータ囲碁: 名人に勝つ!

50 年後などと言われていたが、案外早いかも?評価関数の計算がボトルネック⇒より早くか

つ高精度の評価関数が必要