Translate

2019年2月1日金曜日

GitHub:Learning to Drive Smoothly in Minuts 実装リポジトリのREADME.md を翻訳してみた

以下のドキュメントは、 GitHub 上の Learning to Drive Smoothly in Minuts の再現用リポジトリのREADME.md を翻訳したものです。

-----

Learning to Drive Smoothly in Minuts


Donkey Carシミュレータ、強化学習アルゴリズムである Soft Actor-Critic(SAC) と Variational AutoEncoder(VAE) を使用して、数分でスムーズな運転を学習します。

  • 媒体上のブログ記事:リンク
  • ビデオ



VAE レベル0VAE レベル1


VAEをダウンロードVAEをダウンロード
事前トレーニング済みエージェントをダウンロード事前トレーニング済みエージェントをダウンロード


注意 : 事前トレーニング済みのエージェントは logs/sac/ フォルダに保存する必要があります(事前トレーニング済みのエージェントを使用するには --exp-id 6 (フォルダのインデックス) を渡す必要があります)。

クイックスタート


0. シミュレータをここからダウンロード、もしくは ソースからビルド
1. 関連パッケージのインストール (cf requirements.txt)
2. (オプションだが推奨) 事前学習済み VAEのダウンロード:VAEレベル0 / VAEレベル1

3. Soft Actor-Critic (SAC) コントロールポリシを5000ステップトレーニング
python train.py --algo sac -vae path-to-vae.pkl -n 5000

4. 2000ステップのトレーニングを受けたエージェントをエンジョイ
python enjoy.py --algo sac -vae path-to-vae.pkl --exp-id 0 -n 2000

別のレベルでトレーニングするには、config.py内のLEVEL=0LEVEL=1に変更する必要があります。
 

Variational AutoEncoder(VAE) のトレーニング


1. 遠隔操作モードを使って画像を収集
python -m teleop.teleop_client --record-folder path-to-record/folder/

2. VAEをトレーニング
python -m vae.train --n-epochs 50 --verbose 0 --z-size 64 -f path-to-record/folder/

遠隔操作モードでのトレーニング


python train.py --algo sac -vae logs/vae.pkl -n 5000 --teleop

遠隔操作モードでのテスト


python -m teleop.teleop_client --algo sac -vae logs/vae.pkl --exp-id 0

潜在空間を探索


python -m vae.enjoy_latent -vae logs/level-0/vae-8.pkl

結果の再現


ビデオに表示されている結果を再現するには、 `config.py` でさまざまな値を確認する必要があります。
 

レベル0
 

config.py :
MAX_STEERING_DIFF  =  0.15  # 非常になめらかな操作の場合は0.1を指定、ただしより多くのステップが必要
MAX_THROTTLE  =  0.6  # MAX_THROTTLE = 0.5でもよいが高速走行のために
MAX_CTE_ERROR =  2.0  #通常モードのみで使用される、遠隔操作モード使用時は10.0に設定
LEVEL = 0

通常モード(なめらかな操作)でトレーニング、5~10分かかる
python train.py --algo sac -n 800.,0 -vae logs/vae-level-0-dim-32.pkl

通常モード(非常になめらかな操作、MAX_STEERING_DIFF = 0.1を指定)でトレーニング、~20分かかる
python train.py --algo sac -n 20000 -vae logs/vae-level-0-dim-32.pkl

遠隔モード(非常になめらかな操作、MAX_CTE_ERROR = 10.0を指定)でトレーニング、5~10分かかる
python train.py --algo sac -n 8000 -vae logs/vae-level-0-dim-32.pkl --teleop


レベル1

注意 : レベル1では、遠隔モードのみ有効

config.py :
MAX_STEERING_DIFF = 0.15
MAX_THROTTLE = 0.5 # MAX_THROTTLE = 0.6 でも動作するが最も急なターンであるためトレーニングが難しい
LEVEL = 1

遠隔操作モードでトレーニング、~10分かかる
python train.py --algo sac -n 15000 -vae logs/vae-level-1-dim-64.pkl --teleop

注意 : VAEのサイズはレベル0と1で異なりますが、これは重要な要素ではありません。

オンボードカメラでビデオ録画


トレーニングを受けたモデルが必要です。たとえば、最後のトレーニングを受けたSACエージェントで1000ステップを記録する場合は、次のようになります。

python -m utils.record_video --algo sac --vae-path logs/level-0/vae-32-2.pkl -n 1000

プロジェクトの引用


このリポジトリを引用するには:

@misc{drive-smoothly-in-minutes,
  author = {Raffin, Antonin and Sokolkov, Roma},
  title = {Learning to Drive Smoothly in Minutes},
  year = {2019},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/araffin/learning-to-drive-in-5-minutes/}},
}

クレジット


関連論文: Learn to Drive in a Day]() / 日本語訳


-----

最初てっきり Learn to Drive in a Dayの作者のリポジトリだと思っていたのだけど、読んでいるうちに別人と判明した。
こっちは in Minuts になってるのね...
関連論文に紹介されているってことは、あきらかにオマージュということかな..

でも Smoothlyが入ってるところが、お前よりぬるぬる動くし学習も速いぜ、とドヤ顔でいいたいのかもなあ..

0 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...