本文将使用贝尔曼方程推导强化学习中的 State value functionQ function

1、一些概念

1.1、回报(Return)

智能体的目标是最大化回报。通常,回报需要定义一个折扣因子 \(\gamma\),回报函数如下: \[ \begin{aligned} R_t &= r_{t+1}+\gamma r_{t+2}+\gamma^2 r_{t+3}...\\ &= \sum_{k = 0}^{\infty}\gamma^k r_{t+k+1} \end{aligned} \]

1.2、策略(Policy)

描述的是在某一状态 \(s\) 下采取何种动作 \(a\) 的概率,显然有: \[ \sum_a\pi(s, a) = 1 \]

1.3、State value function

State value function描述的是在策略 \(\pi\) 下该状态 \(s\) 下有多好。 \[ V^{\pi}(s)=\mathbb{E}_{\pi}[R_t|s_t=s] \]

1.4、Q function

Q function 描述的是在策略 \(\pi\) 下,在状态 \(s\) 采取动作 \(a\) 有多好。 \[ Q^\pi(s, a) = \mathbb{E}[R_t|s_t=s,a_t=a] \]

2、使用贝尔曼方程求解 State value function 和 Q function

贝尔曼方程(Bellman equation)是理查德·贝尔曼推导出来的,可以帮助我们解决马尔可夫决策问题(MDP)。

首先我们定义 \(P_{ss'}^{a}\) 表示从状态 \(s\) 到 状态 \(s'\) 采取动作 \(a\) 的概率是多少: \[ \mathcal{P}_{ss'}^{a}=pr(s_{t+1}=s'|s_t=s,a_t=a) \] 定义 \(R_{ss'}^{a}\) 表示从状态 \(s\) 到 状态 \(s'\) 采取动作 \(a\) 的获得的期望回报是多少: \[ \mathcal{R}_{ss'}^{a}=\mathbb{E}[R_{t+1}|s_{t+1}=s',s_t=s,a_t=a] \] 下面就可以推导出贝尔曼方程了,考虑贝尔曼方程的 State value function。根据回报的定义,我们可以将 State value function 改写为: \[ \begin{aligned} V^\pi(s)&=\mathbb{E}_\pi[r_{t+1}+\gamma r_{t+2}+\gamma^2 r_{t+1}+...|s_t=s]\\ &=\mathbb{E}_\pi[\sum_{k=0}^{\infty}\gamma^kr_{t+k+1}|s_t=s] \end{aligned} \] 将第一个回报 \(r_{t+1}\) 取出来,则有 \[ \begin{aligned} V^\pi(s) &= \mathbb{E}_{\pi}[R_t|s_t=s]\\ &= \mathbb{E}_\pi[r_{t+1}+\gamma\sum_{k=0}^{\infty}\gamma^kr_{t+k+2}|s_t=s]\\ &= \mathbb{E}_\pi[r_{t+1}+\gamma R_{t+1}|s_t=s]\\ &= \mathbb{E}_\pi[r_{t+1}|s_t=s]+\gamma\mathbb{E}_\pi[R_{t+1}|s_t=s]\\ &= \mathbb{E}_\pi[r_{t+1}|s_t=s]+\gamma\mathbb{E}_\pi[\mathbb{E}(R_{t+1}|s_{t+1}=s')|s_t=s] --全期望公式\\ &= \mathbb{E}_\pi[r_{t+1}|s_t=s]+\gamma\mathbb{E}_\pi[V^{\pi}(s_{t+1}=s')|s_t=s]\\ &= \mathbb{E}_\pi[r_{t+1}+\gamma V^{\pi}(s')|s_t=s] \end{aligned} \]\(V^\pi(s)=\mathbb{E}_{\pi}[r_{t+1}+\lambda V^\pi(s')|s_t=s]\)

我们可以通过对所有可能的动作所有可能的返回状态进行求和,将我们的方程改写为: \[ V^\pi(s) = \sum_a\pi(s, a)\sum_{s'}\mathcal{P_{ss'}^{a}}[\mathcal{R_{ss'}^{a}}+\lambda V^{\pi}(s')] \] 同理可推导 Q function 为: \[ Q^\pi(s, a) = \sum_{s'}\mathcal{P_{ss'}^{a}}[\mathcal{R_{ss'}^{a}}+\lambda \sum_{a'}Q^\pi(s',a')] \]