2019年1月17日木曜日

Openai gym Atari BreakoutDeterministic-V4 にチャレンジ!DRQNのソースコード付き

まずはRNNの復習を終わったところでRNN及びLSTMをDeep Reinforcement Learningで使えるかどうか調べたら、このようなリサーチペーパーがありました:DRQN?!

. They have, however, struggled with learning policies that require longer term information. Recurrent neural network architectures have been used in tasks dealing with longer term dependencies between data points

比較的長時間に渡った情報を必要とするゲームに悩まされるDQNを強化するためにRNNを取り入れようと考えているそうです。

Attention機能・アルゴリズムまで取り入れたそうだが、Qbertでは逆効果があったそうです。

しかし、結果はかなりグッドでした!
後、図がありましたので構築できるかもしれません:


でもどうせですから「Github Repoありますか」的にメールを送りましたので返信待ちです。

更新:Stanford大学の学生(研究発表チーム員)からメールにて返信が有りました:

こちらのGithub RepoをForkして開発したそうです:https://github.com/carpedm20/deep-rl-tensorflow

次はHuber Lossについて説明したいと思います。原文はこちらです:Huber Lossについて

実はこちらフォークしたGithub Repo内のAtariBreakout DQNのPythonファイルにHuber Lossが入ってますが、何かわからずに困っていたところ偶然と説明分にあいましたのでとてもラッキーでした。

if a large error shows up, the network will change radically to try to minimize it, but since the network is trying to predict its own output, a radical change will mean that the target value will also change radically, and so we might not actually reduce the error as much as we would have if we had changed things more slowly.

上記はMSEの場合、大きいエラーが発生しましたらネットワークがそれを急激に最小化使用とした際に目標値(Target Q)も急激に変化してしまうために徐々にエラーを最小化する場合より日効果的だそうです。

そこでエラーが小さい場合はMSEを活用、大きい場合は無差別にエラーを扱うMAEを活用した方が効率的らしいです。

Huber Lossを調べたきっかけはこちらフォークしたGithub:DQN, DDQN、A2C, A3C等 のAtari BreakoutDeterministic-V4のDQNファイルに載っているからです。

Cartpole-V1のプログラムよりHyperparameterも倍くらい多いので少々時間かかりそうですが、Huber Lossが理解できましたので実施してみます。

以上でした。

0 件のコメント:

コメントを投稿

My Github repo

In case anyone is interested:   https://github.com/nyck33