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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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

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

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

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

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

実際には、強化学習モデルをトレーニングするには、学習アルゴリズムを選択する必要があります。現在、AWS DeepRacer コンソールは、近位ポリシー最適化 (PPO) と Soft Actor Critic (SAC) アルゴリズムのみをサポートしています。その後、最初から記述する場合を除き、選択したアルゴリズムをサポートするディープラーニングフレームワークを選択できます。AWS DeepRacer は SageMaker と統合して、次のような人気のあるディープラーニングフレームワークを作成します。TensorFlow、AWS DeepRacer コンソールで簡単に入手できます。フレームワークを使用すると、トレーニングジョブの設定および実行を簡素化し、ユーザーの問題に固有の報酬関数の作成および強化に集中することができます。

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

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