

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

# AWS DeepRacer とは何ですか?
<a name="what-is-deepracer"></a>

AWS DeepRacer は、「[強化学習](deepracer-basic-concept.md#term-rl)」によって駆動される完全自律型の 1/18 スケールのレースカーです。これは次のコンポーネントで構成されます。
+ AWS DeepRacer コンソール: シミュレートされた自動運転環境で[強化学習モデルをトレーニングし](create-deepracer-project.md)、評価する [AWS Machine Learning](https://aws.amazon.com/machine-learning/) サービスです。
+ AWS DeepRacer 車両: 自動運転用にトレーニングされた [AWS DeepRacer モデルで推論を実行できる](operate-deepracer-vehicle.md) 1/18 スケールの RC 車両です。
+ AWS DeepRacer: 世界初のグローバルな自律型レースリーグです。賞品、栄光、ワールド チャンピオン カップへの出場権を得るためのレースです。詳細については、「[用語と条件](https://aws.amazon.com/deepracer/league/)」を参照してください。

 

**Topics**
+ [AWS DeepRacer コンソール](#what-is-deepracer-service-console)
+ [AWS DeepRacer 車両](#what-is-deepracer-model-vehicle)
+ [AWS DeepRacer リーグ](#what-is-deepracer-racing-series)
+ [AWS DeepRacer を使用して強化学習を試す](deepracer-is-a-learning-environment-for-reinforcement-learning.md)
+ [AWS DeepRacer の概念と用語](deepracer-basic-concept.md)

## AWS DeepRacer コンソール
<a name="what-is-deepracer-service-console"></a>

AWS DeepRacer コンソールは、AWS DeepRacer サービスのインタラクティブなグラフィカルユーザーインターフェイスです。コンソールを使用して、強化学習モデルをトレーニングしたり、AWS DeepRacer シミュレーターでモデルパフォーマンスを評価したりできます。コンソールでは、トレーニングされた強化学習モデルをダウンロードして、物理環境で自動走行する AWS DeepRacer 車両にデプロイできます。

要約すると、AWS DeepRacer コンソールは次の機能をサポートしています。
+ 指定された報酬関数、最適化アルゴリズム、環境、ハイパーパラメータを使用して強化学習モデルをトレーニングするための、トレーニングジョブを作成します。
+ シミュレートされたトラックを選択して、SageMaker AI を使用してモデルをトレーニングおよび評価します。
+ モデルのパフォーマンスを最適化するためにハイパーパラメータを調整して、トレーニングを向上させるためにトレーニング済みモデルを複製します。
+ デプロイのため、トレーニング済みモデルを AWS DeepRacer 車両にダウンロードして、その車両の物理環境での走行を可能にします。
+ 自分のモデルを仮想レースに参加させて、そのパフォーマンスを仮想リーダーボードの他のモデルと比較してランク付けします。



AWS DeepRacer サービスコンソールを使用すると、モデルのトレーニング、評価、およびモデルの保存に関する使用量に基づいて料金が請求されます。

AWS DeepRacer の使用を開始するため、初回の AWS DeepRacer ユーザー向けに[無料利用枠](https://aws.amazon.com/free/)が用意されています。これにより、最初のモデルのトレーニングとチューニングを行って、AWS DeepRacer リーグに参加するのに十分な時間があります。AWS DeepRacer リーグ仮想イベントに参加するモデルを送信するためのコストはかかりません。

料金の詳細については、「[AWS DeepRacer サービスの詳細ページ](https://aws.amazon.com/deepracer/pricing/)」を参照してください。

## AWS DeepRacer 車両
<a name="what-is-deepracer-model-vehicle"></a>

AWS DeepRacer 車両は、Wi-Fi 対応で強化学習モデルを使用して物理的なトラックを走行できる物理的な車両です。
+ 自動走行するように、手動で車両を制御したり、車両モデルをデプロイしたりできます。
+ 自動モードは、車両のコンピューティングモジュールで推論を実行します。推論は、前面に取り付けられているカメラからキャプチャされた画像を使用します。
+ Wi-Fi 接続により、車両はソフトウェアをダウンロードできます。この接続により、ユーザーは、コンピュータまたはモバイルを使用してデバイスコンソールにアクセスして、車両を操作することもできます。

## AWS DeepRacer リーグ
<a name="what-is-deepracer-racing-series"></a>

 AWS DeepRacer リーグは、AWS DeepRacer の重要なコンポーネントです。AWS DeepRacer リーグは、コミュニティと競争を促進することを意図しています。

AWS DeepRacer リーグにより、物理的または仮想のレースイベントで、他の AWS DeepRacer デベロッパーと比較して、開発に取り組むことができます。賞品や実績を獲得する機会だけでなく、強化学習モデルを測定する方法も用意しています。他の参加者と競い合い、お互いから学び、互いに刺激し合うことができます。AWS DeepRacer League で受け取ったパフォーマンスの実績は、[プロフィール] ページからソーシャルメディアで共有できます。詳細については、「[用語と条件](https://aws.amazon.com/deepracer/league/)」を参照してください。

[Leage のレースに参加しましょう。または、モデルのトレーニング方法を学びましょう。](https://console.aws.amazon.com/deepracer)

# AWS DeepRacer を使用して強化学習を試す
<a name="deepracer-is-a-learning-environment-for-reinforcement-learning"></a>

強化学習、特に深層強化学習は、幅広い自律的な意思決定問題を解決するのに効果的であることが証明されています。いくつか例を挙げると、金融取引、データセンターの冷却、フリート実務体制管理、自動運転レースでの用途があります。

強化学習は、実社会の問題を解決する可能性を秘めています。ただし、必要とする技術面の範囲が広く深いため、学習曲線は急になります。実世界の実験では、自走型レーシングカーなどの物理的なエージェントを構築することが必要になります。また、自動車道や公道などの物理的な環境を確保することも必要です。環境には費用がかかり、危険で、時間もかかる可能性があります。これらの要件は単に強化学習を理解することを超えています。

学習曲線を緩やかにするために、AWS DeepRacer は 3 つの方法でプロセスを簡略化します。
+ 強化学習モデルをトレーニングし、評価するためのステップごとのガイダンスを提供します。このガイダンスには、定義済みの環境、状態、アクション、カスタマイズ可能な報酬関数が含まれています。
+ 仮想[エージェント](deepracer-basic-concept.md#term-model-vehicle)と仮想環境の間のやり取りをエミュレートするシミュレーターを提供する。
+ AWS DeepRacer 車両を物理エージェントとして提供します。車両を使用して、物理的環境でトレーニングされたモデルを評価します。これは、実際のユースケースに非常に類似しています。



経験豊富な機械学習実務者にとって、AWS DeepRacer は、仮想環境と物理環境の両方で自律型レースのための強化学習モデルを構築する、歓迎すべき機会となるでしょう。要約すると、AWS DeepRacer を使用して、次のステップで自走型レースのための強化学習モデルを作成します。

1. 自走型レースのため、カスタム強化学習モデルをトレーニングします。これを行うには、SageMaker AI と統合された AWS DeepRacer コンソールを使用します。 SageMaker 

1. AWS DeepRacer シミュレーターを使用して、モデルを評価し、仮想環境で自走型レースをテストします。

1. トレーニングされたモデルを AWS DeepRacer モデル車両にデプロイして、自走型レースを物理環境でテストします。



# AWS DeepRacer の概念と用語
<a name="deepracer-basic-concept"></a>

 AWS DeepRacer は次の概念に基づいて構築されており、次の用語を使用しています。

**AWS DeepRacer サービス**  <a name="term-deepracer-service"></a>
AWS DeepRacer は AWS Machine Learning で自律型レーシングに特化した強化学習を探求するための、AWS 機械学習サービスです。AWS DeepRacer サービスは以下の特徴をサポートしています。  

1. クラウド上で強化学習モデルをトレーニングする。

1. AWS DeepRacer コンソールでトレーニング済みモデルを評価する。

1. トレーニング済みモデルを仮想化レースに送信し、資格がある場合は、そのパフォーマンスをイベントのリーダーボードに投稿してもらう。

1. トレーニング済みモデルのクローンを作成して、パフォーマンスを向上させるためのトレーニングを続けます。

1. AWS DeepRacer 車両にアップロードするためのトレーニング済みモデル Artifact をダウンロードします。

1. 自動運転のために車両を物理的なトラック上に置き、モデルを実際のパフォーマンスで評価します。

1. 不要な料金が発生しないように不要なモデルを削除する。

**AWS DeepRacer**  <a name="term-deepracer"></a>
「AWS DeepRacer」は、次の 3 つの異なる車両を参照できます。  
+ **仮想レースカー** は、オリジナルの AWS DeepRacer デバイス、Evo デバイス、または AWS DeepRacer リーグ仮想サーキットレースの形をとることでさまざまなデジタル報酬を獲得することができます。仮想レースカーの色を変更してカスタマイズすることもできます。
+ **オリジナルの AWS DeepRacer デバイス** は、物理的な 1/18 スケールのモデルカーです。車載カメラとオンボードコンピューティングモジュールを装備しています。コンピューティングモジュールはトラックに沿って自律走行するための推論を実行します。コンピューティングモジュールと車両のシャーシは、それぞれコンピューティングバッテリーとドライブバッテリーとして知られる専用のバッテリーから電力を供給されます。
+ **AWS DeepRacer Evo デバイス** は、オプションのセンサーキットを備えたオリジナルデバイスです。キットには追加のカメラと LIDAR (光検出と測距) が含まれており、車両が背後と側面の物体を検出することができます。このキットには、新しいシェルも含まれています。

**強化学習**  <a name="term-rl"></a>
強化学習とは、環境とのやり取りを通じて、特定の目標を達成するための、エージェントによる自律型決断に焦点を当てた機械学習メソッドです。強化学習では、学習は試行錯誤によって達成され、トレーニングはラベル付きの入力を必要としません。トレーニングは*報酬型仮説*に基づいていて、一連のアクションの後に将来の報酬を最大化することで、すべての目標を達成できるというものです。強化学習では、報酬関数を設計することが重要です。報酬関数を向上させることで、エージェントはより良い意思決定を行うことができます。  
自律レーシングでは、エージェントは車両です。環境には走行ルートや交通状況が含まれます。目標は、車両が事故なく短時間で目的地に到着することです。報酬は、目的地への安全かつ迅速な移動を促進するために使用されるスコアです。スコアは危険で無駄な運転に対してペナルティを科します。  
トレーニング中に学習を促進するために、学習エージェントは、報酬につながらない可能性のあるアクションを突き止める必要があります。これは、探索と搾取のトレードオフと呼ばれます。エージェントが誤った目的地に導かれる可能性を低くするか取り除くのに役立ちます。  
さらに正式な定義については、Wikipedia の「[強化学習](https://en.wikipedia.org/wiki/Reinforcement_learning)」を参照してください。

**強化学習モデル**  <a name="term-rl-model"></a>
強化学習モデルとは、「エージェントがエージェントが持つ状態」「エージェントが取ることのできるアクション」「アクションを取ることによって得られる報酬」の 3 つを規定する行動する環境です。エージェントが、そのアクションを決定するための戦略を、*ポリシー*と呼びます。ポリシーは環境の状態を入力として受け取り、実行するアクションを出力します。強化学習で多くの場合ポリシーは、深層ニューラルネットワークによって表されます。これを強化学習モデルと呼んでいます。トレーニングジョブごとに 1 つのモデルが生成されます。トレーニングジョブが早期に停止された場合でも、モデルを生成できます。モデルはイミュータブルです。つまり、モデルは作成後に変更したり上書きしたりすることはできません。

**AWS DeepRacer シミュレーター**  <a name="term-simulator"></a>
AWS DeepRacer シミュレーターは仮想環境で、トレーニングを視覚化し、AWS DeepRacer モデルを評価します。

**AWS DeepRacer 車両**  <a name="term-model-vehicle"></a>
[AWS DeepRacer](#term-deepracer) を参照してください。

**AWS DeepRacer カー**  <a name="term-deepracer-car"></a>
このタイプの [AWS DeepRacer 車両](#term-model-vehicle) は 1/18 スケールのモデルカーです。

**リーダーボード**  <a name="term-leaderboard"></a>
*リーダーボード*は、AWS DeepRacer レーシングイベントにおける AWS DeepRacer 車両のパフォーマンスのランク付けリストです。レースは、シミュレートされた環境で行われる仮想的なイベント、または現実の環境で行われる物理的なイベントのいずれでもかまいません。パフォーマンス指標はレースの種類によって異なります。所定のレースのトラックと同じ、または類似のトラックでトレーニングしたモデルを評価した AWS DeepRacer のユーザーが送信した最速ラップタイム、合計時間、または平均ラップタイムとなります。  
車両が 3 周連続して完走すると、リーダーボードへのランク付けの対象になります。最初の連続した 3 周の平均ラップタイムがリーダーボードに送信されます。

**機械学習フレームワーク**  <a name="term-frameworks"></a>
機械学習フレームワークとは、機械学習アルゴリズムの構築に使用されるソフトウェアライブラリです。AWS DeepRacer でサポートされたフレームワークには Tensorflow があります。

**ポリシーネットワーク**  <a name="term-policy-network"></a>
ポリシーネットワークはトレーニングされるニューラルネットワークです。ポリシーネットワークは、入力としてビデオイメージを取り込み、エージェントの次のアクションを予測します。アルゴリズムによっては、エージェントの現在の状態の値も評価される場合があります。

** 最適化アルゴリズム**  <a name="term-optimization-algorithm"></a>
最適化アルゴリズムは、モデルをトレーニングするために使用するアルゴリズムです。教師ありトレーニングでは、重みを更新するための特定の戦略を使用して損失関数を最小化することで、アルゴリズムが最適化されます。強化学習では、特定の報酬関数を使用して予想される将来の報酬を最大化することで、アルゴリズムが最適化されます。

**ニューラルネットワーク**  
ニューラルネットワーク (別名、*人工ニューラルネットワーク*) は、生物学的システムに基づいて情報モデルを構築するために使用される、接続された単位またはノードの集まりです。各ノードは*人工ニューロン*と呼ばれ、入力 (刺激) を受け取るという点で生物学的ニューロンを模倣し、入力信号が十分に強い場合にアクティブ化 (アクティベーション) され、入力および活性化に基づく出力を生成します。人工ニューラルネットワークはあらゆる関数の汎用近似として機能するため、機械学習で広く使用されています。学習するための機械を教えるのは、任意の入力と出力の最適関数近似を見つけることになります。深層強化学習では、ニューラルネットワークはポリシーを表し、しばしばポリシーネットワークと呼ばれます。ポリシーネットワークをトレーニングすることは、現在のポリシーに基づいてエクスペリエンスを生成し、続いて新しく生成されたエクスペリエンスで、ポリシーネットワークを最適化することを含むステップを繰り返すことになります。このプロセスは、特定のパフォーマンスメトリクスが必要な基準を満たすまで続きます。

** ハイパーパラメータ**  <a name="term-hyperparameters"></a>
ハイパーパラメータは、ニューラルネットワークの学習性能を制御するアルゴリズム依存の変数です。ハイパーパラメータの例としては、各ステップでの学習において、新しい経験をどれだけカウントするかを制御する学習レートがあります。学習レートが大きくなるほど学習速度は速くなりますが、トレーニング済みモデルの品質が低くなる可能性があります。ハイパーパラメータは経験的なものであり、トレーニングごとに体系的な調整が必要です。

**AWS DeepRacer トラック**  <a name="term-track"></a>
トラックは AWS DeepRacer 車両が走行するパスまたはコースです。トラックは、シミュレーション環境、現実世界、物理的環境の、いずれかに存在できます。シミュレート環境は、仮想トラックで AWS DeepRacer のモデルをトレーニングするために使用します。AWS DeepRacer コンソールでは、仮想トラックを使用できます。AWS DeepRacer の車両を物理的なコースで走らせるためには、実環境を使用します。AWS DeepRacer League は、イベント参加者に物理的なトラックを提供し、競わせるものです。その状況で AWS DeepRacer 車両を走らせる場合は、自分で物理的トラックを作成する必要があります。独自のトラックを構築する方法についての詳細は、[物理的なトラックを構築する](deepracer-build-your-track.md) を参照してください。

** 報酬関数**  <a name="term-reward-function"></a>
報酬関数とは、実行されたアクションが、以下のいずれのパフォーマンスの結果になったかをエージェントに伝える学習モデル内のアルゴリズムです。  
+ 強化する必要のある良い結果。
+ 中立的な結果です。
+ 推奨されない悪い結果。
報酬関数は強化学習の重要な部分です。特定のアクションに対してインセンティブを与えることで、エージェントが学習する挙動を決定します。ユーザーは Python を使用して報酬関数を提供します。この報酬関数は、最適化アルゴリズムによって強化学習モデルをトレーニングするために使用されます。

**経験エピソード**  <a name="term-episode"></a>
経験エピソードとは、エージェントが特定のスタート地点からトラックを完走するまで、またはトラックから外れるまで、環境からトレーニングデータとして経験を収集する期間です。エピソードごとに長さが異なる場合があります。これは*エピソード*、または、*経験生成エピソード*とも呼ばれます。

**経験イテレーション**  
経験イテレーション（別名、*経験生成イテレーション*）は、ポリシーネットワークの重みの更新を実行する、各ポリシーイテレーション間の連続する経験エピソードのことです。各経験イテレーションの終わりに、収集されたエピソードが経験リプレイまたはバッファに追加されます。サイズは、トレーニング用のハイパーパラメータの１つに設定できます。ニューラルネットワークは、経験のランダムサンプルを使用して更新されます。

**ポリシーイテレーション**  
ポリシーイテレーション（別名、*ポリシー更新イテレーション*）とは、勾配がきつくなる間、ポリシーニューラルネットワークの重みを更新するために、ランダムにサンプリングしたトレーニングデータを何回でも通過させることです。重みを更新するためのトレーニングデータの 1 回の学習は、*エポック*とも呼ばれます。

**トレーニングジョブ**  <a name="term-training-job"></a>
トレーニングジョブは、強化学習モデルをトレーニングし、推論の実行対象となるトレーニング済みモデル Artifact を作成するワークロードです。各トレーニングジョブには 2 つのサブプロセスがあります。  

1. 現在のポリシーに従ってエージェントを起動する。エージェントはいくつかの[*エピソード*](#term-episode)で環境を調査し、トレーニングデータを作成します。このデータ生成自体は反復プロセスです。

1. 新しいトレーニングデータを適用して新しいポリシー勾配を計算する。ネットワークの重みを更新し、トレーニングを続行します。停止条件が満たされるまで、ステップ 1 を繰り返します。
各トレーニングジョブはトレーニング済みモデルを作成し、そのモデルアーティファクトを指定されたデータストアに出力します。

**評価ジョブ**  <a name="term-evaluation-job"></a>
評価ジョブは、モデルのパフォーマンスをテストするワークロードです。トレーニングジョブの終了後、指定したメトリクスによりパフォーマンスが測定されます。標準的な AWS DeepRacer パフォーマンスメトリクスは、エージェントがトラックのラップの完走にかかる運転時間です。別のメトリクスとして、ラップの完走率もあります。

## レースイベントの用語
<a name="racing-event-terminology"></a>

AWS DeepRacer レースイベントでは、次の概念と用語を使用します。

**リーグ/コンペティション**  
AWS DeepRacer League イベントのコンテキストでは、*リーグ*と*競争*という用語は競争構造に関連しています。 AWS は AWS DeepRacer League をスポンサーしています。つまり、AWS DeepRacer League を所有し、設計し、実行します。コンペティションには開始日と終了日があります。

**Season**  
コンペティションは、毎年繰り返させる場合があります。これらはシーズン (2019 シーズンや 2020 シーズンなど) と呼ばれます。ルールはシーズンごとに変わる場合がありますが、同一シーズン内では通常同じです。AWS DeepRacer リーグの規約は、シーズンごとに異なる場合があります。

**仮想サーキット**  
仮想サーキットとは、AWS DeepRacer League シーズン中に AWS DeepRacer コンソールで AWS 開催されるレースを指します。

**イベント**  
ルールで定義されているとおり、イベントとは、ユーザーが参加できる AWS DeepRacer リーグの存在のことです。イベントには開始日と終了日があります。仮想サーキットイベントは通常 1 か月間続きます。1 つのシーズンに複数のイベントが存在する場合があり、イベント参加者のランク付け方法、勝利者の選択方法、その後の対応などに関するルールは、変更される可能性があります。

**レースタイプ**  
 すべてのレーサーはタイムトライアル (TT) レース、オブジェクト回避 (OA) レース、head-to-bot (H2B) レースでレースできます。レースタイプごとに、ラップ数、レーサーのランク付け方法を指定します。

**ナショナルシーズン順位**  
ナショナルシーズン順位とは、その国の他のレーサー中でのレーサーのリーダーボードランキングを指します。すべてのレーサーは、毎月のバーチャルレースで自国の他のレーサーと競うことができます。

**ナショナルシーズン順位**  
リージョナルシーズン順位とは、そのリージョンの他のレーサー中でのレーサーのリーダーボードランキングを指します。

**ワールドチャンピオンシップ**  
AWS DeepRacer リーグの仮想サーキットマンスリーリーダーボードは、国と地域ごとに分かれています。各リージョンのトップレーサーは re AWS :Invent でワールドチャンピオンシップの資格を得ることができます。詳細については、「[用語と条件](https://aws.amazon.com/deepracer/league/)」を参照してください。