AWS_DeepRacerの実装_パート1

### 【はじめに】
今回機械学習を勉強する上でAWSのDeepRacerを使用し学習を行います。

### 【DeepRacerとは？】
①AWSが提供する機械学習に基づく1/18の自律走行モデルカーで強化学習を実践して学ぶことができます。
いわゆる自動運転をイメージしていただければわかりやすいと思います。

②DeepRacerでは強化学習という機械学習の一分野を使用します。
機械学習の分野に関しては主に下記3種に分類されます。
・教師なし学習
・教師あり学習
・強化学習

③ユーザーはAWSの仮想環境においてモデルを訓練し、訓練したモデルを実際のDeepRacer車両に適用し、実世界でテストすることができます。

### 【強化学習とは？】
強化学習では「どのようなアクションを起こすべきかをアクション後に得られる報酬を基準にアクションの確率を調整する」といった試行錯誤を行い最適解に近づけるという手法をとっています。

強化学習のワークフローに関しては以下の流れをとっています。
①環境の作成
強化学習エージェントが動作する環境を定義します。
シミュレーションモデル、または実際の物理システムを使用します。今回はAWSが提供するDeepRacerの環境を用いる形となります。

②報酬の定義
エージェントが目標達成のための性能測定に使用する報酬信号と環境から得られた報酬信号を計算する方法を指定します。
この報酬定義に関してもAWSが提供するDeepRacerの環境を用いて設定を行います。

③エージェントの作成
強化学習をする上での方策と学習アルゴリズムの選択を行います。

④エージェントの学習と検証
学習のオプション(学習を停止する条件等)を設定し、③で作成したエージェントを用いて学習を行います。
学習完了後性能検証を実施します。検証の結果を踏まえ、必要に応じて報酬信号や方策の再検討を行い再学習をします。
強化学習はサンプル効率が低いと一般的に考えられているため、学習に数日かかることもあります。

⑤方策の展開
④にて学習済みの方策を展開します。
DeepRacerでいう仮想環境での検証後実世界で実際にモデルカーを動かす形となります。
結果によってはエージェントの再学習を実施する必要があります。

### 【DeepRacerチュートリアルの実施】
①AWSにログインし、サービスでAWS DeepRacerを選択します。
画面右側の「Create model」ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3528832/b9fc5e95-76de-d329-9cdd-acf6ee0801a0.png)

②次に画面下のStep2の「Create model」ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3528832/c664bd4f-7cfc-c2e2-e9ff-a543399a74c6.png)

③モデル名、説明文、今回のDeepRacerで使用するコースを入力または選択していきます。
・モデル名は任意のモデル名を入力してください。
・説明文は今回Model Playとしました。複数モデルを作成する際はそれぞれの特徴を記載するのが良いと思います。
・コースはデフォルトで選択されている「2022 re:Invent Championship」を選択しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3528832/6194998d-60e5-5afc-4155-aebfa1980e70.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3528832/288edb81-63cc-5abb-739e-06266e4d31a9.png)

上記項目設定後「Next」ボタンを押下します。

④レースタイプ、学習アルゴリズム、ハイパーパラメータ、エージェントの種類をそれぞれ設定していきます。

今回は実際に動かすところまでを行うため、レースタイプはTime trial、学習アルゴリズム、ハイパーパラメータ、エージェントはデフォルトのものを使用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3528832/6b978865-b9c4-d3b2-38d3-f81a8fb67c78.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3528832/0a665b9a-1092-b453-a77c-23114cb44ab1.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3528832/9902271e-5d22-ed1f-ad26-028074899606.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3528832/0166336f-b4b4-f691-7d5d-516ce36efbc6.png)

報酬関数はデフォルトのものを使用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3528832/67e4cd35-ace5-5424-ad33-5193e925d78c.png)


学習時間はデフォルトでは60分ですが、今回は10分ほどの学習で実際にどのような形で動作するのかを確認していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3528832/e0402104-0b61-dc24-fc0b-2f541063b62c.png)

設定完了後「Create model」を押下すると学習時間に応じてtrainingが始まります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3528832/73f572c4-f609-47f6-5c68-4299ee403ab9.png)

## 【まとめ】
今回は実際にDeepRacerを実際に動かすところまでを実施いたしました。
次回パート2では今回の学習結果と実際に学習に用いる各種パラメータを変更し、比較を実施していきたいと思います。

## 
株式会社ジールでは、「ITリテラシーがない」「初期費用がかけられない」「親切・丁寧な支援がほしい」「ノーコード・ローコードがよい」「運用・保守の手間をかけられない」などのお客様の声を受けて、オールインワン型データ活用プラットフォーム「ZEUSCloud」を月額利用料にてご提供しております。
ご興味がある方は是非下記のリンクをご覧ください：
https://www.zdh.co.jp/products-services/cloud-data/zeuscloud/?utm_source=qiita&utm_medium=referral&utm_campaign=qiita_zeuscloud_content-area