Upgrade to Pro — share decks privately, control downloads, hide ads and more …

明日から実践!強化学習で強い対戦ゲームAIを作ろう 〜だれでも試せる状態をめざして〜

 明日から実践!強化学習で強い対戦ゲームAIを作ろう 〜だれでも試せる状態をめざして〜

セッションの内容
プレイヤー同士が対戦するようなゲームでは、人間の相手をする対戦AIの開発が必要となることが多いでしょう。我々はAI技術の一種である強化学習を活用した対戦AIの作成に取り組んできました。強化学習を活用すると、手動で作るAIの行動ルールやプレイヤーの対戦ログを必要とせずに、対戦AIは自律的にゲームプレイを学習して強くなっていきます。一般的に強化学習の適用は簡単ではないと言われることが多いですが、安定して強い対戦AIを作れるようになってきました。

本セッションでは、長年の開発過程で得た強化学習を横展開するために必要なシミュレータやアルゴリズム、開発ノウハウについて紹介します。講演の終わりには受講者のみなさんが強化学習を試すことができる状態を目指し、DeNA で開発した強化学習ライブラリ「HandyRL」を軸として強い対戦ゲームAIを作るための実践的な方法を紹介します。

また、解説する内容はKaggleで開催されたゲームAIの世界大会の入賞時に使用した手法でもあります。
・「Google Research Football with Manchester City F.C.」5位入賞(サッカーゲーム)
・「Hungry Geese」2021年2月度優勝(4人対戦ヘビゲーム)

IkkiTanaka

August 27, 2021
Tweet

More Decks by IkkiTanaka

Other Decks in Programming

Transcript

  1. 背景|ユースケース ユースケース① 対戦AIを直接相手として使用するコンテンツ • エンドコンテンツとしての高難度AI ◦ 新ステージなど遊びの拡大 ◦ 中級〜上級プレイヤーの練習相手 • プレイヤーの習熟度に合わせた対戦AIコンテンツ※特許出願中

    ◦ 初心者のオンボーディング ◦ 適切なレベルのAI・コンテンツの推薦 見込まれる効果 • 成功体験の提供 • 持続可能なUXの提供 • 離脱防止 対戦AIコンテンツを 『逆転オセロニア』にて導入 (CEDEC2019) オセロ・Othelloは登録商標です。TM&© Othello,Co. and MegaHouse / © 2016 DeNA Co.,Ltd.
  2. 背景|ユースケース ユースケース② 対戦環境のバランス調整サポート • AI同士で膨大な対戦シミュレーション ◦ 人間では不可能な網羅性 ◦ AIは疲れを知らない • 統計量の可視化

    ◦ 勝敗、ダメージ量、ターン数・・・ ◦ カードパワー • 網羅性を担保した上で意図した設計かチェック 見込まれる効果 • 事故発生の抑止 • 量産性の向上 • レピュテーションリスク低減 • 工数削減 新規キャラクタ を扱えるAI AI同士の大量 対戦による検証 結果集計 可視化 設計 完了 NG 対戦環境 投入 評価 OK 設計案 検証
  3. 背景|AI活用のメリット ユースケース① 対戦AIを直接相手として使用するコンテンツ • 最新ゲーム環境に追従した高品質のAIを半自動で開発 • ルールベースNPC開発の運用コスト、属人性の低下 ユースケース② 対戦環境のバランス調整サポート • 膨大な組み合わせを網羅した検証 •

    人間が拾いきれない範囲をカバー可能 • 例)1日での対戦検証量 ◦ 人間:288回 仮に1試合5分の場合 ◦ AI:8,640,000回 仮に1試合1秒で100並列の場合 新規キャラクタ を扱えるAI AI同士の大量 対戦による検証 結果集計 可視化 設計 完了 NG 対戦環境 投入 評価 OK 設計案 検証
  4. 背景|要望と課題 要望 • リリース前またはリリース直後にほしい • 効果の最大化を考えると当然 • 必然的に開発はリリース前から行う必要 課題 •

    対戦ログ(棋譜)がない • プレイヤーの動きを真似るAI技術(教師あり学習、模倣学習)が使えない すでにあるもの • ゲームエンジンの実装 では、どうするか?
  5. よく言われる強化学習のメリット・デメリット メリット • ゲームエンジンがあれば動作(対戦ログ要らず) • 強いAIが作れる デメリット • 応用先が少ない •

    スケールできない ◦ アルゴリズムが難しい ◦ 実装が難しい ◦ 対戦AIに特化したパッケージが少ない • シミュレータ設計が必要で知見が少ない
  6. よく言われる強化学習のメリット・デメリット メリット • ゲームエンジンがあれば動作(対戦ログ要らず) • 強いAIが作れる デメリット • 応用先が少ない →

    ユースケースはゲームだと無限にある • スケールできない ◦ アルゴリズムが難しい ◦ 実装が難しい ◦ 対戦AIに特化したパッケージが少ない • シミュレータ設計が必要で知見が少ない
  7. よく言われる強化学習のメリット・デメリット メリット • ゲームエンジンがあれば動作(対戦ログ要らず) • 強いAIが作れる デメリット • 応用先が少ない •

    スケールできない → 手軽に使える実践的なライブラリを公開※次ページ解説 ◦ アルゴリズムが難しい ◦ 実装が難しい ◦ 対戦AIに特化したパッケージが少ない • シミュレータ設計が必要で知見が少ない
  8. よく言われる強化学習のメリット・デメリット メリット • ゲームエンジンがあれば動作(対戦ログ要らず) • 強いAIが作れる デメリット • 応用先が少ない •

    スケールできない ◦ アルゴリズムが難しい ◦ 実装が難しい ◦ 対戦AIに特化したパッケージが少ない • シミュレータ設計が必要で知見が少ない → 共通基盤として仕様策定※講演後半解 説
  9. よく言われる強化学習のメリット・デメリット メリット • ゲームエンジンがあれば動作(対戦ログ要らず) • 強いAIが作れる デメリット • 応用先が少ない →

    ユースケースはゲームだと無限にある • スケールできない → 手軽に使える実践的なライブラリを公開※次ページ解説 ◦ アルゴリズムが難しい ◦ 実装が難しい ◦ 対戦AIに特化したパッケージが少ない • シミュレータ設計が必要で知見が少ない → 共通基盤として仕様策定※講演後半解 説 共通基盤化することで デメリットを解消
  10. 対応可能な対戦ゲーム • (複数人)ターンベース ゲーム • (複数人)同時行動ゲーム HandyRL|強化学習をライブラリ化(共通基盤化) 目指すところ • 汎用|誰でも強化学習を手軽に扱える

    • 安定|対戦ゲームにおいて勝てるAIが作れる • 高速|並列度を上げて学習がスケールする https://github.com/DeNA/HandyRL Handy=手軽に RL=Reinforcement Learning(強化学習)
  11. 対応可能な対戦ゲーム • (複数人)ターンベース ゲーム • (複数人)同時行動ゲーム HandyRL|強化学習をライブラリ化(共通基盤化) https://github.com/DeNA/HandyRL 強化学習を利用するプロジェクトの 立ち上がりを高速化

    目指すところ • 汎用|誰でも強化学習を手軽に扱える • 安定|対戦ゲームにおいて勝てるAIが作れる • 高速|並列度を上げて学習がスケールする
  12. 事例①『逆転オセロニア』における対戦AI 色々な種類のデッキから 戦いたい AI を選択 歯応えのあるAI と対戦できる! AI の強さレベルを選択 •

    様々な AI 相手に気軽に練習・戦略を学べる場を提供(オセロニア道場) ◦ オセロのルールをベースにした対戦ゲーム ◦ オセロの駒から召喚されるキャラクタを2人のプレイヤが交互に使用しながら対戦 詳細はこちらへ→運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
  13. KaggleとゲームAI • Kaggle|データ分析世界大会のプラットフォーム • 2020年頃からゲームを題材とした大会が開催 ◦ 基本は強いゲームAIエージェントを作るのが目的 ◦ 開催期間は数ヶ月が多い •

    ゲーム環境はKaggleが提供 (Python) • 評価方法(対戦方法) ◦ ゲームAIのコード群を提出 ◦ 各チームが提出したAIと随時対戦・レート更新 • 実行環境 ◦ ~1CPU / No GPU ◦ ~4GB RAM 過去開催された ゲームを題材としたコンペティション |
  14. • 2021/1/25〜07/26 開催 • 2/70 HandyRLによって学習したモデルを公開 • 2/10 HandyRLライブラリに環境を用意 •

    2/26 チーム「HandyRL」 毎月表彰の2月度優勝 • 8/10 世界1位! (最終結果) 事例③ ヘビゲーム「HungryGeese」@Kaggle
  15. 対戦ゲームAIまとめ|HandyRLの効果を実証 • 複数種類の対戦ゲームのAIを開発 ◦ 2人ターンベースゲーム ◦ 2人・4人同時対戦ゲーム • 汎用|誰でも強化学習を手軽に扱える ◦

    ヘビゲームでは多くの上位チームがHandyRLを利用 • 安定|対戦ゲームにおいて勝てるAIが作れる ◦ サッカーゲーム(5位入賞/1138チーム) ◦ ヘビゲーム(2月度優勝・収録時1位) • 高速|並列度を上げて学習がスケールする ◦ 短期間で上位入賞 |
  16. チューニングポイント maximum_episodes batch_size entropy_reguralization 保存する試合数や 一度の学習試合数 CPU, GPUメモリが許す だけ大きくすることが多 い

    policy_target value_target どの程度の「探索」 (色々な行動を試す) を行うかを決める 学習アルゴリズム を設定する 向き不向きがある
  17. シミュレータ|役割 ゲームエンジンとAIをつなぐ役割 シミュレーター ゲームエンジン AIプログラム • AIはシミュレータを通じてゲームをプレイ • ゲームプレイを繰り返しAIは学習していく(強化学習) •

    シミュレータが適切に実装されていると強化学習の実行が容易になる • シミュレータの実装には押さえるべきポイントが多数ある ◦ ゲーム開発初期からシミュレータ設計を考慮しておくべき ◦ ゲーム実装を熟知したゲームエンジニアと強化学習を実装するAI エンジニアの間で認識をすり合わせながら設計するべき
  18. シミュレータ|1. 機能要件 • AIプログラムとの接続が可能 ◦ 接続方法はgRPC(クライアント・サーバ方式) ◦ protoファイルによるI/F・仕様定義の統一化 • 並列にゲーム実行可能

    ◦ シミュレータのインスタンスを複数生成できる • 高速実行 ◦ 描画機能オン/オフ機能 ◦ gRPC (protocol buffer) / TCP / UDP • リプレイ機能 ◦ 対戦ログを再生できる • ゲームエンジンの更新が容易 ◦ 疎結合な開発 シミュ レーター ゲーム エンジン AI シミュ レーター AI クライアント サーバ ゲーム エンジン シミュ レーター ゲーム エンジン 対戦 ログ シミュ レーター AI ゲーム エンジン