catch-img

祝!DeepRacerで初1位になりました~re:Invent2019~

こんにちは!
今年ももう残すところ数日となりましたが、皆さまいかがお過ごしでしょうか。
ラーニングサービス本部 テクニカルトレーニング 第1部の山下です。
今年の最後に一番嬉しかったことについて書きます。

 

deepracer2019_022_1

AWS re:Invent 2019 ARIA会場 The QuadのAWS DeepRacerサーキットでのタイムトライアルで3日目の瞬間1位になりました!

ものすごく嬉しかったので、ここまでの軌跡とともに、皆さまに報告いたします。

目次[非表示]

  1. 1. AWS re:Inventとは
  2. 2. AWS DeepRacerとは
  3. 3. 2019/6/14 初めてのシミュレーション
  4. 4. 2019/6/30 Kumo Torakku 初めてのバーチャルサーキット
  5. 5. 2019/7/1 Empire City Circuit
  6. 6. 2019/8/14 Shanghai Sudu
  7. 7. 2019/9/3 Cumulo Carerra
  8. 8. 2019/10/1 Toronto Turnpike
  9. 9. 2019/11/2 JAWS Festa 2019 Sapporo
  10. 10. 2019/11/5 Champinship Cup Warm-up
  11. 11. 2019/12/5 re:Invent 2019
  12. 12. まとめとご参考情報(コストと関数)
  13. 13. トレノケートのAWS認定トレーニング

 

AWS re:Inventとは

http://reinvent.awseventsjapan.com/

AWS(Amazon Web Service)が年に1回開催している技術カンファレンスです。
2019年は12月1日から6日の期間でラスベガスの複数のホテルを展開して開催されました。
4回の基調講演3,000を超えるセッションパートナー展示ブースハンズオンがあり、夜な夜なパーティーや、ラストナイトにはre:Playという盛大な打ち上げイベントもありました。
参加者は全世界から65,000名を超え、日本からも1,700名を超える参加者だったとのことです。

私は普段AWS Authorized InstructorとしてAWS認定トレーニングコースを担当している関係もあり、re:Inventに参加いたしました。
参加レポートは別記事でお知らせします。

AWS DeepRacerとは

https://aws.amazon.com/jp/deepracer/

強化学習を実践的に学ぶためのサービスです。

deepracer2019_022_2

1年前のAWS re:Invent 2018で発表された強化学習で完全自走する1/18スケールカーです。
(ラジコンと表現される方もいらっしゃるようなのですが、走る時は操作しませんのでラジコンだと意味が違ってきます。)

車自体のOSはubuntuで前面のカメラに映った車線などを判断して、事前に学習した走り方で走ろうとします。
これはコースを学習するという意味ではなく、車線などいくつかの条件に対して自分がどのように走るべきかを学習しているという意味です。
この学習のためにクラウド上のコースをシミュレーターを使ってトレーニングをします。
トレーニングではPython報酬関数を使って、いかにポイントを与えるかを定義していきます。
そしてシミュレーターのふるまいに対して報酬を与えたり減らしたりします。

簡単に言うと、素敵な走り方をしたら褒めます。
よくない走り方をしたらあまり褒めないか、一切褒めません。
怒ったりはしません。
怒るやり方もあるかもしれませんが、私は知りませんし、知りたくもありません。

そうして生まれたモデルをダウンロードして、実機であるDeepRacerレーシングカーにUSB経由でインストールして、実際のコースを走らせてタイムトライアルをします。

私はAWS re:Invent 2018の基調講演で出会って、そして帰国後のAWS Summit 2018 Tokyoでとにかく触ってみる、というところからスタートしました。

2019/6/14 初めてのシミュレーション

AWS Summit Tokyo 2019開催の幕張近くの宿泊していたホテルで、ようやく初めてのシミュレーションを開始しました。

deepracer2019_022_3

AWS Summit で開催されていたハンズオンにも参加できなく、調べたわけでもなく完全に独学というか、やってみたというだけのレベルでやってみてました。
多分、このときって本当に何もわかってなくてこの画像を見る限り、もともとあるモデルでEvaluationしてみただけですね。
Evaluationはその名の通り、そのモデルをトラックで走らせてみたらどうなるかを評価するのがEvaluationです。
ですので、何度やってもなんの学習にもならないんですね。

この後に開催された6月27日のAWS Summit Osakaでようやくハンズオンに参加してモデルの作り方を学びました。

2019/6/30 Kumo Torakku 初めてのバーチャルサーキット

バーチャルサーキットというものが、毎月開催されているということを聞いて、とりあえず6月のバーチャルサーキットにエントリしてみました。

自分が生み出したモデルを選択して開催中のサーキットに送り込むか、開催中のサーキットを選択してエントリアクションからモデルを選択するか、どちらからもサブミットできます。
エントリにサブミットした後は、少し待つと走り終わって結果が表示されます。

deepracer2019_022_4

最初の平均ラップは39秒台でした。
553エントリ中260位でした。

6月のトラックはkumo Torakku という名前で日本をイメージしているそうです。
モデルのトレーニングコースにも、少し違うのですが同じような特徴をもったKumo Torakku があります。
トレーニング済みのモデルを選択して、アクションメニューからクローンを実行して、報酬関数を考え直して、そしてKumo Torakku を選択して2時間トレーニングしてみました。

そして生まれ変わったモデルでもう一度エントリです。

deepracer2019_022_5

ラップが21秒台にまで縮みました。
順位も124位です。
この時点でエントリ総数も増えて572位でした。

報酬関数で色々試してみることで効果が出ました!
これ以上やるにはなかなかコストがかかりそうでしたので、今月はこれぐらいにしておいてやろうと、6月のトライは終了です。

2019/7/1 Empire City Circuit

翌日の7月1日にEmpire Cityという新しいサーキットがオープンしました。
早速Kumo Torakkuで21秒台を出したモデルをそのままエントリしてみました。

deepracer2019_022_6

まだ、5エントリだけでしたので、4位です!
でも36秒台です。
こんなラップで順位をキープできるはずもありません。

今回もEmpire Cityのモデルトレーニング用コースも出来てましたので、モデルのクローンを作成して、1時間トレーニングしてから、再びエントリしてみました。

deepracer2019_022_7

ラップは4秒しか縮まりませんでした。
エントリも倍に増えて、ランキングは2つ下がりました。
やはり報酬関数を見直さないとです。

もう一度クローンを作って、報酬関数を見直して2時間ほどトレーニングしました。
そして翌朝エントリです。

deepracer2019_022_8

結果は、25秒台で7秒縮まりました。
まずまずです。
ここから毎月バーチャルサーキットに参加することが、私の月課になりました。

2019/8/14 Shanghai Sudu

月課と言いつつ、8月は完全に月初に忘れてましたので、月中で参戦です。
いつものように、今月のサーキットでモデルをトレーニングして、そしてエントリです。

deepracer2019_022_9

初の20秒台ラップが出ました。
でも20秒ですと、順位は698エントリ中233位なんですね。
上位3割にも入れないんですよね。

2019/9/3 Cumulo Carerra

9月からは覚えてましたので月初にトライしました。

deepracer2019_022_10

22秒台です。
薄々思い始めたのは、報酬関数やトレーニング結果のログもちゃんと向き合って分析して、試さないと、一辺倒なやり方を続けていても、10秒台の壁は超えられないんじゃないか、と。
でも、この時点では注力するコストも時間も自分の中で、優先度をあげていなかったので、取り組みませんでした。

2019/10/1 Toronto Turnpike

いつもと同じく、先月終わりのモデルからクローンを作成して、新コースでトレーニングしてエントリしました。

deepracer2019_022_11

21秒台でした。
でもこの片手間でやれるやり方で、当面はやり続けます。

2019/11/2 JAWS Festa 2019 Sapporo

AWS DeepRacerに関しては、どこか記録するルーティンワークになりかけていたこの頃、JAWS-UG(Japan AWS User Group)コミュニティのお祭り、JAWS Festa 2019 Sapporoが札幌で開催されました。

弊社トレノケートも企業サポーターとして参加したり、私個人も当日スタッフとして参加していましたので、現地へ向かいました。
私が手伝うメインイベントは、DeepRacer特設サーキットの設営と運営です。

deepracer2019_022_12

ビニールのDeepRacerサーキットのシートを敷いて、まわりに壁を作ります。
壁が必要なのは、DeepRacerはカメラに映った画像で判断しているので、コースの外が映ってしまうと、誤判断をしてしまう可能性があるためだそうです。

deepracer2019_022_13

ほぼ出来てきました。
参加者の方が走らせるまで少し時間がありました。

「ん?これはもしや自分のモデルを実機で走らせてみるチャンスなんでは?」
と思い、AWSJさんに恐る恐る聞いてみたところ、ご快諾いただきました!

マネジメントコンソールのDeepRacerモデル一覧から、10月のバーチャルサーキットで走らせたモデルを選択して、[Download Model]メニューからダウンロードします。
AWSJさんにお借りしたUSBのmodelディレクトリに、ダウンロードした圧縮ファイルを保存してAWSJさんに渡します。
そのUSBをDeepRacer実機に接続してインストールしてもらいます。
走らせるのはすごく簡単で、タブレットからの操作はスピードをあげたりさげたりするだけです。
基本的には上げ下げは、マシンとコースの状態を見ながら調整するだけで、カーブで下げたり直線で上げたりとするものではないようです。

" data-width="" data-height="" data-responsive-type="unset">

走らせてみましたところ、コースをはみ出さないように、一生懸命走るのですね。
なんて可愛いのでしょうか。
なんと健気なのでしょうか。
これまで数ヶ月、毎月トレーニングしてきてよかったなあと思った瞬間でした。

2019/11/5 Champinship Cup Warm-up

Festaから帰ってきてバーチャルサーキットにまた勤しみます。
来月はいよいよre:Inventということで、バーチャルサーキットもチャンピオンシップにちなんだコースになっているようです。

deepracer2019_022_14

27秒台です。
早くはないですが、実機でも走った姿を見てるので、ちゃんと走ってくれただけで、もはや記録さえも微笑ましく見えてきます。
相変わらずかわいいやつです。

2019/12/5 re:Invent 2019

12/1からre:Invent 2019に参加しました。
12/5の朝の基調講演でDeepRacerチャンピオンシップが開催されて、DNPさんがワンツーフィニッシュされました。

deepracer2019_022_15

同じ日本企業として、誇らしかったです、眩しかったです。

この日は、メイン会場のベネチアンで開催されているExpoという展示会場と、アリアで開催されているQuadという展示会場が最終日でした。
Expoはすでに何回か行ってたので、Quadも各ブースをまわろうと思って向かいました。

アリアのQuadに到着すると、なんとそこにはDeepRacerのタイムトライアルコースがありました。
もちろん調べたらすぐにわかる情報なんでしょうけど、ろくに調べずにいきあたりばったりでQuadに来た私には青天の霹靂でした。

deepracer2019_022_16

チャンピオンシップの予選が行われた各国のSummitに設置されていたのと同じ本格的なサーキットコースです。
逸る気持ちを抑えながら受付のスタッフに「I have my model」と告げました。
USBを受け取り、持っていたMacbookでマネジメントコンソールにサインインし、直近のDeepRacerモデルをダウンロードします。
USBのmodelディレクトリに格納してスタッフに渡します。
制限時間内は何回でもトライアルができるようです。
そして最速ラップが記録されるようです。
このときの自分はあまり期待していなくて、これで「本場で走らせてきました」「公式コースでコースアウトせずに完走しました」と報告できる、という安堵感に包まれていました。

" data-width="" data-height="" data-responsive-type="unset">

札幌と同じようにラスベガスでも健気に走ってくれます。
札幌と少し違ったのは攻めているように見えました。
特に最初のヘアピンで遠心力さえ生み出しながらコースアウトせずにエッジを効かせたコーナリングをしているように見えるのです。
最終コーナーでコースアウトすることは多かったのですが、最初のヘアピンの感じを見ている限り、最終コーナーでも入り方(そのときカメラが認識している風景)によっては、ちゃんと曲がってくれるんじゃないかと思い、スピードは緩めませんでした。

そして、制限時間が訪れて、結果発表です。

観戦していたところから目の前のLeader boardに表示されます。
見てると自動スクロールして、順位が30位ぐらいまで一気に下がっていきます。
そしてこれ以上下がらないというところまで下がりました。
「ああ、最下位かあ」
そう思った瞬間、次は上にスクロールしだして、一番上まで上がりました。
1位に「yamashita-trainocate」の文字が。
そしてスタッフのみなさんから「You are wineer!!」の声と拍手が。

deepracer2019_022_17


どうも私はよくわからないことが起こった時は、そこから逃げ出す節があるようで、ぶつぶつ「Thank you」と言いながらその場をいったん離れました。
そして離れた場所からiPhoneのカメラの拡大を使ってちゃんと見てみます。

deepracer2019_022_18

確かに自分の名前があります!
そしてラップは11秒台
どんなバーチャルコースでも20秒台を切れなかったのに。
小さい声で何度も何度も「やった」「やった」「やった」「やった」って呪文のように繰り返してました。
本当に嬉しかったです。

この記録を出したのが11:30頃で、Quad終了が16:00でした。
16:00までにこの記録が守られたのか破られたのかは確認してないのでどうかはわかりませんが、これが一瞬であったとしても、本場ラスベガスで1位になれたことはDeepRacerをやっていく上で大きな励みになりました。

まとめとご参考情報(コストと関数)

なんでも諦めずに続けていれば、いいことありますね!
少し思ったことは、強化学習なので、1つのコースで長時間学習させるよりも、多くのコースで学習したほうが応用の効くモデルになるんじゃないかということです。
リアルなコースはゴミがあったり、スタッフさんの足もあったり、有志で作ったコースではしわがあったり、壁がなかったりも。
そういうところでも応用が効くほうがきっと楽しいんだろうなあと思います。

コストは、私のやり方(月に1回2時間のトレーニングとエントリ)では12月実績で$8.5でした。
リージョンはバージニア北部です。

  • Kinesis Video Streams PutMedia 1.652GB $0.01
  • RoboMaker createSimulationJob 18.352 SU-Hour $7.34
  • SageMaker RunInstance ml.c4.2xlarge 2.058Hrs $1.15
  • SageMaker CreateVolume-Gp2 0.028GB-Mo $0

前後するとは思いますが、ご参考にしていただければと思います。

関数は、あくまでも今現在ですが、デフォルトサンプルのTime trial - follow the center line (Default)をベースにしています。
distance_from_centerパラメータで10段階評価をしてます。
speedパラメータも使ってそれに加点をしている関数です。
all_wheels_on_trackなど他のパラメータは使ってませんが、今後使うかもしれません。
あくまでも最終的な関数であって、多分、新規でモデル作成して同じ関数を使っても同じ結果にはならないかと思います。
だからこそ面白く、作ったモデルがかわいくなります。

これからも、リファレンスを見ながら試行錯誤していきたいと思います。

deepracer2019_022_19

 

さて、2020年はいよいよきっと多分日本でもDeepRacerの実機が購入可能になる、走らせてもいいようになる、と言われています。

まだ企画段階ですが、弊社でも何かイベントをご用意して、みなさんと一緒にDeepRacerで楽しみながら機械学習を学んでいきたいと思います!

では、よいお年をお迎えください!
みなさまにとって素敵な一年になりますように。

 

トレノケートのAWS研修(AWS認定トレーニング)

トレノケートのAWS認定トレーニングでは、AWS社の厳格なテクニカルスキル及びティーチングスキルチェックに合格した認定トレーナーがコースを担当します。AWS初心者向けの研修や、AWS認定資格を目指す人向けの研修をご提供し、皆様のAWS知識修得のサポートをいたします。
トレノケートのAWS研修(AWS認定トレーニング)はこちら


▼AWS初心者の方は、 AWS Cloud Practitioner Essentialsから!
座学中心の研修で、AWSを初めて学ぶ方や、営業などで提案に関わる方におすすめです。
「AWS Certified Cloud Practitioner」資格取得を目指す方の基礎知識修得にも最適です。
AWS Cloud Practitioner Essentials 詳細・日程はこちらから

山下 光洋(やました みつひろ)

トレノケート株式会社 講師。AWS Authorized Instructor Champion / AWS認定インストラクター(AAI) / AWS 認定ソリューションアーキテクト - プロフェッショナル /AWS認定DevOpsエンジニア - プロフェッショナル / AWS 認定デベロッパー - アソシエイト / AWS 認定 SysOps アドミニストレーター - アソシエイト / AWS 認定クラウドプラクティショナー / kintone認定 カスタマイズスペシャリスト他。AWS認定インストラクターとしてAWS認定コースを実施。毎年1,500名以上に受講いただいている。AWS 認定インストラクターアワード2018, 2019を日本で唯一受賞。著書『AWSではじめるLinux入門ガイド』(マイナビ出版社)。共著書『AWS認定試験対策 AWS クラウドプラクティショナー』(SBクリエイティブ社)。前職では2016年にAWS Summitにパネラーとして参加。その前はLotus Technical Award 2009 for Best Architectとして表彰されている。また、各コミュニティの運営にも個人的に関わり、勉強会にてスピーカーや参加をしている。

無料ダウンロード

オススメコンテンツ

オススメ記事

プロジェクトマネジメント PMP AWS ビジネススキル Microsoft PMBOKⓇ 田中淳子 IT資格 人材育成 山下光洋 AMA Azure コミュニケーション 人材開発用語集 PMBOK®ガイド入門 クラウド ITスキル 新入社員 横山哲也 人材育成応援ラジオ DX re:Invent セキュリティ PMP試験問題に挑戦 Cisco PMBOKⓇガイド 第6版 試験体験記 AI(人工知能) イベント・セミナー PMBOK®ガイド第6版の変更点 人材開発 CCIE CCNA DX人材育成 テレワーク ネットワーク リモートワーク 研修 GCP PMP(R)試験問題 第6版対応 PMP合格体験記 Windows Server AI人材 AWS_Q&A Active Directory IT人材 IT資格解説 アセスメント キャリア デジタルビジネス ヒューマンスキル リーダーシップ 人気コースランキング 大喜利 部下の育成 PMの心得 グローバル人材 新入社員研修といえば 生成AI IoT OJT reinvent2022 リスキリング CCNP Security Windows PowerShell クリエイティビティ プログラミング 人材トレンド PMP試験対策一問一答 コーチング プロジェクト プロトタイプビルダー 試験対策問題 1on1 AWS_DiscoveryDay AWSトレーニングイベント GCP無料セミナー Google Cloud Google Cloud Platform G検定 ITインフラ oVice アワード クリティカルシンキング サンプル問題 ステークホルダー ダイバーシティ ディープラーニング ワーケーション 自律 試験Tips Linux PMI Power Platform Python Teams Web会議 cybozudays jawsdays2024