1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pendulum-v0とChainerRLで深層強化学習の比較メモ

Last updated at Posted at 2019-08-19

試しにやってみただけの雑なメモです。

動機と目的

pendulum.png

  • 逆強化学習で(連続状態)・連続行動のタスクを扱いたい
  • 手頃なテスト環境として、OpenAI GymのPendulum-v0があった
  • 深層強化学習ライブラリであるChainerRLをありがたく使わせてもらう
  • どの手法が最も優れたエキスパートモデルを得られるのか……?

環境

  • CPU : Intel Core i7-8700CPU @ 3.20Hz x 12
  • メモリ : 32GB
  • グラボ: GeForce RTX2080Ti 11GB

ライブラリとか

  • CUDA 10.0 / cuDNN 7.5.0 / CuPy 5.4.0
  • Chainer 6.1.0
  • ChainerRL 0.7.0

比較手法

ChainerRLで使えるエージェントのうち、連続行動空間に対応し、単一環境(asynchronousとかではない)で学習するものを利用。

実験

ChainerRLのexampleをほぼそのまま利用。パラメータはなるべく以下の設定で統一した。

step = 10 ** 6
reward_scale_factor = 1e-2
update_interval = 1000
batchsize = 64
replay_start_size = 1000
final_exploration_step=10 ** 4
eval_interval = 10000
eval_nruns = 10
replaybuffer size = 10 ** 6
gamma = 0.95
opt = chainer.optimizers.RMSpropGraves()
n_hidden_layer = 2
n_hidden_channels = 64
soft_update_tau = 1e-2

実験はほぼ同時にスタート。なのでもしかしたら多少重かったかも(スタート直後にnvidia-smiで見たものの、GPUのメモリは使い切っていなかった気がする)

結果

まず、生のログデータをそのままExcelでグラフ化してみる。横軸はエピソード、縦軸は各エピソードにおける累積報酬。なお、上述のパラメータにあるように、報酬にはスケール1e-2が掛かっている(掛けないとPPOでの学習に失敗)。

pendulum_graph1.png

……見にくいにも程があるので、50区間での移動平均をとったグラフを次に示す。

pendulum_graph2.png

学習成功勢と失敗勢に見事に分かれている。

学習時間とテスト時報酬

各種記録データの生成時間から割り出した学習時間と、bestモデルの評価時報酬(100エピソード)の表。

method time [s] score(mean) score(median) score(stdev)
DQN 14783 -1394.794537 -1446.292322 141.6817202
REINFORCE 6623 -1324.556777 -1417.614616 223.1694692
DDPG 7855 -155.7196851 -126.4669975 87.37769227
TD3 13141 -268.9419578 -237.1870402 176.927272
TRPO 3781 -175.9193336 -131.9095672 116.1852969
PPO* 5789 -159.89914 -127.0784465 91.37168868
A2C 2200 -174.2695782 -128.9251996 103.3684168
SAC 27204 -160.3874612 -127.6972927 92.99764631
PCL 17285 -1203.062252 -1182.344651 186.9649068
*PPOは設定ミスで最終時モデルしか保存されておらず、やむなくそちらを利用。でも学習曲線的におそらくそこまで変わらない……はず

感想

bestモデルじゃないのにPPOつよい。DDPGが意外と健闘していてびっくり(学習が不安定だけどたまーに良いモデルがある??)
パラメータチューニングとか色々余地はあるし、一回しか学習していないし、もしかしたら環境によっても違うし、なので一概には言えませんが、何かの参考になれば。
自分は結局PPOでエキスパートを作ろうと思いました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?