Save 37% off PRO during our Black Friday Sale! »

楽しみながら機械学習を学べる!DeepRacer入門

 楽しみながら機械学習を学べる!DeepRacer入門

6d161fe47f36ac295189c3b6a0db2a9a?s=128

MasahiroKawahara

September 18, 2019
Tweet

Transcript

  1. 1 楽しみながら機械学習を学べる︕ DeepRacer⼊⾨ 川原 征⼤

  2. スライドは後で⼊⼿することが出来ますので 発表中の内容をメモする必要はありません。 写真撮影をする場合は フラッシュ・シャッター⾳が出ないようにご配慮ください Attention

  3. 3 ⽬次 ü DeepRacerとは ü DeepRacer 各プロセス Ø 学習フェーズ Ø

    評価フェーズ Ø リーグ参戦 ü DeepRacer やってみた
  4. 4 ⾃⼰紹介 川原 征⼤ AWS事業本部 コンサルティング部 AWSエンジニア ü 職歴 Ø

    2017/04 SE会社 ⼊社 • 主にオンプレネットワーク • 少しAWS Ø 2019/06 クラスメソッド ⼊社 ü 好きなもの︓
  5. 5 DeepRacerとは

  6. 6 DeepRacer TV https://www.youtube.com/watch?v=JGMNk_HfruY

  7. 7 DeepRacerとは ü AWSが提供する機械学習の1サービス ü レーシングカーの⾃動⾛⾏を⽬指す ü 強化学習を楽しみながら習得できる https://aws.amazon.com/jp/deepracer/

  8. 8 DeepRacer のプロセス

  9. 9 1. 学習

  10. 10 2. 評価

  11. 11 3. リーグ

  12. 12 DeepRacerのプロセス https://dev.classmethod.jp/cloud/aws/relay_looking_back_aws-deepracer/

  13. 13 DeepRacerのプロセス https://dev.classmethod.jp/cloud/aws/relay_looking_back_aws-deepracer/ ・AWSマネコンからの GUI 操作 ・仮想サーキット上で⾞両を⾛らせる ・強化学習モデルをトレーニング

  14. 14 DeepRacerのプロセス https://dev.classmethod.jp/cloud/aws/relay_looking_back_aws-deepracer/ ・仮想環境上で評価 →結果を Jupyter Notebook等で分析 ・実環境マシンに学習モデルを転送 → ⾛らせてみる

  15. 15 DeepRacerのプロセス https://dev.classmethod.jp/cloud/aws/relay_looking_back_aws-deepracer/ ・仮想環境 → DeepRacer Virtual Circuit ・実環境 →

    AWS Summit → AWS re:Invent
  16. 16 学習フェーズ

  17. 17 DeepRacerで学ぶ強化学習

  18. 18 強化学習とは (wikipedia より) ü 強化学習とは、ある環境内におけるエージェントが、現在の状態を 観測し、取るべき⾏動を決定する問題を扱う機械学習の⼀種 ü エージェントは⾏動を選択することで報酬を得る ü

    強化学習は⼀連の⾏動を通じて報酬が最も多く得られるような⽅策 (policy)を学習する
  19. 19 強化学習とは (⽤語) ü DeepRacerにおけるエージェント(Agent) Ø レーシングカー

  20. 20 強化学習とは (⽤語) ü DeepRacerにおける環境(Environment) Ø サーキット

  21. 21 強化学習とは (⽤語) ü DeepRacerにおける状態(State) Ø カメラ画像

  22. 22 強化学習とは (⽤語) ü DeepRacerにおける⾏動(Action) Ø レーシングカーの⾏動 • Steering: 直進・右折・左折

    • Speed: 加速・減速
  23. 23 強化学習とは (⽤語) ü DeepRacerにおける報酬(Reward) Ø レーシングカーが取った⾏動の良さ • コースアウトせずに⾛れているか •

    速く⾛れているか
  24. 24 強化学習とは (再) ü 強化学習とは、ある環境内におけるエージェントが、現在の状態を観測し、取 るべき⾏動を決定する問題を扱う機械学習の⼀種 ü エージェントは⾏動を選択することで報酬を得る ü 強化学習は⼀連の⾏動を通じて報酬が最も多く得られるような⽅策(policy)を

    学習する
  25. 25 学習フェーズ (再)

  26. 26 学習フェーズですること ü 強化学習モデルの作成 1. 環境(サーキット) の設定 2. ⾏動空間(速度・ステアリング) の設定

    3. 報酬関数の設定 4. ハイパーパラメータ の設定 5. 学習時間の設定
  27. 27 学習中・・・ ü トレーニングの様⼦を確認できます

  28. 28 (補⾜) バックグラウンド AWSサービス https://www.youtube.com/watch?v=EUBYDkbgBrM

  29. 29 評価フェーズ

  30. 30 評価フェーズ ü トレーニングしたモデルを評価する Ø 仮想空間上で評価 • 後述 Ø 現実空間上で評価

    • 実機にモデルを転送 • 物理サーキット上で⾛らせてみる (引⽤) DNPオリジナル・コースによる「AWS DeepRacer GP powered by DNP」を初公開 https://www.dnp.co.jp/news/detail/1192345_1587.html
  31. 31 仮想空間上で評価︓⾛らせてみる ü モデル・サーキットを指定 ü 3〜5回 試⾏

  32. 32 仮想空間上で評価︓ログを分析

  33. 33 仮想空間上で評価︓ログを分析 ü トレーニングや試⾛のログは CloudWatchに保存

  34. 34 仮想空間上で評価︓ログを分析 ü ログを分析する⽅法 Ø CloudWatch Logs Insights Ø Python

    Ø Tableau Ø Jupyter Notebook Ø ...など
  35. 35 (分析例) CloudWatch Logs Insights Ø 各エピソードの⾛⾏結果表⽰ (コースアウト or 完⾛、タイム)

    Ø 完⾛率の表⽰ Ø CSV保存 → 分析ソフトウェア ...など DeepRacerのモデルの学習状況をCloudWatch Logs Insightsで確認する https://dev.classmethod.jp/machine-learning/deepracer-cwlogsinsights/
  36. 36 (分析例) Python DeepRacerの⾛⾏ログを Matplotlibで可視化する https://dev.classmethod.jp/server-side/python/deepracer-matplotlib-pandas/

  37. 37 (分析例) Tableau DeepRacerの⾛⾏ログをTableauで分析してみた https://dev.classmethod.jp/etc/analysis_sim_trace_log/

  38. 38 (分析例) Jupyter Notebook ü https://github.com/aws-samples/aws-deepracer-workshops Ø AWSが提供しているログ分析ツール AWS DeepRacerのログ分析ツールを使ってみた

    https://qiita.com/dnp-ayako/items/d4e1378bef45cd0994dd
  39. 39 リーグ参戦

  40. 40 DeepRacerリーグ概要 ü “世界初のグローバル⾃⾛型レーシングリーグ” ü 今は re:Invent 本戦に向けた予選中 Ø 仮想:

    バーチャル サーキット・リーグ Ø 実機: サミット サーキット・リーグ https://aws.amazon.com/jp/summits/tokyo-2019/deepracer-league-guide/ Now!!
  41. 41 バーチャル サーキット・リーグ ü ⽉替りで開催 ü トレーニングさせたモデルを提出 (Submit) する Ø

    5回試⾛。完⾛したベストタイムがリーダーボードに登録 Ø Submit は 30分に 1回 7⽉: Empire City Circuit 8⽉: Shanghai Sudu 今⽉(9⽉) : Cumulo Carerra
  42. 42 バーチャル サーキット・リーグ (画⾯)

  43. 43 サミット サーキット・リーグ ü 各 AWS Summitの現地で開催 【参加レポート】AWS DeepRacer リーグに参加してきました

    https://dev.classmethod.jp/cloud/awssummit2019-deepracer-league/
  44. 44 リーグの報酬 ü DeepRacer 賞 Ø 対象︓10位以内の⼊賞 Ø 賞品︓DeepRacer レーシングカー実機

    ü re:Invent 賞 Ø 対象︓1位 + α (※) Ø 賞品︓re:Invent リーグへの参戦権 • 参加費、交通費、宿泊費は AWS が負担︕ ※ 各サーキットを通じて所定の⽅法で評価された「ポイントゲッター」 https://aws.amazon.com/jp/summits/tokyo-2019/deepracer-league-guide/
  45. 45 やってみた

  46. 46 7⽉の仮想リーグに参戦

  47. 47 公式の Getting started をやる

  48. 48 Get started with reinforcement learning https://console.aws.amazon.com/deepracer/home?region=us-east-1#getStarted

  49. 49 モデルの作成

  50. 50 (再掲) 学習フェーズですること ü 強化学習モデルの作成 1. 環境(サーキット) の設定 2. ⾏動空間(速度・ステアリング)

    の設定 3. 報酬関数の設定 4. ハイパーパラメータ の設定 5. 学習時間の設定
  51. 51 環境 ü トレーニング⽤コースを選択

  52. 52 ⾏動空間 ü フィーリングで決定

  53. 53 報酬関数 ü ⼊⼒パラメータについて学ぶ Ø distance_from_center Ø steering_angle Ø speed

    ... など https://docs.aws.amazon.com/ja_jp/deepracer/latest/developerguide/deepracer-reward-function-input.html
  54. 54 報酬関数 ü 作成してみる

  55. 55 ハイパーパラメータ ü ???

  56. 56 ハイパーパラメータ ü 勉強会で⼤雑把に理解。とりあえずデフォルト設定で ← 1学習で使⽤するデータ量 ← 学習回数 ← 学習しやすさ

    ← ⾏動選択のランダムさ ←どれだけ将来のステップを考慮するか ←損失関数の選択。Huberの⽅が収束がいいらしい ←どれだけ経験を積んでから更新するか
  57. 57 学習時間 ü とりあえず 1時間

  58. 58 トレーニング開始

  59. 59 トレーニング中 ü ⾒ているだけで楽しい

  60. 60 モデル完成︕

  61. 61 トレーニング⇔評価 繰返しながら ひたすらサブミット

  62. 62 ⼀番輝いていたとき

  63. 63 過学習に苦しむ

  64. 64 過学習に苦しむ ← 直進するところを 左にコースアウトしてしまう

  65. 65 過学習に苦しむ ü 原因︓トレーニング/本番 コースの形状の違い

  66. 66 結果

  67. 67 13位で Finish

  68. 68 感想

  69. 69 感想 ü DeepRacer 楽しい︕ Ø ⾞の(⾃動)運転という親しみやすいお題 Ø 知らず知らずのうちに各専⾨⽤語が頭に⼊っていく ü

    分析で得られたスキルが多い Ø AWS (CloudWatch Logs Insights) Ø Python (pandas, matplotlib, JupyterNotebook) ü 機械学習を学ぶモチベーションができた Ø 現在勉強中・・・
  70. 70 まとめ

  71. 71 まとめ ü DeepRacerは楽しみながら強化学習を学べるコンテンツ ü 仮想/Summit リーグは報酬あり Ø 10位以内 ...

    実機レーシングカー Ø 1位 ... re:Invent (ラスベガス) 招待 ü 機械学習未経験者にこそオススメ Ø 実体験を通して⾃然と知識が⼊っていく Ø 機械学習に DeepDive するきっかけに
  72. 72 補⾜︓ほか参考資料

  73. 73 ほか参考資料 ü 料⾦・無料利⽤枠について Ø https://aws.amazon.com/jp/deepracer/pricing/ ü DevelopersIOの DeepRacer関連のブログ⼀覧 Ø

    https://dev.classmethod.jp/referencecat/aws-deepracer/ ü DeepRacer リーグのルール詳細 Ø https://aws.amazon.com/jp/summits/tokyo-2019/deepracer-league-guide/ ü AWS DeepRacer workshop Ø https://github.com/aws-samples/aws-deepracer- workshops/blob/master/Workshops/2019-AWSSummits- AWSDeepRacerService/Lab1/Readme-Japanese.md