ついに正式版が登場へ! ゲーム開発にAIを活用しよう
「Unity ML-Agents」は、2017年秋にv0.1として登場以降、順調にバージョンアップを重ね、2020年5月についに正式版となりました。今後は、Unityの中核機能の1つになると予想されています。
本書は、2018年7月に刊行した前書(v0.4に対応)を、正式版に合わせて全面的に改訂したものです。
Unity ML-Agentsは、多くのAIプログラミングで必須となる「Python」のコーディングを必要とせず、Unity ML-Agentsの仕組みに沿って、通常のゲーム開発同様にC#によるコーディングで完結できることが大きな特徴です。
本書では、これからゲームAIについて学びたい方から読んでいただけるように、機械学習の基礎から学習環境の構築、付属サンプルによるさまざまな学習方法の解説などを、ステップ・バイ・ステップで実践的に習得できるように構成しています。
また、実際の開発現場でゲームAIを活用するためのサンプルとして、Unityが無償で公開しているゲームを使って、「テストの自動化」「ゲームバランスの調整」「より自然な振る舞いを行うNPC」「人間の代わりとなる対戦相手」をAIとして実装したサンプル事例も紹介しています。
本書は、基礎から実践まで網羅しており、これからゲームAIにチャレンジしたい方にお勧めしたい1冊です。
1章 機械学習とUnity ML-Agentsの概要
1-1 人工知能と機械学習
1-2 教師あり学習と教師なし学習と強化学習
1-3 強化学習
1-4 強化学習の学習アルゴリズム
1-5 Unity ML-Agentsの概要
1-6 Unity ML-Agentsの学習シナリオ
2章 はじめての学習環境の作成
2-1 開発環境の準備
2-2 プロジェクトの準備
2-3 はじめての学習環境の作成
2-4 学習と推論
2-5 学習の高速化
3章 Unity ML-Agentsの基礎
3-1 状態と観察
3-2 行動
3-3 報酬とエピソード完了
3-4 決定
3-5 訓練設定ファイル
3-6 mlagents-learn
3-7 TensorBoard
4章 さまざまな学習方法
4-1 SAC
4-2 Discrete
4-3 Visual Observation
4-4 Raycast Observation
4-5 セルフプレイ
4-6 Curiosity
4-7 模倣学習
4-8 LSTM(Long Short-Term Memory)
4-9 カリキュラム学習
4-10 環境パラメータのランダム化
4-11 Observable属性
5章 サンプルの学習環境
5-1 サンプル学習環境の準備
5-2 FoodCollector(Observation)
5-3 GridWorld(Visual Observation)
5-4 PushBlock(Raycast Observation)
5-5 Tennis(セルフプレイ①)
5-6 Soccer(セルフプレイ②)
5-7 Pyramids(Curiosity・模倣学習)
5-8 Hallway(LSTM)
5-9 WallJump(カリキュラム学習)
5-10 3DBall(環境パラメータのランダム化)
5-11 Bouncer(RequestDecision)
5-12 Reacher(多関節の学習①)
5-13 Worm(多関節の学習②)
5-14 Crawler(多関節の学習③)
5-15 Walker(多関節の学習④)
5-16 Basic(カスタムセンサーコンポーネント)
6章 ゲーム開発における強化学習の活用
6-1 ゲーム開発での強化学習エージェントの活用
6-2 Flappy Bird Style-テストの自動化
6-3 3D Game Kit Lite-コンテンツのバランス調整のサポート
6-4 Puppo, The Corgi-より自然な振る舞いを行うNPC
6-5 Karting Microgame-人間の代わりとなる対戦相手
6-6 Unity Analyticsによるエージェントの行動解析
7章 Python APIを使った学習環境の構築
7-1 Python APIを使った学習
7-2 Gymラッパー
7-3 Python Low Level API
7-4 サイドチャネル
7-5 カスタムサイドチャネル