blog

DeNAのエンジニアが考えていることや、担当しているサービスについて情報発信しています

2020.09.24 技術記事

強化学習等による『逆転オセロニア』対戦環境バランス設計支援

by takuma-yoshimura

#game #othellonia #AI #google-cloud #github #go #google-bigquery #python3

こんにちは。
ゲーム事業部ディベロップメント統括部AI推進部の吉村です。
先日オンライン開催されたCEDEC2020にて、システム本部AIシステム部の甲野と共に「『逆転オセロニア』における,バンディットアルゴリズムおよび強化学習を用いた対戦環境のバランス設計支援」という講演をさせていただきました。
聴講にお越し下さった皆様、ならびに運営の皆様、誠にありがとうございました。

本講演では、『逆転オセロニア』における対戦環境のバランス調整を強化学習AIでサポートする取り組みについてお話ししました。
今回のフォローアップ記事では

  • 講演の題材となった取り組みの概要
  • 今回のプロジェクトにおいて重要と感じた"三本柱"
  • 講演時にいただいたいくつかのご質問とそれに対する回答

についてご紹介したいと思います。

取り組みの概要

我々は強化学習AIを用いて、『逆転オセロニア』における対戦環境のバランス調整をサポートするツールを開発しました。
対戦環境のバランス調整は、主に新規キャラクターをリリースすることによって行われます。
そして新規キャラクターは、対戦環境においてどのような役割を果たすのか、そのためにどんなパラメータやスキルが最適なのか、など様々なことを考慮して設計される必要があります。
対戦環境のバランスを維持する上でこの新規キャラクター設計の精度は非常に重要であり、それは

  • リリース前のテストプレイ
  • 設計者の技量

に頼る部分が大きいです。
ところが現実には時間的制約からテストプレイはごく限られた回数しか行えず、網羅的なテストを行えないことによって想定外の問題が発生するリスクを抱えています。
また設計者の技量即ち熟練度に対する依存度が高く、属人性の高い作業になってしまっています。
本ツールは、新規キャラクターの設計業務が抱えるこれら

  • リリース前のテストプレイの網羅性の低さ
  • 設計者の熟練度に対する依存度の高さ

という2つの課題の解決に主眼を置いています。

具体的には

  1. 強化学習によって「リリース前の新規キャラクターの扱い方」を習得する対戦AIを用意
  2. この対戦AIによるテストプレイを夜間に自動かつ高速で繰り返すシステムを開発
  3. 得られたログからデッキタイプ毎の勝率などの統計データを可視化

というアプローチを採用しました。
こうして大量の対戦数を確保することで、前述の時間的制約の問題を解決し、テストプレイの網羅性を高めています。
またテストプレイをAIが、そしてその結果からキャラクター性能の評価指標を抽出する部分をツールが行うことで、設計者の熟練度に対する依存度を低下させました。

プロジェクトにおいて重要な"三本柱"

本講演は、我々が今回のプロジェクトにおいて重要と感じた"三本柱"を軸に展開します。

  • 【企画】創造性は人間・検証はAI
  • 【技術】強化学習の適切な活用
  • 【推進】ゲーム運営組織×AI組織の理想的連携

以下、これら一つ一つについてご説明します。

【企画】創造性は人間・検証はAI

AI活用において、人間の作業を全てAIで代替するのではなく、人間とAIそれぞれの強みと弱みを踏まえ、各々が適切な領域を担当して協調するのが良いという考えです。
今回のプロジェクトにおいても、「新規キャラクターの設計案の作成」は創造性や感性に大きく依存するためAIに任せることはせず人間が担当します。
一方、物量や個人の手技に依らない精度が要求される「設計案の強度検証」はAIに担当させました。

【技術】強化学習の適切な活用

これまで我々が対戦AIの学習手法として用いてきた「教師あり学習」は、ユーザによる対戦ログを教師データに用いる性質上リリース済みのキャラクターの扱い方しか学習することができません。
したがって、リリース前の新規キャラクターの扱い方を学習する必要がある今回の事例においては不適当です。
そこで我々は「強化学習」という、教師データを用いることなくシミュレータ上で自ら試行錯誤を行う、自律的な機械学習手法が必須と判断しました。
しかし強化学習は実用化の難しい機械学習手法で,一般に学習の所要時間や学習の精度などに課題を抱えています。
そこでユースケースを分解し、新規キャラクター単体の学習には「教師あり学習」と「バンディットアルゴリズム」の併用、複数の新規キャラクターの一括学習には「並列強化学習」など、ユースケースごとに学習手法を分けて単純化しました。
このように適切に併用することで、上述の課題との折り合いをつけて実践的なシステムに落とし込むことに成功しました。

【推進】ゲーム運営組織×AI組織の理想的連携

ゲーム事業におけるAI活用は、ゲーム運営チームとAI専門チームが連携する形で推進されます。
2019年、この取り組みを最大化すべく、事業横断的にAI活用を推進する専門部署である「AI推進部」が立ち上がりました。
AI推進部がゲーム事業における各種AI活用案件の"ハブ"の役割を担うことで、それらの案件はより組織的・戦略的に推進されます。

いただいたご質問と回答

ここでは、講演の際にいただいたいくつかのご質問とそれに対する回答をご紹介します。

Q. 勝率以外の統計データも確認できますか?また、AIが行った対戦をリプレイする機能などはありますか?

A. 勝率以外にも決着までのターン数やスキルの発動率などの指標を見ることができます。また、AIによる対戦のリプレイはコンソール上ではできているものの、実際のアプリ画面で再現する機能の必要性も感じており、今後段階的に機能追加を行いたいと考えています。

Q. AI活用施策の計画を立てる時、投資対効果はどのように見積もりますか?

A. 理想的・現実的なシナリオを用意し、各々別個に投資対効果を推定したりしています。しかしながら、AI施策の不確実性故初めから精緻に見積もることが困難な場合も多く、適切なタイミングでの見直しが重要になります。また、過去に類例が存在するならばそれを参考に投資対効果を論ずるのが良いと考えています。

Q. 学習に使用しているバンディットアルゴリズムは具体的にはどういったものですか?

A. 今回お見せした結果はthompson-samplingによるものです。継続的により良いアルゴリズムを発見・導入しております。

最後に

以上、CEDEC2020における講演についてのご紹介でした。
より詳細な講演内容について興味のある方は、ぜひ こちらの講演資料 をご覧ください。

本記事ならびに講演資料が、ゲーム開発におけるAI活用促進の一助となれば幸甚です。 AIの力でより良いゲーム開発を実現しましょう!

最後まで読んでいただき、ありがとうございます!
この記事をシェアしていただける方はこちらからお願いします。

recruit

DeNAでは、失敗を恐れず常に挑戦し続けるエンジニアを募集しています。