Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS DeepRacerで楽しく遊ぶためのTips 20連発!
Search
甲斐 甲
June 15, 2019
Technology
1
260
AWS DeepRacerで楽しく遊ぶためのTips 20連発!
甲斐 甲
June 15, 2019
Tweet
Share
More Decks by 甲斐 甲
See All by 甲斐 甲
面接される/する両視点からみるエンジニア面接 / Interviewing Engineers from both sides of the fence
kaikou
1
1.8k
Amazon Managed Blockchain を使ってみた / tried using Amazon Managed Blockchain
kaikou
1
1.1k
Other Decks in Technology
See All in Technology
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
200
Server-Side Engineer of LINE Sukimani
lycorp_recruit_jp
0
410
C++26 エラー性動作
faithandbrave
2
830
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
580
DevFest 2024 Incheon / Songdo - Compose UI 조합 심화
wisemuji
0
180
ガバナンスを支える新サービス / New Services to Support Governance
sejima1105
0
230
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
120
pg_bigmをRustで実装する(第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
shinyakato_
0
120
非機能品質を作り込むための実践アーキテクチャ
knih
5
1.7k
Working as a Server-side Engineer at LY Corporation
lycorp_recruit_jp
0
420
Web APIをなぜつくるのか
mikanichinose
0
150
プロダクト開発を加速させるためのQA文化の築き方 / How to build QA culture to accelerate product development
mii3king
1
300
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Why Our Code Smells
bkeepers
PRO
335
57k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
The Invisible Side of Design
smashingmag
299
50k
GitHub's CSS Performance
jonrohan
1031
460k
Unsuck your backbone
ammeep
669
57k
Scaling GitHub
holman
459
140k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Measuring & Analyzing Core Web Vitals
bluesmoon
5
180
It's Worth the Effort
3n
183
28k
Transcript
DeepRacer同好会 第三回オフライン勉強会@岡山 アイレット株式会社 甲斐 AWS DeepRacerで 楽しく遊ぶためのTips 20連発!
甲斐 甲 ( かい こう ) Qiita@ kai_kou twitter@ k_aik_ou 自己紹介
甲 斐 甲 自己紹介
アイレット株式会社 ( クラウドパック ) 事業戦略本部 技術開発セクション 大阪グループ AI、ブロックチェーンの調査・検証・開発 など システムエンジニア
Python TypeScript C# Go Ruby etc... バックグラウンド 小さなSESでエンジニア ( 4年 ) フリーランスでエンジニア ( 8年 ) 事業会社でシステム部マネージャー ( 7年 ) プレイングマネージャ 兼 サーバレス大好きっ子 38歳、既婚、子供 3人 ( 高2、中2、小3 ) 自己紹介
自己紹介
本発表の目的
一人で試行錯誤するにはいろいろ 辛いから みんなで知見を共有したい! 本発表の目的
本発表の目的 なので、 できる限り 情報発信 してます
本発表の目的 みなさまも手段問わず 知見の共有よろしくお願いします!
AWS DeepRacerで 楽しく遊ぶためのTips 20連発! くらい!
基本的なこと
公式ドキュメントを読もう! 強化学習とは?から、モデルのトレー ニング方法、物理的なトラックの作成 方法まで、ひととおり確認することが できます。 (いまところ)日本語訳が英語版より古 いことはないですが、日本語訳が最 新情報に追随していないこともあるの で気をつけましょう。
https://docs.aws.amazon.com/ja_jp/deepracer/latest/developerguide/what-is-deepracer.html
参加条件やルールを知らなきゃ損を するかもです。 例) 同タイムの場合はそのタイムを先 に出した人の勝利 など せーのさんがわかりやすく日本語で まとめてくれてます(感謝) オフィシャルルールを確認しよう! https://deepracer-jp.slack.com/archives/CEJ2P5YRF/p1558058672245400
AWS DeepRacer コンソール
2つトレーニング、試走が実行されている とそれ以上は同時に実行できません。 AWS サービスの制限をみても記載はあり ません。(2019/06/11時点) https://docs.aws.amazon.com/ja_jp/general/latest/g r/aws_service_limits.html
トレーニング/試走は同時に2つまで
AWSカスタマーサービスに問合せてみた > ご連絡いただいております AWS DeepRacer の同時トレーニング 数につきまして、現時点において、恐れ入りますが、緩和をすること ができかねてしまいます。
oh...だそうです トレーニング/試走は同時に2つまで
DeepRacerコンソールでトレーニング するとコンソール上でReward graphや Simulation video streamで状況が確 認できます。 が、Simulation video streamだけだと
よくわからない。。。 トレーニング中はAmazon RoboMakerで 状況が確認できる
トレーニング中はAmazon RoboMakerで 状況が確認できる 【注意】ツールのアイコンをいじるとシミュレーション環境の設定を変更してしまう可能性があ るので、矢印のアイコンで視点変更するのにとどめておくのが無難
reward_functionでログ出力できる Amazon CloudWatchのログから確認でき ます。 CloudWatch > ロググループ > /aws/robomaker/SimulationJobs >
sim-xxxxxxxxxxxx/2019-(略)/SimulationA pplicationLogs sim-xxxはRoboMakerのIDで、DeepRacer コンソールだと確認できないので、実行日 時からあたりをつけます。(もしかしたらよい方 法があるのかも?)
強化学習
トレーニング状況がみえてしまうと、 もっと報酬設定を細かくしなきゃとかこ の設定だとだめかなって考えがち に。。。 あれこれと手助けしたくなります(過保 護 過保護にならずに見守ろう
過保護にならずに見守ろう 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 レーサー として勤務しています。 >彼のアドバイスは何かというと、 「調整 はシンプルにとどめ、 過度に 複雑にしないこと」です。
AWS DeepRacer レーサー 個人的には AWS DeepRacer トレーナー って感じ(小並感
公式ドキュメントなどからAWS DeepRacer で使われているアルゴリズムの特性を 知った上で報酬設計しましょう。 強化学習の特性を考えて報酬設計しよう https://docs.aws.amazon.com/ja_jp/deepracer/latest/developerguide/create-deepracer-project.html
- モデルをトレーニングすることは、想定される報酬を最大化する関数を見つける、または学習 すること - 最適化されたモデルによって車両が最初から最後までトラックで走行するためにどのようなア クション (速度とステアリング角度のペア) を取れるかを規定 - 高速なトレーニングパフォーマンスのための近位ポリシー最適化
(PPO) アルゴリズムのみが サポート - トレーニング強化学習モデルは反復プロセス - 一度にある環境でのエージェントのすべての重要な動作をカバーする報酬関数を定義するの は困難 - 賢明な方法は、単純な報酬関数から始めて、段階的に強化していく方法 強化学習の特性を考えて報酬設計しよう https://docs.aws.amazon.com/ja_jp/deepracer/latest/developerguide/create-deepracer-project.html
Unity Machine Learning Agentsツールキッ ト (ML-Agents) にある ドキュメントが参考になります。 報酬設計のポイント
https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Learning-Environment-Best-Practices.md
- 学習の安定化のため与える報酬の大きさは1以下にすべき - 目的とする振る舞いを形成するためには負の値の報酬よりも正の値を与えた方が良い - 移動を行うタスクにおいては, 典型的に+0.1の小さい報酬を目的地に前進した場合に与える - エージェントがタスクを早く終わらせたい場合,タスクが完了するまで-0.05の報酬をペナルティ として与え続けるのが良い.この報酬設定を行う場合、エピソードの終了とタスクの完了は同時
に起こるべき - 大きすぎる負の値の報酬はエージェントがより良い報酬を得るために負の報酬を生じる行動 のようなことを行わないようになることもある。エージェントが負の報酬に対して過敏になってし まう (何も行動しない方がいいと学習してしまう感じ) 報酬設計のポイント https://qiita.com/Alt_Shift_N/items/2c37fbb26d739b7f3046
報酬設計のポイント
報酬設計のポイント
AWS DeepRacerコンソールで 確認できるReward graph (報酬 グラフ) から、学習具合を感じと りましょう! (真顔 報酬グラフを活用しよう
報酬グラフを活用しよう 右肩上がりのままだからまだトレー ニングしてもいいかなとか 横ばいで微妙かなぁとか
報酬グラフを活用しよう ある時点から下がってきてるぞとか ・・・ 正直よーわからん 教えて詳しい人!
モデルのクローンを活用しよう https://docs.aws.amazon.com/ja_jp/deepracer/latest/developerguide/create-deepracer-project.html 1つの報酬関数で完結せずに、段階的に トレーニングするのがよいそうです。 アクションは変更できません。 - 一度にある環境でのエージェントのすべ ての重要な動作をカバーする報酬関数を
定義するのは困難 - 賢明な方法は、単純な報酬関数から始 めて、段階的に強化していく方法
仮想サーキットのランキングで上位を狙う ならば、スピードは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/ アクション設定でスピードを最速にしよう?
アクション設定でスピードを最速にしよう? >スピード最速でいけるものなのか現在お 試し中です。 re:Invent 2018サーキットで8 m/s固定で 走らせたらスピンしました。
ハイパーパラメータは変更しなくても 50位圏内に入れた(London Loop) https://qiita.com/dora-gt/items/18440bea7aa0fc8aa17f いまのところのハイパーパラメータは初期 設定のままでなんとかなっています。 おそらく報酬関数の実装とトレーニングで タイムに限界が来たら学習率を高めるの に手を入れる感じでしょうか?
教えてガチ勢の皆さん!
仮想サーキット
トレーニング完了後の試走で全周完走で きない!Submitできない! じゃなくても今のところ大丈夫です! LondonLoopだと2周連続で完走すれば ラップタイムが記録されるルールでした。 Kumo Torakkuは1周完走すればOKみた いです。 同一モデルでもラップタイムが記録される までは何回でもSubmitできます(できまし
た)。 100%完走にこだわらないでSubmitしよう https://deepracer-jp.slack.com/archives/CEJ2P5YRF/p1558058672245400
同一モデルでもラップタイムが記録される までは何回でもSubmitできます(できまし た)。ただし・・・ 1度仮想サーキットにSubmitしてラップタイ ムが記録されたモデルは再Submitできな い。。。 100%完走にこだわらないでSubmitしよう じゃあ・・・
Submitしたモデルをクローンして5分トレー ニングすれば別モデルとみなされる?(未 確認)
トレーニング後に試走できますが、必ずし も同じような完走率、タイムにはなりませ ん(でした)。 際どい結果になった場合は再度、試走し なおすのもありです。 試走結果は変動する
仮想サーキットのレーサー名は変更できない 仮想サーキットへモデルをSubmitする際 に、初回のみレーサー名の入力ができま す。 初回以降は変更不可で、開催される全 レースで共通のレーサー名になるので気 をつけましょう。
失敗談など
コストに気をつけよう AWS DeepRacerコンソールを利用するに はコストが発生しませんが、 裏でAmazon SageMakerやAmazon RoboMakerなどが動いており、そちらには しっかりとコストが発生します。 2〜3時間のトレーニングを8回程度で$50
くらい。 とてもリッチな大人のお遊びです。
無料利用枠に気をつけよう https://aws.amazon.com/jp/deepracer/pricing/ Amazon SageMakerやAmazon RoboMaker には無料利用枠がありますが、 「トライアル」 「12 か月間無料」
となるため注意が必要です。
- 複数アカウント作成することはOK - 制限回避や無料提供の追加特典を得 ようとして作成するのは利用規約違反と なり標準料金が課金される可能性があり ます 「無料利用枠過ぎたらアカウント作成しな おせば(゚д゚)ウマー」 って思っちゃいますよね。
残念ながらそうはAWSが使わせない。そう は問屋が卸さない。でした。 「複数アカウント作成して 無料枠ふやすぜ」はNG https://qiita.com/hnw/items/96820cddcef4573403a8
利用規約違反 ダメ!ぜったい!
パラメータ仕様の読み違いなどで、想定し ていた報酬の実装になっていなくても、ト レーニングされます。(Pythonの実装エ ラーはコンソール上でわかる。) 報酬グラフや試走結果をみてもそれっぽ いのでやっかい。。。 報酬の実装をミスしても学習される
報酬の実装をミスしても学習される
報酬の実装をミスしても学習される https://deepracer-jp.slack.com/archives/CEJ2P5YRF/p1558624833264900 うまくいくこともあるっぽい (棒読み
トレーニング中に引きこもることがある \ はたらきたくなーい / トレーニングできてなくても 課金されますorz
コストに気をつけよう#2 5月利用がおおよそ 40トレーニング x 4時間 = 160時間 $473 ($113クレジット適用)
コストに気をつけよう#2 6月利用 (6/11時点)がおおよそ 9トレーニング x 4時間 = 36時間 $194
コストに気をつけよう#2 5月まではNATGateway利用分が一部クレジット適用されてた? 6月も請求時点で適用される?
楽しそうなの
Cloudwatchのログを解析し ていい感じに視覚化してくれ ます。 ログ解析およびヒートマップ視覚化ツール
ログ解析およびヒートマップ視覚化ツール
ログ解析およびヒートマップ視覚化ツール
最後に
勉強会に参加しよう!!! https://connpass.com/event/132589/ わからないこと、できたこと、 うまくいかないこと、トレーニ ングコストが高いって愚痴、 などいろいろと共有してNo.1 を目指しましょう^^
まとめ
まとめ
ありがとうございました!