行動価値関数(Q値)

Action Value Function / Q-Value

行動価値関数とは

行動価値関数(Action Value Function)Q(s,a)とは、状態sで行動aを取り、その後は方策πに従って行動した場合に得られる将来の累積報酬の期待値を返す関数です。Q値(Q-Value)とも呼ばれ、Q^π(s,a) = E_π[Σ γ^t r_t | s_0 = s, a_0 = a] として定義されます。

表:行動価値関数(Q値)の要点まとめ
ひとことで言うとある状態で特定の行動を取ることの良さを表す関数 Q(s,a)。
何がうれしいか各行動のQ値を比べるだけで、最善の行動を選べる。
注意点状態と行動の組み合わせが多いと、表では持ちきれない(DQNで解決)。

Q値の重要性

Q値は状態と行動のペアの価値を直接評価するため、最適な行動選択に直結します。各状態でQ値が最大となる行動 a* = argmax_a Q(s,a) を選べば最適な方策が得られます。この性質により、Q学習やDQNなどの価値ベース手法の基礎となっています。

図:Q値で行動を選ぶ
1現在の状態s
▶
2各行動のQ値上0.8 下0.3 左0.5
▶
3最大を選ぶ「上」を実行
▶
4結果で更新実際の報酬でQ値を修正

Q値の推定方法

Q値は経験データから推定します。Q学習ではTD更新則 Q(s,a) ← Q(s,a) + α[r + γ max_a' Q(s',a') - Q(s,a)] を用いて逐次的に更新します。テーブル形式では全ての状態-行動ペアのQ値を表として保持しますが、大規模問題ではニューラルネットワークで近似するDQNが使用されます。

最適行動価値関数

最適行動価値関数 Q*(s,a) はすべての方策の中で最大のQ値を返す関数です。Q*が分かれば、各状態でargmaxを取るだけで最適方策が直ちに得られます。ベルマン最適方程式 Q*(s,a) = E[r + γ max_a' Q*(s',a')] を満たし、これを近似的に解くことがQ学習ベースの手法の目標です。