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

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

新規登録して質問してみよう
ただいま回答率
85.50%
深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

強化学習

強化学習とは、ある環境下のエージェントが現状を推測し行動を決定することで報酬を獲得するという見解から、その報酬を最大限に得る方策を学ぶ機械学習のことを指します。問題解決時に得る報酬が選択結果によって変化することで、より良い行動を選択しようと学習する点が特徴です。

機械学習

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

Q&A

解決済

1回答

3999閲覧

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

Hayato1201

総合スコア220

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

強化学習

強化学習とは、ある環境下のエージェントが現状を推測し行動を決定することで報酬を獲得するという見解から、その報酬を最大限に得る方策を学ぶ機械学習のことを指します。問題解決時に得る報酬が選択結果によって変化することで、より良い行動を選択しようと学習する点が特徴です。

機械学習

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

0グッド

0クリップ

投稿2018/05/19 14:33

編集2018/05/21 04:15

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

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/19 15:39

編集2018/05/20 07:57
mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Hayato1201

2018/05/20 00:44

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

2018/05/20 07:58

少し追記しました。
Hayato1201

2018/05/21 04:13

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

2018/05/21 09:20

追記2に対して on/off-policyを区別するのは2つのpolicy(behavior policyとtarget policy)が同じか異なるのか、ということです。 Q-learningはtarget policyにgreedyを使うので、behavior policyがgreedyでなければoff-policyになります。 人間が最初にある程度actionを選んであげることで明らかに無駄な探索を減らすことが可能かもしれません。 off-policyならではの利点になります。 人間が介入することで、少しだけよい初期値を得られるかもしれませんが、局所最適解にハマるリスクも高まります。 ランダムでは探索空間が広すぎて収束せず、かといってよいヒューリスティックを与えることができないのなら、唯一の選択肢になります。
Hayato1201

2018/05/21 13:22

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問