强化学习_04_DataWhale策略梯度

习题

4.1 如果我们想让机器人自己玩视频游戏,那么强化学习中三个组成部分(演员、环境、奖励函数)具体代表什么?

  • 演员:相当于智能游戏手柄
  • 环境:游戏APP,返回智能体的当前状态,以及APP当前的环境状态、奖励等
  • 奖励函数:基于游戏APP的规则获取的奖励。

4.2 在一个过程中,一个具体的轨迹s1, a1, s2, a2出现的概率取决于什么?

主要由两部分造成的影响,智能体和环境。

  • 智能体:在初始s1状态,智能体基于策略方式选取行动a1[ p θ ( a t ∣ s t ) p_{\theta}(a_t|s_t) pθ(atst) ], 然后环境基于奖励r1。智能体的策略和参数 θ \theta θ,决定了a1, a2,即不同的行动
  • 环境:在智能体的行动a1之后,环境会给予随后的状态[ P ( s t + 1 ∣ s t , a t ) P(s_{t+1}|s_t, a_t) P(st+1st,at) ]。环境对行动给出反馈,决定s1, s2

4.3 当我们在计算最大期望奖励(maximize expected reward)时, 应该使用什么方法?

使用梯度上升的办法,最大化期望

4.4 我们应该如何理解梯度策略的公式?

∇ R θ ‾ = 1 N ∑ n = 1 N ∑ t = 1 T n R ( τ n ) ∇ l o g p θ ( a t b ∣ s t n ) \nabla \overline{R_{\theta}}= \frac{1}{N}\sum^{N}_{n=1}\sum^{T_n}_{t=1}R(\tau^n)\nabla log p_{\theta} (a_t^b|s_t^n) Rθ=N1n=1Nt=1TnR(τn)logpθ(atbstn)
在采样的数据中,采样到某一个状态 s t s_t st要执行某一个动作 a t a_t at,如果 τ \tau τ的奖励为正,则增加在状态 s t s_t st时执行 a t a_t at的概率,反之则减小概率。

4.5 我们可以使用哪些方法来进行梯度提升的计算?

和一般的神经网络一样基于Tensorflow 或者 Pytorch框架,用Adam、SGD、rmsprop等优化器来进行梯度提升的计算。

4.6 进行梯度策略的优化时的小技巧有哪些?

添加基线

  • 增加原因:
    • 1)在4.4中我们希望得到的奖励有正有负数,而在实际的项目中奖励是从0开始的。
    • 2)我们进行梯度上升参数更新的时候是采用的采样数据,当有一个动作未被采用,且其他动作都计算出需要提升概况的时候,那么未被采用的动作就需要降低概率(所有动作的对数概率和要为0)这显然不合理.

基于以上两点我们可以增加一个基准线就可以避免上述的问题了。即增加基线b
∇ R θ ‾ = 1 N ∑ n = 1 N ∑ t = 1 T n ( R ( τ n ) − b ) ∇ l o g p θ ( a t b ∣ s t n ) \nabla \overline{R_{\theta}}= \frac{1}{N}\sum^{N}_{n=1}\sum^{T_n}_{t=1}(R(\tau^n) - b)\nabla log p_{\theta} (a_t^b|s_t^n) Rθ=N1n=1Nt=1Tn(R(τn)b)logpθ(atbstn)
b可以采用奖励的均值 R = E [ R ( τ ) ] R=E[R(\tau)] R=E[R(τ)]

分配合适的分数
在我们增加基线的梯度上升策略的式子中,我们可以看出。所有的动作都是同样的权重进行加权。可以参考我们之前推导贝尔曼方程时用到价值函数的计算: G t = γ t + 1 + γ G t + 1 G_t=\gamma_{t+1} + \gamma G_{t+1} Gt=γt+1+γGt+1 ;即当前状态的价值等于当前动作的价值加上未来的价值总和。未来价值用折扣系数进行衰减。那么我们可以将策略梯度优化为如下:
∇ R θ ‾ = 1 N ∑ n = 1 N ∑ t = 1 T n ( ∑ t ′ = t T n γ t ′ − t r t ′ n − b ) ∇ l o g p θ ( a t b ∣ s t n ) \nabla \overline{R_{\theta}}= \frac{1}{N}\sum^{N}_{n=1}\sum^{T_n}_{t=1}(\sum_{t'=t}^{T_n}\gamma^{t'-t}r_{t'}^n - b)\nabla log p_{\theta} (a_t^b|s_t^n) Rθ=N1n=1Nt=1Tn(t=tTnγttrtnb)logpθ(atbstn)

综合以上两种技巧,我们将其统称为优势函数(advantage function),用A 来代表优势函数。优势函数取决于状态和动作,即我们需计算的是在某一个状态s 采取某一个动作a 的时候,优势函数有多大。优势函数的意义在于,假设我们在某一个状态st 执行某一个动作at,相较于其他可能的动作的优势。
它在意的不是一个绝对,而是相对的好,即相对优势(relative advantage),因为会减掉一个基线b。 A θ ( s t , a t ) A_\theta (s_t, a_t) Aθ(st,at)通常可以是由一个网络预估出来的,这个网络叫做评论员。

4.7 对于梯度策略的两种方法, 蒙特卡罗(MC)强化学习和时序差分(TD)强化学习方法有什么联系和区别。

  • 蒙特卡罗(MC):更新频率为一个回合结束。
  • 时序差分(TD):更新频率为一个动作结束之后。
    两者的目的是一致的,更新策略梯度,更新智能体行动策略

4.8 请详细描述REINFORCE的计算过程

  • 基于确定的策略模型输出每个动作的概率,对所有的动作概率
  • 采用采样的方法去选择动作与环境进行交互,同时环境会反馈一个整个回合的数据
  • 将该回合数据计算损失,并用策略梯度进行迭代更新策略模型。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Scc_hy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值