Slide 1

Slide 1 text

DeepRacer同好会 第三回オフライン勉強会@岡山
 アイレット株式会社 甲斐
 AWS DeepRacerで
 楽しく遊ぶためのTips 20連発!


Slide 2

Slide 2 text

甲斐 甲
 ( かい こう )
 Qiita@ kai_kou
 twitter@ k_aik_ou
 自己紹介


Slide 3

Slide 3 text

甲
 斐
 甲
 自己紹介


Slide 4

Slide 4 text

アイレット株式会社 ( クラウドパック )
 事業戦略本部 技術開発セクション 大阪グループ
 AI、ブロックチェーンの調査・検証・開発 など
 システムエンジニア
 Python TypeScript C# Go Ruby etc...
 バックグラウンド
 小さなSESでエンジニア ( 4年 )
 フリーランスでエンジニア ( 8年 )
 事業会社でシステム部マネージャー ( 7年 )
  プレイングマネージャ 兼 サーバレス大好きっ子
 38歳、既婚、子供 3人 ( 高2、中2、小3 )
 自己紹介


Slide 5

Slide 5 text

自己紹介


Slide 6

Slide 6 text

本発表の目的


Slide 7

Slide 7 text

一人で試行錯誤するにはいろいろ 辛いから
 みんなで知見を共有したい!
 本発表の目的


Slide 8

Slide 8 text

本発表の目的
 なので、
 できる限り
 情報発信
 してます


Slide 9

Slide 9 text

本発表の目的
 みなさまも手段問わず
 知見の共有よろしくお願いします!


Slide 10

Slide 10 text

AWS DeepRacerで
 楽しく遊ぶためのTips 20連発!
 くらい!


Slide 11

Slide 11 text

基本的なこと


Slide 12

Slide 12 text

公式ドキュメントを読もう!
 
 強化学習とは?から、モデルのトレー ニング方法、物理的なトラックの作成 方法まで、ひととおり確認することが できます。
 (いまところ)日本語訳が英語版より古 いことはないですが、日本語訳が最 新情報に追随していないこともあるの で気をつけましょう。
 https://docs.aws.amazon.com/ja_jp/deepracer/latest/developerguide/what-is-deepracer.html 


Slide 13

Slide 13 text

参加条件やルールを知らなきゃ損を するかもです。
 例) 同タイムの場合はそのタイムを先 に出した人の勝利 など
 せーのさんがわかりやすく日本語で まとめてくれてます(感謝)
 オフィシャルルールを確認しよう!
 
 https://deepracer-jp.slack.com/archives/CEJ2P5YRF/p1558058672245400 


Slide 14

Slide 14 text

AWS DeepRacer コンソール


Slide 15

Slide 15 text

2つトレーニング、試走が実行されている とそれ以上は同時に実行できません。
 
 AWS サービスの制限をみても記載はあり ません。(2019/06/11時点)
 
 https://docs.aws.amazon.com/ja_jp/general/latest/g r/aws_service_limits.html 
 トレーニング/試走は同時に2つまで


Slide 16

Slide 16 text

AWSカスタマーサービスに問合せてみた
 
 
 > ご連絡いただいております AWS DeepRacer の同時トレーニング 数につきまして、現時点において、恐れ入りますが、緩和をすること ができかねてしまいます。
 
 
 oh...だそうです
 トレーニング/試走は同時に2つまで


Slide 17

Slide 17 text

DeepRacerコンソールでトレーニング するとコンソール上でReward graphや Simulation video streamで状況が確 認できます。
 が、Simulation video streamだけだと よくわからない。。。
 トレーニング中はAmazon RoboMakerで
 状況が確認できる


Slide 18

Slide 18 text

トレーニング中はAmazon RoboMakerで
 状況が確認できる
 【注意】ツールのアイコンをいじるとシミュレーション環境の設定を変更してしまう可能性があ るので、矢印のアイコンで視点変更するのにとどめておくのが無難


Slide 19

Slide 19 text

reward_functionでログ出力できる
 Amazon CloudWatchのログから確認でき ます。
 CloudWatch > ロググループ > /aws/robomaker/SimulationJobs > sim-xxxxxxxxxxxx/2019-(略)/SimulationA pplicationLogs
 
 sim-xxxはRoboMakerのIDで、DeepRacer コンソールだと確認できないので、実行日 時からあたりをつけます。(もしかしたらよい方 法があるのかも?)


Slide 20

Slide 20 text

強化学習


Slide 21

Slide 21 text

トレーニング状況がみえてしまうと、 もっと報酬設定を細かくしなきゃとかこ の設定だとだめかなって考えがち に。。。
 あれこれと手助けしたくなります(過保 護
 過保護にならずに見守ろう


Slide 22

Slide 22 text

過保護にならずに見守ろう
 https://aws.amazon.com/jp/blogs/news/racing-tips-from-aws-deepracer-league-winners-in-stockholm-and-aws -deepracer-tv/
 >第 1 位は 8.73 秒のタイムをたたき出し た、Jouini Luoma でした。彼は Cybercom でデータサイエンティストおよび AWS DeepRacer レーサー
 として勤務しています。
 >彼のアドバイスは何かというと、 「調整 はシンプルにとどめ、 過度に 複雑にしないこと」です。


Slide 23

Slide 23 text

AWS DeepRacer レーサー 
 
 個人的には
 AWS DeepRacer トレーナー
 って感じ(小並感


Slide 24

Slide 24 text

公式ドキュメントなどからAWS DeepRacer で使われているアルゴリズムの特性を 知った上で報酬設計しましょう。
 
 強化学習の特性を考えて報酬設計しよう
 https://docs.aws.amazon.com/ja_jp/deepracer/latest/developerguide/create-deepracer-project.html 


Slide 25

Slide 25 text

- モデルをトレーニングすることは、想定される報酬を最大化する関数を見つける、または学習 すること
 - 最適化されたモデルによって車両が最初から最後までトラックで走行するためにどのようなア クション (速度とステアリング角度のペア) を取れるかを規定
 - 高速なトレーニングパフォーマンスのための近位ポリシー最適化 (PPO) アルゴリズムのみが サポート
 - トレーニング強化学習モデルは反復プロセス
 - 一度にある環境でのエージェントのすべての重要な動作をカバーする報酬関数を定義するの は困難
 - 賢明な方法は、単純な報酬関数から始めて、段階的に強化していく方法
 強化学習の特性を考えて報酬設計しよう
 https://docs.aws.amazon.com/ja_jp/deepracer/latest/developerguide/create-deepracer-project.html 


Slide 26

Slide 26 text

Unity Machine Learning Agentsツールキッ ト (ML-Agents) にある
 ドキュメントが参考になります。
 
 報酬設計のポイント
 https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Learning-Environment-Best-Practices.md


Slide 27

Slide 27 text

- 学習の安定化のため与える報酬の大きさは1以下にすべき
 - 目的とする振る舞いを形成するためには負の値の報酬よりも正の値を与えた方が良い
 - 移動を行うタスクにおいては, 典型的に+0.1の小さい報酬を目的地に前進した場合に与える
 - エージェントがタスクを早く終わらせたい場合,タスクが完了するまで-0.05の報酬をペナルティ として与え続けるのが良い.この報酬設定を行う場合、エピソードの終了とタスクの完了は同時 に起こるべき
 - 大きすぎる負の値の報酬はエージェントがより良い報酬を得るために負の報酬を生じる行動 のようなことを行わないようになることもある。エージェントが負の報酬に対して過敏になってし まう (何も行動しない方がいいと学習してしまう感じ)
 
 報酬設計のポイント
 https://qiita.com/Alt_Shift_N/items/2c37fbb26d739b7f3046


Slide 28

Slide 28 text

報酬設計のポイント


Slide 29

Slide 29 text

報酬設計のポイント


Slide 30

Slide 30 text

AWS DeepRacerコンソールで 確認できるReward graph (報酬 グラフ) から、学習具合を感じと りましょう! (真顔
 報酬グラフを活用しよう


Slide 31

Slide 31 text

報酬グラフを活用しよう
 右肩上がりのままだからまだトレー ニングしてもいいかなとか
 横ばいで微妙かなぁとか


Slide 32

Slide 32 text

報酬グラフを活用しよう
 ある時点から下がってきてるぞとか ・・・
 正直よーわからん
 教えて詳しい人!


Slide 33

Slide 33 text

モデルのクローンを活用しよう
 https://docs.aws.amazon.com/ja_jp/deepracer/latest/developerguide/create-deepracer-project.html 
 1つの報酬関数で完結せずに、段階的に トレーニングするのがよいそうです。
 アクションは変更できません。
 
 - 一度にある環境でのエージェントのすべ ての重要な動作をカバーする報酬関数を 定義するのは困難
 - 賢明な方法は、単純な報酬関数から始 めて、段階的に強化していく方法


Slide 34

Slide 34 text

仮想サーキットのランキングで上位を狙う ならば、スピードはMAXのみで良かったで す。(05/31まで)
 6月開催のレース (Kumo) からスピード上 限がUPしました。(5 → 8 m/s)
 
 
 スピード最速でいけるものなのか現在お 試し中です。
 
 https://aws.amazon.com/jp/blogs/machine-learning/aws-deepracer-league-the-june-race-gets-underway-as-th e-first-virtual-circuit-champion-is-crowned/ 
 アクション設定でスピードを最速にしよう?


Slide 35

Slide 35 text

アクション設定でスピードを最速にしよう?
 >スピード最速でいけるものなのか現在お 試し中です。
 
 
 re:Invent 2018サーキットで8 m/s固定で 走らせたらスピンしました。


Slide 36

Slide 36 text

ハイパーパラメータは変更しなくても
 50位圏内に入れた(London Loop)
 https://qiita.com/dora-gt/items/18440bea7aa0fc8aa17f 
 いまのところのハイパーパラメータは初期 設定のままでなんとかなっています。
 おそらく報酬関数の実装とトレーニングで タイムに限界が来たら学習率を高めるの に手を入れる感じでしょうか?
 
 教えてガチ勢の皆さん!


Slide 37

Slide 37 text

仮想サーキット


Slide 38

Slide 38 text

トレーニング完了後の試走で全周完走で きない!Submitできない!
 じゃなくても今のところ大丈夫です!
 LondonLoopだと2周連続で完走すれば ラップタイムが記録されるルールでした。 Kumo Torakkuは1周完走すればOKみた いです。
 同一モデルでもラップタイムが記録される までは何回でもSubmitできます(できまし た)。
 
 
 100%完走にこだわらないでSubmitしよう
 https://deepracer-jp.slack.com/archives/CEJ2P5YRF/p1558058672245400 


Slide 39

Slide 39 text

同一モデルでもラップタイムが記録される までは何回でもSubmitできます(できまし た)。ただし・・・
 1度仮想サーキットにSubmitしてラップタイ ムが記録されたモデルは再Submitできな い。。。
 
 100%完走にこだわらないでSubmitしよう
 じゃあ・・・
 
 
 Submitしたモデルをクローンして5分トレー ニングすれば別モデルとみなされる?(未 確認)


Slide 40

Slide 40 text

トレーニング後に試走できますが、必ずし も同じような完走率、タイムにはなりませ ん(でした)。
 際どい結果になった場合は再度、試走し なおすのもありです。
 試走結果は変動する


Slide 41

Slide 41 text

仮想サーキットのレーサー名は変更できない
 仮想サーキットへモデルをSubmitする際 に、初回のみレーサー名の入力ができま す。
 初回以降は変更不可で、開催される全 レースで共通のレーサー名になるので気 をつけましょう。


Slide 42

Slide 42 text

失敗談など


Slide 43

Slide 43 text

コストに気をつけよう
 AWS DeepRacerコンソールを利用するに はコストが発生しませんが、
 裏でAmazon SageMakerやAmazon RoboMakerなどが動いており、そちらには しっかりとコストが発生します。
 
 2〜3時間のトレーニングを8回程度で$50 くらい。
 
 とてもリッチな大人のお遊びです。


Slide 44

Slide 44 text

無料利用枠に気をつけよう
 https://aws.amazon.com/jp/deepracer/pricing/ 
 Amazon SageMakerやAmazon RoboMaker には無料利用枠がありますが、
 「トライアル」
 「12 か月間無料」
 となるため注意が必要です。
 


Slide 45

Slide 45 text

- 複数アカウント作成することはOK
 - 制限回避や無料提供の追加特典を得 ようとして作成するのは利用規約違反と なり標準料金が課金される可能性があり ます
 「無料利用枠過ぎたらアカウント作成しな おせば(゚д゚)ウマー」
 って思っちゃいますよね。
 残念ながらそうはAWSが使わせない。そう は問屋が卸さない。でした。
 「複数アカウント作成して
  無料枠ふやすぜ」はNG
 https://qiita.com/hnw/items/96820cddcef4573403a8 


Slide 46

Slide 46 text

利用規約違反
 ダメ!ぜったい!


Slide 47

Slide 47 text

パラメータ仕様の読み違いなどで、想定し ていた報酬の実装になっていなくても、ト レーニングされます。(Pythonの実装エ ラーはコンソール上でわかる。)
 報酬グラフや試走結果をみてもそれっぽ いのでやっかい。。。
 報酬の実装をミスしても学習される


Slide 48

Slide 48 text

報酬の実装をミスしても学習される


Slide 49

Slide 49 text

報酬の実装をミスしても学習される
 https://deepracer-jp.slack.com/archives/CEJ2P5YRF/p1558624833264900 
 うまくいくこともあるっぽい
 (棒読み


Slide 50

Slide 50 text

トレーニング中に引きこもることがある
 \ はたらきたくなーい /
 トレーニングできてなくても
 課金されますorz


Slide 51

Slide 51 text

コストに気をつけよう#2
 5月利用がおおよそ
 40トレーニング x 4時間 = 160時間
 $473 ($113クレジット適用)


Slide 52

Slide 52 text

コストに気をつけよう#2
 6月利用 (6/11時点)がおおよそ
 9トレーニング x 4時間 = 36時間
 $194


Slide 53

Slide 53 text

コストに気をつけよう#2
 5月まではNATGateway利用分が一部クレジット適用されてた?
 6月も請求時点で適用される?


Slide 54

Slide 54 text

楽しそうなの


Slide 55

Slide 55 text

Cloudwatchのログを解析し ていい感じに視覚化してくれ ます。
 
 ログ解析およびヒートマップ視覚化ツール


Slide 56

Slide 56 text

ログ解析およびヒートマップ視覚化ツール


Slide 57

Slide 57 text

ログ解析およびヒートマップ視覚化ツール


Slide 58

Slide 58 text

最後に


Slide 59

Slide 59 text

勉強会に参加しよう!!!
 https://connpass.com/event/132589/ 
 わからないこと、できたこと、 うまくいかないこと、トレーニ ングコストが高いって愚痴、 などいろいろと共有してNo.1 を目指しましょう^^
 


Slide 60

Slide 60 text

まとめ


Slide 61

Slide 61 text

まとめ


Slide 62

Slide 62 text

ありがとうございました!