deep強化学習と強化学習の違いは何ですか?基本的に強化学習とは何かを知っていますが、この文脈で具体的な用語deepは何を表していますか?
強化学習では、エージェントは状態が与えられたときに最良のアクションを考え出そうとします。
たとえば、ビデオゲームパックマンでは、状態空間は現在の2Dゲームの世界、周囲のアイテム(パックドット、敵、壁など)であり、アクションはその2D空間を移動します(上下左右)。
したがって、ゲームの世界の状況を考えると、エージェントは報酬を最大化するために最適なアクションを選択する必要があります。強化学習の試行錯誤により、これらの_(state, action)
_のペアを通じて「知識」を蓄積します。これは、_(state, action)
_のペアに与えられた正または負の報酬があるかどうかを知ることができます。この値をQ(state, action)
と呼びましょう。
この知識を格納する基本的な方法は、次のような表になります。
_state | action | Q(state, action)
---------------------------------
... | ... | ...
_
_(state, action)
_スペースは非常に大きくなる可能性があります
ただし、ゲームが複雑になると、ナレッジスペースが巨大になり、すべての_(state, action)
_ペアを格納することができなくなります。あなたがそれを生の言葉で考えると、わずかに異なる状態であっても、まだ明確な状態です(たとえば、同じ廊下を通り抜ける敵の異なる位置)。 storingとlookup少しずつ異なる状態の代わりに、知識を一般化できるものを使用できます。
したがって、あなたができることはニューラルネットワークを作成することです。入力_(state, action)
_の報酬を予測します(または、状態を考慮して最良のアクションを選択しますが、それを確認したい場合)
Q
値をニューラルネットワークで近似
したがって、効果的に得られるのは、入力_(state, action)
_に基づいて、NNです予測Q
値。これは、上記の表のようにすべての可能な値を格納するよりもはるかに扱いやすい方法です。
_Q = neural_network.predict(state, action)
_
ディープニューラルネットワーク
複雑なゲームでこれを実行できるようにするには、NNを「ディープ」にする必要がある場合があります。つまり、いくつかの隠れ層はその知識のすべての複雑な詳細をキャプチャするのに十分ではない場合があるため、深いNN(多くの隠れ層)を使用します。 。
追加の非表示レイヤーにより、ネットワークは内部で、浅いネットワークでは不可能だったかもしれない複雑な問題を学習および一般化するのに役立つ機能を思い付くことができます。
つまり、ディープニューラルネットワークでは、強化学習をより大きな問題に適用できます。 NNの代わりに任意の関数近似器を使用してQ
を近似することができます。NNを選択する場合、それは必ずしも深いである必要はありません。最近、研究者がそれらを使用して大きな成功を収めただけです。
概要:ディープRLはディープニューラルネットワークを使用してQ(s、a)を近似します。非ディープRLはQ( s、a)表形式の関数を使用する。
一般的な強化学習アルゴリズムは、関数Q(s、a)またはV(s)=を使用して、リターン(割引特典の合計)を推定します。この関数は、離散入力の表マッピングとただし、これは連続状態または無限/多数の状態の制限であり、多数の状態にはより一般化されたアプローチが必要です。
関数近似は、大きな状態空間に使用されます。一般的な関数近似法はニューラルネットワークです。多くの非表示レイヤーを追加することにより、ディープニューラルネットワークを作成できます。
したがって、深層強化学習は、表形式の関数ではなく、関数近似を使用します。具体的には、DRLはディープニューラルネットワークを使用して、QまたはV(またはA)を近似します。