メモ

ACTABAのホームページ

TOP > AWS DeepRacerを試してみた

見出し

AWS DeepRacerを試してみたのでそのメモ。

AWS DeepRacerとは?!

AWS DeepRacerは、Amazonのドキュメントによると、

AWS DeepRacerは1/18スケールのレーシングカーを使って強化学習 (RL) を楽しみながら理解できる
とのこと。また、
仮想のコース上で仮想のレーシングカーを走らせることから始めることがで、現実世界では世界大会「AWS DeepRacer League」も開催される
とのことです。これを書いている時点(2019/6)ではレース順位が上位の方は決勝リーグに交通費無料で招待されるようです。
参考:AWS DeepRacer 概要

AWS DeepRacerに参加する

仮想のコース上で仮想のレーシングカーを走らせるためには、参加登録する必要がある。

AWS Consoleにログインして、サービス検索欄に「DeepRacer」と入力して検索すると「AWS DeepRacer」が表示されますのでクリックします。

ここからは英文になるようです。よくわからないの感で進めてみます。
WEBサイトには無断転用禁止と書いてありましたので、文章だけで書きます。
AWS DeepRacer Welcome

「Reinforcement learning」の画面が表示されDeepRacer用のモデルが3つほど表示されています。
ただ、画面左のメニューに「Get started with reinforcement learning」がありますので、こちらを先にセットアップする必要がありそうです。
AWS DeepRacer>Reinforcement learning>Get started
クリックすると下記の3ステップがあります。

Step 1: Create account resources
Step 2: Learn the basics of reinforcement learning
Step 3: Create a model and race

Step 1: Create account resources

ステップ1は「create」ボタンをクリックするだけです。
しばらくすると、すべてに「レ」が付き、設定が完了します。
簡単です。

Step 2: Learn the basics of reinforcement learning

強化学習について基本を学びます。
「Start Learning RL」をクリックすると、スライドを見られます。
これも英文です。。。が、Chromeの翻訳をすると説明文が日本語になりました!
動画と画像は英語のままでした、、、
日本語は機械翻訳のようですが、内容は問題なく理解できます。
スライドでは評価関数について詳しく触れています。
所要時間は10分くらいとありますが、それくらいで終わりました。

Step 3: Create a model and race

一からモデルを作成することもできるようですが、まずはサンプルを使うことにしました。
先人の知恵を拝借です。
AWSの料金ですが、無料枠でトレーニングを10時間まで使用できるようです。
参考:AWS DeepRacer の料金

画面左のメニューから「Reinforcement learning」を選択します。
右画面にモデルがリスト表示されますので、リストの名前をクリックして選択します。
ジグザグ走行を抑止するモデル「Sample-Prevent-zig-zag」があったのので、これを選択してみます。
なお、リストの左の●を選択して、画面上の「Download model」ボタンで学習データをダウンロードできますので、DeepRacer本体を持っている場合はダウンロードして走らせることができるようです。ファイルサイズは20MBほどでした。
参考:AWS DeepRacer>Reinforcement learning>Sample-Prevent-zig-zag

先ほど選択したモデルの画面が表示されています。
「Training completed. You can now evaluate your model.」との表示があるので、すぐに結果が見られるようです。
「Start evaluation」をクリックします。
コースの選択画面が表示されますので、選択します。今は「Kumo Torakku Training」が開催中のようなので、これを選択します。
画面の下のほうに料金についての記載がありますので、よく読んでください。

「Start evaluation」をクリックします。
「Evaluation job is being initialized. The evaluation job is being initialized and it will take about 3 minutes.」と表示されます。
3分待ってみます。

エラーが発生。「Evaluation job status: Failed」との表示。
なにが悪かったのだろう。もう一度「Start evaluation」をクリックして待ってみる。
うまくいった。走行の動画も再生された。
一回目はコースの87%を走行。1分2秒だ。
二回目は100%。1分6秒
三回目は63%。43秒
走行の動画は評価中しか見られないらしい。評価関数をチューニングするにはいつでも見られたほうがよさそうだが。。。

オンラインで走行時間を見てみると、1位は11秒台。
走行スピードを早い場合に評価を高くするロジックも必要そうだ。
参考:レースのスケジュールと順位

評価関数を変えてみた。

def reward_function(params):

    # Read input parameters
    distance_from_center = params['distance_from_center']
    track_width = params['track_width']
    steering = abs(params['steering_angle']) # Only need the absolute steering angle

    # Calculate 3 markers that are at varying distances away from the center line
    marker_1 = 0.1 * track_width
    marker_2 = 0.25 * track_width
    marker_3 = 0.5 * track_width

    # Give higher reward if the agent is closer to center line and vice versa
    if distance_from_center <= marker_1:
        reward = 1
    elif distance_from_center <= marker_2:
        reward = 1
    elif distance_from_center <= marker_3:
        reward = 0.1
    else:
        reward = 1e-3  # likely crashed/ close to off track

    return float(reward)

トレーニングをしてみる。
・・・「Error」と表示される。
しばらくすると、
Failed to create model. Unable to create your model.
と表示された。
「モデルの作成に失敗。モデルを作成できない。」とのエラーだ。
もう一回トレーニングをしてみる。
今度はエラーもなく完了。
特に設定の変更も見あたらないので、設定ミスではないように思うが、原因は不明。

「Submit to virtual race」をクリックして、出走してみる。
ニックネームの入力を促されるので、適当な名前を入れる。
しばらくすると、下記が表示される。

Your model has been submitted to the Kumo Torakku race for evaluation.
The results are qualified and your model is ranked if the evaluation completes the specified number of consecutive laps.
すくなくとも一周回らないと結果は表示されない様子。
「Under evaluation」と表示されているので、Lap Timeの表示までもう少し時間がかかるようだ。

時間がないのでここまで。結果は後日確認したい。

強化学習がどのようなものかわかった。
時間があれば、評価関数の作成などを追記したい。

これを書いている時点では、上位入賞者は交通費無料で招待もあるようなので、興味がある人は試してはいかがでしょうか。
参考:AWS DeepRacer 開発者ガイド

これで、AWS DeepRacerを試してみた、は終了。


ページのトップへ戻る