动态规划求解强化学习任务——策略评估[解析解]

目录

上一节我们提到,策略迭代(Policy Iteration)是动态规划(Dynamic Programming,DP)求解强化学习任务的一种方式,共包含两个部分:策略评估,策略改进。
本节主要介绍:在策略评估过程中使用解析方式求解最优价值函数。

希望感兴趣的小伙伴能够看完,虽然使用解析方式求解最优价值函数是很原始的,文章最后也点出时间复杂度极高的问题,但求解析解的推导过程有助于我们对马尔可夫决策过程的理解更加深刻。另外,非常感谢白板大神的视频!!

解析方式求解最优价值函数逻辑梳理

策略评估的基本目标是: p ( s ′ , r ∣ s , a ) p(s',r \mid s,a) p(s,rs,a)已知的条件下,给定策略 π \pi π,对于 ∀ s ∈ S \forall s \in \mathcal S sS,求出价值函数( 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π(sS)
向量中的每个元素均表示某一个状态的价值函数。

回顾贝尔曼期望方程(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π[GtSt=sk]=Eπ[Rt+1+γVπ(St+1)]=aAπ(as)s,rp(s,rs,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=aAπ(as)s,rp(s,rs,a)[r+γM]=aAs,rπ(as)p(s,rs,a)[r+γM]=aAsr{ r[π(as)p(s,rs,a)]+γM[π(as)p(s,rs,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,rs,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+1St=s,At=a]=rrsp(s,rs,a)
继续观察,我们发现 s ′ s' s只存在于条件概率中,根据 概率密度积分等于1的规则(以 离散型随机变量为例):
∑ s ′ p ( s ′ ) = 1 \sum_{s'}p(s') = 1 sp(s)=1
我们可以继续对上式进行化简:
r ( s , a ) = E [ R

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静静的喝酒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值