强化学习-学习笔记8 | Q-learning

上一篇笔记认识了Sarsa,可以用来训练动作价值函数Qπ;本篇来学习Q-Learning,这是另一种 TD 算法,用来学习 最优动作价值函数 Q-star,这就是之前价值学习中用来训练 DQN 的算法。

8. Q-learning

承接上一篇的疑惑,对比一下两个算法。

8.1 Sarsa VS Q-Learning

这两个都是 TD 算法,但是解决的问题不同。

Sarsa

  • Sarsa 训练动作价值函数 Qπ(s,a)
  • TD target:yt=rt+γQπ(st+1,at+1)
  • 价值网络是 Qπ 的函数近似,Actor-Critic 方法中,用 Sarsa 更新价值网络(Critic)

Q-Learning

  • Q-learning 是训练最优动作价值函数 Q(s,a)

  • TD target :yt=rt+γmaxaQ(st+1,at+1),对 Q 求最大化

    注意这里就是区别。

  • 用Q-learning 训练DQN

个人总结区别在于Sarsa动作是随机采样的,而Q-learning是取期望最大值

下面推导 Q-Learning 算法。

8.2 Derive TD target

注意Q-learning 和 Sarsa 的 TD target 有区别。

之前 Sarsa 证明了这个等式:Qπ(st,at)=E[Rt+γQπ(St+1,At+1)]

等式的意思是,Qπ 可以写成 奖励 以及 Qπ 对下一时刻做出的估计;

等式两端都有 Q,并且对于所有的 π 都成立。

所以把最优策略记作 π,上述公式对其也成立,有:

Qπ(st,at)=E[Rt+γQπ(St+1,At+1)]

通常把Qπ 记作 Q,都可以表示最优动作价值函数,于是便得到:

Q(st,at)=E[Rt+γQ(St+1,At+1)]

处理右侧 期望中的 Q,将其写成最大化形式:

  • 因为At+1=argmaxaQ(St+1,a) ,A一定是最大化 Q的那个动作

    解释:

    给定状态St+1,Q* 会给所有动作打分,agent 会执行分值最高的动作。

  • 因此 Q(St+1,At+1)=maxaQ(St+1,a)At+1 是最优动作,可以最大化 Q

  • 带入期望得到:Q(st,at)=E[Rt+γmaxaQ(St+1,a)]

    左边是 t 时刻的预测,等于右边的期望,期望中有最大化;期望不好求,用蒙特卡洛近似。用 rt st+1 代替 Rt St+1

  • 做蒙特卡洛近似:rt+γmaxaQ(st+1,a)称为TD target yt

    此处 yt 有一部分真实的观测,所以比左侧 Q-star 完全的猜测要靠谱,所以尽量要让左侧 Q-star 接近 yt

8.3 算法过程

a. 表格形式

  • 观测一个transition (st,at,rt,st+1)
  • st+1 rt 计算 TD target:rt+γmaxaQ(st+1,a)
  • Q-star 就是下图这样的表格:

image

找到状态 st+1 对应的,找出最大元素,就是 Q 关于 a 的最大值。

  • 计算 TD error: δt=Q(st,at)yt
  • 更新Q(st,at)Q(st,at)αδt,更新(st,at)位置,让Q-star 值更接近 yt

b. DQN形式

image

DQN Q(s,a;w)近似 Q(s,a),输入是当前状态 s,输出是对所有动作的打分;

接下来选择最大化价值的动作 at=argmaxaQ(St+1,a,w),让 agent 执行 at;用收集到的 transitions 学习训练参数 w,让DQN 的打分 q 更准确;

用 Q-learning 训练DQN的过程:

  • 观测一个transition (st,at,rt,st+1)
  • TD target: rt+γmaxaQ(st+1,a;w)
  • TD error: δt=Q(st,at;w)yt
  • 梯度下降,更新参数: wwαδtQ(st,at;w)w

x. 参考教程

本文作者:climerecho

本文链接:https://www.cnblogs.com/Roboduster/p/16455054.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   climerecho  阅读(717)  评论(1编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 尚好的青春 孙燕姿
  2. 2 孙燕姿
  3. 3 克卜勒 孙燕姿
- 孙燕姿
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.