ちょっと話題の記事

【DeepRacer】ワークショップの超丁寧な日本語資料で強化学習を体験する #AWSSummit

敷居が高く感じる強化学習ですが、非常に丁寧で親切な日本語ドキュメントにそってハンズオン形式で体験できる素晴らしいワークショップでした!
2019.06.12

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

現在幕張で開催されているAWS Summit Tokyo 2019では、AWS DeepRacerリーグも同時に開催されていて、アツい戦いが繰り広げられています。

DeepRacer リーグの Summit サーキット

DeepRacerは、機械学習を1/18スケールの実車を使って学んでしまおうという、なんともロマン溢れる粋なサービスですが、それを体験するためのワークショップに参加してきたのでその様子を報告します。

ワークショップは、スライドを使った座学と実際に手を動かすハンズオン構成されていたのですが、ハンズオン部分は、GitHubにも公開されているので誰でも体験可能です。

ぜひ皆さん、このハンズオンをきっかけに、ロマンあふれるDeepRacerの世界に足を踏み入れてもらえればと思います!

DeepRacer きたか…!!

  ( ゚д゚) ガタッ
  /   ヾ
__L| / ̄ ̄ ̄/_
  \/   /

講師と内容紹介

DeepRacerワークショップ

講師は、アマゾン ウェブ サービス ジャパン株式会社 技術統括本部 ソリューションアーキテクト 針原 佳貴さんYoshitaka Haribara, Ph.D. ?(@_hariby)

AWS DeepRacer は、 1/18 スケールのレーシングカーを利用して、強化学習を楽しみながら理解できるサービスです。強化学習に必要な環境はすべて AWS DeepRacer によって提供され、ユーザはレーシングカーを上手く走らせるための強化学習に集中することができます。AWS DeepRacer ワークショップでは、強化学習を体験しながら、実際のレーシングカーを走らせる方法をお伝えします。具体的には、強化学習の基礎的な内容を紹介し、コンソールの利用方法や、レーシングカーが走る様子をシミュレーションで確認する方法をご説明します。

引用:AWS SUMMIT - TOKYO

ワークショップは大きく分けて2部構成になっていて、スライドを中心とした座学の部分と、実際に手を動かすハンズオンとに分かれています。

「AWS DeepRacerを学ぶ」

Agenda

  • AWS DeepRacerの概要
  • 強化学習の導入
  • シミュレータ
  • AWS DeepRacerの構成詳細
  • DeepRacerリーグ
  • AWS DeepRacerコンソールの概要

AWS Deepracerの概要

強化学習を全ての開発者に提供するもの

  • 1/18スケールの自律走行カー
  • 学習と評価のためのシミュレータ
  • 世界中でのレースリーグ

車からのカメラ画像のあらゆる見え方に対して、自動運転カーがとるべき運転行動を登録できれば、コースを走らせることが可能。実際には無数の見え方が存在するため、その情報を登録すること自体が難しい。

強化学習に頼らなくても、アウトプットができればよい。ただ、人が手動で全て行動内容を登録するのは手間がかかる。

強化学習の導入

  • カメラ画像から行動を決定するモデルを学習により作成
  • 環境(コース)に対して、エージェントが様々な行動(運転)を試し、ゴールに到達できるように学習

キーファクターは、以下の6つ

  • モデル
  • エージェント
  • 行動
  • 状態
  • 環境
  • ゴール

強化学習の全体像

  • 教師あり学習
  • すべての学習データは、対応するラベルが必要
  • 画像の分類、画像のマーキング
  • 教師なし学習
  • 学習データにラベルは不要
  • データの背後にある本質的な流れを
  • 強化学習
  • 特定の環境下で、一連の行動から学習

強化学習では以下の用語を理解する必要がある。

  • エージェント
  • 環境
  • 状態
  • 行動
  • 報酬
  • エピソード

強化学習において、特定の行動にインセンティブを与える報酬関数が非常に重要。

いきなりゴールを報酬設定しても、ゴールが遠すぎてうまくいかない場合が多い。Deepracerでは、価値観数をあまり意識する必要がない。

強化学習アルゴリズム:Vanilla policy gradient

  • 現在の方策を利用してエピソードを集める
  • 推定累積報酬の勾配を計算
  • 勾配を登る方向へ方策を更新

コースの構成要素

  • サーキットの壁
  • フィールド
  • コース面
  • コースの境界線
  • センターライン

学習アルゴリズムを制御するハイパーパラメータ

  • Learning rate
  • 学習率が大きいと、学習は早いが収束が難しくなる
  • Batch size
  • バッチサイズが大きいと、学習は安定する
  • Epochs
  • エポック数が増えると、学習は安定化するが遅くなる

DeepRader League

  • バーチャルサーキット
  • AWS DeepRacerのサービスにアクセスし実施
  • モデルを学習させたのち、参加
  • バーチャルサーキットで介される

  • Summitサーキット

  • 実際のAWS Summitにおいて開催されるリアルな場におけるサーキット

バーチャルサーキットへの参加において学ぶための無料のオンライントレーニング有り。

AWS DeepRacer: Driven by Reinforcement Learning

(重要)DeepRacerにかかる費用

最初にですが、DeepRacerは利用後使わないリソースを適宜削除しないと、結構な課金が続いてしまいます。最初にこちらの内容を確認しておくことをおすすめします。

GitHubホストされているテキストを利用したハンズオン

ここからは、ハンズオンとなります。下記GitHubでテキストは全て公開されているでの、AWSアカウントさえあれば誰でも開始できます。テキストはこちら。

aws-deepracer-workshops/Readme-Japanese.md at master · aws-samples/aws-deepracer-workshops

内容は非常に丁寧に解説されているので、これを読んで動かすだけでも、一通りのDeepRacerを利用した強化学習を学ぶことができます。

最初の始め方から、モデルの作成方法。

アクションスペースの設定方法とそのパラメータの細かい説明。

報酬関数についての詳細な説明。

特に利用できるパラメータと、報酬関数における考え方の部分は、非常にわかりやすいです。こういった細かい概念を日本語で説明してくれる資料はむちゃくちゃありがたい。

報酬関数は一番最初、なにをどう書いたもんか全然わかんないんですが、サンプルが3種類用意されていてそれぞれのコードの意味が解説されているので、取っ掛かりには十分な情報量だと思います。

AWS DeepRacerリーグで競う方法。

仮想サーキットでのレース方法。

最後に、モデルのトレーニングと改善方法まで、一通りのテキストが揃っています。

「ものを創造して動かす純粋な楽しさを思い出させてくれる、すげぇ楽しい体験」

実際にパラメータをチューニングしてモデルの評価までやってみたんですが、端正込めて作ったモデルがシミュレーション環境とはいえ、実際に走っていくさまを見るのはなんとも言えない興奮を味わいました。

ぶっちゃけちょっとやったぐらいじゃ、全然思う通りに走ってくれませんw 「おいおい、なんでそっち走っていくねん!!」という、そんな気持ちになります。でもなんかね、これ、可愛いんですよ。

強化学習のエッセンスを楽しんで学ぶには現時点で最高のコンテンツだと思いますし、これからやってみようという人向けの導入テキストもめちゃくちゃ親切にできているので、気になった方はぜひ一度体験してみることをオススメします。

aws-deepracer-workshops/Readme-Japanese.md at master · aws-samples/aws-deepracer-workshops

それでは、今日はこのへんで。濱田(@hamako9999)でした。