通过代码学Sutton强化学习1:Grid World OpenAI环境和策略评价算法

经典教材Reinforcement Learning: An Introduction 第二版由强化领域权威Richard S. Sutton 和 Andrew G. Barto 完成编写,内容深入浅出,非常适合初学者。在本篇中,引入Grid World示例,结合强化学习核心概念,并用python代码实现OpenAI Gym的模拟环境,进一步实现策略评价算法。

Grid World 问题

第四章例子4.1提出了一个简单的离散空间状态问题:Grid World,其大致意思是在4x4的网格世界中有14个格子是非终点状态,在这些非终点状态的格子中可以往上下左右四个方向走,直至走到两个终点状态格子,则游戏结束。每走一步,Agent收获reward -1,表示Agent希望在Grid World中尽早出去。另外,Agent在Grid World边缘时,无法继续往外只能呆在原地,reward也是-1。

Finite MDP 模型

先来回顾一下强化学习的建模基础:有限马尔可夫决策过程(Finite Markov Decision Process, Finite MDP)。如下图,强化学习模型将世界抽象成两个实体,强化学习解决目标的主体Agent和其他外部环境。它们之间的交互过程遵从有限马尔可夫决策过程:若Agent在t时间步骤时处于状态 S t S_t St,采取动作 A t A_t At,然后环境根据自身机制,产生Reward R t + 1 R_{t+1} Rt+1 并将Agent状态变为 S t + 1 S_{t+1} St+1

环境自身机制又称为dynamics,工程上可以看成一个输入(S, A),输出(S, R)的方法。由于MDP包含随机过程,某个输入并不能确定唯一输出,而会根据概率分布输出不同的(S, R)。Finite MDP简化了时间对于模型的影响,因为(S, R)只和(S, A)有关,不和时间t有关。另外,有限指的是S,A,R的状态数量是有限的。

数学上dynamics可以如下表示

p ( s ′ , r ∣ s , a ) ≐ Pr ⁡ { S t = s ′ , R t = r ∣ S t − 1 = s , A t − 1 = a } p\left(s^{\prime}, r \mid s, a\right) \doteq \operatorname{Pr}\left\{S_{t}=s^{\prime}, R_{t}=r \mid S_{t-1}=s, A_{t-1}=a\right\} p(s,rs,a)Pr{ St=s,Rt=rSt1=s,At1=a}
即是四元组作为输入的概率函数 p : S × R × S × A → [ 0 , 1 ] p: S \times R \times S \times A \rightarrow [0, 1] p:S×R×S×A[0,1]

满足
∑ s ′ ∈ S ∑ r ∈ R p ( s ′ , r ∣ s , a ) = 1 ,  for all  s ∈ S , a ∈ A ( s ) \sum_{s^{\prime} \in \mathcal{S}} \sum_{r \in \mathcal{R}} p\left(s^{\prime}, r \mid s, a\right)=1, \text { for all } s \in \mathcal{S}, a \in \mathcal{A}(s) sSrRp(s,rs,a)=1, for all sS,aA(s)

以Grid World为例,当Agent处于编号1的网格时,可以往四个方向走,往任意方向走都只产生一种 S, R,因为这个简单的游戏是确定性的,不存在某一动作导致stochastic状态。例如,在1号网格往左就到了终点网格(编号0),得到Reward -1这个规则可以如下表示
p ( s ′ = 0 , r = − 1 ∣ s = 1 , a = L ) = 1 p\left(s^{\prime}=0, r=-1 \mid s=1, a=\text{L}\right) = 1 p(s=0,r=1s=1,a=L)=1
因此,状态s=1的所有dynamics概率映射为
p ( s ′ = 0 , r = − 1 ∣ s = 1 , a = L ) = 1 p ( s ′ = 2 , r = − 1 ∣ s = 1 , a = R ) = 1 p ( s ′ = 1 , r = − 1 ∣ s = 1 , a = U ) = 1 p ( s ′ = 5 , r = − 1 ∣ s = 1 , a = D ) = 1 \begin{aligned} p\left(s^{\prime}=0, r=-1 \mid s=1, a=\text{L}\right) &=& 1 \\ p\left(s^{\prime}=2, r=-1 \mid s=1, a=\text{R}\right) &=& 1 \\ p\left(s^{\prime}=1, r=-1 \mid s=1, a=\text{U}\right) &=& 1 \\ p\left(s^{\prime}=5, r=-1 \mid s=1, a=\text{D}\right) &=& 1 \end{aligned} p(s=0,r=1s=1,a=L)p(s=2,r=1s=1,a=R)p(s=1,r=1s=1,a=U)p(s=5,r=1s=1,a=D)====1111

强化学习的目的

在给定了问题以及定义了强化学习的模型之后,强化学习的目的当然是通过学习让Agent能够学到最佳策略 π ∗ \pi_{*} π,也就是在某个状态下的行动分布,记成 π ( a ∣ s ) \pi(a|s) π(as)。对应在数值上的优化目标是Agent在一系列过程中采取某种策略的reward总和的期望(Expected Return)。下面公式定义了t步往后的reward总和,其中 γ \gamma γ 为discount factor,用于权衡短期和长期reward对于当前Agent的效用影响。等式最后一步的意义是t步后的reward总和等价于t步所获的立即reward R t + 1 R_{t+1} Rt+1,加上t+1步后的reward总和 γ G t + 1 \gamma G_{t+1} γGt+1

G t ≐ R t + 1 + γ R t + 2 + γ 2 R

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值