Sunforger

Sunforger

強化学習の基本概念

人は世界(環境)との相互作用を通じて世界を認識し、フィードバックを得る。

image

図源 https://storage.googleapis.com/deepmind-media/UCL%20x%20DeepMind%202021/Lecture%201%20-%20introduction.pdf

このパラダイムを模倣して、人々は強化学習の手法を提案しました。

基礎#

まず、強化学習におけるいくつかの概念を紹介します。

エージェント(Agent)は、直訳すると代理または知能体であり、意思決定者や決定器として理解できます。

環境(Environment)は、エージェントが環境と相互作用することでフィードバックを得る場所です。

フィードバックという言葉は非常に興味深く、豊かな意味を持っています。具体的には、エージェントの各決定、または各アクション(Action)はコストを生じます。

例えば、それは環境(Environment)の状態を変化させることになります。この時、エージェント(Agent)の環境に対する観測(Observation)が変化します。

我々は得られた環境の観測(Observation)に基づいて、状態(State)を構築します(エージェントの状態)。

完全可観測環境(Fully Observable Environments)では、エージェントの状態は観測と等しいと考えられます。
一般的に、特に説明がない限り、すべての環境は完全可観測であると仮定されます。

アクションを取ることによって生じるコストは、環境の状態の変化に限らず、アクション自体にも良し悪しがあります。我々は報酬(Reward)を用いて、決定 / アクション(Action)の質を測ります。

もしアクションに正の報酬があれば、少なくとも短期的にはそのアクションは良いことを示します。逆に、報酬が負であれば、そのアクションは賢明ではないことを証明します。

下の図は強化学習の原理を直感的に示しています。

image

強化学習は一体何をするものなのでしょうか?

強化学習の目標は、相互作用を通じてエージェントの行動戦略を最適化し、より良いアクションを選択することで報酬の合計を最大化することです(各ステップの報酬を加算します)。

モデリング#

我々は一般的にマルコフ決定過程を用いて強化学習をモデル化します。

次のステップに進む前に、マルコフ(Markov)と強化学習(RL)の関係 - 知乎をお読みください。

ここにマルコフ過程の概念図を示します。

image

図源 https://towardsdatascience.com/markov-chain-analysis-and-simulation-using-python-4507cee0b06e

いくつかのポイントを再度述べます:

  1. マルコフ過程(Markov Process)は二項組 M=(S,P)M=(S, P) から構成され、マルコフ決定過程(Markov Decision Process)は四項組 M=(S,A,P,R)M=(S,A,P,R) から構成されます。時には報酬の割引因子 γ\gamma も含まれますが、これは後で触れます。
  2. ランダム性のため、初期状態と最終状態が与えられた場合、マルコフ過程(Markov Process)に対応するマルコフ連鎖(Markov Chain)は一意ではありません。

重要な概念#

エージェントと環境の相互作用の過程で、ある時点 t において:

  1. エージェントは環境の観測 OtO_t と受け取った報酬 RtR_t に基づいてエージェントの状態 StS_t を構築し(通常、特に説明がない場合は St=OtS_t=O_t と考えられます)、どのように行動を取るかを決定します(つまり、環境に AtA_t を提出します)。

  2. 環境はエージェントが提出したアクション AtA_t を受け取り、そのアクションによって生じる「コスト」を負担し、エージェントに更新された Ot+1O_{t+1}Rt+1R_{t+1} をフィードバックします。

このようにして、循環が繰り返されます。


個体と環境の相互作用により、以下の相互作用の軌跡が生成されます。これを Ht\mathcal H_t と呼びます。 この相互作用の軌跡は、各相互作用における観測、アクション、報酬を保存します。

Ht=O0,A0,R1,O1,A1,,Ot1,At1,Rt,Ot\mathcal H_t = O_0, A_0, R_1,O_1, A_1,\cdots, O_{t-1}, A_{t-1}, R_t, O_t

この Ht\mathcal H_t シーケンスに基づいて、エージェントの状態 StS_t を構築できます。

環境が完全可観測の特性を満たす場合、エージェントの状態 St=OtS_t = O_t と考えられるため、上式 Ht\mathcal H_t 中のすべての O 記号を状態を表す S 記号に置き換えることができます。(多くの資料でも直接 S 記号が使用されています)

この時、Ht\mathcal H_t を使用して StS_t を構築する必要はなく、直接 OtO_tStS_t として扱うことができます。


我々は状態に基づいてどのようなアクションを取るかを決定し、したがって戦略関数 π\pi を抽象化します。戦略関数 π\pi は状態を入力として受け取り、対応するアクションを出力します。これを π(as)\pi(a|s) と記述し、時には π\pi と省略します。

我々は状態空間 S が離散的であり、|S| 種類の異なる状態しか存在しないと仮定します。同様に、アクション空間 A も離散的であり、|A| 種類の異なるアクションしか存在しないと仮定します。

このような設定の下で、戦略関数 π(as)\pi(a|s) をどのように理解すべきでしょうか?

システムが現在 ss 状態にある場合、sSs\in S

状態 ss の条件下で、どのようなアクション(どの a を選択するか)を取るべきかが戦略関数 π(as)\pi(a|s) の考慮する内容です。

戦略関数は一種の複合関数として理解できます。 ランダム戦略を除いて、戦略関数は大きく分けて二つの部分から構成されます:アクションの評価とアクションの選択

アクションの評価は一般に Q 値を使用します。

アクションの選択は一般に argmax または ϵ\epsilon-greedy を使用します。

後で出会った時にまた話しましょう。


個体、またはエージェントは環境との相互作用を通じて報酬を得ます。上で述べたように、強化学習の目標は、アクションを選択すること(つまり適切なポリシーを見つけること)によって、総報酬を最大化することです。

我々は総報酬(Total Reward、ある資料ではリターンまたは将来の報酬とも呼ばれます)を GtG_t と定義します。

Gt=k=0γkRt+k+1=Rt+1+γRt+2+γ2Rt+3++γkRt+k+1+G_t = \sum_{k=0}^\infty {\color{red} \gamma^k}R_{t+k+1} = R_{t+1} + {\color{red} \gamma } R_{t+2} + {\color{red} \gamma^2}R_{t+3} + \cdots + {\color{red} \gamma^k}R_{t+k+1} + \cdots

いくつかの点に注意が必要です:

  1. 総報酬、または総リワードは文字通り R1R_1 から加算されるべきですが、なぜここでは Rt+1R_{t+1} から加算されるのでしょうか?それは R1RtR_1 \sim R_t の値がすでに固定されており、定数であり、最適化できないからです。したがって、我々は将来の報酬により多く目を向けます。

  2. 式中の γ\gamma は上で述べた割引因子(discount factor)であり、通常、割引因子の範囲は 0<γ<10<\gamma<1 に制限されます。

    γ\gamma の値が小さい場合、0 に近づくと、k が増加するにつれて γk\gamma^k はますます小さくなり、Rt+k+1R_{t+k+1} の重みが小さくなります。これは、短期的な影響をより重視し、長期的な影響をあまり考慮しないことを意味します。

    γ\gamma の値が 1 に近い場合、長期的な影響をより多く考慮することを示します。


我々は状態価値関数(State Value Function)または価値関数(Value Function)または単に価値(Value)を【状態 s から出発し、戦略 π\pi に従って得られる期待累積報酬】として定義します。 状態価値関数は状態 s がどれほど「良い」かを測るために使用され、以下のように定義されます:

Vπ(s)=Eπ[GtSt=s]=Eπ[Rt+1+Rt+2+St=s]=Eπ[Rt+1+Gt+1St=s]=Eπ[Rt+1+Vπ(St+1)St=s]=aπ(as)spssa[rssa+γVπ(s)]\begin{align*} V^\pi(s) &= \mathbb E_\pi[G_t|S_t=s] {\color{red}=\mathbb E_\pi[R_{t+1}+R_{t+2}+\cdots|S_t = s] } \\ &=\mathbb E_\pi [R_{t+1}+G_{t+1}|S_t = s] \\ &=\mathbb E_\pi[R_{t+1}+V^\pi(S_{t+1})|S_t = s]\\ &={\color{red} \sum_a\pi(a|s)\sum_{s^\prime}p_{ss^\prime}^a \left[ r_{ss^\prime}^a + \gamma V^\pi(s^\prime) \right] } \end{align*}

第一行の等号は状態価値関数の定義式です。
第二行と第三行の等式は、リターン GtG_t を定義に従って展開した後、得られる再帰形式、またはベルマン方程式(Bellman Equation)の形式です。
第四行はベルマン方程式を展開したもので、等式中の pssap_{ss^\prime}^arssar_{ss^\prime}^a に注意が必要です。

pssap_{ss^\prime}^a は状態遷移確率です。マルコフ決定過程においては記述されるべきです。具体的には:

我々は状態 s の下で、戦略関数 π(as)\pi(a|s) に基づいて a を選択し、環境に提出すると、環境の観測、すなわち観測が変化し、したがって状態も変化します。

しかし、アクション a の影響は固定されているわけではなく、アクション a の影響の下で状態 s が常に特定の状態 ss^\prime に変化することを保証できません。つまり、ss^\prime は state_1、state_2、state_3 または他の状態 state_i に等しい可能性があるため、確率分布 pssap_{ss^\prime}^a に対応します。同様に rssar_{ss^\prime}^a もあります。


我々はアクション価値関数(Action Value Function)を【状態 s から出発し、アクション a を取った後、戦略 π\pi に従って得られる期待累積報酬】として定義します。

Qπ(s,a)=Eπ[GtSt=s,At=a]=Eπ[Rt+1+Rt+2+St=s,At=a]=Eπ[Rt+1+Gt+1St=s,At=a]=Eπ[Rt+1+Qπ(St+1,At+1)St=s,At=a]=spssa[rssa+γaπ(as)Qπ(s,a)]\begin{align*} Q^\pi(s,a) &= \mathbb E_\pi[G_t|S_t=s, A_t=a] {\color{red}=\mathbb E_\pi[R_{t+1}+R_{t+2}+\cdots|S_t = s, A_t = a] } \\ &=\mathbb E_\pi [R_{t+1}+G_{t+1}|S_t = s, A_t = a] \\ &=\mathbb E_\pi[R_{t+1}+Q^\pi(S_{t+1}, A_{t+1})|S_t = s, A_t=a]\\ &={\color{red} \sum_{s^\prime}p_{ss^\prime}^a \left[ r_{ss^\prime}^a +\gamma \sum_{a^\prime} \pi(a^\prime|s^\prime) Q^\pi(s^\prime, a^\prime)\right] } \end{align*}

Vπ(s)V^\pi(s) と似ており、これ以上の説明は省略します。


我々はアドバンテージ関数(Advantage Function)を Q と V の差として定義します。

A(s,a)=Q(s,a)V(s)A(s,a) = Q(s, a) - V(s)

これは状態 s において、アクション a を取ることが現在の戦略 π\pi よりも良いか悪いかの程度を示します。アドバンテージ関数の主な用途は戦略を最適化し、エージェントが現在の状態でどのアクションが有利であるかをより明確に理解するのを助けることです。

アドバンテージ関数(Advantage Function)の理解方法 - 知乎


モデルベース(Model-based)とモデルフリー(Model-free)

モデルとは、状態遷移確率や報酬関数を含みます。

モデルが既知であれば、それはモデルベースであり、完全な情報の下で計画を行います。つまり、動的計画法(Dynamic Programming)アルゴリズムを用いて、求めるポリシーを学習できます。

モデルを知っているということは、アクションと状態が確定したときに、状態遷移確率 pssap_{ss^\prime}^a と対応する rssar_{ss^\prime}^a の確定値を知ることができることを意味します。

逆に、学習がモデルに依存しない場合、つまりモデルが不明であれば、それはモデルフリーと呼ばれます。例えば、ポリシー勾配法(Policy Gradient)はモデルフリーです。

後で詳しく話しましょう。


オンポリシー(On-Policy)とオフポリシー(Off-Policy)

オンポリシーは、エピソードのサンプリング時(行動ポリシー)とポリシーの最適化時(ターゲットポリシー)が同じ戦略であることを指します。

オフポリシーは、二つの戦略が異なることを示します。

後で詳しく話しましょう。

関連資料#

A (Long) Peek into Reinforcement Learning

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。