1 / 32

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

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

nara
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bonanza Method を用いた囲碁評価関数の設計 橋本剛,松井利樹,野口陽来 北陸先端科学技術大学院大学

  2. こちらの分野のホットな話題(昨年のスライドより)こちらの分野のホットな話題(昨年のスライドより) • コンピュータ将棋: 評価関数の自動学習(Bonanza Method, 保木2006) • プロレベルまであと少し • コンピュータ囲碁: モンテカルロ法(+UCT)が猛威を振るう • 9路盤ではプロに勝った? 19路盤でも有段者に 今日の発表:コンピュータ将棋の学習方法で コンピュータ囲碁の評価関数を学習

  3. 本日の発表の流れ • モンテカルロ法を使ったコンピュータ囲碁 • ゲーム評価関数の学習とBonanza method • Bonanza Methodを用いた囲碁評価関数の設計 • まとめ • 今後の目標

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

  5. コンピュータと囲碁 Search Space 探索空間 強さ チェッカー 10の30乗 solved オセロ 10の60乗 世界最強 全宇宙の原子の数 10の78乗 どうやって数えた? チェス 10の120乗 世界最強 将棋 10の220乗 奨励会3段~4段 囲碁 10の360乗 アマ二段 Target • 目標は名人に勝つこと • 欧米ではゲーム研究現在のメインターゲット • (フランスが強い: Crazy Stone, MoGo) • 日本では将棋後のメインターゲット?

  6. コンピュータ囲碁とモンテカルロ法 従来は…MINMAX + 評価関数 石の働きがダイナミックに変化 パターンや空間の認識が重要 評価関数の作成が困難: (苦労の割には)精度悪い、 重い 現在大流行: モンテカルロ法 • 全ての合法手からランダムに一手選び手を進める • 終局まで繰り返し、勝った数をカウントする • 勝ち数が一番多い手を最善手として選ぶ 評価関数が不必要

  7. モンテカルロ法 オセロに実装 例 • 白の手は a2,a3,a4,b4の 4種類 • a2 と指した後の勝率は 68% (6810/10000) と一番高いのでa2を選ぶ • a3 だと勝率が32%で、悪手の可能性高い

  8. モンテカルロ木探索(Monte-Carlo Tree Search, MCTS) • MINMAXとモンテカルロの合体 • 「選んだ」ノードでモンテカルロシュミレーションを行い、勝率を計算 • MINMAXで勝率の最も高いノードを選ぶ • どのノードを選ぶ? ⇒ Multi-Armed Bandit Problem

  9. Multi-Armed Bandit Problem • スロットマシンをプレイ(日本人はパチンコをイメージするとわかりやすいかも) • どのマシンがいいかわからない • どのマシンをどの程度プレイすれば最も儲かるか? • 少しずつプレイして、一番よさそうな台でしばらくやってみよう! • でももっといい台があるかもしれない⇒他のも試さないと… 「収穫と探検のジレンマ 〈exploitation-exploration dilemma〉」

  10. Upper Confidence Bound method(UCB)A [Auer, 2002] 以下に定義されるUCBスコアが最大になる台を選ぶ

  11. UCT [Kocsis, Szepevari 2006] • UCB for Trees • 現在ほとんどの囲碁プログラム、AMAZONSなどで採用されているアルゴリズム From: Sylvain Gelly, Yizao Wang, Remi Munos and Olivier TeytaudModifications of UCT with Patterns in Monte-Carlo Go.Technical Report 6062, INRIA ,2006

  12. モンテカルロ囲碁と評価関数 やはり評価関数が必要! ただし手の評価関数 コンピュータ囲碁を強くするためには?? Progressive Widening (In UCT) 手に評価値を与えて評価の高い手から生成していく 精度の高い評価関数を必要とする 特徴の設計が重要である 7 5 3 評価関数を使ったプレイアウト(In MC) 手に評価値を与えて確率分布を生成する 高速な評価関数を必要とする 評価値の重み付けが重要である 評価関数を使った プレイアウト 例 二種類の評価関数が必要 機械学習!!

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

  14. 局面評価関数の学習 • TD-Gammon (G. Tesauro, 1998] • バックギャモン(双六に似たゲーム)思考部の学習 • Temporal difference + neural network • Logistello (M. Buro, 1999) • オセロプログラム(人間チャンピオンに勝利したことで有名) • パターンの重み学習 • 最小二乗法 • Bonanza Method [保木, 2006] • Minimax 探索結果の最適制御 • コンピュータ将棋Bonanzaで大成功 ⇒ 現在大流行中

  15. Logistello(オセロ)の評価関数 • 左の各パターンセットの • 全パターン値を計算しておく • オセロの重要な概念 • 確定石 • 着手数 • 偶数理論 • などを近似している • 線形回帰でパターン値を計算 • (訓練用セット 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 結論の出しやすいオセロならではの手法!

  16. 将棋などの局面評価関数の学習がなぜ困難だったか?将棋などの局面評価関数の学習がなぜ困難だったか? • 大量のデータをどう扱う? • これまでTD法、ニューラルネットなどによる学習が試みられた • 非現実的な時間がかかり実用化に到らず • ⇒BonaMetho: 最適制御法+さまざまな工夫 • 教師データをどうするか? • 棋譜は表面的な情報(プロは深い読みの結果手を選んでいる) • ⇒BonaMetho: 一手探索+静止探索の最善応手手順末端局面で比較、学習する

  17. Bonanza Method 1 • 最大(小)化問題として力学系の最適制御理論を用いる • ラグランジュ形式の解析力学 • パルス整形による化学反応制御 • 最小燃料のロケット弾道 • 池の鯉に与える餌 • t を手数、xを局面、uを特徴ベクトルとみなし機械学習を行う • 棋譜の指し手とminimax探索がよく一致する特徴ベクトル (評価関数)を求める

  18. Bonanza Method 2:誤差関数の設計 棋譜中で選択された手   を最良(教師信号)とし, その他の手   を教師信号より小さくする学習を行う. N: サンプルされた棋譜の全局面数 M: 局面Pでの合法手の数 m=0: 棋譜で指された手 T[x]: 評価値の差を、棋譜の指し手との一致度に変換する関数 f: minmax探索の評価値 Φ: 拘束条件 T[x]:シグモイド関数 • 難しい手は学習したくない • 誤差の影響を小さくしたい

  19. Bonanza Method 3 ベクトルの更新 • ベクトルの要素数が多く、目的関数の勾配を求めて最適化 • 目的関数が十分滑らかではない • 2次収束を持つ手法はうまくいかない • 軽い探索の結果得られる最善応手手順の末端局面同士を比較

  20. Bonanza Method の 長所 • 学習の時間が比較的早い • これまで実用的な時間で十分な性能を得られる手法はなかった • 大量の評価項目を持てる • 従来はハンドチューニングが基本: 評価項目の数が限られていた • 人間らしい指し手が可能になった • 2駒、3駒の位置関係をすべて学習 将棋の学習結果例はこちら

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

  22. BackGround • モンテカルロ囲碁: UCT と プレイアウトに手の評価関数が必要 ⇒ 評価項目の掛け算 • これまでにいくつか学習方法は提案されている • Bonanza Method を使うともっといい学習結果が得られないだろうか? ⇒ Challenge!

  23. 盤端からの距離(15) • 12近傍パターン(18) • 8近傍パターン(18) • トリに関する特徴(12) • ノビに関する特徴(12) • アタリに関する特徴(3) • ヌキに関する特徴(3) • 直前の手からの距離(15) • 二手前の手からの距離(15) Design of Feature Vector パターンやヒストリーで特徴を構成する モンテカルロ用評価関数:  高速性が重要 UCT用評価関数:  精度が重要 ⇒ 特徴が異なる 赤字はUCT用評価関数でのみ使用する特徴

  24. 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

  25. Design of Evaluation Function Evaluation function γ(p) 評価関数(確率) l(p) 特徴ベクトル xパラメータベクトル 局面の評価値は積で表現 probability function 学習による自動調整 を行おう!!

  26. Design of Gradient Method • 微分可能で連続 誤差汎化関数   シグモイド関数 教師信号は棋譜で選択された手 • 棋譜で遷移した局面 学習時に探索は行わない

  27. Design of Machine Learning 一致率と確率関数には大きな誤差がある Hypothesis 一致率<確率関数 確率関数を過大評価 一致率>確率関数 確率関数を過小評価 一致率と確率関数が等しければ最適と仮定 フィルタを設計する!!

  28. 第一合法手の局面 第一合法手の一致率 調整後の関数 Design of Filter 学習後にパラメータを n 乗して代入する パラメータベクトルを累乗しても順位は保証される nをどうやって定めるのか?? 学習で決める!! うまくいった!n =1.75497

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

  30. UEC杯(2008年12月)の結果 • 7位(28プログラム中) • 開発期間は1年あまり • 若手奨励賞受賞 • 準優勝不動碁作者の自戦記:「対局が始まると不動碁はジリジリ引き離されて必敗の局面に.」

  31. まとめ • コンピュータ囲碁はモンテカルロ+UCTに手の評価関数で強くなる! • 機械学習では将棋で開発されたBonanza Method が成功を収める • 囲碁評価関数をBonanza Method で学習する手法を提案 • 我々のプログラム「誤碁能美譚」でその優秀性を証明、大会でも好成績を収めた

  32. 今後の目標 • コンピュータ将棋: 名人に勝つ! • 数年~10年後ぐらい? (現在は羽生さん) • 評価項目をどのように選べば強くなるか? • ペナルティの設定など泥臭い調整が必要⇒より自動的で高性能の学習を目指す • コンピュータ囲碁: 名人に勝つ! • 50年後などと言われていたが、案外早いかも? • 評価関数の計算がボトルネック⇒より早くかつ高精度の評価関数が必要

More Related