Open AI Spinning Up で深層強化学習のお勉強 -Part 1: Key Concepts in RL- [その1]
INTRODUCTION TO RL -Part 1: Key Concepts in RL-
今回のページです。長いので分けます。今回は前半(Key Concepts and TerminologyのThe RL Problemまで)だけ。
spinningup.openai.com INTRODUCTION TO RLで学べる事 簡単に言えば、RLとはエージェントと、試行錯誤による学習方法の研究です。エージェントの行動に報酬または罰則を与えることで、今後その行動を繰り返したり行わなくなったりする可能性が高くなるという考えを形式化します。 囲碁とかビデオゲームとかロボット制御とか、いろいろできます。詳しくは上記ページをご覧ください。
図は上記ページから引用。
RLの主なキャラクターは、エージェントと環境です。環境は、エージェントが住み、相互作用する世界です。対話のすべてのステップで、エージェントは世界の状態(場合によっては部分的に)を観測し、実行するアクションを決定します。環境は、エージェントがそれに応じて行動するときに変化しますが、単独で変化する場合もあります。
また、エージェントは環境から報酬を与えられます。これは、現在の状態がどれだけ良いか悪いかを伝える数値です。エージェントの目標は、リターンと呼ばれる累積報酬を最大化することです。強化学習は、エージェントが目標を達成するために行動を学習する方法です。
RLをより具体的に説明するには、追加の用語を導入する必要があります。 状態は環境の状態の完全な説明です。環境について隠されている情報はありません。それに対し、観測は状態の部分的な説明であり、情報が省略される場合があります。
deep RLでは、ほとんどの場合、状態と観測は実数値のベクトル、行列、または高次テンソルで表されます。たとえば、視覚的な観察は、そのピクセル値のRGBの行列で表すことができます。ロボットの状態は、関節の角度と速度で表すことができます。
エージェントが環境の完全な状態を観測できる場合、環境が完全観測されていると言います。エージェントが部分的な観測のみできる場合、環境は部分的観測されていると言います。これは所謂、完全知覚と不完全知覚の話とは違って、十分か不十分にかかわらず、全体か部分かの話だと思います。 強化学習の記法では観測と書いた方が適切な箇所を状態と書いてある場合があります。具体的には、エージェントが行動を決定する方法についての記述です。行動は状態を条件に決定されますが(と記述)、エージェントはしばしば状態にはアクセスできず、観測しか得られないためです(現実的には)。 異なる環境では、異なる種類の行動が許されます。特定の環境におけるすべての有効な行動のセットは、多くの場合行動空間と呼ばれます。AtariやGoなどの環境には、エージェントが利用できる動きの数が限られている離散行動空間があります。エージェントが物理的な世界でロボットを制御するような環境には、連続行動空間があります。連続行動空間では、行動は実数値のベクトルです。
この区別は、deep RLのメソッドにとって非常に重要です。環境が離散行動空間か連続行動空間によってアルゴリズムを大きく作り直さなければならない場合もあります。 方策は実行する行動を決めるために、エージェントが使用するルールです。方策が決定論的である場合、通常はを使って次のように表されます。 また、確率論的である場合、を使います。 方策は基本的にエージェントの脳なので、「方策」という言葉を「エージェント」の代わりに使用することは珍しくありません。例えば、「方策は報酬を最大化しようとする。」などです。
deep RLでは、パラメータ化された方策を扱います。方策は出力が、一連のパラメータ(例えば、ニューラルネットワークの重みとバイアス)に依存する計算可能な関数であり、最適化アルゴリズムを介して動作を変更するできます。
多くの場合、このような方策のパラメータをまたはで示し、添え字としてこれを記述して、強調して表示します。 例:決定的方策。以下は、Tensorflowで連続行動空間の単純な決定的方策を構築するためのコードスニペットです。 ただし、 主に2種類あり、離散行動空間で使えるカテゴリー方策 (categorical policies)と、連続行動空間で使える対角ガウス方策 (diagonal Gaussian policies)です。
確率的方策の使用と訓練には、主に2つの計算が重要です。 いったん後回し いったん後回しその2 軌跡とは、環境の一連の状態と行動であり、 環境の初期状態は、初期状態分布から確率でランダムにサンプリングされます。 状態遷移(時刻の状態と時刻の状態との間に環境に何が起こるか)は、環境の自然の法則に支配され、唯一の直近の行動に依存しています。それらは決定的であれば、 確率的であれば、 です。行動はエージェントの方策から得られます。 軌跡は、エピソード(episodes)やロールアウト(rollouts)とも呼ばれます。 報酬関数は強化学習において非常に重要です。それは、環境の現在の状態、今とった行動、そして次の環境の状態に依存します。 多くの場合は現在の状態または状態行動対にのみに依存するように単純化されます。
エージェントの目標は、軌跡上の累積報酬を最大化することです。累積報酬はすべてのケースを[tax:R(\ tau)]で表しますが、実際にはいくつかの意味があります。どの意味かは状況からわかるので、表記はあまり重要ではありません。
累積報酬の1つに有限期間の割引なしリターンがあります。これは、一定のステップ数で得られる報酬の合計です。 別の累積報酬に無限期間の割引リターンがあります。これは、エージェントがこれまでに獲得したすべての報酬の合計ですが、報酬が獲得される時刻によって割引されます。割引係数は
です。 現在得られる報酬の方が、将来得られる報酬よりも大きくなります。つまり、時間が経つにつれて、報酬が減っていきます。数学的には、有限期間のリターンは収束しない場合がありますが、無限期間の割引リターンは、割引係数によって収束します。 これら二つのリターンの違いは明確ですが、実際にdeep RLで用いるとき、使いわけが曖昧に記述されている場合があります。 リターンの種類や方策の種類に関係なく、RLの目標は、エージェントが期待リターンを最大化する方策を選択することです。
期待リターンについて話すには、まず、軌跡上の確率分布について話す必要があります。
環境の遷移と方策の両方が確率的であると仮定します。この場合、ステップの軌跡の確率は次のとおりです。 期待リターンはを用いて次のように表されます。 RLの主要な最適化問題は、 と表され、は最適方策です。 ボリューミーですね。RLのやっていることは図の通りですし、リターンを最大化したいというのも自然です。RLは、エージェントが方策を徐々に改善していって、リターンが最大になる方策を見つけるということです。Stochastic Policiesのところは後で更新します。
OpenAI Spinning Upの記事一覧
coffee-g9.hatenablog.com
はじめに
What Can RL Do?
Key Concepts and Terminology
States and Observations
You Should Know
Action Spaces
Policies
Deterministic Policies
obs = tf.placeholder(shape=(None, obs_dim), dtype=tf.float32)
net = mlp(obs, hidden_dims=(64,64), activation=tf.tanh)
actions = tf.layers.dense(net, units=act_dim, activation=None)
mlp
は、指定されたサイズと活性化関数で複数のdense
レイヤーを互いに積み重ねる関数です。Stochastic Policies
Categorical Policies
Diagonal Gaussian Policies
Trajectories
You Should Know
Reward and Return
You Should Know
The RL Problem
前半まとめ