Giter VIP home page Giter VIP logo

erhea_2021's Introduction

ERHEA_2021

こちらは, FTGAIC 2021 において 4 位であった ERHEA_PPO_PG のチームのうち, 対戦相手の行動をモデリングする部分の改良を行ったものです.

ベースコード

本 AI を実装するに当たって, FTGAIC2021 において 4 位であった ERHEA_PPO_PG のチームのソースコードを利用しています。そちらのコードはこちらにて配布されています.

改良点について

本 AI は以下の 2 点の改良を実施しています.

  • 時間的差分学習アルゴリズムの改良
  • 強化学習アルゴリズムの改良

時間的差分学習アルゴリズムの改良

ERHEA_PPO_PG のチームでは, 1 step TD 法が時間的差分学習アルゴリズムとして採用されていましたが, 本 AI では TD(λ)法を採用しています.

TD(λ)法の適応をやめ 1 step TD 法に変更する場合は, DL/DeepModel.javaの 123 行目をdiscount=0.99fに, 131 行目をlambda=0.6fに変更してください.

強化学習アルゴリズムの改良

ERHEA_PPO_PG のチームでは, 方策勾配法が強化学習アルゴリズムとして採用されていましたが, 本 AI では自然勾配法を採用しています.

自然勾配法の適応をやめ方策勾配法に変更する場合は, DL/PILoss.javaの 98 行目をif (false) {に変更してください.

性能

本 AI では, 以下の 2 点の実験を行ってデータ収集を行いました.

  • ハイパーパラメータの探索
  • ERHEA_PPO_PG との性能比較

ハイパーパラメータの探索

改良点で挙げた新しいアルゴリズムにはハイパーパラメータが存在します. なので最適パラメータを探索することによって性能向上が出来るかどうかという実験を行いました.各ハイパーパラメータ毎に 100 試合実施し, 勝率を計算して比較を行います.TD(λ)法の最適パラメータの実験結果のデータはdata/exp1.csvに置いています.自然勾配法の最適パラメータの実験結果のデータはdata/exp2.csvに置いています.

data/exp1.csvの情報を plot したグラフは以下の通りです.

data/exp2.csvの情報を plot したグラフは以下の通りです.

ERHEA_PPO_PG との性能比較

改良点で挙げたアルゴリズムを適用した場合とそうでない場合での性能の検証を実施しました. 各手法毎に 3000 試合実施し, 勝率の**値及び標準偏差を計算して比較を行います.実験結果のデータはdata/exp3.csvに置いています.

data/exp3.csvの情報を plog したグラフは以下の通りです.

実験コード

上記実験を行うにあたって実装した実験用コードはこちらにて, 環境構築にて利用したコードはこちらにて公開しています.

erhea_2021's People

Watchers

James Cloos avatar rurito avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.