视频链接:【强化学习的数学原理】课程:从零开始到透彻理解
贝尔曼方程
考虑这样的一个轨迹:
S t → A t R t + 1 , S t + 1 → A t + 1 R t + 2 , S t + 2 → A t + 2 R t + 3 , … S_t \xrightarrow{A_t} R_{t+1},S_{t+1} \xrightarrow{A_{t+1}} R_{t+2},S_{t+2} \xrightarrow{A_{t+2}} R_{t+3},\dots
S t A t R t + 1 , S t + 1 A t + 1 R t + 2 , S t + 2 A t + 2 R t + 3 , …
对应的return G t G_t G t 如下所示:
G t = R t + 1 + γ R t + 2 + γ 2 R t + 2 + … , = R t + 1 + γ ( R t + 2 + γ R t + 3 + … ) , = R t + 1 + γ G t + 1 \begin{aligned}
G_t &= R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+2} + \dots, \\
&= R_{t+1} + \gamma(R_{t+2} + \gamma R_{t+3} +\dots), \\
&= R_{t+1} + \gamma G_{t+1}
\end{aligned}
G t = R t + 1 + γ R t + 2 + γ 2 R t + 2 + … , = R t + 1 + γ ( R t + 2 + γ R t + 3 + … ) , = R t + 1 + γ G t + 1
定义状态价值state value:
v π ( s ) = E [ G t ∣ S t = s ] = E [ R t + 1 + γ G t + 1 ∣ S t = s ] = E [ R t + 1 ∣ S t = s ] + γ E [ G t + 1 ∣ S t = s ] \begin{aligned}
v_\pi(s) &= \mathbb{E}[G_t|S_t = s] \\
&= \mathbb{E}[R_{t+1} + \gamma{G_{t+1}}|S_t = s] \\
&= \mathbb{E}[R_{t+1}|S_t = s] + \gamma \mathbb{E}[G_{t+1}|S_t = s]
\end{aligned}
v π ( s ) = E [ G t ∣ S t = s ] = E [ R t + 1 + γ G t + 1 ∣ S t = s ] = E [ R t + 1 ∣ S t = s ] + γ E [ G t + 1 ∣ S t = s ]
分别计算两部分的内容:
E [ R t + 1 ∣ S t = s ] = ∑ a π ( a ∣ s ) E [ R t + 1 ∣ S t = s , A t = a ] = ∑ a π ( a ∣ s ) ∑ r p ( r ∣ s , a ) r \begin{aligned}
\mathbb{E}[R_{t+1}|S_t=s] &= \sum_a \pi(a|s)\mathbb{E}[R_{t+1}|S_t=s, A_t = a] \\
&= \sum_a \pi(a|s) \sum_r p(r|s, a)r
\end{aligned}
E [ R t + 1 ∣ S t = s ] = a ∑ π ( a ∣ s ) E [ R t + 1 ∣ S t = s , A t = a ] = a ∑ π ( a ∣ s ) r ∑ p ( r ∣ s , a ) r
E [ G t + 1 ∣ S t = s ] = ∑ s ′ E [ G t + 1 ∣ S t = s , S t + 1 = s ′ ] p ( s ′ ∣ s ) = ∑ s ′ E [ G t + 1 ∣ S t + 1 = s ′ ] p ( s ′ ∣ s ) = ∑ s ′ v π ( s ′ ) p ( s ′ ∣ s ) = ∑ s ′ v π ( s ′ ) ∑ a p ( s ′ ∣ s , a ) π ( a ∣ s ) \begin{aligned}
\mathbb{E}[G_{t+1}|S_t=s] &= \sum_{s'}\mathbb{E}[G_{t+1}|S_t=s, S_{t+1} = s']p(s'|s) \\
&= \sum_{s'}\mathbb{E}[G_{t+1}|S_{t+1} = s']p(s'|s) \\
&= \sum_{s'}v_\pi(s')p(s'|s) \\
&= \sum_{s'}v_\pi(s')\sum_a p(s'|s, a)\pi(a|s)
\end{aligned}
E [ G t + 1 ∣ S t = s ] = s ′ ∑ E [ G t + 1 ∣ S t = s , S t + 1 = s ′ ] p ( s ′ ∣ s ) = s ′ ∑ E [ G t + 1 ∣ S t + 1 = s ′ ] p ( s ′ ∣ s ) = s ′ ∑ v π ( s ′ ) p ( s ′ ∣ s ) = s ′ ∑ v π ( s ′ ) a ∑ p ( s ′ ∣ s , a ) π ( a ∣ s )
其中,第一步到第二步忽略 S t = s S_t=s S t = s 的原因:一旦你已经知道下一时刻状态是S t + 1 = s ′ S_{t+1}=s' S t + 1 = s ′ 那么从t+1之后的未来回报G t + 1 G_{t+1} G t + 1 只依赖于当前状态s ′ s' s ′ ,不在依赖于s s s 了。
那么现在state value公式如下所示:
v π ( s ) = E [ R t + 1 ∣ S t = s ] + γ E [ G t + 1 ∣ S t = s ] , = ∑ a π ( a ∣ s ) ∑ r p ( r ∣ s , a ) r ⏟ mean of immediate rewards + γ ∑ a π ( a ∣ s ) ∑ s ′ p ( s ′ ∣ s , a ) v π ( s ′ ) ⏟ mean of future rewards , = ∑ a π ( a ∣ s ) [ ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v π ( s ′ ) ] , ∀ s ∈ S . \begin{aligned}
v_\pi(s) &= \mathbb{E}[R_{t+1}|S_t = s] + \gamma\mathbb{E}[G_{t+1}|S_t = s], \\
&= \underbrace{\sum_a \pi(a|s) \sum_r p(r|s, a)r}_{\text{mean of immediate rewards}} + \gamma \underbrace{\sum_a \pi(a|s) \sum_{s'} p(s'|s, a)v_\pi(s')}_{\text{mean of future rewards}}, \\
&= \sum_a \pi(a|s) \left[ \sum_r p(r|s, a)r + \gamma \sum_{s'} p(s'|s, a)v_\pi(s') \right], \quad \forall s \in \mathcal{S}.
\end{aligned}
v π ( s ) = E [ R t + 1 ∣ S t = s ] + γ E [ G t + 1 ∣ S t = s ] , = mean of immediate rewards a ∑ π ( a ∣ s ) r ∑ p ( r ∣ s , a ) r + γ mean of future rewards a ∑ π ( a ∣ s ) s ′ ∑ p ( s ′ ∣ s , a ) v π ( s ′ ) , = a ∑ π ( a ∣ s ) [ r ∑ p ( r ∣ s , a ) r + γ s ′ ∑ p ( s ′ ∣ s , a ) v π ( s ′ ) ] , ∀ s ∈ S .
这就是给定策略 π \pi π 下,状态价值函数的贝尔曼期望方程,他表达的是:
当前的状态价值 = 一步即使奖励的期望 + γ 下一状态价值的期望 当前的状态价值 = 一步即使奖励的期望 + \gamma下一状态价值的期望 当前的状态价值 = 一步即使奖励的期望 + γ 下一状态价值的期望
定义动作价值action value:
q π ( s , a ) = E [ G t ∣ S t = s , A t = a ] E [ G t ∣ S t = s ] ⏟ v π ( s ) = ∑ a E [ G t ∣ S t = t , A t = a ] ⏟ q π ( s , a ) π ( a ∣ s ) \displaystyle
q_\pi(s, a) = \mathbb{E}[G_t|S_t = s, A_t = a] \\
\underbrace{\mathbb{E}[G_t|S_t = s]}_{v_\pi(s)}= \sum_a \underbrace{\mathbb{E}[G_t | S_t = t,A_t = a]}_{q_\pi(s,a)} \pi(a|s)
q π ( s , a ) = E [ G t ∣ S t = s , A t = a ] v π ( s ) E [ G t ∣ S t = s ] = a ∑ q π ( s , a ) E [ G t ∣ S t = t , A t = a ] π ( a ∣ s )
因此, v π ( s ) = ∑ a π ( a ∣ s ) q π ( s , a ) v_\pi(s) = \sum\limits_a \pi(a|s) q_\pi(s,a) v π ( s ) = a ∑ π ( a ∣ s ) q π ( s , a )
贝尔曼最优公式