Q学習の内容
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/08/25 15:47 UTC 版)
Q学習では実行するルールに対しそのルールの有効性を示すQ値という値を持たせ、エージェントが行動するたびにその値を更新する。ここでいうルールとはある状態とその状態下においてエージェントが可能な行動を対にしたものである。例えばエージェントの現在の状態を s t {\displaystyle s_{t}} とし、この状態で可能な行動が a {\displaystyle a} , b {\displaystyle b} , c {\displaystyle c} , d {\displaystyle d} の4通りあるとする。このとき、エージェントは4つのQ値、 Q ( s t , a ) {\displaystyle Q(s_{t},a)} 、 Q ( s t , b ) {\displaystyle Q(s_{t},b)} 、 Q ( s t , c ) {\displaystyle Q(s_{t},c)} 、 Q ( s t , d ) {\displaystyle Q(s_{t},d)} を元に行う行動を決定する。行動の決定方法は理論上では無限回数試行するならランダムでもQ値の収束は証明されているが、現実には収束を早めるため、なるべく Q値の大きな行動が高確率で選ばれるように行う。選択方法としては、ある小さな確率 ε {\displaystyle \varepsilon } でランダムに選択し、それ以外では Q値の最大の行動を選択する ε {\displaystyle \varepsilon } -グリーディ手法や、遺伝的アルゴリズムで使用されているルーレット選択、以下のようなボルツマン分布を利用したソフトマックス手法などが使用されている。 π ( s t , a ) = exp ( Q ( s t , a ) / T ) ∑ p ∈ A exp ( Q ( s t , p ) / T ) {\displaystyle \pi (s_{t},a)={\frac {\exp(Q(s_{t},a)/T)}{\sum _{p\in A}\exp(Q(s_{t},p)/T)}}} ここで T {\displaystyle T} は正の定数、 A {\displaystyle A} は状態 s t {\displaystyle s_{t}} でエージェントが可能な行動の集合である。 行動を決定した場合、次にその状態と行動のQ値を更新する。例として状態 s t {\displaystyle s_{t}} のエージェントが行動 a {\displaystyle a} を選び、状態が s t + 1 {\displaystyle s_{t+1}} に遷移したとする。このとき Q ( s t , a ) {\displaystyle Q(s_{t},a)} を次の式で更新する。 Q ( s t , a ) ← Q ( s t , a ) + α [ r t + 1 + γ max p Q ( s t + 1 , p ) − Q ( s t , a ) ] {\displaystyle Q(s_{t},a)\leftarrow Q(s_{t},a)+\alpha \left[r_{t+1}+\gamma \max _{p}Q(s_{t+1},p)-Q(s_{t},a)\right]} ここで α {\displaystyle \alpha } は学習率といい、後述する条件を満たす数値であり、 γ {\displaystyle \gamma } は割引率といい0以上1以下の定数である。また r t + 1 {\displaystyle r_{t+1}} はエージェントが s t + 1 {\displaystyle s_{t+1}} に遷移したときに得た報酬である。上記の更新式は現在の状態から次の状態に移ったとき、そのQ値を次の状態で最も Q値の高い状態の値に近づけることを意味している。このことにより、ある状態で高い報酬を得た場合はその状態に到達することが可能な状態にもその報酬が更新ごとに伝播することになる。これにより、最適な状態遷移の学習が行われる。 Q学習は学習率 α {\displaystyle \alpha } が以下の条件を満たすとき、全ての Q値は確率 1 で最適な値に収束することが証明されている。 ∑ t = 0 ∞ α ( t ) → ∞ {\displaystyle \sum _{t=0}^{\infty }\alpha (t)\to \infty } ∑ t = 0 ∞ α ( t ) 2 < ∞ {\displaystyle \sum _{t=0}^{\infty }\alpha (t)^{2}<\infty } この収束性の良さのため Q学習に関する多くの研究がなされているが、いくつかの問題点も指摘されている。例えば Q学習による理論的保証は値の収束性のみであり、収束途中の値には具体的な合理性が認められないため、(価値反復法の) Q学習は方策勾配法と比べると学習途中の結果を近似解として用いにくい。また、パラメータの変化に敏感でありその調整に多くの手間が必要である、などがある。
※この「Q学習の内容」の解説は、「Q学習」の解説の一部です。
「Q学習の内容」を含む「Q学習」の記事については、「Q学習」の概要を参照ください。
- Q学習の内容のページへのリンク