はじめに
AWS DeepRacerはレーシングカーの強化学習モデルを作成するサービスです。
モデルを作成した後は報酬関数やハイパーパラメータをチューニングし、さらにトレーニングをします。
トレーニングや評価時のログ分析をすることで、ラップごとの完走率や報酬の推移などを細かく把握し、チューニングの参考にすることができます。
ログ分析環境は色々選択肢がありますが、SageMakerだとログの連携が楽なのでSageMaker上にJupyter Notebookを立てて分析をしています。(分析には公開されているサンプルコードを使っています)
分析用のサンプルコード
以前JupyterNotebook環境を手組みしたら権限関連で引っ掛かってなかなか作れなかったので、CloudFormationのテンプレートで権限設定とリポジトリの設定もまとめてやってみました。
テンプレの実行時間も数分で手組みより楽だったので記事に残しておきます。
1. JupyterNotebook環境を用意する
CloudFormationでNotebookインスタンスを立てる
CloudFormationのテンプレートは以下のサンプルをベースにしました。
プロパティのDefaultCodeRepositoryには分析に使うサンプルコードのGitHubリポジトリを指定しました。
インスタンスタイプなどはお好みで変えてください。
せっかくインスタンスを立てたのでコードも実行してみましょう。
2. 実行例:完走率と得た報酬のグラフを出力する
グラフが右上がりの場合、さらにトレーニングするとモデル改善が期待できると言われていますが…
このモデルは報酬関数やハイパーパラメータのチューニング無しにトレーニングしてもあまり改善が見込めなさそうです。
おわりに
同僚とDeepRacerのログ分析用にJupyterNotebook環境を立てたときに手組みはちょっとめんどくさいねという話をしたので、今回のCFnテンプレートは社内に展開しようかなーと思います。