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 件のコメント:

ClaudeをOpenAI O1のように思考させるDifyサンプルを試す

 Difyの「探索」タブにはさまざまなサンプルが載っており、その1つに「Thinking Claude (OpenAI O1 Alternative)」というものがある。   このサンプルがどういうものか、未だに自分でも解けない以下の問題をためしに聞いてみることにした。 『人類の...