DeepRacer BootCampでハイパーパラメータの自動最適化について勉強をしてきた #reinvent

2019.12.05

せーのでございます。

2019年12月02日〜2019年12月07日にかけてアメリカはラスベガスにてAWS最大のカンファレンス、AWS re:Invent 2019が開催されております。
クラメソチームは今年は80名という常軌を逸した人数で現地に乗り込んでおります。

今年のre:InventといえばDeepRacerの映えある第一回世界大会決勝が行われます。
決勝目指してメキシコシティまで行ってきた身としては注目しないわけには行きません。

会場では決勝大会の他にも最後の予選、新たに発表されているダブルカメラ、LiDAR付きのDeepRacer「DeepRacer Evo」の体験会などもあってレーサー達を離さないわけですが、その中でひときわガチ感の強い「DeepRacer BootCamp」に参加してみました。

DeepRacer BootCamp

DeepRacer BootCampとは、世界のDeepRacer好きが集まるコミュニティ「DeepRacer Community」が主催する、より専門的にDeepRacerを知ってレースに勝とう、という短期集中レッスンです。AriaホテルのQUADという展示会場の一角にDeepRacerの猛者たちが集まってその知見を共有しあいます。

BootCampは2日間に渡って行われます。初日のメニューは

  • スピードの新境地: AWSとF1
  • Action Spaceのカスタマイズ方法
  • Tips and Trick: DeepRacerとAdobe Photoshopを使ったパワフルな報酬関数の構築方法
  • DeepRacerログ分析ツールを使ってDeepRacerの頭の中に潜り込もう
  • DeepRacerモデルのInterpretability(解釈性)について
  • SageMakerを使ったDeepRacerハイパーパラメータの自動最適化
  • ハイパーパラメータのメカニズムとその最適化
  • より広範で高度な概念で強化学習とシミュレーションについて考える

といったもの。タイトルを見ただけで「あ、濃いな」とわかる代物です。

今回はその中でSageMakerを使ったDeepRacerハイパーパラメータの自動最適化についてのセッションをご紹介します。30分という通常の半分のセッションですが、濃い内容でした。

レポート

  • 今日お話ししたいのは、あなたが行っている手動プロセスからどのように移行し、自動化とクラウドの機能を使用するために横断するかについて
  • データサイエンティストが手作業で行う場合によく行うこと。
  • 普段はJupyter nootbookまたはDeepRacerコンソールからコードを変更し、トレーニングする
  • うまくいかないと何回も繰り返すだろう。それはそれで素晴らしいことだ
  • 人は仮説をたてるのが得意:アーキテクチャ、報酬関数
  • マシンは高速で一貫した処理が得意:トレーニング
  • 人は直感と説明が得意:ハイパーパラメータ設定
  • マシンは長くて退屈な作業が得意:ハイパーパラメータチューニング
  • Amazonのアーキテクチャは素晴らしいし、ある程度既に自動化されていると思う
  • それでもまだまだアイデアを考え出す余地はある

  • 自動化へのステップ

  • Dockerイメージを作る
  • 共通の環境を使う
  • マネージドサービスをAPIやSDKを通じて使う

  • SageMakerのノートブックを作成する

  • 強化学習にdeepracerのサンプルがあるので、それを使用する
  • Dockerイメージを作る
  • Python SDK スクリプトモードを使って学習させる
  • チューニングのコストはスポットインスタンスを使うことで削減する
  • SageMakerを使う場合は特にパラメータ予測はグリッドサーチは使わずランダムサーチを使う
  • ベイズ最適化を使うとより早く見つけられる

まとめ

DeepRacerコンソールが整備される前は、DeepRacerはSageMakerで直接トレーニングしていました。そうすることで本来の機械学習プラットフォームの強みであるハイパーパラメータの自動最適化が使えるようになります。
これがコミュニティのブートキャンプで語られる、というのは意味が大きいかもしれません。同じコース、同じ報酬関数で比べてみる価値がありそうです。