[レポート] AWS DeepRacerを始めよう!ワークショップに参加して来た #reinvent #AIM207

ワークショップAIM207 Get started with AWS DeepRacerに参加してDeepRacerに入門して来ました。またワークショップ会場の前には噂のDeepRacer Evoの実機が展示されていました。
2019.12.06

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

こんにちは。サービスグループの武田です。

昨年のre:Invent 2018で発表されたAWS DeepRacerですが、個人的には少し遠巻きに見ているだけでした。

[速報] 1/18スケールのラジコンカー! AWS DeepRacer が登場! #reinvent

しかし先日AWS DeepRacer Evoが発表されるなど、まだまだ話題が続きそうだったので入門してみることに。

[速報] 2台のカメラとLIDARセンサーを搭載した AWS DeepRacer Evo が発表されました!

今年のre:Invent 2019でもDeepRacerのワークショップが多数開かれており、始めるにはもってこいです。というわけでワークショップ AIM207 Get started with AWS DeepRacer に参加して入門して来ました。

ワークショップ会場の前には噂のDeepRacer Evoの実機が展示されていました。

ワークショップ概要

Get behind the keyboard for an immersive experience with AWS DeepRacer. Developers with no prior machine learning experience learn new skills and apply their knowledge in a fun and exciting way. With the help of the AWS pit crew, build and train a reinforcement learning model that you can race on the tracks in the MGM Grand Garden Arena and win special AWS prizes!

機械翻訳したものも掲載します。

キーボードを操作して、AWS DeepRacerの没入感を体験してください。 機械学習経験のない開発者は、新しいスキルを学び、楽しくエキサイティングな方法で知識を適用します。 AWSピットクルーの助けを借りて、MGMグランドガーデンアリーナのトラックでレースを行い、特別なAWS賞品を獲得できる強化学習モデルを構築してトレーニングしてください!

ワークショップの構成

参加したワークショップは大きく2部構成になっていました。

  1. AWS DeepRacerについて(座学)
  2. ハンズオンラボ

前半はDeepRacerおよび機械学習の概要について学びます。後半はマネジメントコンソールにアクセスし、シミュレーターを動かしてDeepRacerの体験をします。その際、自身のAWSアカウントが必要になるため、事前に作成しておく必要があります。費用が気になるところですが、$30分のクーポンが配られているためそれを適用すれば問題ありません。

それではワークショップについて紹介します。

AWS DeepRacerについて

ハンズオンを通して強化学習を体験しましょう!

2019年はDeepRacerの大会を開催してきましたが、2020年はさらにアップグレードして帰ってきます。注目はレースフォーマットが次の3種類に増えています。

  • タイムトライアル(従来と同じフォーマット)
  • 物体検知
  • 直接対決

増設された2つのフォーマットはDeepRacer Evoで可能となったフォーマットです。

強化学習は広いAIコンテキストの一部です。

機械学習は次の3種類に分類できます。

  • 教師あり学習
    • 正解ラベルのあるデータを通して学習します
  • 教師なし学習
    • ラベルのないデータで学習します
  • 強化学習
    • 特定の環境下で行動し、その結果から学習します

機械学習の用語です。

  • エージェント
    • 環境内で実際に動作するシステム
    • 環境において行動の価値を最大化するよう学習する
    • DeepRacerでは車両
  • 環境
    • エージェントが行動する場
    • DeepRacerではトラック(コース)
  • 状態
    • 環境下においてエージェントが認識する一場面
    • DeepRacerでは車両がトラックのどこかにいるタイミング
  • 行動
    • 環境に対してエージェントが起こす作用
    • DeepRacerでは前進や曲がるなど車両が次に取るアクション
  • 報酬
    • エージェントが選択した行動に対するフィードバック
    • よい行動を選択すれば高い報酬が、よくない行動を選択すれば低い報酬が得られる
    • DeepRacerではゴールへ早く脱線することなく向かうためのスコア
  • エピソード
    • 学習を繰り返す際の単位、トレーニングデータを収集する期間
    • DeepRacerではトラックの完走またはトラックから外れるまでの期間

DeepRacerではコースをグリッドとして認識し、ゴールまでの正しい道のりを設定します。

そして正しいラインには高い報酬を、そこから外れるほど低い報酬を設定します。

車両はトラックを走行しながら報酬を何度も受け取ります。初めはもちろんうまくいきません。

成功と失敗を何度も繰り返すことで、高い報酬の受け取り方を学習していきます。目的地であったゴールにも到達可能となります。

探索と適用。最適な行動を探している時はコースから大きく外れたりしますが、うまく適用されてくるとコースをきれいに走ります。

どのように学習するのか?エージェントは環境に対して行動し、環境は報酬と状態を返します。エージェントは報酬と状態をフィードバックとして受け取り、選択した行動の良し悪しを学習します。これを繰り返すことで環境にあったモデルが作られます。

エージェントがアクションを決定するための戦略をポリシーと呼びます。ポリシーはニューラルネットワークで表され、入力された画像を受けアクションを決定します。

AWS DeepRacerシミュレータのアーキテクチャ。RoboMakerは仮想エージェントおよび環境を提供します。仮想エージェントの様子はKinesis Video Stream経由で確認できます。SageMakerによってモデルをトレーニングし、更新されたモデルはS3に保存されます。

報酬関数はPython 3の構文で記述された独自の関数を用意します。また報酬関数のサンプルも用意されています。

トラックのコンポーネントなどです。報酬関数の入力としてこれらのパラメーターが渡されるので、その値に対してどのようなスコアを返すのかを報酬関数として実装するわけです。

ガレージではエージェントのセンサーをカスタマイズできます。

エージェントの行動範囲もカスタマイズできます。

車両スペックも紹介されていました。

ハンズオンラボ

座学で基本的な事項を学んだ後は実際に手を動かしてみる時間です。マネジメントコンソールにアクセスして、エージェントの作成からトレーニングまでをやりました。

車両の色は青にしてみました。

モデルのトレーニング中です。この時間が結構長く、ここで席を立つ人もいましたし、残っている人も携帯ぽちぽちしている人が多かったです。

かなり待ってトレーニングが終わりました。この後バーチャルサーキットを走らせてみましたが、どうやら完走できなかったようです。悲しい。

まとめ

機械学習って何だか難しそう、どこから手をつければいいのかわからない。という方も多いのではないでしょうか。DeepRacerは実際に手を動かしながら機械学習(強化学習)を学べるよい題材です。やり続けるとちょっとお財布が心配になりますが、まずは取っ掛かりとしてはじめてみてはいかがでしょうか。