強化学習
- 強化学習の意味とこの手法のコアコンセプト
- 強化学習の3つのアプローチ
- 深層強化学習の概念
強化学習とはなにか
強化学習(RL)のアイデアは、エージェントがその環境と対話し、そこから学習し、アクションを実行し、これらのアクションのフィードバックとして報酬を受け取ることにあります。
人は、環境との相互作用から学ぶことは自然に起こります。 あなたが、子供だと想像してみてください。暖炉を見てそれに近づきます。
暖炉は暖かく感じます。 したがって、気分が良くなります(正の報酬 1)。 あなたは火が前向きなことであることを理解します。
しかし、火に触れようとすると、 痛い! やけどをします。(負の報酬-1)。
火は暖かさを生み出すので十分な距離にあるときはポジティブでですが、近づきすぎるとやけどをすることを理解しました。 この例は、人間が相互作用を通じてどのように学習するかを示しています。 強化学習は、このように行動から学習するやりかたです。
強化学習の基本概念
- 強化学習のプロセス
- 強化学習のタスク—エピソードまたは継続タスク
- 学習方法—モンテカルロvs.TD学習
- Exploration/Exploitationのトレードオフ
強化学習プロセス
強化学習のプロセスは、このようなものです。
エージェントがプラットフォームゲームのプレイを学んでいると気を考えましょう。 強化学習は、プロセスは次のようになります。
- エージェントは環境から状態S0S0を受け取ります—ゲームの最初のフレーム(環境)を受け取ります。
- 状態$S_0$に基づいて、エージェントはアクション$A_0$実行します—エージェントは右に移動します。
- 環境は新しい状態$S_1$に移行します。
- エージェントに報酬$R_1$を与えます—私たちは死んでいません(ポジティブ報酬 +1)。
この強化学習のループは、状態、アクション、および報酬のシーケンスを出力します。 エージェントの目標は、期待される累積報酬を最大化することです。
報酬仮説の中心的な考え方
期待される累積報酬を最大化するという報酬仮説のアイデアに基づいています。 報酬仮説は、期待される累積報酬の最大化を目標とします。 したがって、最良の行動をとるには、期待される累積報酬を最大化する必要があります。 各タイムステップ$t$での累積報酬は、次のようになります。
$$
G_{t}=R_{t+1}+R_{t+2}+\ldots
$$
ここで $G_t$ は、タイムステップ$t$における報酬の合計で、以下のように書くことができます。
$$
G_{t}=\sum_{k=0}^{T} R_{t+k+1}
$$
ただし、実際には、この方法で報酬を追加することはできません。 (ゲームの開始時に)早く得られる報酬は、長期的な将来の報酬よりも予測可能であるため、発生する可能性が高くなります。
例として、エージェントが小さなネズミであり、対戦相手が猫であると考えてください(前の図を参照)。 ネズミの目標は、猫に食べられる前に最大量のチーズを食べることです。
図からわかるように、エージェントは、遠くにある(そして猫に近い)チーズよりも、すぐ近くにあるチーズを食べる可能性が高くなります。 ネズミが猫に近づくほど、危険なことが多くなります。
その結果、猫の近くの報酬は大きくなりますが(チーズが多くなります)、達成される可能性が低いため、割引しないといけません。
報酬を割引するために、0から1までの値で割引率ガンマ(𝜸)を定義します。
- ガンマの値が大きいほど、割引は小さくなります。 したがって、学習エージェントは長期的な報酬をより重視します。
- 一方、ガンマの値が小さいほど、割引は大きくなります。 したがって、私たちのエージェントは短期的な報酬(最も近いチーズ)をもっと気にします。
したがって、割引された累積期待報酬は次のとおりになります。
$$
\begin{aligned}
G_{t}=& \sum_{k=0}^{\infty} \gamma^{k} R_{t+k+1} \quad \text { where } \gamma \in[0,1) \\
& R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3} \ldots
\end{aligned}
$$
簡単に言えば、各報酬はガンマによってタイムステップに対して指数的割り引かれます。 時間ステップが増えると、猫はネズミに近づくので、将来の報酬が発生する可能性はますます低くなります。
一時的(Eposocdic)または継続的な(Continuing)タスク
タスクは、強化学習問題のインスタンスです。 タスクは、一時的または継続的のいずれかになります。
一時的なタスク
この場合、開始点と終了点(終了状態$T$)があり、それによってエピソード(状態、アクション、報酬、および新しい状態のリスト)が作成されます。
$$
S_{0}, A_{0}, R_{1}, S_{1}, \ldots, S_{T}, A_{T}, R_{T}
$$
たとえば、ビデオゲームについて考えてみてください。 エピソードは、新しいレベルの開始時に始まり、殺されたとき、またはレベルの終わりに達したときに終了します。
継続的なタスク
これらは永久に続くタスクです(終了状態はありません)。 この場合、エージェントは最適なアクションを選択すると同時に環境と対話することを学ぶ必要があります。
たとえば、自動株取引を行うエージェントについて考えてみます。 このタスクでは、開始点も終了状態もありません。 エージェントは、停止する時間であると判断するまで実行を続けます。
モンテカルロ対TDラーニング
学習に使用できる方法は2つあります。
- エピソードの最後に報酬を収集し、予想される最大の将来の報酬を計算するモンテカルロアプローチです。
- 時間差(TD)学習。これは、各タイムステップでの報酬を推定します。
モンテカルロ
エピソードが終了すると(エージェントが「終了状態」に達すると)、エージェントは累積報酬の合計を調べて、それがどの程度うまくいったかを確認します。 モンテカルロアプローチでは、報酬はゲームの終了時にのみ受け取られます。 その後、知識を追加して新しいゲームを開始します。 この追加された知識により、エージェントは反復するごとにより良い決定を下すことができます。
次の例で考えてみましょう。
ネズミは常に同じ出発点から始めます。
- 猫がネズミを食べた場合、またはネズミが20歩以上移動した場合、エピソードを終了します。
- エピソードの終わりに、状態、アクション、報酬、および新しい状態のリストが得られます。
- エージェントは、合計報酬$G_t$を合計します(パフォーマンスを確認するため)。
- 次に、エージェントは前の式に基づいて$V(S_t)$を更新します。
- 次に、この新しく追加された知識を使用して新しいゲームを開始します。
多くのエピソードを実行すればするほど、エージェントは上手にプレイすることを学びます。
時間差学習:各タイムステップでの学習
一方、TDラーニングは、エピソードの終わりまで待たずに、予想される最大の将来の報酬見積もりを更新します。 代わりに、TD学習は、それまでの経験から非終端状態$S_t$の値推定$V$を更新します。このメソッドは、TD(0)または1ステップTDと呼ばれます。
TDメソッドは、次のタイムステップまで待機して値の見積もりを更新します。 時間$t+1$で、観測された報酬$R_{t+1}$と現在の推定値$V(S_{t+1})$を使用して、すぐにTDターゲットを形成します。
TDターゲットは見積もりです。 実際、ワンステップターゲットに向けて更新することにより、以前の推定値$V(S_t)$を更新します。
探索と利用(Exploration/Exploitation)のトレードオフ
強化学習の問題を解決するために使用されるさまざまなアプローチを検討する前に、もう1つの重要なトピックである探索/利用について説明する必要があります。
- 探索により、環境に関する詳細情報を見つけます。
- 利用は、既知の情報を使用して報酬を最大化します。
強化学習エージェントの目標は、期待される累積報酬を最大化することであることを忘れないでください。 ただし、一般的な罠に陥る可能性があります。
このゲームでは、ネズミに無限の量の小さなチーズ(各1個)を入れることができます。 しかし、迷路の頂上には、巨大なチーズの合計(1000)があります。
ネズミが報酬だけに焦点を合わせるならば、エージェントは決して巨大なチーズの合計に達することはありません。 代わりに、たとえこの報酬源が小さい場合でも、最も近い報酬の報酬源のみを利用します。
ただし、ネズミが少し探索を行うと、大きな報酬を見つけることができます。
このジレンマは探査/利用トレードオフとして知られています。
強化学習への3つのアプローチ
強化学習のコアコンセプトを定義したので、強化学習問題を解決するための3つのアプローチに移りましょう。 これらのアプローチは、価値ベース、ポリシーベース、およびモデルベースです。
価値ベース
価値ベースの強化学習の目標は、価値関数$V(s)$ またはアクション値関数$Q(s,a)$ を最適化することです。
価値関数は、エージェントが各状態で取得する予想される最大の将来の報酬を示します。
特定の状態の価値は、その状態から開始して、エージェントが将来にわたって蓄積すると予想できる報酬の合計額です。
エージェントはこの価値関数を使用して、各ステップで選択する状態を選択します。 エージェントは、最大の値を持つ状態を選択します。
迷路の例では、各ステップで最大値を取ります。-7、-6、-5(というように)を使用して目標を達成します。
ポリシーベース
ポリシーベースの強化学習では、価値関数を使用せずに、ポリシー関数$π(s)$を直接最適化します。
ポリシーは、特定の時点でのエージェントの動作を定義するものです。
$$
a=\pi(s)
$$
各状態を対応する最適なアクションにマッピングするようポリシー関数を学習します。
2つの種類のポリシーがあります。
- 決定論的ポリシー:特定の状態のポリシーは常に同じアクションを返します。
$$a=\pi(s)$$ - 確率的ポリシー:アクション全体の確率分布を出力します。
$$\pi(a \mid s)=P\left[A_{t}=a \mid S_{t}=s\right]$$
その状態でその行動を取る確率
ここでわかるように、ポリシーは各ステップで実行する最善のアクションを直接示しています。
モデルベース
モデルベースの強化学習では、環境をモデル化します。つまり、環境の動作を説明するモデルを作成します。
このアプローチの問題は、環境ごとに異なるモデル表現が必要になることです。
深層強化学習の紹介
深層強化学習は、強化問題を解決するために深層ニューラルネットワークを使います。
Qラーニング(古典的な強化学習)とディープQラーニングを、以降のブログで紹介します。