深層逆強化学習の環境構築

https://github.com/hcnoh/gail-pytorch


プロのGAIL の研究者たちはみんな、conda ではなくpipを使っているので、そちらで環境構築できるようにする必要がある。

上を参照しながら、このように環境構築したのでメモ。 

pip で環境構築(https://pytorch.org/get-started/locally/)を見る。私の環境の場合は下記。

# pytorch # MPS acceleration is available on MacOS 12.3+

pip3 install torch torchvision torchaudio

# gym
pip install 'gym[all]'
# ただの pip install gym ではだめ

# jupyter
# pip install jupyter だけでほんとにいいんだっけ? ⇨ 多分大丈夫

pip で gymを動かす(Cartpole)までやる。こいつの出力が昔は四つだったが、最近5つになったせいでバグが生じてしまっている。これを取り除く必要がある。変更点は以下二つ。

(変更点1)

変更前:ob = env.reset() 

変更後;

(変更点2)

変更前:ob, rwd, done, info, _ = env.step(act) # <mori>

変更後:

とりあえずこれで動くようになる。上の引用と同じような結果を得るためにはもう一点改善点がある。Cartpoleでは500ステップまで持たせるかどうかが勝負になっている問題なので、これに合わせて下記を追記する。

(追記)
horizon = num_steps_per_iter /4 # equal to 500 

逆強化学習は行動の報酬値がなくても、行動の履歴から実行することができるため、上のenv.step(act)にて出てくるrwdを一切使わなくてもアルゴリズムを実行することができる。でもって、行動履歴を深層学習させて、状態価値と行動確率を出してくれるのだから敵対的模倣学習(GAIL)はすごいのである。


・私がGAILが好きな理由

(1)多くの状態を十分に表現するためにNNW(深層学習)を組んでいること。

(2)逆強化学習の手法であり、しかも即時報酬の推定を介さないこと。

(3)actor-crtic法がベースとなっていること。

(4)行動確率(つまり行動価値Q)だけでなく、状態価値Vも出してくれること。


・模倣学習と逆強化学習の違い

(1)入力が状態・行動 の二つか、これに即時報酬が加わるか

(2)初期の報酬設定が必要か否か

GAILを用いればほぼ確実にできるが、他の逆強化学習の手法を使わない理由がわからないのが問題。これは後々調べることとしたい。

0コメント

  • 1000 / 1000