Morikatron Engineer Blog

モリカトロン開発者ブログ

CEDEC2020の補足 ー格闘ゲーム編その3ー

どうも、モリカトロンのプログラマおじさん、岡島です。 CEDEC からだいぶたってしまいましたが、前回 からの続きで 接待プレイについての補足などをしていこうと思います。

  • 「接待」について
  • そもそもなんで接待プレイをAIにさせたかったのか
  • 接待プレイの中身について
  • 原理的には「学習後に調整ができるAI」なので接待以外にも
  • 最後に
続きを読む

AIネット対戦システムの紹介

こんにちは、モリカトロン株式会社チーフエンジニアの松原です。

今日は弊社が開発した「AIネット対戦システム」を紹介いたします。

「AIネット対戦システム」はインターネット上でいつでも誰でもゲームの対戦ができるシステムです。AIと人間とが分け隔てなくゲームを楽しめるシステムであると同時に、強化学習のゲームAIプレイヤー育成基盤にもなり得ます。

ゲームAIやボードゲームAIに興味のある方、ゲームAI開発者、AI育成のためのサーバークライアントシステムに興味のある方々は、ぜひご一読ください。

 

目次

  • はじめに
  • AIネット対戦システムとは
  • AIネット対戦システムのサーバー
  • AIネット対戦システムのクライアント
  • AIネット対戦システムの実証実験
  • まとめと次回予告
  • コンタクト先

 

続きを読む

CEDEC2020 質疑応答

こんにちは、モリカトロンでプログラマをやっています。馬淵です。

先日発表させていただいたCEDEC2020ですが、講演時でのコメントやアンケートが届いたため、今回はそれらに寄せられた質疑応答を私が代表してここに書かせていただきます。

発表時のスライドは以下に投稿してあるので、適宜参照してください。講演時には紹介しきれなかった内容の追記もしてあります。また、講演後に補足という形でブログを投稿しているため、そちらも参照していただけるとより深く理解していただけるかと思います。

cedil.cesa.or.jp tech.morikatron.ai

続きを読む

【GAIL】逆強化学習とGANを組み合わせた模倣学習アルゴリズムを実装してみる【CartPole】

こんにちは、エンジニアの竹内です。

以前の記事でDQNに模倣学習の仕組みを取り入れたDeep Q-Learning from Demonstrationsというアルゴリズムを紹介しましたが、模倣学習には他にもいろいろなアプローチが存在します。
特にエキスパートの行動軌跡から環境の報酬関数を推定する逆強化学習(Inverse Reinforcement Learning)という手法を利用したものは模倣学習アルゴリズムの中でも代表的な手法の1つであり、環境からの報酬が得られない場合でも模倣学習を行う事ができます。
そこで今回は逆強化学習を用いた模倣学習アルゴリズムの中でも特に有用な手法である、敵対的生成ネットワーク(Generative Adversarial Network)を組み合わせたGenerative Adversarial Imitation Learning(GAIL)という手法を紹介し、Tensorflow2で実装していきたいと思います。

  • 逆強化学習とは?
  • GAILの概要
  • 実装
    • メイン部分
    • Generator(PPO Agent)
    • Discriminator
    • デモデータの作成
  • 学習結果
  • まとめ
  • Reference
続きを読む

CEDEC2020の補足 ー格闘ゲーム編その2ー

どうも、モリカトロンのプログラミングおじさん、岡島です。
馬淵の記事で予告された通り、今回は僕から

用意した環境ではUE4の描画を切ることが出来ず(その辺りの話は岡島さんが書いてくれると思います)

の部分について補足説明をします。

UE4とPythonを通信させて学習環境を構築することについてはCEDiLにアップロードした資料の 付録2-1 に 簡単なまとめをしておりますので、そちらもご覧ください。

cedil.cesa.or.jp

  • 最初に: 格闘ゲームAIの研究に使っていたマシンスペック
  • 格闘ゲームAIの分散学習の様子
  • もっとたくさんのゲームを並列で動かしたい
  • UE4 のゲームを画面なしで起動する方法
  • 学習がうまくいかない理由の調査
  • -NullRHI だとアクターのモーションが再生されない?
    • 検証
    • 検証結果
    • これはバグ?
  • おわりに
  • おまけ
続きを読む

CEDEC2020の補足 ー格闘ゲーム編その1ー

 お久しぶりです。モリカトロンでエンジニアをやっております、馬淵です。

 前回私がブログを書いたのがNEATに関して書いたとき*1(2020年2月24日)で、これを書き始めているのが2020年9月8日なので、私がブログを書くのは実に6ヶ月強ぶりになります。 何故これほど間隔が空いたのかですが、2020年9月4日のCEDECにおける弊社の講演を見ていただいた方には既に察しの通り、CEDEC発表に向けて色々行っていたからです。 今回の発表で出てきたWANN(Weight Agnostic Neural Network:重みを無視できるNN)ですが、実はNEATの手法を利用して実装されており、私がNEATに関して書いているときはWANNに関しての調査を行っている時期でした。 その後、WANNを手加減や調整に利用出来たらよいという理想を基に格闘ゲームAIのプロジェクトが立ち上がり、CEDECでの発表がトントン拍子で決定、発表に至るという状態です(完璧な伏線回収ですね)。そこで、今回はCEDEC2020の発表で説明しきれなかったことや、発表に至るまでの失敗例、創意工夫、苦労話などを書いていこうと思います。

続きを読む

【CEDEC2020】模倣学習でAIに3Dアクションゲームを攻略させてみる(後編)【ML-Agents】

こんにちは、エンジニアの竹内です。
この記事は【CEDEC2020】模倣学習でAIに3Dアクションゲームを攻略させてみる(前編)【ML-Agents】 - Morikatron Engineer Blogの続きとなります。
前編ではUnity側で行った学習の準備を中心的に扱いましたが、後編ではPython側における学習パイプラインやアルゴリズムの実装、それから学習した結果や考察などを中心に扱っていきます。

  • Python側でやること
    • 行動の選択肢の変換
    • gymラッパーの作成
    • デモデータのロード
    • アルゴリズムの実装
  • 学習
  • 他に試した事や失敗例、考察
    • デモの行動を重視しすぎると敵を攻撃しなくなる
    • チェックポイントに戻ることでデモにない状態に陥る事がある
    • 局所的な方策と大局的な方策を分けて学習させる(失敗)
    • 状態価値と行動価値の可視化
  • まとめ
続きを読む