状態価値関数と行動価値関数 - Shinichi0713/RL-study GitHub Wiki
状態価値関数(State Value Function)
状態価値関数
V
(
s
)
は、特定の状態
s
にいるときに期待される総報酬の値を評価します。
これは、エージェントがその状態から始めて将来得られる報酬の期待値を示します。
\begin{align}
V(s)=E[ \sum_{n=0}^{∞} γ^{t} r_{t+1}
∣s_{0}=s] \\
- V(s): 状態sの価値 \\
- γ: 割引率 \\
- r_{t}: 時刻tで得られる報酬 \\
- s_{0}: 初期状態 \\
\end{align}
行動価値関数(Action Value Function)
特定んぼ状態$s$で特定の行動$a$を選択した時に期待される総報酬の値。
状態$s$より開始して、行動$a$を選択し、その後、最適な行動方策に従う時に得られる期待報酬を示す。
\begin{align}
Q(s, a)=E[ \sum_{n=0}^{∞} γ^{t} r_{t+1}
∣s_{0}=s, a_{0}=a] \\
- Q(s, a): 状態sで行動aを選択した場合の価値 \\
- γ: 割引率 \\
- r_{t}: 時刻tで得られる報酬 \\
- s_{0}: 初期状態 \\
- a_{0}: 初期行動 \\
\end{align}
両者の違い
用途:
- 状態価値関数は、状態の価値を評価するために利用される。エージェントが状態に基づいた意思決定を行う際に用いられる。
- 行動価値関数は、状態と行動の組合せの価値を評価すうために利用される。エージェントが具体的な行動を選択する際に用いられる。
計算方法:
- 状態価値関数は、状態から始めて最適な方策に従うときに得られる期待報酬を計算します。
- 行動価値関数は、状態から始めて特定の行動を選択し、その後最適な方策に従うときに得られる期待報酬を計算します。
例
例えば、迷路を解くエージェントを考えた場合:
状態価値関数 V ( s ) V(s) は、迷路内の特定の位置 s s にいるときに、ゴールまでの期待報酬を評価します。 行動価値関数 Q ( s , a ) Q(s,a) は、迷路内の特定の位置 s s で特定の行動 a a(例えば、上に移動する、右に移動する)を選択したときに、ゴールまでの期待報酬を評価します。 このように、状態価値関数と行動価値関数は異なる視点からエージェントの意思決定をサポートします。
方策反復法
方策反復法は、強化学習で使われる方法のひとつで、状態と行動を通じて最適な「方策」(行動選択のルール)を見つけるための手法。
具体的には、以下のステップを繰り返す仕組み
- 方策評価ステップ: 現在の方策に基づいて各状態の価値を計算する。
- 方策改善ステップ: 計算した価値に基づいて、より良い行動を選ぶよう方策を更新する。 以上を繰り返して方策が収束した場合の状態で最適な行動を見つけるという手法。
できる限り高い報酬が見込めるような方策(Policy)を考えることが強化学習のゴール 多くの報酬が獲得できるような方策を見つけるためには、一つ一つの方策について「その方策の良さ」を求める必要があります。
与えられたある方策 $\pi$に従う際、どの程度の報酬を見込めるのかを状態ごとに計算するのが、方策評価 方策 $\pi$ に従う際の、状態 $s$ の将来的な報酬の見込みを $V^{\pi}(s)$ と表します。
方策評価
方策改善
方策評価を行いながら、行動価値関数の中で、最も良い行動の場合の価値に基づき、方策を改善していく(方策改善)操作を繰り返すのが方策反復法。
価値反復法
方策反復法は収束演算を2回する必要がある→計算が沢山必要
ここで更新後の方策は、計算収束した場合、特定の行動を確率1で選択する。
状態価値関数は行動価値関数を用いたベルマン方程式より
\begin{align}
v_{\pi}(s) = \sum_{a} \pi(a|s) q_{\pi}(s, a)
\end{align}
ところが $q_{\pi}(s, a)$ の中で値が最も大きい $a$ を確率1で選択するというもののため、結局 $\sum$ 内の $1(s, a)$ は最大のもののみとなる。
$$ v_{\pi}(s) = q_{\pi}(s, a^*) $$
$$ a^* = \arg\max_{a} q_{\pi}(s, a) $$
アルゴリズム
1.行動価値関数を計算
2.方策を更新
3.上の式を使って状態価値計算
の1,2,3を繰り返すというものです。これを__価値反復法__といいます。
関連用語
貪欲法
貪欲法は局所探索法と並んで近似アルゴリズムの最も基本的な考え方の一つ。
このアルゴリズムは問題の要素を複数の部分問題に分割し、それぞれを独立に評価を行い、評価値の高い順に取り込んでいくことで解を得るという方法。
動的計画法とは異なり保持する状態は常に一つであり、一度選択した要素を再考することはない。
このため得られる解は最適解であるという保証はないが、部分問題の解法と単純なソートのみでアルゴリズムを実装することが可能で、多くの問題に対して兎に角解を求めることが可能な近似アルゴリズムとなる。