MATLAB Answers

強化学習におけるエピ​ソード数の変数として​の取得方法

5 ビュー (過去 30 日間)
Y. M
Y. M 2020 年 10 月 20 日
コメント済み: Y. M 2020 年 10 月 21 日
強化学習用のコードを書いている途中で、
ε-greedy法の設定を以下のようにしたいと考えています。
if episode<400
agentOptions.EpsilonGreedyExploration=(episode*(-0.00125)+0.5+0.05)
end
↑は、εを0.5から0.05へ、一次関数的に減衰させることを目的としたコードです。
ここで、エピソード数を変数として取得するにはどのようにすればよろしいでしょうか。
初歩的な質問で大変恐縮ですが、
教えていただけますと幸いです。

  0 件のコメント

サインインしてコメントする。

採用された回答

Hiro
Hiro 2020 年 10 月 20 日
train関数を使って学習させる場合は、episodeから都度変更することは出来ないと思われます。
agentOptions.EpsilonDecay % 減衰率
agentOptions.EpsilonMin % 最小のepsilon値
で非線形に小さくなっていきます。

  3 件のコメント

Y. M
Y. M 2020 年 10 月 21 日
ご解説いただきありがとうございます。
その際のεの設定は、示していただいた式を
agentOptions.Epsilon=
で入力すればよろしいのでしょうか。
Hiro
Hiro 2020 年 10 月 21 日
何のアルゴリズムを使うかで、agentのオプションは当然ことなります
Q-learningなら
から調べてください。
インスタンスを作るタイミングでもepsilonは設定できますし、あとから設定することもできます。
Q-agentの場合は、
agentOptions.Epsilon = 0.1;
のように設定できます。
Y. M
Y. M 2020 年 10 月 21 日
ありがとうございます。
頂いた助言をもとに何とかやってみたいと思います。

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!