Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ワールドクラスオセロプログラム"HAYABUSA"

5,878 views

Published on

「ほこxたて」でもお馴染みのオセロ思考プログラムHAYABUSAについての技術概要

Published in: Technology
  • Be the first to comment

ワールドクラスオセロプログラム"HAYABUSA"

  1. 1. BTD STUDIO 株式会社 ワールドクラス オセロ (R) プログラム HAYABUSA(TM) 2013.09.05 コンテンツ事業部 技術グループ  R&D チーム 上野 和則 レイク 石川 (C) オセロ ,Othello はメガハウスの登録商標です。           
  2. 2. BTD STUDIO 株式会社 0 .HAYABUSA 開発の経緯                                  ・ 2013 年初頭、フジテレビ「ほこ x たて」のオセロ (R) 対局の 出演依頼をきっかけに、ワールドクラスのオセロプログラム を競技用として、研究開発することとした。 ・当社は、商標「オセロ (R) 」を使用したモバイルコンテンツ サービスを展開してきたが、人間が勝てないような競技用思 考エンジンを商用サービス向けに開発する計画はなかった。 ・オープンソースのリバーシプログラムの改良ではなく、 ゼロから設計することとし、モバイル端末でも高速で動作す る特性から「 HAYABUSA 」と命名した。
  3. 3. BTD STUDIO 株式会社 1.評価関数に関して 2.検索アルゴリズム ( 思考 ) 3.枝刈り 4.オープニングブック 5.パフォーマンスと最適化に関して 6.今後の強化の方向性 7. HAYABUSA の商用での使用状況 目次
  4. 4. BTD STUDIO 株式会社 1.評価関数に関して                                  ・「評価関数」は、オセロの盤面に評価値を与える重要な機能 である。この評価値が、検索アルゴリズムで終局に至っていな いポジションを評価するために幅広く使われている。評価関数 は使用される回数が極めて多いため、評価関数が正確で高速で なければならない。 ・ HAYABUSA では、オセロの盤面を 12 チャンク 計 46 パ ターンに分類し、それぞれのパターンの独自評価を足した合計 が盤面の全体評価としている。 ( 次項 ) ・それぞれ独自に、すべての白・黒・空白のコンビネーション に対して評価値の定数を持っている。
  5. 5. BTD STUDIO 株式会社                                  ( いくつかのパターンの例:色が変わっている部分が1つのパターン ) ひとつの大きな問題は、 46 パターンの全てのコンビネーショ ンにすべての評価値を与えることである。例えば、縦のパ ターン一つだけで、 6,561 種類の白・黒・空白のコンビネー ションとなる。これらをすべてマニュアルに評価することは 非現実的なので、 HAYABUSA ではすべての評価パターンの 全ての評価値を自動的に調整する方法を採用した。
  6. 6. BTD STUDIO 株式会社                                                           ・ HAYABUSA の、評価関数は 1 ゲームを 15 ステージに分割 して点数を記録している。情報は 1 ステージで 167,265 のパラ メータ数として扱っている。 ・結果、任意の盤面を固定のデータだけで、すばやく評価をす ることが可能になった。 ・パターンのコンビネーションに評価を付ける為に、自動で 430,000 回ほどの対局を行わせ、 Linear Regression といった 手法を用いて、それらの対局で出現したすべてのパターンコン ビネーションに終局のスコアを学習させた。 ※ 1  Edax ・・・ワールドクラスのリバーシプログラムの一つ。最新バージョンは 4.0 。            Edax※ 1では60ステージに分けているためより精度が高い可能性があるが、比較 して、それほどデメリットは無いと判断し現状を採用した。
  7. 7. BTD STUDIO 株式会社                              左記の盤面では、すべてのパターンの 評価値 ( 右側で表示 ) を足した結果が -14.392 なので、この盤面は黒の視点か ら 14 点ほど負けているという、評価関 数上の結果となる。 実際に解析をすると、完璧プレーで終 局まで続くと白の 16 点勝ちとなり、あ る程度正確な評価とは言える。 評価関数が Linear Regression という手法を用いて、学習した 430,000 局の「平均」を取るようにしているため、評価関数自 体がリアルタイムに学習することはできない。 その為、 HAYABUSA では、学習は全ての対局を記録した棋譜 から学習している。
  8. 8. BTD STUDIO 株式会社 2.検索アルゴリズム(思考)                               ・前記で作られた評価関数を用いて、思考する場合は、 αβ 検索に基づい た木検索方法が HAYABUSA に実装されている。 αβ 検索は、 MinMax 手 法に基づいていて、基本的に自分と相手が打てる場所をあるデプスまで全 部評価し、自分のターンのときは Max 、相手のターンのときは Min を取 り、もっとも強いと思われるプレーを選ぶようなアルゴリズムである。 ・ MinMax ではすべての正当な手が検索されるが、 αβ では検索をしなく てもいい(既により良い手が検出されている)手が省略され、大幅に検索 すべき盤面を削減し、パフォーマンスの上昇に繋がる。 ・ HAYABUSA では、 αβ に基づいた、 Negascout 手法を用いている。基 本的に αβ と同じだが、 PV( 主な変化 ) を検索した後、ほかの手の実際の 値を探す前に、その値が現在の値を超えられるか否かだけを判定すること によって、通常のケースでは僅かに高速になる。場合により、 αβ に比べ て最大 10% 程度の検索盤面数削減に繋がる。
  9. 9. BTD STUDIO 株式会社                               ・ αβ の枝刈りに加えて、 HAYABUSA では MPC (Multi-ProbCut) とい う前向き枝刈り手法を用いている。これはよく知られている方法で、例 えばデプス ( 手の数 )20 の αβ 検索を行わないといけないときは、その 前にもっと浅い検索 ( 例えば、 6 など ) を行い、その時点での評価値が 悪すぎるのであれば、デプス 20 検索を行っても悪い評価になると想定 されるので検索を省略するという方法である。 ・この枝刈りが追加されたことにより、完全読みとの誤差が発生するた め、検索アルゴリズムの精度が少し下がることになる。この問題を最小 限に抑えるために、予め数多くの局面に対して、浅い検索と深い検索を 行い、その平均の差 ( エラー ) の統計を取り、固定データとして覚えて おくことで、実際に MPC を行う時は、浅い検索と深い検索のエラーを 考慮し、枝刈りをもう少し安全に行えるように実装した。 ・ HAYABUSA では予め数千の局面で、デプス 1 からデプス 13 までの 検索を行い、すべての検索エラーの統計を固定のデータとして用意し、 思考時にはそのデータを使って比較的、安全に MPC を行っている。 3.枝刈り
  10. 10. BTD STUDIO 株式会社 4.オープニングブック                                  ・オセロプログラムの序盤の強さに良い影響を与えるのが、 オープニングブックの学習である。 ・評価関数は、盤面全体ではなく、各パターンに分けてそれ ぞれのパターンに評価をつけているため、仕組み上完璧では なく、実際の盤面の良し悪しとずれることがある。 ・その為、評価関数のエラーを補間するために、オープニン グブックがあり、常に負けた対局から学習し、思考を開始す る前の段階で、既に打ったことのある対局の中で、最も良い と思われるラインを選択することが出来る。
  11. 11. BTD STUDIO 株式会社                                  ・ブックの学習のおかげで、2回同じ負け方をすることが無 くなる。2回目の対局で、同じような負けラインに落ちてし まった場合でも、前回で学習した対局が「負け」になる影響 で、どこか終局の前に必ずブックが別の手を選択することに なる ( 負けのブック評価が - 無限であるため)。 ・どのタイミングから前回と違う手を打つかに関しては、 ブックの木次第となる。場合によっては終盤で手を変えるこ とだけの場合もあり、また序盤で手が変わることもある。 ・この仕組みのおかげで、負ければ負けるほどだんだん別の 手が検索されていき、最終的には理想的なプレーに至ること が期待される。
  12. 12. BTD STUDIO 株式会社                                  ・ HAYABUSA では、対局開始の時点で、ブックプレーか ら入る。最初の手はもちろん、序盤の進行は既に HAYABUSA が前行っていた対局と同じという予測で、ブッ クプレー内で続行する。 ・相手がブックに存在しない ( つまり、 HAYABUSA が以前 の対局で見たことのない ) 手を打ってきたとき初めて、思考 モードに入り、 αβ 検索を行う。 ・実際に、ワールドクラスプログラムを相手に 24,000 局ほ ど対局させると、 HAYABUSA との対局が徐々に引き分け に誘導されていくという現象が見られ、対局終盤ではほと んど引き分けとなった。
  13. 13. BTD STUDIO 株式会社                                  この盤面では、評価関数が勝ちだと判断している箇所が、逆にブック上で は負けと判断される。ブックの評価は学習が十分であるという前提で、終 局まで多くの対局データを追って行った結果、勝てる / 引き分けられるラ インが存在しないようであれば、高確率で白の負けとなる。 ブック評価と評価関数のずれの例①: マスの左上に白い数字 がブックの評価で、大 きく +3 になっているの が評価関数の評価。 A B C D E F G H 1 2 3 4 5 6 7 8
  14. 14. BTD STUDIO 株式会社                                  評価関数とブック評価では、別々の手が選択されている。この局面で は、ブック上では D2 の +2 が最善手だが、評価関数は E2 の評価がブッ クの最善手より高くなっている。   無論、ブックの信頼性が高いので、このような場合でブック評価がなけ れば、プログラムが弱くなることは明白である。 A B C D E F G H 1 2 3 4 5 6 7 8 ブック評価と評価関数のずれの例②:
  15. 15. BTD STUDIO 株式会社 5.実戦的なパフォーマンスと最適化に関して                                 HAYABUSA が思考をする場合、パフォーマンスが直接的に強 さと繋がるため、様々な最適化を行っている。 まずオセロボードは、二つの 64 ビットの変数だけで表されて いる。一つ目の変数は黒の駒の位置 (8x8 ボードなので、 A1 か ら H8 までそのままビット羅列になる ) 、二つ目の変数は白の 駒の位置となる。このような表し方によって、最新の 64 ビッ ト CPU のパフォーマンスを発揮できる他、特定の盤面でのす べての可能な手の判定や、駒を反転させるためのアルゴリズム を高速に実装することが可能になる。 その上で、終局に近い検索に不必要な処理を省き、すばやく結 果を出せるための工夫などが実装されている。
  16. 16. BTD STUDIO 株式会社                                 並列演算処理への最適化に関して、 αβ アルゴリズムは必然的 にシーケンシャルではあるが、 HAYABUSA では cilk という並 行処理ライブラリーを使用し、よく使われている YBWC(Young brother wait concept) アルゴリズムの組み込み によって、ある程度 CPU コアの数に相当する高速化が得られ ている。 以下のグラフが示す通り、 16 コアでほぼ 8x の高速化になる。 0 4 8 12 16 0 4 8 12 16 SpeedUp Ideal SpeedUp タスク数 SpeedUpfactor
  17. 17. BTD STUDIO 株式会社                               ・尚、一度検索した盤面を2回検索しないようする 為、 HAYABUSA ではハッシュテーブルを使用している。 ・検索されたすべての盤面とその結果と検索デプス情報などと ともに、ハッシュテーブルに保存し、検索でハッシュテーブル に存在する盤面にたどり着いたときに、検索を行わずに、以前 計算された結果を利用している。 ・この方法で、相手の手番になった時間にも、 HAYABUSA は 自分の番であるかのように思考をすることが出来る。ハッシュ テーブルを多くの計算結果で埋め、自分の番になった時には、 検索にハッシュテーブルに保存された情報を利用することが出 来るので、思考時間の節約や検索デプスの増加という良い効果 がある。
  18. 18. BTD STUDIO 株式会社                               ・対戦結果から考察すると、ブック次第ではあるが、現状で は、 edax を、若干、上回る程度の強さと思われる。 ・ FFO というオセロの 20 問の問題を解く思考時間をベンチ マークとして利用し計測すると、初期の HAYABUSA(13 年 2 月頃の ) と比較して数十倍程度の高速化を行ったが、先読み 、完全読みともに、速度で Edax を超えていない。 ・ HAYABUSA の傾向としては速度が遅いのではな く、 Edax よりより多くの局面 ( ノード ) を判断しているよ うで、より精度の高いノード検索が、今後の課題となる。 6.今後の強化の方向性
  19. 19. BTD STUDIO 株式会社                               ・商用での HAYABUSA は、急激なサーバ負荷の増加を避け るため、モバイルプロセッサでのネイティブでの実装を優先 している。また JAVA 用、 ARM 用など各プロセッサの性能に 合わせて思考時間が極端に遅くならないように先読みやブッ クサイズを大きく制限している。 ・その為、 HAYABUSA は、比較的軽量なプログラムであり 、一般的な PC であれば十分な強さと速度で動作する。 ・モバイル用ネイティブ版 HAYABUSA に勝利すると、制限 が外れ、ネットワーク経由で、フルスペックの HAYABUSA と対戦することが出来る。 7. HAYABUSA の商用での使用状況
  20. 20. BTD STUDIO 株式会社 ご精読 ありがとうございました。 コンテンツ事業部  技術グループ  R&D チーム 担当 : 上野 和則 k_ueno@btdstudio.co.jp http://www.btdstudio.co.jp 東京都港区西麻布 2-20-17 Tel(+81)03-5766-6506

×