質問: 強化学習にはon-policyとoff-policyがあり、方策を直接最適化するのがon-policyだ、といった様な記述がありますがこれは具体的にどういう事でしょうか? 例えば、DQNなどでQ学習を行う際には、まずエージェントがランダムに行動し、そこでサンプリングされた状態と行動のサンプルを用いてモデルを学習させていきますが、policy gradientを使ったという論文のプログラムを見た所、ある決まりに従った方法で予め行動を選択する様にして、その際の状態と行動のサンプルをとっておいてそこからモンテカルロ法を用いてQ値の更新をしていっている様でした。これはまさに最初に決めた方策からそれを最適化していっている様ですが、これがon-policyというものなのでしょうか?何もない状態からとにかくエージェントだけに学習させていくのがoffで、最初にある程度行動の決め方を支持して、そこからその方法を最適化していくのがonという事でしょうか? 追記 The difference between Off-policy and On-policy methods is that with the first you do not need to follow any specific policy, your agent could even behave randomly and despite this, off-policy methods can still find the optimal policy. とある様にやはり完全にgreedyに探索していくのがoff-policyで現在のpolicyに沿って探索を行って行くのがon-policyだという様な事ですよね?onだと最初に方策を指定しているため収束が早くなるけれどその分それが局所解の可能性も上がるし、offだと広い範囲の可能性を探索できるけどその分収束が遅くなるからトレードオフだという解釈で間違いないでしょうか。また、EpsGreedyなどは基本的にQ値の高いものを選択するが、一定の確率でそうでないものを選択するため解にバリエーションが出るというものだと思いますが、これを用いたものもon-policyだと言えるのでしょうか? 追記2 「強化学習をする際に、エージェントのactionを決めるためのpolicyと評価関数を更新するためのpolicyは一致する必要がありません。 そのことだけが、off/on-policyを区別します。」 との事ですが、これはつまり例えば将棋なら、この人がここにおいたらここに起きなさい、というのがエージェントのactionを決めるためのpolicyで、ε-greeayなどの評価関数を更新するためのpolicyとはまた別の話、off/on-policyを区別するのは評価関数を更新するためのpolicyの部分だよ、という事でよいでしょうか?また、greedy以外でactionを決めればoff-policyになるとの事ですが、これは評価値の高いものを選んでいくというpolicyがgreedyなので、それを使わずに完全にランダムに行うならoff-policyだけれどもε-greeayなどを使うのが実践的だよ、という事でしょうか?ここについてですが、ε-greeayならon,offどちらなのでしょうか?ε-greeayというpolicyを使っているのでonでしょうか。 それと、「エージェントのactionを決めるためのpolicy」についてですが、これを最初に決めてそれを学習させていく方法というのはよくあるのでしょうか?自分が見たプログラムではある、人が決めた方法に基づいてアクションを取り、その際のstateとactionの組みを教師データとしてニューラルネットワークを学習し、そこで出来上がったモデルから強化学習を行っていくという方法でした。一応強化学習のコンセプトとしては、環境だけ与えればそこからエージェントが自ら学習していくというものですが、上記の方法だと、初期値(元になるアクションの選び方)を人間が与えていてそこから強化学習スタートといった形ですが、これは一般的なものでしょうか?
回答: https://stats.stackexchange.com/questions/184657/what-is-the-difference-between-off-policy-and-on-policy-learning 上記のリンクの回答が参考になります。 何か疑問があれば追記していただければ幸いです。 追記 強化学習は結構の歴史があって、それなりに複雑なので、つまみ食いをすると混乱することが多いかと思います。 以下の本(草稿)は無料で読めますので、一度体系的に学習してみるといろいろな概念が整理されるかと思います。(リンク先のものより新しい版です) 少し重めなので、周囲に興味のある人と輪読するとよいかもしれません。 http://incompleteideas.net/book/bookdraft2017nov5.pdf p84の5-5にoff-policyの話の説明があります。 強化学習をする際に、エージェントのactionを決めるためのpolicyと評価関数を更新するためのpolicyは一致する必要がありません。 そのことだけが、off/on-policyを区別します。 Q-learningでは評価更新にgreedyを使う(p107の6-5)ので、greedy以外でactionを決めればoff-policyになります。 またaction決めにgreedyを使うと、on-policyということになります。ただしgreedyだけをするとまともな強化学習とは言いがたいということで、意味があまりありません。一般にQ-learningを考える際にはgreedyはダメということを確認した後だから、という背景があります。本の冒頭のあたりに強化学習は「explore」と「exploit」の競合を扱うと述べられていたと記憶しています。 off-policyの場合、完全ランダムでもよいのですが、そうすると学習が安定しないのでimportance samplingやε-greeayなどすることが実践的になります。 でも概念だけを考えれば、policyの詳細は何も関係ないことがわかるかと思います。 思い出しながらお答えしているので、間違いがあるかもしれません。そのような場合はご指摘いただければ幸いです。