李宏毅深度强化学习笔记(四)Q-learning(Advanced Tips)

时间:2024-03-13 17:12:53

参考jessie_weiqing博客:https://blog.csdn.net/cindy_1102/article/details/87907470
李宏毅深度强化学习课程 https://www.bilibili.com/video/av24724071

李宏毅深度强化学习笔记(四)Q-learning(Advanced Tips)

Double DQN

由于Q值总是基于使得Q最大的action得出的,因此会趋向于被高估,于是引入double DQN
double DQN的真实Q值往往比Q-learning高

  • 为什么 Q 经常被高估
    因为目标值 rt+maxQ(st+1,a) rt+maxQ(st+1,a)r_t+maxQ(s_{t+1}, a) 总是倾向于选择被高估的行动action
  • double DQN 是如何工作的?
    使用两个Q function(因此称为double), 一个用来选择行动action,另外一个用来计算Q值,通常会选择target network来作为另外一个用于计算Q值的Q‘ function
    李宏毅深度强化学习笔记(四)Q-learning(Advanced Tips)

如果Q高估了 a 从而被选择, Q’ 会给这个被选择的a一个合适的Q值入股Q’会高估某个action a,这个action并不会被Q选择到.

Dueling DQN

只对网络结构进行改变!
李宏毅深度强化学习笔记(四)Q-learning(Advanced Tips)

这里计算出来的值有两个:
V(s): 表示静态环境,状态s所具有的价值.
A(s,a): 表示在状态s下采取行动a时的 advantage function
这种类型的网络结构可以用来学习不被行动action影响下的state的价值
通常,在计算 A(s,a) 时,使用单个行动对应的 advantage function 的值减去在该状态下采取所有行动所获得的 advantage function 的值的平均值,因此,对于一个状态下的所有action,具有零和特征。(normalise 在和 V(s)相加之间进行)
此外,如果只需要通过改变V(s)的值就能改变某个状态下所有的Q的话,会比较方便、

Prioritized Experience Replay

简单地说,在训练的过程中,对于在经验buffer里面的样本,那些具有更好的TD 误差的样本会有更高的概率被采样,这样可以加快训练速度。
在这个过程中,参数更新的过程也会有相应的更改。

Multi-step: Combination of MC and TD

此处,模型需要学习多步累积起来的回报reward,也就是说将MC和TD进行了折中,同时引入了一个超参数,即累积reward的步长N
李宏毅深度强化学习笔记(四)Q-learning(Advanced Tips)

Noisy Net:

Epsilon Greedy vs. Noisy Net
Epsilon Greedy: 在行动上加噪声
李宏毅深度强化学习笔记(四)Q-learning(Advanced Tips)

即便给定相同的状态state,agent也有可能采取不同的行动,因此,实际上这里并没有真正意义上的policy
Noisy Net: 在参数上加噪声
在每个episode开始时,在Q function的参数上引入噪声,但在每一个episode内,参数不会发生改变。给定同样的state,agent会采取同一个action
李宏毅深度强化学习笔记(四)Q-learning(Advanced Tips)

Distributional Q-function

状态-行动价值函数 Qπ(s,a)Q^\pi(s,a)是累积收益的期望值,也就是说是价值分布的均值。然而,有的时候不同的分布得到的均值可能一样,但我们并不知道实际的分布是什么。
李宏毅深度强化学习笔记(四)Q-learning(Advanced Tips)

Distributional Q-function 认为可以输出Q值的分布,当具有相同的均值时,选择具有较小方差(风险)的那一个
但实际上,这个方法很难付诸实践。

Rainbow

李宏毅深度强化学习笔记(四)Q-learning(Advanced Tips)

上述图像表明 DDQN 对于rainbow来说用处不大,这是因为DDQN是用来解决高估问题的,而这个问题在 distributional Q function 中已经得到了解决