質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • 機械学習

    644questions

    機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

  • 深層学習

    137questions

  • 強化学習

    14questions

強化学習のon-policyとoff-policyについてです。

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 376

Hayato1201

score 72

強化学習には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の組みを教師データとしてニューラルネットワークを学習し、そこで出来上がったモデルから強化学習を行っていくという方法でした。一応強化学習のコンセプトとしては、環境だけ与えればそこからエージェントが自ら学習していくというものですが、上記の方法だと、初期値(元になるアクションの選び方)を人間が与えていてそこから強化学習スタートといった形ですが、これは一般的なものでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

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の詳細は何も関係ないことがわかるかと思います。

思い出しながらお答えしているので、間違いがあるかもしれません。そのような場合はご指摘いただければ幸いです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/20 09:44

    いつもご解答ありがとうございます。
    追記をさせていただきましたのでご返信いただけると幸いです!

    キャンセル

  • 2018/05/20 16:58

    少し追記しました。

    キャンセル

  • 2018/05/21 13:13

    本の紹介ありがとうございました。今後参考にしたいと思います。
    ご回答についていくつか追記の質問をさせて頂きました。長々と申し訳ないのですがご返信頂ければ嬉しいです。

    キャンセル

  • 2018/05/21 18:20

    追記2に対して

    on/off-policyを区別するのは2つのpolicy(behavior policyとtarget policy)が同じか異なるのか、ということです。
    Q-learningはtarget policyにgreedyを使うので、behavior policyがgreedyでなければoff-policyになります。

    人間が最初にある程度actionを選んであげることで明らかに無駄な探索を減らすことが可能かもしれません。
    off-policyならではの利点になります。

    人間が介入することで、少しだけよい初期値を得られるかもしれませんが、局所最適解にハマるリスクも高まります。
    ランダムでは探索空間が広すぎて収束せず、かといってよいヒューリスティックを与えることができないのなら、唯一の選択肢になります。

    キャンセル

  • 2018/05/21 22:22

    繰り返しのご返信大変助かりました!
    ありがとうございます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • 機械学習

    644questions

    機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

  • 深層学習

    137questions

  • 強化学習

    14questions