Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20190615_DeepRacerClub_at_Okayama

 20190615_DeepRacerClub_at_Okayama

20190615 DeepRacer同好会オフライン勉強会第三回@岡山

貞松政史

June 15, 2019
Tweet

More Decks by 貞松政史

Other Decks in Technology

Transcript

  1. Deep Racer League Virtual Circuit Vol.1 - London Loop Highlight

    クラスメソッド株式会社 データインテグレーション部 2019.6.15 DeepRacer同好会 第三回オフライン勉強会@岡⼭ 貞松 政史 1
  2. 2 本⽇のハッシュタグ #AWSDeepRacerJP

  3. 3 ⾃⼰紹介 貞松 政史 (サダマツ マサシ) @sady_nitro データインテグレーション部 (DI部) 開発チーム

    岡⼭オフィス勤務 データ分析基盤開発 某コーヒー関連 SageMaker Lambda ⽒名 所属 近況 好きなAWS サービス
  4. 4 本セッションから得てほしいこと DeepRacer 楽しい︕

  5. 5 本セッションから得てほしいこと l Deep Racer Virtual Circuitの概要 l Virtual Circuitの実際の⼤会の流れ

    l Virtual Circuitに対するアプローチ 今後の⼤会に取り組む為の⼿がかり
  6. 6 本セッションで話さないこと 強化学習の⼿法(アルゴリズム)についての詳細 DeepRacerの実機に関する内容

  7. 7 お品書き DeepRacer League Virtual Circuitの概要 DeepRacerコンソールの操作フロー London Loop ⼤会のハイライト

    London Loopに対するアプローチ 今後の⼤会に向けて 1 2 3 4 5
  8. 8 DeepRacer League Virtual Circuit の概要

  9. 9 DeepRacer League Virtual Circuit

  10. 10 DeepRacer League Virtual Circuitの概要 • re:Invent 2019開催⽉まで、毎⽉開催 • DeepRacerコンソール上で学習したモデルを

    そのままデプロイしてレースに参加 • 上位10名にはDeepRacerの実機を進呈 • 優勝者はre:Invent 2019に招待 (イベント参加費、交通・宿泊費をAWSが負担)
  11. 11 DeepRacerコンソールの 操作フロー

  12. 12 DeepRacerコンソール

  13. 13 DeepRacerに対する強化学習の環境 State (状態) DeepRacerのカメラ画像 Action (⾏動) 状態に対するエージェント (DeepRacer)の動作 Reward

    (報酬) 報酬関数で設定した動作の 結果に対する報酬値
  14. 14 DeepRacerコンソールを⽤いた開発の流れ 必要なAWSリソースを作成 学習モデルを作成・学習実⾏ 学習済みモデルの評価・デプロイ

  15. 15 必要なリソースを作成 ※ S3やVPCの課⾦も発⽣しているので注意︕

  16. 16 モデルを学習 モデル名・概要⼊⼒ 学習対象のコース選択 ⾏動パターンの設定 報酬関数の実装 ハイパーパラメータの設定 学習時間の設定

  17. 17 トレーニングの実⾏ 時間毎の累積報酬 DeepRacerのカメラ画像 (シミュレーター)

  18. 18 学習済みモデルを評価 学習済みモデルで3〜5回トライアルを⾏う ⁻ Time : 1回のトライアルでかかった時間 ⁻ Trial result

    : 100%ならコース1周完⾛
  19. 19 DeepRacerのAction設定⽅法 l ハンドルの操作⾓ l スピード(m/s) →最⼤値と⾏動数(刻み幅) で設定

  20. 20 設定されたAction ハンドルの操作⾓とスピー ドの掛け合わせで⾏動パ ターンが設定される

  21. 21 Actionを設定する上での注意点 ⾏動パターンを増やし過ぎると学習に時間が掛かる 学習ジョブのClone時は元のActionを変更できない コースの特性に合わせて設定が必要 報酬関数の設計とトータルで考える必要がある

  22. 22 報酬関数を作成する エージェント(DeepRacer) から得られる情報を元に ⾏動に対する報酬を設定する https://docs.aws.amazon.com/ja_jp/ deepracer/latest/developerguide/de epracer-reward-function-input.html

  23. 23 報酬関数の例 パターン1 センターラインに沿って⾛⾏させる

  24. 24 報酬関数の例 パターン2 早いスピードで⾛⾏させる ※Action設定でスピードのパターンが1種類のみの場合は無意味

  25. 25 報酬関数の例 パターン3 急ハンドルやジグザグ⾛⾏を抑制する

  26. 26 参考ブログエントリー その1 https://dev.classmethod.jp/cloud/aws/aws-deepracer-virtual-circuit-join/

  27. 27 参考ブログエントリー その2 https://dev.classmethod.jp/machine-learning/aws-deepracer-pattern-of- reward-function/

  28. 28 London Loopのハイライト

  29. 29 London Loop London Loop

  30. 30 序盤 センターライン寄せと ジグザグハンドル抑制の 報酬関数を組み合わせ 暫定6位に︕

  31. 31 これ、いけるのでは︕︖

  32. 32 中盤 残り10⽇あたりで急に全体のタイムが伸び始める (この時点で30位ぐらいまで落ちる)

  33. 33 (予想した)限界タイムに近づいている…

  34. 34 終盤 そして最終〆切間近…

  35. 35 終盤

  36. 36 ︕︕︕

  37. 37 結果惨敗 orz(46位)

  38. 38 総評 • 12秒台に⼊ってからタイムが伸び悩む • ⼯夫次第で12秒前半はいけたかも • 終盤に⼀度RoboMakerのアップデートにより DeepRacerコンソールが利⽤不能に (正確にはROSのアップデートによるもの)

    • 再度コンソールが利⽤可能になってから急激に トップタイムが伸びた(…)
  39. 39 London Loopに対するアプローチ

  40. 40 コースの特徴を捉える センターラインに沿うと上⼿く いきそう キツめのカーブがいくつかある (スピードの調整が必要︖) re:Invent 2018

  41. 41 コースの特徴を捉える London Loop センターラインにびったり沿う と無駄が多そう 緩いカーブの連続で構成されて いる(速いスピードを維持する のが良さそう︖)

  42. 42 前半のアプローチ • とはいえちゃんと⾛りきれないと意味がない (デプロイしても記録なしになる) • センターラインに沿うような報酬の与え⽅ • 緩いカーブが多いので、出来るだけ直線的に ⾛らせたい

    • 急ハンドルを抑制するような報酬の与え⽅ • あとは速いスピードを維持するためにスピードは早 めの⼀種類のみ(最初は4m/s→結局5m/sに)
  43. 43 前半のアプローチ

  44. 44 これで序盤6位に︕

  45. 45 後半のアプローチ • フルスロットル(5m/s)でただ1周⾛り切れるだけ ではタイムが伸びない • 出来るだけロスのない⾛りが必要 • CloudWatch Logを読み解く

    • 1周するのに◦秒、◦step掛かる • △秒で⾛るには、△Step以下で⾛りきる必要がある • progressとstepを使ってなんとかできないか
  46. 46 後半のアプローチ

  47. 47 これでさらにタイムが短縮︕

  48. 48 でも最終的に惨敗 orz

  49. 49 実際にモデルの学習を繰り返してわかったこと London loopをひたすら回した結果 • センターラインにびったり張り付いても速くない • 意外とフルスロットルでいける • 報酬関数は複雑なほど良いわけでは無い

    • 最終的にカリッカリにタイム短縮を狙うなら stepsやprogressの考慮が必要…︖ • さらにカリッカリにチューニングする場合はハイ パーパラメータの調整も⼊ってきそう
  50. 50 今後の⼤会に向けて

  51. 51 現在開催中のVirtual Circuit Kumo Torakku ⻑いホームストレートと連続低速コーナー より複雑な学習モデルが必要 speed設定が0.8〜8.0m/sに(以前は0.5〜5.0m/s)

  52. 52 傾向と対策 • 軽く学習回してみた感じ、流⽯にフルスロットル ⼀本では曲がりきれない • スピードのパターンが増える • 低速コーナーと⻑いストレートの両⽅対応しないと タイムが伸びない

    • ステアリングのパターンを減らして、スピードに関 する報酬を調整すると少しマシになった より多くの試⾏錯誤が必要
  53. 53 DeepRacerはお⾦が掛かる ぶっちゃけた話

  54. 54 必要なもの • 情報 • うまくいったパターン • うまくいかなかったパターン • 設計とレース結果以外の情報(ログの解析など)

    • 強化学習の知識 • (とはいえ)資⾦ • 所属企業の⽀援 • AWS利⽤料⾦以外で掛かる⾦銭⾯について (実機とかコースとか)
  55. 55 協⼒が必要 個⼈で戦うには限界がある オープンな情報と競り合いから より良い結果が⽣まれる ⽇本⼈からDeepRacer Leagueの 世界チャンピオンを︕

  56. 56 まとめ

  57. 57 まとめ DeepRacer League Virtual Circuitの概要 DeepRacerコンソールの操作フロー London Loopのハイライト London

    Loopに対するアプローチ 今後の⼤会に向けて協⼒が必要
  58. 58 DeepRacer 難しい…

  59. 59 でも DeepRacer 楽しい︕

  60. None