动态规划求解强化学习任务——策略评估[解析解]
目录
上一节我们提到,策略迭代(Policy Iteration)是动态规划(Dynamic Programming,DP)求解强化学习任务的一种方式,共包含两个部分:策略评估,策略改进。
本节主要介绍:在策略评估过程中使用解析方式求解最优价值函数。
希望感兴趣的小伙伴能够看完,虽然使用解析方式求解最优价值函数是很原始的,文章最后也点出时间复杂度极高的问题,但求解析解的推导过程有助于我们对马尔可夫决策过程的理解更加深刻。另外,非常感谢白板大神的视频!!
解析方式求解最优价值函数逻辑梳理
策略评估的基本目标是:在 p ( s ′ , r ∣ s , a ) p(s',r \mid s,a) p(s′,r∣s,a)已知的条件下,给定策略 π \pi π,对于 ∀ s ∈ S \forall s \in \mathcal S ∀s∈S,求出价值函数( V π ( s ) , q π ( s , a ) V_\pi(s),q_\pi(s,a) Vπ(s),qπ(s,a))。
换句话说 → \to → 将状态集合 S \mathcal S S中的所有状态对应的价值函数 全部求出来。
设状态集合 S \mathcal S S中包含 ∣ S ∣ |\mathcal S| ∣S∣个状态, V π ( s ) V_\pi(s) Vπ(s)可以表示成如下的向量形式(向量形状 → ∣ S ∣ × 1 \to |\mathcal S| \times 1 →∣S∣×1):
V π ( s ) = ( V π ( s 1 ) V π ( s 2 ) V π ( s 3 ) . . . V π ( s ∣ S ∣ ) ) V_\pi(s) = \begin{pmatrix} V_\pi(s_1) \\ V_\pi(s_2) \\ V_\pi(s_3)\\ ...\\ V_\pi(s_{|\mathcal S|}) \end{pmatrix} Vπ(s)=
Vπ(s1)Vπ(s2)Vπ(s3)...Vπ(s∣S∣)
向量中的每个元素均表示某一个状态的价值函数。
回顾贝尔曼期望方程(Markov Decision Process, MDP):
这里使用 s k s_k sk区别一下表示价值函数向量的 V π ( s ) V_\pi(s) Vπ(s)中的 s s s。
V π ( s k ) = E π [ G t ∣ S t = s k ] = E π [ R t + 1 + γ V π ( S t + 1 ) ] = ∑ a ∈ A π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ V π ( s ′ ) ] \begin{aligned} V_\pi(s_k) & = E_\pi[G_t \mid S_t=s_k] \\ & = E_\pi[R_{t+1} + \gamma V_\pi(S_{t+1})] \\ & = \sum_{a \in \mathcal A}\pi(a \mid s) \sum_{s',r}p(s',r \mid s,a)[r + \gamma V_\pi(s')] \\ \end{aligned} Vπ(sk)=Eπ[Gt∣St=sk]=Eπ[Rt+1+γVπ(St+1)]=a∈A∑π(a∣s)s′,r∑p(s′,r∣s,a)[r+γVπ(s′)]
由于 V π ( s ) V_\pi(s) Vπ(s)本身是向量, s k , s ′ s_k,s' sk,s′均是状态集合 S \mathcal S S中的元素,同样地, V π ( s k ) , V π ( s ′ ) V_\pi(s_k),V_\pi(s') Vπ(sk),Vπ(s′)也都是向量 V π ( s ) V_\pi(s) Vπ(s)中的元素。如果将 V π ( s k ) , V π ( s ′ ) V_\pi(s_k),V_\pi(s') Vπ(sk),Vπ(s′)看作未知量 M , M ′ M,M' M,M′,将贝尔曼期望方程展开成如下形式:
M = ∑ a ∈ A π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ M ′ ] = ∑ a ∈ A ∑ s ′ , r π ( a ∣ s ) p ( s ′ , r ∣ s , a ) [ r + γ M ′ ] = ∑ a ∈ A ∑ s ′ ∑ r { r [ π ( a ∣ s ) p ( s ′ , r ∣ s , a ) ] + γ M ′ [ π ( a ∣ s ) p ( s ′ , r ∣ s , a ) ] } \begin{aligned} M & = \sum_{a \in \mathcal A}\pi(a \mid s) \sum_{s',r}p(s',r \mid s,a)[r + \gamma M'] \\ & = \sum_{a \in \mathcal A}\sum_{s',r}\pi(a \mid s)p(s',r \mid s,a)[r + \gamma M'] \\ & = \sum_{a \in \mathcal A}\sum_{s'}\sum_{r}\{r[\pi(a \mid s)p(s',r \mid s,a)] + \gamma M'[\pi(a \mid s)p(s',r \mid s,a)]\} \end{aligned} M=a∈A∑π(a∣s)s′,r∑p(s′,r∣s,a)[r+γM′]=a∈A∑s′,r∑π(a∣s)p(s′,r∣s,a)[r+γM′]=a∈A∑s′∑r∑{
r[π(a∣s)p(s′,r∣s,a)]+γM′[π(a∣s)p(s′,r∣s,a)]}
观察上述展开式:
等式右侧是关于 a , s ′ , r a,s',r a,s′,r的三重累加(积分)形式,并且奖励(Reward) r r r, γ \gamma γ, p ( s ′ , r ∣ s , a ) p(s',r \mid s,a) p(s′,r∣s,a)都是已知条件,策略 π \pi π是给定的, M M M和 M ′ M' M′之间仅是纯粹的线性关系(一次函数关系)。
一个包含 ∣ S ∣ |\mathcal S| ∣S∣个元素的 V π ( s ) V_\pi(s) Vπ(s)向量 → \to → 需要对应 ∣ S ∣ |\mathcal S| ∣S∣个方程的 ∣ S ∣ |\mathcal S| ∣S∣元方程组对其进行求解 → \to → 使用矩阵运算对方程组的解进行表示。
准备工作
在明确了最终目标 → \to → 对 ∣ S ∣ |\mathcal S| ∣S∣元方程组进行求解,需要做一些准备工作:
奖赏(Reward)函数
奖赏(Reward)函数是马尔可夫决策过程中的知识点,在推导贝尔曼最优方程时,我们使用回报(Return)作为评价标准而不是奖赏函数。
设定 R \mathcal R R为奖励集合, r ( s , a ) r(s,a) r(s,a)表示智能体在 t t t时刻状态 S t = s S_t=s St=s下执行动作 a a a时得到的 期望奖赏(expected reward)。其公式表达如下:
r ( s , a ) = E [ R t + 1 ∣ S t = s , A t = a ] = ∑ r r ∑ s ′ p ( s ′ , r ∣ s , a ) \begin{aligned} r(s,a) & = \mathbb E[R_{t+1} \mid S_t=s,A_t=a] \\ & = \sum_rr\sum_{s'} p(s',r \mid s,a) \end{aligned} r(s,a)=E[Rt+1∣St=s,At=a]=r∑rs′∑p(s′,r∣s,a)
继续观察,我们发现 s ′ s' s′只存在于条件概率中,根据 概率密度积分等于1的规则(以 离散型随机变量为例):
∑ s ′ p ( s ′ ) = 1 \sum_{s'}p(s') = 1 s′∑p(s′)=1
我们可以继续对上式进行化简:
r ( s , a ) = E [ R