Amazon Web Services ブログ

Tag: Unity

Amazon SageMaker RL を利用した Unity 上での強化学習エージェントの作成

Unityはゲーム業界をはじめ、映画や自動車業界など幅広い分野で利用されている仮想環境エンジンです。ユーザーはUnityで提供されるツールを通して、独自の物理法則、地形、キャラクターを作成することが可能です。Unity Machine Learning Agents Toolkit (ML-Agents)はオープンソースプロジェクトで、Unityで構築した仮想環境内で動作する強化学習エージェントを作成することが可能です。強化学習とは機械学習の一種であり、エージェントはある環境上の一連のアクションに対して受け取る総報酬を最大化するための方策を学習します。SageMakerにおける強化学習の取り組みについてはこちらのブログを参照ください。Unity ML-Agentsは強化学習エージェントの作成において広く使われているツールであり、作成された強化学習エージェントはレベルデザイン、バグ検出、チート検出など様々な用途で応用されています。より複雑な環境における強化学習エージェントの作成には、分散学習、ハイパーパラメータチューニングなどにおいて効率よくコンピューティングリソースを配置することが重要となります。このブログでは、SageMaker RLとUnity ML-Agentsを統合し、フルマネージドな環境で効率よくコンピューティングリソースを配置し強化学習エージェントを作成する方法について紹介します。 SageMaker RLを使う利点 Amazon SageMaker はフルマネージドサービスであり、機械学習モデルを迅速に構築、トレーニング、デバッグ、デプロイなどをするための様々な機能を提供しています。SageMaker RLはこのSageMaker上で動作し、ビルド済みのRL ツールキットを提供しています。SageMaker RLを用いることで、容易にRL環境を構築でき、TensorflowやPyTorchといったフレームワークを使用した強化学習が可能です。学習、推論ジョブはSageMakerによって管理されており、お客様は強化学習エージェントの作成に多くの時間を割くことができます。また、SageMaker RLは複数のサンプルノートブックを提供しており、どのように強化学習をロボティクス、オペレーションズ・リサーチ、金融に利用するのかなどを学ぶことが可能です。以下に紹介するソリューションもこのサンプルノートブックからすぐさま利用可能です。 SageMaker RL – Unity ML-Agents integrationの利用方法 今回利用するSageMaker RLの学習ジョブの構成は以下のようになっています。強化学習ツールとしてはRay-RLLibを使用しています。分散学習、アルゴリズム構築、ネットワーク構築、パラメータ設定などをRay-RLLib上で管理することで煩雑な作業を減らすことが可能です。Unity環境はOpenAI Gym環境としてラップすることでRay-RLLibからはUnity独自の仕様を意識することなく一般的な強化学習タスクとして扱えます。そして、学習を実行するリソースや設定についてはSageMakerで管理しています。 では、実際にこの構成で強化学習エージェントを作成する方法を順を追って説明します。 セットアップ はじめに、ノートブックの環境設定を行います。下記を実行することで、API実行用のIAMロール、S3バケットの設定やPythonライブラリのインポートなど環境設定を行うなうことができます。 import sagemaker import boto3 # set up the linkage and authentication to the S3 bucket sage_session = sagemaker.session.Session() s3_bucket = sage_session.default_bucket() s3_output_path = ‘s3://{}/’.format(s3_bucket) print(“S3 […]

Read More