web-dev-qa-db-ja.com

QラーニングとValue Iterationの違いは何ですか?

Qラーニングは強化学習の値反復とどう違うのですか?

Qラーニングはモデルフリーで、トレーニングサンプルは遷移です(s, a, s', r)。しかし、Qラーニングのすべての遷移の遷移と報酬を知っているので、状態とアクションのペアの報酬、および状態からのすべてのアクションの遷移を知っているモデルベースの学習と同じではありません(be確率的または決定論的)?違いがわかりません。

22
huskywolf

移行の確率を知っていて、Qラーニングのすべての移行に対する報酬を知っていれば、モデルベースの学習の代わりにそれを使用する理由や、根本的にどのように異なるのかは、はっきりしていません。結局のところ、遷移確率と報酬は、値の反復で使用されるモデルの2つのコンポーネントです。それらがある場合、モデルがあります。

重要なのはQラーニングでは、エージェントは状態遷移の確率や報酬を知らないです。エージェントは、特定のアクションを介して1つの状態から別の状態に移行することに対して報酬があることを発見し、報酬を受け取ります。同様に、特定の状態に到達し、そのオプションを確認することで、特定の状態からどの遷移が利用できるかを把握するだけです。状態遷移が確率的である場合、異なる遷移が発生する頻度を観察することにより、状態間の遷移の確率を学習します。

ここで考えられる混乱の原因は、プログラマーとして、報酬と状態遷移がどのように設定されているかを正確に知っている可能性があることです。実際、最初にシステムを設計するときは、これがデバッグとアプローチが機能することを確認するために非常に重要であるため、実行する可能性が高くなります。ただし、これをエージェントに伝えないでください。代わりに、試行錯誤を繰り返して自分で学習するように強制します。 これは、事前の知識がなく、何をすべきかを理解していない新しい状況に入ることができるエージェントを作成する場合に重要です。代わりに、気にしない場合エージェントが単独で学習する能力については、状態空間が大きすぎて繰り返し列挙できない場合は、Q学習も必要になる可能性があります。開始知識なしでエージェントを探索させると、計算量を増やすことができます。

39
seaotternerd

値の反復は、遷移確率がある場合に使用されます。つまり、アクションaで状態xから状態x 'に移行する確率がわかっている場合です。対照的に、シミュレーションを可能にするブラックボックスがあるかもしれませんが、実際には確率が与えられていません。つまり、モデルフリーです。これは、Q学習を適用するときです。

また、学んだことは異なります。値の反復により、状態xが与えられたときに予想されるコストを学習します。 q-learningを使用すると、状態xになり、アクションaを適用すると、予想される割引コストが得られます。

アルゴリズムは次のとおりです。

私は現在、試験のための強化学習についてかなり書き留めています。 私の講義ノート にも興味があるかもしれません。ただし、ほとんどがドイツ語です。

8
Martin Thoma

受け入れられた答えが違いの本質を捉えたとは思いません。 Richard Suttonの本の最新版を引用するには:

"q *を使用すると、最適なアクションの選択がさらに簡単になります。q*を使用すると、エージェントは1ステップ先の検索を実行する必要すらありません。 q ∗(s; a)を最大化します。action-value関数は、すべての1ステップ先の検索の結果を効果的にキャッシュします。これにより、各状態でローカルかつ即時に使用可能な値として、予測される最適な長期リターンが提供されます{actionしたがって、最適なアクション値関数は、状態だけでなく、状態のアクションを表すという犠牲を払って、可能な後続の状態とその値について何も知らなくても、最適なアクションを選択できるようにします。環境のダイナミクスについて何も知る必要がありません。 "

通常、実際の問題では、エージェントは世界(またはいわゆる変換)のダイナミクスを認識していませんが、相互作用中に環境が返すものであり、報酬関数は実際に定義されているため、報酬は確実にわかります。

q-learningと通常の値の反復の実際の違いは次のとおりです:V *を取得した後も、後続の状態を先読みして、その状態に最適なアクションを特定する必要があります。そして、この先読みには、アクションの後に動的な遷移が必要です。しかし、q *がある場合、最適な計画は、最大のq(s、a)ペアからaを選択することだけです。

3
ZhaoqunZhong