LoginSignup
1
0

More than 1 year has passed since last update.

AWS DeepRacerのハンズオンをやってみた

Last updated at Posted at 2022-08-05

はじめに

面白そうだからAWS DeepRacerやってみようという話になったのでとりあえずハンズオンやってみました!

AWS DeepRacerとは

AWS DeepRacer(以下DeepRacer)とは、楽しく体系的に強化学習を学べるサービス

評価関数やハイパーパラメーターを設定してモデルを作成することでシミュレータ、もしくは実機でレースをすることができます。

DeepRacerを始める

早速DeepRacerを始めてみましょう!

マネジメントコンソールからDeepRacerにアクセスします。
ここからの流れは基本的にAWS DeepRacer Workshop のハンズオンに沿って行っていきます。

ハンズオンの内容だけであれば無料枠内で完結するはずです。

車両のカスタマイズ

まず、左メニューのYour garageから自分専用の車両を作成します。

ハンズオンにはステアリングなどを設定する項目があったのですが見当たらないので見た目とカメラだけ設定して進めます。
チュートリアルが作られた時と設定の順番が前後していました。モデルを作成する際にステアリングなどは設定します。

Vehicle.png
色は自由に選んで、カメラはとりあえず一人で走るだけなのでCameraを選択します。

各カメラの用途は以下のようになっています。

カメラの名前 用途
Camera スタンダードなタイムアタック用
Stereo camera 立体視カメラ 障害物レース,直接対決レース用
LIDARセンサー 後方の死角用センサー 直接対決レース用

これで車両の設定はOKです!

モデルの作成

まず、左メニューからYour modelsを選択

Create Modelを選択
Modelの名前を決める
コースを選択 ハンズオンに則ってここではThe 2019 DeepRacer Championship Cupを選択(けっこう後ろの方にある)model_cource.png

レースタイプはtime trialを選択、ハイパーパラメータはとりあえずノータッチでOK

ここでステアリングの設定があるのでDiscrete action spaceを選択
ステアリング角度 MAX:30° 粒度:5
スピード MAX:1m/s 粒度:3
に設定
actionspace.png
次にさっき設定した自分の車両を選択

ここで報酬関数を設定します
ハンズオンの資料に乗っている報酬関数の中でも一番スタンダードな関数を設定します。

def reward_function(params):
    '''
    エージェントにセンターラインに従うように報酬を与える例
    '''
    
    # 中心線からだんだん離れていく3つのマークを計算する
    marker_1 = 0.1 * params['track_width']
    marker_2 = 0.25 * params['track_width']
    marker_3 = 0.5 * params['track_width']
    
    # 車が中心線に近いほど報酬を与える
    if params['distance_from_center'] <= marker_1:
        reward = 1.0
    elif params['distance_from_center'] <= marker_2:
        reward = 0.5
    elif params['distance_from_center'] <= marker_3:
        reward = 0.1
    else:
        reward = 1e-3  # クラッシュした可能性が高い / トラックから外れた状態に近い
    
    return float(reward)

Stop conditionsはモデルをトレーニングする最大時間で
ハンズオンの設定であれば少なくとも120分で設定しておきましょう

Automatically submit to the DeepRacer Leagueの設定はどっちでもOKです。

トレーニング

見てるだけ(二時間)
よちよち歩く赤ちゃんを見守ってる気分w

トレーニングが終了したらログがダウンロードできたり,報酬のグラフが見れたりします

モデルのパフォーマンス評価

トレーニングの下にあるEvaluationからStart evaluationを選択します。
コース選択はre:Invent 2018を選択,レースタイプはTime trialを選択しStart evaluation!
cource.png

評価が始まるとコースを走る様子がリアルタイムで表示されます。(撮り忘れた・・・)

評価が終了するとラップタイムと完走率が表示されます。
evolve.png

これでモデル完成です! これでレースに出場したりモデルをさらに改善することもできます!

さいごに

今回はハンズオンにそってDeepRacerを触ってみました。
ハンズオンではサンプルの報酬関数を使いましたが、もっとこだわって作りだしたらなかなか沼なサービスなんじゃないかなと思います・・・

なかなか楽しいし、勉強にもなるのでぜひ皆さんも触れてみてはいかがでしょうか。

1
0
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
0