はじめに
AWS Tokyo Summitの後にAWS DeepRacerサービスチームの@sunil mallya氏から以下のようなアドバイスをもらったので、リアル走行の軌跡のプロット、得られた結果とモデルの分析結果を比較してみました。
I think you should also add the videos for the laps on the real track. And then create a manual sketch plot based on the car's trajectory. This way you can compare the simulator and real car trajectories.
利用した動画(About Sola@DNP’s video)
- AWS Tokyo Summit で撮影したSola@DNPが優勝したときの動画です
- 動画の記録時間は4分間です
- その一部はAWS Machine Learning Blogに紹介されています
軌跡の描画方法(How to sketch plot)
動画から走行軌跡をプロット化するにあたり、いろいろな手法を考え試しましたが、
動画を何度も繰り返し再生し、reInventコースを印刷した紙に鉛筆で点を描画、その後蛍光マーカーで強調する。
という方法にしました。
実験的に動画ファイルをAWSのRekognition Videoにもかけてみたところ、DeepRacerがcarとして検出されるのはタイヤがよく見えている状態のときだけで、検出されない場面が多かったです。
DeepRacerカーの軌跡(Real car trajectories)
- 完走、もしくはコースアウトしてもトラックボスが止めずにそのまま走行させた周回が11回ありました。
- DeepRacerカーが映像から見えない場面はプロットしていません。
リアル走行の特徴、共通点(Real car feature)
スタートのストレートコースから、第一コーナにさしかかる直前で右にステアリングをきる(トラックの外側へきる)走行が6周ありました。
モデル分析結果と比較(Comparing with training data)
優勝したモデルのログ分析結果を、もう少し細かく確認しました。
Analyze the reward distribution for your reward function
Path taken in a particular Iteration
エピソードの複数座標を単一の中央値、平均値に変換することで、イテレーション単位に走行の特徴を表すことができるかもしれないと思い試してみました。
具体的には、定義されているトラック中心線座標(center waypoint)の前後2点の座標の間を埋めるようにさらに座標を追加した、密の細かいトラック中心線座標を新たに定義し、
エピソードのステップ座標(x,y)が一番近いトラック中央座標でカテゴリ化しました。
カテゴリ単位に中央値、平均値を求めました。(もっと正確な求め方があるかもしれません。)
感想と考察(My impressions)
以下はあくまで個人の見解に基づいたものとなります。
実世界の状態を正確に数値化、視覚化を行うことは大変だった
一番、実感したことです。
強化学習のゴールはシミュレーションと現実の誤差をなくすことで、その誤差がどれくらいあるのかを確認するには、実世界の状態をデータ化しシミュレーションで得られた値と比較できなければなりません・・・。
今回のように手でプロットしていては不正確、かつ効率が悪いので、これを機にDeepRacer検出モデルを作って動画分析で軌跡をプロットができると便利だと思いました。
モデル分析結果で得た特徴はリアルでみつけることはできなかった
今回は、「リアル走行軌跡の特徴を見つける」→「モデル分析結果ではどうか?」の視点で比較の確認をしました。
逆のアプローチの「モデル分析結果から走行軌跡の特徴を見つける」→「リアルではどうか?」
では優勝したモデルのログ分析結果にて、(右カーブ後に)「アウトインアウトの傾向がある」と述べましたが、実走行の結果からは共通点や類似点を確認することができませんでした。(センターラインに沿って走行する。は、どちらにもある共通点ですが)
まとめ(Summary)
- AWS DeepRacerは実機のミニカー走行と合わせて評価することで、より踏み込んだ強化学習、分析方法を学ぶことができる。
- 実世界のデータ化や視覚化は大変なので、それを行う装置、システムやツールが必要。