$30 off During Our Annual Pro Sale. View Details »

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

    View Slide

  2. 2
    本⽇のハッシュタグ
    #AWSDeepRacerJP

    View Slide

  3. 3
    ⾃⼰紹介
    貞松 政史 (サダマツ マサシ) @sady_nitro
    データインテグレーション部 (DI部) 開発チーム
    岡⼭オフィス勤務
    データ分析基盤開発
    某コーヒー関連
    SageMaker
    Lambda
    ⽒名
    所属
    近況
    好きなAWS
    サービス

    View Slide

  4. 4
    本セッションから得てほしいこと
    DeepRacer 楽しい︕

    View Slide

  5. 5
    本セッションから得てほしいこと
    l Deep Racer Virtual Circuitの概要
    l Virtual Circuitの実際の⼤会の流れ
    l Virtual Circuitに対するアプローチ
    今後の⼤会に取り組む為の⼿がかり

    View Slide

  6. 6
    本セッションで話さないこと
    強化学習の⼿法(アルゴリズム)についての詳細
    DeepRacerの実機に関する内容

    View Slide

  7. 7
    お品書き
    DeepRacer League Virtual Circuitの概要
    DeepRacerコンソールの操作フロー
    London Loop ⼤会のハイライト
    London Loopに対するアプローチ
    今後の⼤会に向けて
    1
    2
    3
    4
    5

    View Slide

  8. 8
    DeepRacer League
    Virtual Circuit の概要

    View Slide

  9. 9
    DeepRacer League Virtual Circuit

    View Slide

  10. 10
    DeepRacer League Virtual Circuitの概要
    • re:Invent 2019開催⽉まで、毎⽉開催
    • DeepRacerコンソール上で学習したモデルを
    そのままデプロイしてレースに参加
    • 上位10名にはDeepRacerの実機を進呈
    • 優勝者はre:Invent 2019に招待
    (イベント参加費、交通・宿泊費をAWSが負担)

    View Slide

  11. 11
    DeepRacerコンソールの
    操作フロー

    View Slide

  12. 12
    DeepRacerコンソール

    View Slide

  13. 13
    DeepRacerに対する強化学習の環境
    State (状態)
    DeepRacerのカメラ画像
    Action (⾏動)
    状態に対するエージェント
    (DeepRacer)の動作
    Reward (報酬)
    報酬関数で設定した動作の
    結果に対する報酬値

    View Slide

  14. 14
    DeepRacerコンソールを⽤いた開発の流れ
    必要なAWSリソースを作成
    学習モデルを作成・学習実⾏
    学習済みモデルの評価・デプロイ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  18. 18
    学習済みモデルを評価
    学習済みモデルで3〜5回トライアルを⾏う
    ⁻ Time : 1回のトライアルでかかった時間
    ⁻ Trial result : 100%ならコース1周完⾛

    View Slide

  19. 19
    DeepRacerのAction設定⽅法
    l ハンドルの操作⾓
    l スピード(m/s)
    →最⼤値と⾏動数(刻み幅)
    で設定

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  28. 28
    London Loopのハイライト

    View Slide

  29. 29
    London Loop
    London Loop

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  35. 35
    終盤

    View Slide

  36. 36
    ︕︕︕

    View Slide

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

    View Slide

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

    View Slide

  39. 39
    London Loopに対するアプローチ

    View Slide

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

    View Slide

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

    View Slide

  42. 42
    前半のアプローチ
    • とはいえちゃんと⾛りきれないと意味がない
    (デプロイしても記録なしになる)
    • センターラインに沿うような報酬の与え⽅
    • 緩いカーブが多いので、出来るだけ直線的に
    ⾛らせたい
    • 急ハンドルを抑制するような報酬の与え⽅
    • あとは速いスピードを維持するためにスピードは早
    めの⼀種類のみ(最初は4m/s→結局5m/sに)

    View Slide

  43. 43
    前半のアプローチ

    View Slide

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

    View Slide

  45. 45
    後半のアプローチ
    • フルスロットル(5m/s)でただ1周⾛り切れるだけ
    ではタイムが伸びない
    • 出来るだけロスのない⾛りが必要
    • CloudWatch Logを読み解く
    • 1周するのに○秒、○step掛かる
    • △秒で⾛るには、△Step以下で⾛りきる必要がある
    • progressとstepを使ってなんとかできないか

    View Slide

  46. 46
    後半のアプローチ

    View Slide

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

    View Slide

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

    View Slide

  49. 49
    実際にモデルの学習を繰り返してわかったこと
    London loopをひたすら回した結果
    • センターラインにびったり張り付いても速くない
    • 意外とフルスロットルでいける
    • 報酬関数は複雑なほど良いわけでは無い
    • 最終的にカリッカリにタイム短縮を狙うなら
    stepsやprogressの考慮が必要…︖
    • さらにカリッカリにチューニングする場合はハイ
    パーパラメータの調整も⼊ってきそう

    View Slide

  50. 50
    今後の⼤会に向けて

    View Slide

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

    View Slide

  52. 52
    傾向と対策
    • 軽く学習回してみた感じ、流⽯にフルスロットル
    ⼀本では曲がりきれない
    • スピードのパターンが増える
    • 低速コーナーと⻑いストレートの両⽅対応しないと
    タイムが伸びない
    • ステアリングのパターンを減らして、スピードに関
    する報酬を調整すると少しマシになった
    より多くの試⾏錯誤が必要

    View Slide

  53. 53
    DeepRacerはお⾦が掛かる
    ぶっちゃけた話

    View Slide

  54. 54
    必要なもの
    • 情報
    • うまくいったパターン
    • うまくいかなかったパターン
    • 設計とレース結果以外の情報(ログの解析など)
    • 強化学習の知識
    • (とはいえ)資⾦
    • 所属企業の⽀援
    • AWS利⽤料⾦以外で掛かる⾦銭⾯について
    (実機とかコースとか)

    View Slide

  55. 55
    協⼒が必要
    個⼈で戦うには限界がある
    オープンな情報と競り合いから
    より良い結果が⽣まれる
    ⽇本⼈からDeepRacer Leagueの
    世界チャンピオンを︕

    View Slide

  56. 56
    まとめ

    View Slide

  57. 57
    まとめ
    DeepRacer League Virtual Circuitの概要
    DeepRacerコンソールの操作フロー
    London Loopのハイライト
    London Loopに対するアプローチ
    今後の⼤会に向けて協⼒が必要

    View Slide

  58. 58
    DeepRacer 難しい…

    View Slide

  59. 59
    でも DeepRacer 楽しい︕

    View Slide

  60. View Slide