1
1

More than 3 years have passed since last update.

AWS DeepRacer をやってみた!

Posted at

AWS DeepRacerはご存じですか?
「AWS re:Invent 2018」の基調講演で発表されてから注目を集めています。昨年は今回は、機械学習がほぼ素人の筆者が、そんなDeepRacerの概要から、DeepRacerでの強化学習、実際に学習&評価してバーチャルで走らせるまでの手順を紹介してみます。実機での挑戦記もいずれ掲載できればと思います。
image.png

AWS DeepRacerとは?

AWS社は、「強化学習をすべての開発者に届けるためのサービス」といった、キャッチコピーで表現しています。
DeepRacerは、自律走行を行うレーシングカーで、その走行エンジンに機械学習モデルが用いられています。
自分で作り上げたモデルは、コンピュータ上のバーチャルレースや、現実世界での実機レースでの走行エンジンとして利用でき、走行タイムを他の人と競い合えるので、「世界で一番優れた機械学習モデルを作ってやろう!」と事前と闘志が湧き上がってきますね!
ゲーム感覚で深層強化学習のハイパーパラメーターの意味や働きなどを学べる狙いがあるようですね。

DeepRacerを始めてみる

まず、AWSコンソールにログインし、DeepRacerを探してみます。
リージョンについて1点注意があります、2020年4月時点ではバージニアリージョンでのみ提供されています。
image.png

それでは、DeepRacerのトップページから開始(get started)のメニューボタンを押してみましょう。
image.png

Create Resource」ボタンを押下し、DeepRacerに必要なリソースを作成します。
image.png

なお、上記のリソース作成にはIAMアカウントに下記の権限が必要となりますので一般ユーザに必要な権限を事前に付与しておくようご留意下さい。
https://docs.aws.amazon.com/ja_jp/deepracer/latest/developerguide/deepracer-understand-required-permissions-and-iam-roles.html

リソース作成が成功するとこちらのように表示されます。
image.png

強化学習及びモデル作成のポイントについて説明になります(飛ばしてもよいです)
image.png

さていよいよモデルの作成になります!「Create model」ボタンを押下してみましょう。
image.png

モデル作成

前述ではStep1のガイダンスからモデル作成画面に遷移していますが、サイドバーメニューの"Your models"から直接開始することができます。

何を設定するのか?

モデル作成では下記手順にて設定していきます。
1. Model details(モデル名称・備考を記載)
2. Environment simulation(学習するコースを選択)
3. Race Type(レースタイプを選択)
4. Agent(学習させるレーシングカーのエージェントを選択)
5. Reward function(強化学習の報酬関数を定義) 
6. Hyperparameters(学習ハイパーパラメーターを設定)
7. Stop conditions(学習時間を設定)

1. Model details(モデル名称・備考を記載)

モデル名称と備考を記載しましょう。後で変更できないので注意が必要です。
image.png

2. Environment simulation(学習するコースを選択)

学習対象のコースを選択します。
image.png

3. Race Type(レースタイプを選択)

単独でのタイムトライアル、障害物回避、他レーシングカーとの競争の3種類から選択できます。
image.png

4. Agent(学習させるレーシングカーのエージェントを選択)

レーシングカーのエージェントを選択します、最初はOriginal carが提供されています。
image.png

レーシングカーは自分でカスタマイズ可能です。
左側のメインメニューから「Your garages」を選択し、Build new vehcleボタンで自身独自のレーシングカーを作成可能です。
以下の設定が可能です。
 - Sensor
 - Neural network topologies
 - Action Space

Seneor

レーシングカーに搭載するカメラが選択できます。
コースやレースタイプに応じてカメラのスペックを選択する必要がありそうです。
image.png

Neural network topologies

CNNの階層を選択しますが、3層もしくは5層の2つから選択します。
image.png

Action Space

ロボットの動作条件として、最高速度や最大舵角に応じてActionのパターンが変化します。
このAction Spaceと後述の報酬関数のチューニングが大きく性能を左右するような気がしました。
image.png

5. Reward function(強化学習の報酬関数を定義) 

様々なパラメータ(スピード、走行位置、脱輪判定など)を組み合わせて、強化学習の報酬関数を定義します。
デフォルト初期関数でもいい感じに走ってくれますので、最初はそのままでも良いと思います。
image.png

6. Hyper parameters(学習ハイパーパラメーターを設定)

ハイパーパラメータをいじれますが、特にまだ変更していません
image.png

7. Stop conditions(学習時間を設定)

image.png

モデル作成の設定は以上になります。後はCreate modelを押してもらえればモデル作成が開始します。
image.png

指定の学習時間が経過すればモデルの出来上がりです、それでは次にモデルを評価してみましょう

モデル評価

後日記載

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1