備忘録を兼ねた執筆です。
ml-agentsを使ってUnityでAI強化学習する大事なことは…
バージョンを合わせること!
『ml-agentsを使ってUnityで強化学習するには?』
『バージョンを合わせて動く環境にするには?』
こんな疑問に答えます。
本記事はRelease3でざっくりの内容です。
ml-agentsの詳しい導入ステップが知りたい場合は下記からどうぞ!
ML-agents release19を導入する5つのステップ
【Python&Unity】ml-agentsでAI強化学習
Unity ML-Agents Release 3でバージョンを合わせて実行するには次の動画がみると良い
動画だけでは今一歩わかりずらいところがあるので、次のサイトでカバーする。
Unity ML-Agents Release 3 のチュートリアル (1)
Unity ML-Agents Release 3 のチュートリアル (2)
上記で紹介した動画とサイトを見ればRollingballのチュートリアルはできると思う。
ポイントは下記のコマンドは
ml-agents-release_3を解凍したディレクトリで実行する
ということ
mlagents-learn ./config/sample/RollerBall.yaml --run-id=RollerBall-ppo-1xx
余力があれば本の購入が良いと思う。
本は古くなるのでバージョンを合わせる作業は必要になるだろう。
Unityではじめる機械学習・強化学習 Unity ML-Agents 実践ゲームプログラミング v2.2対応版
【Python&Unity】ml-agentsで強化学習する方法
環境構築と実装方法は次の通り
- UnityHubのインストール
- Unityのインストール
「Unity ML-Agents」を利用するには、「Unity 2018.4」以降が必要です
UnityHubからUnityをインストールします。
【Unity Hub】Unityをインストールする方法
- Unity ML-Agentsのダウンロード
Unity ML-Agentsのサイトの「Release 3」の「download」から、ZIPファイルをダウンロード
ML-Agents Release 3
https://github.com/Unity-Technologies/ml-agents/releases/tag/release_3
ZIPファイルを解凍して任意の場所へ移動
私はUnityプロジェクトフォルダと同じレベルのディレクトリへ移動しました。
【ML-Agentsのフォルダ構成】・com.unity.ml-agents : 強化学習の環境を作成するためのUnityプラグイン ・Project: サンプルプロジェクト ・ml-agents: 強化学習の学習を行うPythonパッケージ ・ml-agents-envs: Unity環境とml-agentsパッケージ間のインタフェースとなるPythonパッケージ ・config: 訓練設定ファイル ・gym-unity: OpenAI Gymと連携するためのパッケージ ・docs ドキュメント
- Anacondaのインストール
Anacondaのダウンロード
Pythonダウンロード(公式サイト)
ダウンロードしたインストーラに従ってインストール。
~コラム~
Anacondaはサイズがでかい。
ホントは純粋なPythonをインストールして必要なライブラリのみ適用する方が望ましいと思う。
今後、純粋なPythonからの環境構築もやりたい。 - Python仮想環境の作成
仮想環境名に「ml-agents」、Python のバージョンに「3.7」を指定
Pythonは3.6以降ならOKの模様conda create -n ml-agents python=3.7
仮想環境「ml-agents」に切り替え
conda activate ml-agents
- Python「ml-agents-env」「ml-agents」をインストール
Pythonライブラリ「ml-agents-env」「ml-agents」をインストール
pip install -e ./ml-agents-envs
pip install -e ./ml-agents
- Unityのプロジェクトを作成
Unityを起動し、Unityのプロジェクトを「3D」で新規作成
プロジェクト名は任意で良いがチュートリアルと同じ「RollingBall」にしよう。 - Unity ML-Agentsと連携
メニュー「Window → Package Manager」を開く
「+ → Add package from disk」を選択
「ml-agents/com.unity.ml-agents/package.json」を選択
しばらく待つと完了する
【 Unityアセットのフォルダ構成】
Packages/ML Agents
・Editor: エディタ関連のスクリプト ・Plugins: Unity ML-Agentsの各種プラグイン ・Runtime: Unity ML-Agentsの各種スクリプト ・Tests: Unity ML-Agentsのテスト用のスクリプト
- RollingBallプロジェクトの実装
下記のサイトと動画を見て実装。
Unity ML-Agents Release 3 のチュートリアル (2) - 訓練設定ファイルの設定
訓練設定ファイル(ml-agents/sample/RollerBall.yaml)を作成
behaviors: RollerBall: trainer_type: ppo hyperparameters: batch_size: 10 buffer_size: 100 learning_rate: 0.0003 beta: 0.005 epsilon: 0.2 lambd: 0.95 num_epoch: 3 learning_rate_schedule: linear network_settings: normalize: true hidden_units: 128 num_layers: 2 vis_encode_type: simple reward_signals: extrinsic: gamma: 0.99 strength: 1.0 keep_checkpoints: 5 checkpoint_interval: 500000 max_steps: 500000 time_horizon: 64 summary_freq: 1000 threaded: true
- mlagents-learnの実行
mlagents-learnの実行コマンド
mlagents-learn ./config/sample/RollerBall.yaml --run-id=RollerBall-ppo-1
※「RollerBall-ppo-1」は出力先ディレクトリになるので重複しないように設定
※コマンド実行ml-agents-release_3を解凍したディレクトリで実行 - Unity EditorのPlayボタン(▶)を押して学習開始
20,000ステップ未満の学習で期待する動きとなる
「記事を読んでもわからないトコがある」「内容が変だよ」
という時は、お気軽にコメントください♪
「もっとSEおっさんに詳しく聞きたい。何かお願いしたい!」
という時は、ココナラまで。メッセージもお気軽に♪
LINEでのお問合わせも受付中!
LINE公式アカウント
メッセージをお待ちしています!
- 応用情報技術者
- Oracle Master Gold
- Java SE Gold
- Java EE Webコンポーネントディベロッパ
- Python エンジニア認定データ分析
- 簿記2級