AWS DeepRacer のコンソールからre:Inventの風を感じてみる #reinvent

「Developers, start your engines. 」ということで、re:Invent 2018 でAWS DeepRacerが発表されました。 もう、ミニ四駆世代ですし。レース好き、グランツーリスモも全部やっているのでやらない理由はないですねと言いつつも、 深層学習もこのまえUSB Stickで始めたばっかですし、実車もまだないので、シミュレーションをStep by Stepで進めてAWS DeepRacerの風を感じてみたいと思います。
2018.12.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS事業本部の梶原@福岡オフィスです。

「Developers, start your engines. 」ということで、re:Invent 2018 でAWS DeepRacerが発表されました。 ミニ四駆世代ですし。モータースポーツ好き、グランツーリスモも全部やっているのでやらない理由はないですねと言いつつも、 深層学習もこのまえUSB Stickで始めたばっかですし、実車もないので、コンソールをStep by Stepで進めてAWS DeepRacerの風を感じてみたいと思います。

DeepRacerとは?

深層学習(Deeplearning)で動く小型自動運転車という感じでしょうか? ちょっとまだ深くは理解できてませんがとても面白そうです。 また、すでに速報や、現地のセッションレポートがあるので、こちらもご参考ください
https://dev.classmethod.jp/referencecat/aws-deepracer/

※注意

Previewですので今後GAの際に変更される可能性が高い事をご承知おきください。

DeepRacerのコンソールを開いてみる

https://console.aws.amazon.com/deepracer/

なお、Preview申請が通っていない場合は、AWS DeepRacer Previewの申し込みページになるかと思いますので、早速エントリーしてお待ちください。

どーやんの?(How it works)

さて、いきなりDeepRacerを走らせたりはしないようです。

1.モデルを作る (Create model)
2.報酬関数やパラメータを設定する(Configuration)
3.トレーニングする (Train)
4.評価する (Evaluate)
5.モデルをクローンする (Clone model)
6.2.に戻る (return to 2.)

を繰り返す感じです。 で、4.でいい評価がでたら、DeepRacerの実車にモデルをデプロイして走らせるっていうフローになります。
そう!なので、
DeepRacerの実車がなくてもそこそこいけるはず!
深層学習の知識がそんなになくてもそこそこいけるはず!

とはいえ、この体験がDeepRacerのキモのところだと思います。

DeepRacerはAmazon SageMakerとAWS RoboMakerのAWSのサービスを使用して作られているとのこと。

ってことは、別に車を走らせることじゃなくても、実機がなくてもこんな風に
「深層学習(機械学習)の難しい部分、インフラ周りは専門家に任せて、やりたい事をメインにやれる深層学習(機械学習)システムをAWSで構築できる」 ってことじゃね?え、それすごくね?
と思ったんですが、もう早く走らせたいのでポチポチ先に進みます。

1.モデルを作る (Create model)

create modelを押下

model name また、model descripton(任意) を入力します。

続いて、シミュレーションを行う環境を選択します。 re:Invent 2018をクリックします。

2.報酬関数やパラメータを設定する(Configuration)

続いて、報酬関数(Reward function)、パラメータ(Algorithm settings,Stop conditions)を設定するんですが、 とりあえず、初回はすでに用意されている報酬関数(Basic function)、デフォルトパラメータのままいきます。(個人的にはいろいろと変更したい性格なんですが初回は開発側が想定されているパラメータで動かすというのは動作確認の上でも大事だと思ってます)

ということで、特に変更することもなくStart trainingをクリック! まだ、走りません(笑

3.トレーニングする (Train)

特に何もしません(笑、勝手にトレーニングしてくれてます。
が、ここが一番熱いです!

RoboMaker のシミュレーション画面が表示され、AWS DeepRacerが走ってます! ときどき、コースアウトしたり、めっちゃスピードが出たりしてます。 いやー。見ていて楽しいですね。1時間の学習時間にしていましたが気が付くと時間が経っていました。
実際にはこの時間は、DeepRacerに深層学習させる時間なのですが、自らもこの時間を利用して深層学習を学習して次のトレーニングに活かす時間にする感じでしょうか?もう、なんだか、レースのチーム監督の気分になってきました。もう、無線で指示じゃなくて、関数で指示をだす世の中なんですね。

4.評価する (Evaluate)

さて、1時間ほどのプラクティス(練習走行)は終わり、タイムアタック(評価)の時間が近づいてまいりました。 作成したモデルをポチっとおしてスタート(評価開始)します。レッドシグナルがすべて点灯、ブラックアウト!って感じです。わかんないですよね。Indyはローリングスタートですけど(笑

コース(re:Invent2018をクリック、Comming soonのコースは例のオーバルコースですね。)
さて、評価する回数を選択し、'Start evaluation' を押下します。

3分ほどすると評価が終わりました。 1周目が一番よくて、2週目は75%のところでリタイヤ、3週目はちょっと安全に行った感じですね。 気持ちとしては、一番いい評価のシミュレーション動画が見たいところですが、それはGAに期待します。

5.モデルをクローンする (Clone model)

次のモデルの作成のために、モデルの一覧からクローンしたいモデルを選択し、cloneを押下します。

6.2.に戻る (return to 2.)

クローンされた別のモデルが作成されていますので、モデル名を変更します。

つづいて、評価を踏まえて、報酬関数の変更や学習のパラメータを見直して 再度、トレーニングをする、評価をするといったことを繰り返してモデルを完成させていきます。
そして、最速ラップ、コースレコードを目指しましょう。

T.B.D 実機にデプロイして走らせる(Deploy)

さて、実機ですがまだ、持っていないので非常に欲しいです ただ、コースを作らないと実際に走らせるのは難しい気がしています。 こうなるとレンタルコースや変わりに実機にデプロイして動画で取って見せてくれるサービスなんかがでてくるかもしれませんね。
(いや別に他意はないです、秋葉原の方角を見つつ)

とりあえず、Ship to japan. はよはよ。

最後に

紹介であった「Developers, start your engines. 」なんですが、有名な(レース好きだけかもしれませんが)「Drivers, start your engines」って、あの、あの、Indy 500のレース開始合図なんですよ。それを言い換えるなんて、DeepRacerにかけるAWSの意気込みが伺えますね。

参考

AWS 公式ドキュメント https://docs.aws.amazon.com/deepracer/latest/developerguide/what-is-deepracer.html