Bonanza Method を用いた 囲碁評価関数の設計 橋本剛,松井利樹,野口陽来 北陸先端科学技術大学院大学 こちらの分野のホットな話題 (昨年のスライドより) コンピュータ将棋: 評価関数の自動学習(B onanza Method, 保木2006) プロレベルまであと少し コンピュータ囲碁: モンテカルロ法(+UCT) が猛威を振るう 9路盤ではプロに勝った? 19路盤でも有段者に 今日の発表:コンピュータ将棋の学習方法で コンピュータ囲碁の評価関数を学習 本日の発表の流れ モンテカルロ法を使ったコンピュータ囲碁 ゲーム評価関数の学習とBonanza method Bonanza Methodを用いた囲碁評価関数の設 計 まとめ 今後の目標 モンテカルロ法を使ったコンピュー タ囲碁 コンピュータと囲碁 Search Space チェッカー オセロ 全宇宙の原子の数 チェス 将棋 囲碁 探索空間 10の30乗 10の60乗 10の78乗 10の120乗 10の220乗 10の360乗 強さ solved 世界最強 どうやって数えた? 世界最強 奨励会3段~4段 アマ二段 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] 以下に定義されるUCBスコアが最大になる台を選ぶ logn Xi c Ti n : 試行した回数 X i : マシン i の報酬期待値 Ti: マシン i がプレイされた回数 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 モンテカルロ囲碁と評価関数 コンピュータ囲碁を強くするためには?? やはり評価関数が必要! ただし手の評価関数 Progressive Widening (In UCT) 手に評価値を与えて評価の高い手から生成していく 精度の高い評価関数を必要とする 特徴の設計が重要である 7 評価関数を使ったプレイアウト(In MC) 手に評価値を与えて確率分布を生成する 高速な評価関数を必要とする 評価関数を使った 評価値の重み付けが重要である プレイアウト 例 二種類の評価関数が必要 機械学習!! 5 3 ゲーム評価関数の学習と 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探索 した石差を記述) From: M. Buro, Experiments with Multi-ProbCut and a New High-Quality Evaluation Function for Othello , Games in AI Research, 2000 結論の出しやすいオセロならではの手法! 13段階(13-16石,17-20石、…) で計算 評価値は各パターン値の線形和 将棋などの局面評価関数の学習がな ぜ困難だったか? 大量のデータをどう扱う? これまでTD法、ニューラルネットなどによる学習が試みら れた • 非現実的な時間がかかり実用化に到らず ⇒BonaMetho: 最適制御法+さまざまな工夫 教師データをどうするか? 棋譜は表面的な情報(プロは深い読みの結果手を選んで いる) ⇒BonaMetho: 一手探索+静止探索の最善応手手順末 端局面で比較、学習する Bonanza Method 1 最大(小)化問題として力学 系の最適制御理論を用い る ラグランジュ形式の解析力学 パルス整形による化学反応 制御 最小燃料のロケット弾道 池の鯉に与える餌 t を手数、xを局面、uを特徴 ベクトルとみなし機械学習 を行う 棋譜の指し手とminimax探 索がよく一致する特徴ベク トル (評価関数)を求める T 0 l ( x, u, t )dt t : 時間に関する数 x(t): 系の状態 u: 制御変数 Bonanza Method 2:誤差関数の設計 棋譜中で選択された手 p0 を最良(教師信号)とし, その他の手 pm を教師信号より小さくする学習を行う. N M 1 J x S T f x pi ,m f x pi ,0 x min i 1 m 1 f: minmax探索の評価値 N: サンプルされた棋譜の全局面数 Φ: 拘束条件 M: 局面Pでの合法手の数 m=0: 棋譜で指された手 T[x]: 評価値の差を、棋譜の指し手との一致度に変換する関数 T[x]:シグモイド関数 難しい手は学習したくない 誤差の影響を小さくしたい 1 T ( x) 1 ex Bonanza Method 3 ベクトルの更新 ベクトルの要素数が多 く、目的関数の勾配を 求めて最適化 目的関数が十分滑らか ではない 2次収束を持つ手法はう まくいかない 軽い探索の結果得られ る最善応手手順の末端 局面同士を比較 new l v old l v J hsign vl 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 Approach 棋譜が選択した手を教師信号とした教師あり学習 勾配法(Bonanza Method) を使って設計 •合法手で最大評価の手 = 棋譜の手 となるよう無理矢理 調整 •コンピュータ将棋で盛んな手法 (保木2006) 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 Design of Evaluation Function Evaluation function ALL p l j p x j γ(p) 評価関数(確率) l(p) 特徴ベクトル x パラメータベクトル j 1 l j p : 1 x j exist otherwise 局面の評価値は積で表現 x : x1 , x2 ,, x ALL x 0 T probability function f pi pi ALL p move move 学習による自動調整 を行おう!! Design of Gradient Method J x T f v pi f 0 pi min i f v pi pi ALL p 微分可能で連続 move move T : 誤差汎化関数 シグモイド関数 教師信号は棋譜で選択された手 f v p0 学習時に探索は行わない p0 : 棋譜で遷移した局面 Design of Machine Learning 一致率と確率関数には大きな誤差がある 0.4 0.35 一致率<確率関数 確率関数を過大評価 0.3 一致率>確率関数 確率関数を過小評価 確率[%] Hypothesis 0.25 一致率 0.2 0.15 確率関数の累積確率 0.1 0.05 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 順位 一致率と確率関数が等しければ最適と仮定 フィルタを設計する!! f pi pi ALL p move move Design of Filter 学習後にパラメータを n 乗して代入する n xx J n f fil pmax,i T min All i pmax,i : 第一合法手の局面 パラメータベクトルを累乗しても順位 は保証される T : 第一合法手の一致率 f fil : nをどうやって定めるのか?? 調整後の関数 0.4 学習で決める!! 0.35 うまくいった! n =1.75497 確率[%] 0.3 0.25 0.2 一致率 0.15 確率関数の累積確率 0.1 補正関数の累積確率 0.05 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 順位 Experiments: 対戦実験 我々のプログラム誤碁能美譚(nomitan)で対戦 9路盤プログラム, 一手30秒, 200戦先後入れ替え 提案手法 vs. 少数化最大化法: 142-58 提案手法の優秀性を証明! UEC杯(2008年12月)の結果 7位(28プログラム中) 開発期間は1年あまり 若手奨励賞受賞 準優勝不動碁作者の自 戦記: 「対局が始まると不動碁はジ リジリ引き離されて必敗の局 面に.」 まとめ コンピュータ囲碁はモンテカルロ+UCT に手の評価関数で強くなる! 機械学習では将棋で開発された Bonanza Method が成功を収める 囲碁評価関数をBonanza Method で学習 する手法を提案 我々のプログラム「誤碁能美譚」でその 優秀性を証明、大会でも好成績を収め た 今後の目標 コンピュータ将棋: 名人に勝つ! 数年~10年後ぐらい? (現在は羽生さん) 評価項目をどのように選べば強くなるか? ペナルティの設定など泥臭い調整が必要⇒より 自動的で高性能の学習を目指す コンピュータ囲碁: 名人に勝つ! 50年後などと言われていたが、案外早いかも? 評価関数の計算がボトルネック⇒より早くかつ高 精度の評価関数が必要
© Copyright 2024 ExpyDoc