Upload
nara
View
215
Download
0
Embed Size (px)
DESCRIPTION
Bonanza Method を用いた 囲碁評価関数の設計. 橋本剛,松井利樹,野口陽来 北陸先端科学技術大学院大学. こちらの分野のホットな話題 (昨年のスライドより). コンピュータ将棋: 評価関数の自動学習(Bonanza Method , 保木 2006 ) プロレベルまであと少し コンピュータ囲碁: モンテカルロ法(+UCT)が猛威を振るう 9 路盤ではプロに勝った? 19路盤でも有段者に. 今日の発表:コンピュータ将棋の学習方法で コンピュータ囲碁の評価関数を学習. 本日の発表の流れ. モンテカルロ法を使ったコンピュータ囲碁 - PowerPoint PPT Presentation
Citation preview
Bonanza Method を用いた囲碁評価関数の設計
橋本剛,松井利樹,野口陽来北陸先端科学技術大学院大学
こちらの分野のホットな話題(昨年のスライドより)コンピュータ将棋: 評価関数の自動学
習(Bonanza Method , 保木2006 )プロレベルまであと少し
コンピュータ囲碁: モンテカルロ法(+UCT)が猛威を振るう9 路盤ではプロに勝った? 19路盤でも有
段者に今日の発表:コンピュータ将棋の学習方法でコンピュータ囲碁の評価関数を学習
本日の発表の流れモンテカルロ法を使ったコンピュータ囲
碁ゲーム評価関数の学習と Bonanza
methodBonanza Method を用いた囲碁評価関数
の設計まとめ今後の目標
モンテカルロ法を使ったコンピュータ囲碁
探索空間 強さチェッカー 10 の 30 乗 solvedオセロ 10 の 60 乗 世界最強全宇宙の原子の数 10 の 78 乗 どうやって数えた?チェス 10 の 120 乗 世界最強将棋 10 の 220 乗 奨励会3段~4段囲碁 10 の 360 乗 アマ二段
Search Space
Target
•目標は名人に勝つこと•欧米ではゲーム研究現在のメインターゲット
(フランスが強い: Crazy Stone, MoGo )•日本では将棋後のメインターゲット?
コンピュータと囲碁
従来は… MINMAX + 評価関数
現在大流行: モンテカルロ法
1. 全ての合法手からランダムに一手選び手を進める2. 終局まで繰り返し、勝った数をカウントする3. 勝ち数が一番多い手を最善手として選ぶ
コンピュータ囲碁とモンテカルロ法
石の働きがダイナミックに変化パターンや空間の認識が重要
評価関数の作成が困難: (苦労の割には)精度悪い、 重い
評価関数が不必要
モンテカルロ法 オセロに実装 例
•白の手は a2,a3,a4,b4 の 4 種類
•a2 と指した後の勝率は 68% (6810/10000) と一番高いのでa2 を選ぶ
•a3 だと勝率が 32% で、悪手の可能性高い
モンテカルロ木探索( Monte-Carlo Tree Search, MCTS )MINMAX とモンテカルロの合体
「選んだ」ノードでモンテカルロシュミレーションを行い、勝率を計算
MINMAX で勝率の最も高いノードを選ぶどのノードを選ぶ?
⇒ Multi-Armed Bandit Problem
Multi-Armed Bandit Problem スロットマシンをプレイ(日本人はパチンコを
イメージするとわかりやすいかも) どのマシンがいいかわからない
どのマシンをどの程度プレイすれば最も儲かるか? 少しずつプレイして、一番よさそうな台でしば
らくやってみよう! でももっといい台があるかもしれない⇒他のも
試さないと…
「 収 穫 と 探 検 の ジ レ ン マ 〈 exploitation-exploration dilemma 〉」
Upper Confidence Bound method ( UCB ) A [Auer, 2002]
i
iT
ncX
log
以下に定義される UCB スコアが最大になる台を選ぶ
がプレイされた回数 : マシン の報酬期待値 マシン
試行した回数
i
i :
:
i
i
T
X
n
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
5
モンテカルロ囲碁と評価関数コンピュータ囲碁を強くするためには??
7 3
Progressive Widening (In UCT)手に評価値を与えて評価の高い手から生成していく精度の高い評価関数を必要とする特徴の設計が重要である
評価関数を使ったプレイアウト (In MC)手に評価値を与えて確率分布を生成する高速な評価関数を必要とする評価値の重み付けが重要である
二種類の評価関数が必要
機械学習 !!
やはり評価関数が必要!ただし手の評価関数
評価関数を使ったプレイアウト 例
ゲーム評価関数の学習とBonanza Method
局面評価関数の学習 TD-Gammon (G. Tesauro, 1998]
バックギャモン(双六に似たゲーム)思考部の学習 Temporal difference + neural network
Logistello (M. Buro, 1999) オセロプログラム(人間チャンピオンに勝利したこ
とで有名) パターンの重み学習 最小二乗法
Bonanza Method [ 保木 , 2006] Minimax 探索結果の最適制御 コンピュータ将棋 Bonanza で大成功 ⇒ 現在大流行中
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
将棋などの局面評価関数の学習がなぜ困難だったか? 大量のデータをどう扱う?
これまで TD 法、ニューラルネットなどによる学習が試みられた
• 非現実的な時間がかかり実用化に到らず ⇒BonaMetho : 最適制御法+さまざまな工夫
教師データをどうするか? 棋譜は表面的な情報(プロは深い読みの結果手を選
んでいる) ⇒BonaMetho : 一手探索+静止探索の最善応手手順末端局面で比較、学習する
Bonanza Method 1 最大(小)化問題として力
学系の最適制御理論を用いる ラグランジュ形式の解析力
学 パルス整形による化学反応
制御 最小燃料のロケット弾道 池の鯉に与える餌
t を手数、 x を局面、 u を特徴ベクトルとみなし機械学習を行う
棋譜の指し手と minimax探索がよく一致する特徴ベクトル (評価関数)を求める
制御変数:系の状態
時間に関する数
u
:(t)
:
),,(0
x
t
dttuxlT
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 探索の評価値Φ: 拘束条件
Bonanza Method 3 ベクトルの更新 ベクトルの要素数が
多く、目的関数の勾配を求めて最適化 目的関数が十分滑らか
ではない2次収束を持つ手法は
うまくいかない軽い探索の結果得ら
れる最善応手手順の末端局面同士を比較
l
oldl
newl v
Jhsignvv
Bonanza Method の 長所学習の時間が比較的早い
これまで実用的な時間で十分な性能を得られる手法はなかった
大量の評価項目を持てる従来はハンドチューニングが基本: 評価項
目の数が限られていた人間らしい指し手が可能になった
• 2駒、 3駒の位置関係をすべて学習
将棋の学習結果例はこちら
Bonanza Method を用いた囲碁評価関数の設計
BackGround
モンテカルロ囲碁: UCT と プレイアウトに手の評価関数が必要 ⇒ 評価項目の掛け算
これまでにいくつか学習方法は提案されている
Bonanza Method を使うともっといい学習結果が得られないだろうか?⇒ Challenge!
Design of Feature Vector
一.盤端からの距離 (15)二.12近傍パターン (18)三.8近傍パターン (18)四.トリに関する特徴 (12)五.ノビに関する特徴 (12)六.アタリに関する特徴 (3)七.ヌキに関する特徴 (3)八.直前の手からの距離 (15)九.二手前の手からの距離 (15)
赤字は UCT 用評価関数でのみ使用する特徴
パターンやヒストリーで特徴を構成する
⇒ 特徴が異なる
モンテカルロ用評価関数: 高速性が重要
UCT 用評価関数: 精度が重要
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)
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
学習による自動調整を行おう!!
教師信号は棋譜で選択された手
Design of Gradient Method
min0 i
iiv pfpfTxJ
:00 ppfv 棋譜で遷移した局面
:T 誤差汎化関数 シグモイド関数
ALL
movemove
iiv
p
ppf
微分可能で連続
学習時に探索は行わない
一致率と確率関数には大きな誤差がある
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
順位
[%]
確率 一致率
確率関数の累積確率
パラメータベクトルを累乗しても順位は保証される
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
Experiments : 対戦実験 我々のプログラム誤碁能美譚(誤碁能美譚( nomitan )で対戦 9路盤プログラム , 一手 30秒 , 200戦先後入れ替え 提案手法 vs. 少数化最大化法: 142-58 提案手法の優秀性を証明!
UEC杯( 2008 年 12月)の結果 77位(位( 2828 プログラムプログラム中)中)
開発期間は開発期間は 11 年あまり年あまり 若手奨励賞受賞若手奨励賞受賞 準優勝不動碁作者の自戦準優勝不動碁作者の自戦記:記:「「対局が始まると不動碁はジリジリ引き離されて必敗の局面に.」」
まとめコンピュータ囲碁はモンテカルロ+コンピュータ囲碁はモンテカルロ+
UCTUCT に手の評価関数で強くなる!に手の評価関数で強くなる!機械学習では将棋で開発された機械学習では将棋で開発された
Bonanza Method Bonanza Method が成功を収めるが成功を収める囲碁評価関数を囲碁評価関数を Bonanza Method Bonanza Method
で学習する手法を提案で学習する手法を提案我々のプログラム「誤碁能美譚」で我々のプログラム「誤碁能美譚」で
その優秀性を証明、大会でも好成績その優秀性を証明、大会でも好成績を収めたを収めた
今後の目標コンピュータ将棋: 名人に勝つ!
数年~ 10 年後ぐらい? (現在は羽生さん)評価項目をどのように選べば強くなるか?ペナルティの設定など泥臭い調整が必要⇒よ
り自動的で高性能の学習を目指すコンピュータ囲碁: 名人に勝つ!
50 年後などと言われていたが、案外早いかも?評価関数の計算がボトルネック⇒より早くか
つ高精度の評価関数が必要