强化学习_06_DataWhale深度Q网络

习题

6.1 为什么在DQN 中采用价值函数近似(value function approximation)的表示方法?

因为状态都是连续的状态空间巨大,不能像Qtable一样明确的算出所以状态点的价值,所以用深度Q函数对连续动作输出
近似值。

6.2 评论员的输出通常与哪几个值直接相关?

与状态和演员有关。状态、价值本质上来说是依赖于演员的。不同的演员在相同的状态下也会有不同的输出。

6.3 我们通常怎么衡量状态价值函数 V π ( s ) V^\pi(s) Vπ(s)?其优势和劣势分别有哪些?

这个其实就从计算方式来看,和表格学习方法是一样的:

  • montacarlo: 回合结束后进行迭代
    • Q t = Q t + η ∗ ( G t − Q t ) Q_t=Q_t + \eta * (G_t - Q_t) Qt=Qt+η(GtQt)
    • G t = ∑ t T γ t R t G_t = \sum_t^T\gamma^tR_t Gt=tTγtRt
  • 时序差分
    • Q t = Q t + η ∗ ( G t − Q t ) Q_t=Q_t + \eta * (G_t - Q_t) Qt=Qt+η(GtQt)
    • G t = R t + γ Q t + 1 G_t = R_t + \gamma Q_{t+1} Gt=Rt+γQt+1
    • DQN用的是 V π ( s t ) = V π ( s t + 1 ) + r t V^\pi(s_t)=V^\pi(s_{t+1})+r_t Vπ(st)=Vπ(st+1)+rt
  • 区别:
    • 参数迭代的时间
    • montacarlo本身既有很大的随机性,我们可将其 G a G_a Ga看成一个随机变量,所以其最终的偏差会很大
    • 时序差分的方法,其具有随机性的变量为r,因为计算 s t s_t st我们采用同一个动作,所得奖励不一定一样。
    • 但是相对于 G a G_a Ga的随机程度来说,r的随机性非常小,这是因为本身G_a就是由很多r组合而成的。

6.4 基于我们上面说的网络(monota carlo)的方法,我们怎么训练这个网络呢?或者我们应该将其看做机器学习中什么类型的问题呢?

训练步骤:

  • 每个回合结束,多次收集状态-动作到缓冲区,采样并构建数据集([s, a] [y])。
  • 用数据集训练并更新Q函数
  • 重复以上步骤直到收敛

将其看做回归任务

6.5 基于上面介绍的基于TD的网络方法,具体地,我们应该怎么训练模型呢?

  • 初始化Q函数,目标函数 Q ^ = Q \hat{Q}=Q Q^=Q
  • 对于每个回合
    • 对于每一个时间步:
      • 对于给定的状态 s t s_t st, 基于 波尔兹曼探索 执行动作 a t a_t at
      • 获得反馈 r t r_t rt, 新状态 s t + 1 s_{t+1} st+1
      • ( s t , a t , r t , s t + 1 ) (s_t, a_t, r_t, s_{t+1}) (st,at,rt,st+1)存储在缓冲区中
      • 从缓冲区中采样 ( s i , a i , r i , s i + 1 ) (s_i, a_i, r_i, s_{i+1}) (si,ai,ri,si+1)
      • 计算出目标值 y = r i + m a x a Q ^ ( s i + 1 , a ) y=ri+max_a\hat{Q}(s_i+1, a) y=ri+maxaQ^(si+1,a)
      • 更新Q的参数使得 Q ( s i , a i ) Q(s_i, a_i) Q(si,ai)尽可能接近于y
      • 每C步重置目标函数 Q ^ = Q \hat{Q}=Q Q^=Q

s t s_t st进入网络会得到 V π ( s t ) V^\pi(s_t) Vπ(st) s t + 1 s_{t+1} st+1进入网络会得到 V π ( s t + 1 ) V^\pi(s_{t+1}) Vπ(st+1),同时 V π ( s t ) = V π ( s t + 1 ) + r t V^\pi(s_t)=V^\pi(s_{t+1})+r_t Vπ(st)=Vπ(st+1)+rt,所以问你希望两者的之差尽量接近 r t r_t rt。以此为约束进行参数迭代。

6.6 动作价值函数和状态价值函数的区别于联系是什么?

联系:目的都是为了得到累积奖励的期望值
区别:

  • 状态价值函数的输入是一个状态
  • 动作价值函数的输入是一个状态和动作

6.7 Q函数的两种表示方法?

  • 输入状态&动作的时候,输出一个标量:该状态下该动作的价值
  • 输入仅仅一个状态时,输出多值:该状态下所有动作的价值

6.8 当我们有了Q函数后,我们怎么找到更好的策略 π ′ \pi' π呢?

当我们已经学习好 π \pi π的Q函数,那么根据公式 π ′ ( s ) = a r g m a x a Q π ( s , a ) \pi'(s)=argmax_aQ^\pi(s, a) π(s)=argmaxaQπ(s,a)可以得知,我们的下一个策略行动定是更好的。

6.9 解决探索-利用窘境问题的探索方法有哪些?

本质都是设定一定的概率进行随机探索。
优化点都是当Q训练到一定程度进行探索的概率会降低非常多。

  • ϵ \epsilon ϵ-贪心 探索
  • 波尔兹曼探索

6.10 我们使用经验回放有什么好处?

因为我们训练的时候更多的消耗花费在环境交互上。而环境交互的重点就是经验数据,采用经验回放,可以多次高效利用。
同时,经验回放中会存放不同策略产出的经验,这数据的差异非常有利于模型的学习,提升模型的泛化能力。

6.11 在经验回放中我们是要观察\pi的价值,里面混杂了一些不是\pi的经验,这会有影响么?

不影响,因为是经验采用,并不采样路径。

6.12 DQN和Q学习有什么异同点?

相同:

  • 同样可以采用时序差分和蒙特卡洛方法进行迭代
  • 同样是对状态/状态-动作的价值学习
  • 解决类似的问题

差异:

  • 适用范围不一样
    • 理论上DQN的适用会更广,其不受状态空间的限制
    • Q学习对于连续动作的学习,会状态空间爆炸,且学习不充分
  • 价值函数不同
    • DQN采用深度Q网络
    • Q学习采用表格
  • 学习的数据同
    • DQN从历史数据中随机采样
    • Q学习直接用下一状态的数据进行学习
  • 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、付费专栏及课程。

余额充值