rlLinearBa​sisReprese​ntationを使用​した自作エージェント​の作成方法に関して

3 views (last 30 days)
Teppei Iwata
Teppei Iwata on 2 Mar 2020
Commented: Teppei Iwata on 19 Mar 2020
reinforcement learning toolboxを使用して自作エージェントを作成使用と考えております.
その際,Q関数をrlLinearBasisRepresentationで設定することを考えております.
このとき,勾配の計算およびパラメータの更新をどのように行えば良いでしょうか?
toolbox内のソースコードも確認しているのですが,rl.internal.ad.modelというpコードが内部に使用されているようで,動作を追うことができません.
よろしくお願いいたします.

Accepted Answer

Toshinobu Shintai
Toshinobu Shintai on 2 Mar 2020
以下のWebページにあるCustom Agentの作成例はご覧になりましたでしょうか。
ここに書かれている方法で解決すれば幸いですが、いかがでしょうか。
  5 Comments
Hiro Yoshino
Hiro Yoshino on 5 Mar 2020
まず、ごめんなさい:
を読んでいたら、方策勾配法以外の部分も有りますね。失礼しました。Q学習もカスタム出来そうです。
そして、ごめんなさい2: 回答はすぐ出ません。そのうえで私の知っている事と、想像を書きます:
custom agentを使った方法は、ちょっと直ぐには答えが私からは出てきませんが、少し目先を変えます。
まず、勾配の部分ですが線形基底関数での近似なので、ひょっとしたら勾配くらいは解析的に求められるのでは無いですか?そうしたら、組み込まなくても良いですよね?外で計算ができるはずです。
二点目ですが、ニューラルネットワークでQを近似したものの勾配は解析的に求められないので、誤差逆伝搬法というややこしいアルゴリズムで関節的に計算します。DLを使った強化学習での「勾配計算」はこの逆伝搬をやってくれるというもので、上記のような所謂勾配計算とはまた別のモノだと思われます。DLを想定している場所に、数値的には直ぐにできるユーザー定義のQ関数の勾配計算を組み込むのは....変な気がします。
従って、ご意見を見ている限りですが、教科書の初めに出てくるようなTD-Qを連続量でやられたいのかな?と思いました。それはカスタムというか、Qの関数表現を定義するだけの話なのでは?
にQの近似の方法が書いてありそうです。普通にQ学習のエージェントクラスから、そのメンバとしてQの設計をするという流れなような気がします。
こちらに
"Q-learning agent maintains a critic Q(S,A), which is a table or function approximator."
なんて記述が有ります。恐らくテーブル以外の表現(つまり関数近似)ができるのでは?と思います。
Teppei Iwata
Teppei Iwata on 19 Mar 2020
返信が遅くなり申し訳ございません。
> 教科書の初めに出てくるようなTD-Qを連続量でやられたいのかな?と思いました。それはカスタムというか、Qの関数表現を定義するだけの話なのでは?
状態価値に関しては,関数近似Q-learning(SARSA)などと同じことを行っています.
しかし現在,連続行動を取り扱おうとしており,用意されているAgentは使用できませんでした.
MATLAB2020aでのサンプルコードに勾配を使用した学習のサンプルが提示されておりましたのでこちらを参考に勧めてみたいと思います.
ご回答ありがとうございました.

Sign in to comment.

More Answers (0)

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!