トップ » BOOK » Unity ML-Agents実践ゲームプログラミング

Unity ML-Agents実践ゲームプログラミング

Unityではじめる機械学習・強化学習

著者:布留川 英一

定価 3,520円(本体3,200円+税10%)
発行・発売 株式会社 ボーンデジタル
ISBN 978-4-86246-418-7
総ページ数 312ページ
サイズ B5変形、オールカラー
発売日 2018年

本書の詳細

ディープラーニング(深層学習)でキャラクターを強くする!
Unity界でいま最もホットな話題「Unity ML-Agents」を ステップ・バイ・ステップで学べる1冊!

ゲーム制作で、機械学習・強化学習を活用するための最初の一歩!

「Unity ML-Agents」(Unity Machine Learning Agents)は、Unityで「機械学習」の学習環境を構築するためのフレームワークです。これにより、キャラクターの動きをコーディングすることなく、強化学習を行わせることで、キャラクターの動作の最適化を行うことができます。

本書は、はじめて「機械学習」にチャレンジする方から学んでいただけるように、機械学習の仕組みや学習方法などの基礎から、サンプルプログラムを使った実践まで、ていねいに解説しました。また、クラウド学習などの応用事例やTIPSも多数掲載し、ゲーム開発の現場ですぐに活用できます。

  • 「強化学習」「模倣学習」「カリキュラム学習」の仕組みと「Unity ML-Agents」の基礎、そして多くのゲームに応用できる学習シナリオを理解できます。
  • サンプルゲームを使った学習環境の構築と推論モデルの実行方法をステップ・バイ・ステップで解説しています。学習環境には、「Python」とGoogleの「TensorFlow」を利用しますが、「Unity ML-Agents」ではPythonの知識は必要ありません。
  • Unity ML-Agentsの付属するサンプルは、バリエーションが豊富で、自作ゲームの学習環境を構築する際にも、たいへん参考になります。これらの付属サンプルの詳細を解説しています。
  • オリジナルのゲームを1から作成し、Unity ML-Agentsの主要オブジェクト「Agent」「Brain」「Academy」のコーディングと最適な「報酬」(Reward)の与え方を学べます。
  • Unity ML-Agentsでは、AWS(Amazon Web Services)を利用した「クラウド学習」も可能です。また「Python API」を使って、ゲームに最適化した学習用スクリプトを作成することもできます。これらの応用例についても紹介します。

本書で解説する主要キーワード

強化学習、模倣学習、カリキュラム学習、Recurrent Neural Network(RNN)、Intrinsic Curiosity Module(ICM)、TensorFlow、TensorBoard、Jupyter Notebook、AWSによるクラウド学習、Python APIによる独自の学習用スクリプト

ダウンロードデータは、ZIP形式で圧縮されています。WinZip(Windows)やStuffit(Macintosh)等のアプリケーションで解凍してご使用ください(ファイルサイズ:約420MB)。

ご使用上の注意

  • 当ダウンロードデータは、本書籍および本書籍のPDF版の読者のために提供しているもので、書籍を購入されていない方のご利用はできません。
  • 提供しているサンプルプログラム、および3Dモデルデータなどのアセットは、Unityの学習のために作成したもので、実用を保証するものではありません。学習用途以外ではお使いいただけません。
  • 当ダウンロードデータに含まれるサンプルプログラムの著作権は、著者に帰属します。著作権者の了解なしに、有償無償に関わらず、原則として各データを第三者に配布することはできません。ただし、ダウンロードデータに含まれるReadme.txtファイルに、サンプルプログラムおよびアセットの権利許諾が記載されている場合は、そちらの記載に沿ってご利用ください。
  • データファイルの使用によって生じた偶発的または間接的な損害について、出版社ならびに著者は、いかなる責任も負うものではありません。
  • 本データは事前の予告なく更新(アップデート)が行われることがあります。データの更新情報については、次の「ダウンロードデータ更新情報」をご確認ください。
ダウンロード

本書は、執筆当時の最新版である「Unity ML-Agents V0.4」を使って解説をしています。最新版の「V0.5」「V0.6」では、主に以下の点が変更になっているので、「V0.5」「V0.6」へ移行する場合には、以下を参照してください。
「V0.6」へ移行する場合は、「V0.5」の変更点に「V0.6」の変更点が追加されます。

なお、以下の手順で執筆時点のバージョンである「V0.4.0b」をダウンロードすることもできます。新バージョンへの読み替えが難しい場合は、こちらを使ってください。

執筆時点のバージョン「V0.4.0b」のダウンロード方法

以下のURLにアクセスし、右上の「Clone or download」のクリックする。
https://github.com/Unity-Technologies/ml-agents/tree/0.4.0b

Unity ML-Agents V0.4からV0.5の変更点

■使用するUnityのバージョン
Unity 2017.4以降を使ってください。

■インストール、設定関連
●「pip install .」を行う場所
「/ml-agents-master/python」→「/ml-agents-master/ml-agents」に変更

●プロジェクト名
「/ml-agents-master/unity-environment」→「/ml-agents-master/UnitySDK」に変更

●保存先の名前
「/ml-agents-master/python/3DBall.app」→「/ml-agents-master/ml-agents/3DBall.app」に変更

●trainer_config.yamlの位置の変更
「./trainer_config.yaml」→「../config/trainer_config.yaml」に変更

■学習・推論関連
●学習開始のコマンド変更
「python3 learn.py 3DBall.app –train」→「mlagents-learn ../config/trainer_config.yaml –env=3DBall –train」

●Branches Size
「Branches Size」に1を指定し、「Branch 0 Size」にアクションのサイズを指定

●PlayerのDefault Actionの設定項目がなくなった
0がデフォルトとなる

なお、以下のWebページなども参考になります。

●Windowsへのインストール
英語の公式ページです。環境変数のPATHの設定方法などの記載があります。
https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Installation-Windows.md

●Migrating from ML-Agents toolkit v0.4 to v0.5
英語版の公式ページです。変更箇所の概要が把握できます。
https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Migrating.md

●MacでUnity ML-Agentsの環境を構築する(v0.5.0対応)
https://qiita.com/kai_kou/items/6478fa686ce1af5939d8

Unity ML-Agents V0.5からV0.6の変更点

■設定関連
●「Brain」がゲームオブジェクト「Brain」から、アセット「Learning Brain/Player Brain/Heuristic Brain」に変更
ゲームオブジェクト「Brain」では「Type」で「External」「Internal」「Player」「Heuristic」を切り替えていたが、アセット「Learning Brain/Player Brain/Heuristic Brain」では種別毎にBrainを生成するようになった。さらに、「External」と「Internal」は「Learning Brain」に統一された。

「Brainの作成手順」は次のとおり。
(1)Unityのメニュー「Assets→ML-Agents→Learning Brain/Player Brain/Heuristic Brain」
(2)Assetsに「New XXX Brain」が追加されるので、MazeBrainなど名前を変更し、Inspectorで属性を設定

「AgentのBrainの指定方法」は次のとおり。
(1)アセット「Learning Brain/Player Brain/Heuristic Brain」をAgentのBrainにドラッグ

「Brainの学習時の設定方法」は次のとおり。
(1)Academyの「Add Brain to Broadcast Hub」ボタンを押下
(2)アセット「Learning Brain」を「Broadcast Hub」にドラッグ(Broadcastの有効)
(3)Controlチェックボックスをチェック(学習の有効)

「Brainの推論時の設定方法」は次のとおり。
(1)Assetsに推論モデル(.bytes)を追加
(2)「Learning Brain」の「Model」に推論モデル(.bytes)をドラッグ
(3)Academyの「Broadcast Hub」にBrainがある時は、Controlチェックボックスのチェックを解除(学習の無効)

■学習・推論関連
●推論ファイルの変更
v0.5以前で学習した推論モデル(.bytes)は利用不可になったため、再学習する必要がある。

●カリキュラム学習のJSONファイルを学習毎でなく、Brain毎に設定
mlagents-learnのパラメータ「–curriculum」でディレクトリを指定し、ディレクトリ内には「<Brain名>.json」の名前でカリキュラム学習のJSONファイルを配置

なお、以下のWebページなども参考になります。

●Migrating from ML-Agents toolkit v0.5 to v0.6
英語版の公式ページです。変更箇所の概要が把握できます。
https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Migrating.md

目次

「はじめに」「目次」をPDFファイルでご覧いただけます。

1章 Unity ML-Agentsの全体像

1-1 機械学習の概要
1-2 強化学習の概要
1-3 Unity ML-Agentsの概要
1-4 学習シナリオ
・Single-Agentシナリオ
・Simultaneous(同時)Single-Agent
・Adversarial(敵対)Self-Play
・Cooperative(協同)Multi-Agent
・Competitive(競争)Multi-Agent
・Ecosystem(生態系)

2章 サンプルの学習環境の実行

2-1 開発環境の準備
2-2 プロジェクトの設定
2-3 サンプルの学習環境の作成
2-4 Pythonスクリプトによる学習
2-5 Unityでの推論モデルの実行

3章 はじめての学習環境の作成

3-1 はじめての学習環境の準備
3-2 Academyの追加
3-3 Brainの追加
3-4 Agentの追加
3-5 はじめての学習環境の実行
3-6 iOS、Androidでの実行

4章 サンプルの学習環境の解説

4-1 Basic(Single-Agent)
4-2 3DBall(Simultaneous Single-Agent)
4-3 GridWorld(Visual Observation)
4-4 Tennis(Adversarial Self-Play)
4-5 PushBlock(RayPerception)
4-6 WallJump(Brainの切り替え)
4-7 Reacher(2関節を持つAgent)
4-8 Crawler(6関節を持つAgent)
4-9 BananaCollectors(模倣学習)
4-10 Halloway(RNN(LSTM))
4-11 Bouncer(On Demand Decision)
4-12 SoccerTwos(Competitive Multi-Agent)
4-13 Walker(13関節を持つAgent)
4-14 Pyramids(ICM)

5章 新規ゲームの学習環境の構築

5-1 三目並べ(完全情報ゲーム)
5-2 ポーカーゲーム(不完全情報ゲーム)
5-3 ロケットゲーム(カリキュラム学習)
5-4 格闘ゲーム(模倣学習)
5-5 自動運転シミュレーション(シミュレーション)

6章 Python APIとクラウド学習

6-1 Jupyter Notebookの概要と基本操作
6-2 Python APIの概要と使い方
6-3 AWS(Amazon Web Services)によるクラウド学習