AWS DeepRacer
開発者ガイド

AWS DeepRacer モデルのトレーニングと評価

AWS DeepRacer 車両がトラックで自動走行するとき、前面にマウントされたカメラで環境状態をキャプチャし、観察データに応じてアクションを実行します。AWS DeepRacer モデルは、観察データとアクションを想定される報酬に マッピングする関数です。モデルをトレーニングすることは、想定される報酬を最大化する関数を見つける、または学習することであり、最適化されたモデルによって車両が最初から最後までトラックで走行するためにどのようなアクション (速度とステアリング角度のペア) を取れるかを規定します。

実際には、関数はニューラルネットワークで表され、ネットワークのトレーニングには、一連の観察された環境状態と対応する車両のアクションに与えられた最適なネットワークの重み付けを見つけることが関係しています。最適性の基盤となる基準は、車両が交通事故または違反を発生させることなく正しく効果的な動きをするように勧める、モデルの報酬関数によって記述されます。シンプルな報酬関数は、車両がトラックにある場合は 0、トラックから外れた場合は -1、ゴールに到達した場合は +1 の報酬を返すようにすることができます。この報酬関数では、車両がトラックから外れると罰を受け、ゴールに到達すると報酬が与えられます。

たとえば、直線のトラックから外れることなく車両を走行させたいと思っているとします。車両の加速や減速に合わせて、車両は障害物を避け、トラック内に留まっているように、左右にステアリングを操作します。タイムを争う場合は、車両を速く走行させる必要があります。しかし、高速でのターンが大きすぎると、簡単に車両がトラックから外れてしまいます。ターンが小さすぎる障害物や別の車両との衝突を回避できない可能性があります。一般的に、最適なアクションは、大きなターンは低速で曲がり、きついカーブではステアリングを少なくすることです。この動作を奨励するため、報酬関数では、高速での小さいターンには正のスコアを割り当てて報酬を与え、高速での大きいターンには負のスコアを割り当てて罰を与える必要があります。同様に、報酬関数では、直線コースでの加速や障害物の近くでの減速に正の報酬を返すことができます。

報酬関数は、AWS DeepRacer モデルの重要な部分です。AWS DeepRacer モデルをトレーニングするときは報酬関数を指定する必要があります。トレーニングでは、最初から最後までトラックでのエピソードが繰り返えされます。あるエピソードでは、予想される累積報酬を最大化することで最適な一連のアクションを学習するためにエージェントがトラックを操作します。最後に、トレーニングは強化学習モデルを生成します。トレーニングの後、どのような状態でも最適なアクションができるように、エージェントがモデルで推論を行い、自動運転を実行します。これは、シミュレートされた環境で仮想エージェントにより、または実際の環境で、AWS DeepRacer スケール車両などの物理的エージェントで実行できます。

実際には、強化学習モデルをトレーニングするには、学習アルゴリズムを選択する必要があります。現在のところ、AWS DeepRacer コンソールでは、高速なトレーニングパフォーマンスのための近位ポリシー最適化 (PPO) アルゴリズムのみがサポートされています。その後、一から作成する場合を除き、選択したアルゴリズムを支える深層学習フレームワークを選択できます。AWS DeepRacer は Amazon SageMaker と統合して、AWS DeepRacer コンソールに既に用意されている TensorFlow などのいくつかの一般的な深層学習フレームワークを作成します。フレームワークを使用すると、トレーニングジョブの設定および実行を簡素化し、ユーザーの問題に固有の報酬関数の作成および強化に集中することができます。

トレーニング強化学習モデルは反復プロセスです。まず、一度にある環境でのエージェントのすべての重要な動作をカバーする報酬関数を定義するのは困難です。次に、ハイパーパラメータは、多くの場合、十分なトレーニングパフォーマンスを実現するために調整されます。どちらにも実験が必要です。賢明な方法は、単純な報酬関数から始めて、段階的に強化していく方法です。AWS DeepRacer は、トレーニングされたモデルをクローンし、次のトレーニングをすばやく始められるようにして、この反復プロセスを容易にします。各反復で報酬関数に 1 つまたは少数のより洗練された処理を導入して、前に無視された変数を処理するか、結果がコンバージするまでハイパーパラメータを体系的に調整することができます。

機械学習で通常行われるのと同じように、物理エージェントにデプロイして実際の状況での推論を実行する前に、トレーニング済みの強化学習モデルを評価してその有効性を調べる必要があります。自動運転の場合、評価は、車両が最初から最後まで特定のトラックに留まっている頻度やトラックから外れずにコースを完了する速さに基づくことができます。AWS DeepRacer シミュレーションは AWS RoboMaker シミュレーターで実行され、評価を実行し、リーダーボードで他の AWS DeepRacer ユーザーがトレーニングしたモデルと比較するためにパフォーマンスのメトリクスを投稿できます。