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

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

 Réponse acceptée

Hiro Yoshino
Hiro Yoshino le 20 Oct 2020

0 votes

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

3 commentaires

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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Reinforcement Learning Toolbox dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!