【AWS】AWS DeepRacerを始めてみた
はじめに
知識0、経験0からAWS DeepRacerを始めてみる記事です。
興味はあるけれど、やり方がわからないという方の参考になればと思います。
AWS DeepRacerとは
公式ドキュメントには次のように説明されています[1]
- AWS DeepRacer は、「強化学習」によって駆動される完全自律型の 1/18 スケールのレースカーです。これは次のコンポーネントで構成されます。
- AWS DeepRacer コンソール: シミュレートされた自動運転環境で強化学習モデルをトレーニングし、評価する AWS Machine Learning サービスです。
- AWS DeepRacer 車両: 自動運転用にトレーニングされた AWS DeepRacer モデルで推論を実行できる 1/18 スケールの RC 車両です。
- AWS DeepRacer: 世界初のグローバルな自律型レースリーグです。賞品、栄光、ワールド チャンピオン カップへの出場権を得るためのレースです。詳細については、「用語と条件」を参照してください。
簡単に言うと、強化学習でレーシングカーを賢く走れるように訓練して競い合おうということですね。
なかなか面白そうです。
AWS DeepRacerについて、より詳しく知りたい方は公式ドキュメントを参照して下さい。
始め方
ここからは実際にAWS DeepRacerを動かしてみようと思います。
マネジメントコンソールログイン
- マネジメントコンソールにログインし、サービス検索欄で「DeepRacer」と検索します。
モデルを作る
- Create Modelから新しいmodelを作ります。
AWS DeepRacerがどうやって動くのか説明している図が表示されています。
以下がAWS DeepRacerの流れの説明です。
- 強化学習の基礎を学ぶ
- モデルを作る
- 訓練&評価
- DeepRacerリーグに参加する
- モデルを繰り返し改善する
Step1で強化学習の基礎を10minで学べるようです。Step2で実際にモデルを作っていきます。 説明で「10時間の評価・トレーニングと5GBの無料ストレージ」と記載があります。それ以上は課金されるようなので注意が必要ですね。
-
モデルの名前を決める
MyFirstModelとします。
-
環境を選択する
レースっぽい!!今回は簡単そうなVivalas Loopを選択していきます。
-
レースタイプを選択する
今回はデフォルトのTime trialを選択します。
-
トレーニングのアルゴリズムを選択する
PPOとSACを選択できるようです。
最新のアルゴリズムであるSACを選択していきます。
ちなみに、SACのハイパーパラメータは調整できるようです。
行動空間を定義する
行動空間に対しては次のような説明が掲載されています。
簡単に言うと、この車が取れるアクションの範囲を定義することだと捉えました。
アクションの範囲と言っても、複数の要素の組み合わせで表現され、この場合では車の速度とステアリング角度ということらしいです。
とりあえず、デフォルト値で進みます。
車を選ぶ
一つしか選べませんが、選んで次に進みます。
報酬関数を定義する
報酬関数とはなんでしょうか。公式ドキュメントには次のような記載があります。
報酬関数
報酬関数とは、実行されたアクションが、以下のいずれのパフォーマンスの結果になったかをエージェントに伝える学習モデル内のアルゴリズムです。
- 強化する必要のある良い結果。
- 中立的な結果です。
- 推奨されない悪い結果。
報酬関数は強化学習の重要な部分です。特定のアクションに対してインセンティブを与えることで、エージェントが学習する挙動を決定します。ユーザーは Python を使用して報酬関数を提供します。この報酬関数は、最適化アルゴリズムによって強化学習モデルをトレーニングするために使用されます。
微妙に難しいですが、簡単にいうとどんな走行に対してご褒美をあげるのか、逆にペナルティを与えるのかを定義する関数ということです。
極端な例だと道からはみ出してしまったらペナルティ-10点とすれば、道をはみ出さないように学習されていくはずです。
このコードでは以下のように報酬関数を定義しています。
- 車の走行位置が道の中央から2割の幅以下 → 1.0の報酬
- 車の走行位置が道の中央から5割の幅以下 → 0.5の報酬
- 車の走行位置が道の中央から10割の幅以下(つまり、道の上) → 0.1の報酬
- それ以外(コースアウト) → 0.001の報酬
ここに調整のしがいがある!ということだと思います。
訓練時間を選択
あまりに結果が悪くても嫌なので180分に設定しておきました。
どんな結果になるんでしょうか。
24時間まで選べるようですが、課金に注意して下さい。
レースへの出場と規約への同意
モデルのトレーニングは1時間3.5ドルかかるそうです。
→ 結構高くないか。。。というのが正直な感想です。どうなんでしょうか。
居住国でエラーが発生したので、レースへの参加は一旦チェックを外して次に進みます。
訓練
180分モデルが訓練されるのを待ちたいと思います。
待っている間も評価や訓練の様子が見られるようです。
楽しいですね。
結果
残念ながら、しっかりと走れるようなモデルはできませんでした。
学習も1時間3.5ドルとお高めなので、続けるかと言われれば、、、ですね。
経験としては良かったなと思います。興味がある方は是非試してみて下さい。
Discussion