Edited at

AWS DeepRacerで最初のモデルをトレーニングして仮想リーグに参加するまで


はじめに

2019/4/29 に DeepRacer コンソールがリリースされ、仮想トラックでのタイムを競う

DeepRacer Virtual League に参加できるようになりました。

Developers, start your engines! The AWS DeepRacer Virtual League kicks off today.

https://aws.amazon.com/jp/about-aws/whats-new/2019/04/AWSDeepRacerVirtualLeague/

最初のモデルを作成し、仮想リーグでサーキットを走行するまでをやってみたいと思います。

DeepRacerで使用される各サービスに対しては利用料金が発生します。

詳細は以下から確認できます。

AWS DeepRacer の料金

https://aws.amazon.com/jp/deepracer/pricing/


モデルの作成

以下のURLから DeepRacer コンソール にアクセスします。

2019/5/1 時点ではバージニア北部リージョンでのみ利用可能です。

https://console.aws.amazon.com/deepracer/home?region=us-east-1

コンソールメニューの Reinforcement learning から Ceate Model を選択します。

image.png

Account resources からモデルの作成に必要な各種AWSリソースを作成します。

料金ページには記載されていませんが、作成されるVPCにはNATゲートウェイも

含まれるため、NATゲートウェイ標準の利用料金が発生します。

image.png

全てのリソースにチェックマークがつけば準備完了です。

image.png

Model detailsで、作成するモデル名やその説明(オプション)を記載します。

image.png

Environment simulation でモデルをトレーニングするための

仮想環境として利用するトラックを選択します。

ここでは2019/5/1現在で仮想レースが開催されている London Loop を選択してみます。

image.png

Action spaceでは速度およびステアリング角度の範囲と粒度をトラックに合わせて

設定しますが、ここではすべてデフォルトとします。

Reward function については Follow the center line (Default) のままとしますが、

Stay inside the two borders、Prevent zig-zag、合計3つの例が用意されており

任意のものを選択したり、独自にカスタマイズしたりすることが可能です。

Hyperparameters についてもデフォルトのままとします。

実際にはこれらの設定値によりモデルをカスタマイズします。

※Action spaceは新規モデル作成時のみ指定可能です。

トレーニング済みモデルをcloneして新たにトレーニングを実行することができますが、

その場合、Action space は変更できません。

最後にトレーニング実行時間の最大値(ここでは60分)を選択したら、Start training を

クリックし、トレーニングを開始します。

image.png

裏側では SageMaker でトレーニングインスタンス(ml.c4.2xlarge)によりジョブが実行され、

また RoboMaker のシミュレーションジョブにより選択した環境でのシミュレーションが行われます。

トレーニングの初期化には6分程度かかります。

image.png

トレーニング中、Reward graph と Simulation の video stream を確認することができます。

image.png

SageMaker のトレーニングジョブ、RoboMaker のシミュレーションジョブは

それぞれのコンソールでも結果を確認することができます。

CloudWatch Logsにもジョブのログが保存されているので確認することが可能です。


モデルの評価

60分後、トレーニングが完了したら Start evaluation をクリックし、

作成したモデルの評価を行います。

image.png

Select environment to start evaluation でトレーニング時に指定した

トラック(London Loop) を選択し、Number of Trials(試行回数)はデフォルト値(3 trials)

のまま Start evaluation をクリックします。

image.png

Evaluationの初期化は3分ほどかかります。

ここではトレーニング時と同様に RoboMaker のシミュレーションジョブが動作しており、

Evaluation の画面から Video Stream を確認できます。

image.png

評価が完了したら Evaluation results でタイムを確認することができます。

全てデフォルト値のままトレーニングしたところ。1分32秒~35秒ほどかかっています。

Trial results (% track completed) が100%なので、トラックの完走はできているようです。

image.png


Virtual Leagueへの参加

作成したモデルの画面から Submit to virtual race を選択します。

image.png

最初にレーサー名を入力します。後から変更することはできないので注意してください。

image.png

Model submission details では仮想レースに送信するモデルを確認、変更することができます。

最後にTerms and Conditionsに同意し、チェックを入れたらSubmit modelをクリックします。

image.png

モデルがアップロードされたら評価の完了を待ちます。

30分間はモデルの再送信ができないようです。

image.png

2週連続で完走できると記録が認定され、ランク付けされます。

image.png

London Loopでの仮想レースは5月いっぱい開催されます!

5/1時点でのTopは12秒台です。。速い。。。

今回はすべてデフォルト値で試しましたが、自分なりにモデルのチューニングを

行って上位を目指したいと思います。


学習コンテンツ

AWS トレーニングと認定サイトのトレーニングライブラリから以下の E-Learning を

無料で受講することができるので、こちらを利用して理解を深めるのがよさそうです。

AWS DeepRacer: Driven by Reinforcement Learning

https://www.aws.training/learningobject/wbc?id=32143

※Amazon.com アカウントまたは APN パートナーセントラルアカウントが必要です。


参考資料

DeepRacer Developer Guide

https://docs.aws.amazon.com/deepracer/latest/developerguide/what-is-deepracer.html

以上です。

参考になれば幸いです。