AI

【Python&Unity】ml-agentsでAI強化学習

  • このエントリーをはてなブックマークに追加
  • LINEで送る

備忘録を兼ねた執筆です。

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で強化学習する方法

環境構築と実装方法は次の通り

  1. UnityHubのインストール

    UnityHubのダウンロードとインストール

  2. Unityのインストール

    「Unity ML-Agents」を利用するには、「Unity 2018.4」以降が必要です
    UnityHubからUnityをインストールします。
    【Unity Hub】Unityをインストールする方法

  3. 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 ドキュメント
  4. Anacondaのインストール

    Anacondaのダウンロード
    ダウンロードしたインストーラに従ってインストール。
    ~コラム~
    Anacondaはサイズがでかい。
    ホントは純粋なPythonをインストールして必要なライブラリのみ適用する方が望ましいと思う。
    今後、純粋なPythonからの環境構築もやりたい。

    Pythonダウンロード(公式サイト)
  5. Python仮想環境の作成

    仮想環境名に「ml-agents」、Python のバージョンに「3.7」を指定
    Pythonは3.6以降ならOKの模様

    conda create -n ml-agents python=3.7
    

    仮想環境「ml-agents」に切り替え

    conda activate ml-agents
    
  6. Python「ml-agents-env」「ml-agents」をインストール

    Pythonライブラリ「ml-agents-env」「ml-agents」をインストール

    pip install -e ./ml-agents-envs
    
    pip install -e ./ml-agents
  7. Unityのプロジェクトを作成
    Unityを起動し、Unityのプロジェクトを「3D」で新規作成
    プロジェクト名は任意で良いがチュートリアルと同じ「RollingBall」にしよう。
  8. 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のテスト用のスクリプト
  9. RollingBallプロジェクトの実装

    下記のサイトと動画を見て実装。
    Unity ML-Agents Release 3 のチュートリアル (2)

  10. 訓練設定ファイルの設定

    訓練設定ファイル(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
  11.  mlagents-learnの実行

     mlagents-learnの実行コマンド

     mlagents-learn ./config/sample/RollerBall.yaml --run-id=RollerBall-ppo-1

    ※「RollerBall-ppo-1」は出力先ディレクトリになるので重複しないように設定
    ※コマンド実行ml-agents-release_3を解凍したディレクトリで実行

  12. Unity EditorのPlayボタン(▶)を押して学習開始

    20,000ステップ未満の学習で期待する動きとなる

SEおっさん
SEおっさん
ここまで読んでくれてありがとう!

「記事を読んでもわからないトコがある」「内容が変だよ」
という時は、お気軽にコメントください♪

「もっとSEおっさんに詳しく聞きたい。何かお願いしたい!」
という時は、ココナラまで。メッセージもお気軽に♪


LINEでのお問合わせも受付中!
LINE公式アカウント

メッセージをお待ちしています!



スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • LINEで送る

コメントを残す

*