问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

强化学习DDQN与DQN深度解析

创作时间:
作者:
@小白创作中心

强化学习DDQN与DQN深度解析

引用
CSDN
1.
https://blog.csdn.net/weixin_49192842/article/details/141750931

强化学习是人工智能领域的重要分支,其中深度Q网络(DQN)和双深度Q网络(DDQN)是两种经典的算法。本文将从Q-learning的基础概念开始,逐步深入到DQN的具体组成、工作流程以及DDQN的改进之处。通过问答形式解答DQN中的关键概念疑问,并配以流程图帮助理解。

一、引言

本文将并以DQN为主,依次介绍三大经典强化学习算法——Q-learning、DQN与DDQN,按网络实际运行流程,剖析其实现细节。

二、Q-learning

强化学习在于环境交互中需要存储状态、动作到Q表中,

缺点:在现实世界中,状态的数量可能是巨大的,因此使得构建一个表在计算上很难。

因此,用函数代替q表,即得到Q-learning算法

三、DQN

Q-learning的缺点:函数单一,难以描述复杂的真实场景

神经网络是最佳函数逼近器,其对复杂函数的建模能力很强,所以我们可以使用一个神经网络,即深度Q网络来估计这个Q函数。

3.1 DQN具体组成

如果状态可以通过一组数字变量表示,则可以使用两个隐藏层组成网络。如果状态数据以图像或文本形式表示,则可以使用常规的CNN或RNN体系结构。

3.2 DQN工作流程

下图表示了DQN网络的数据存放与取出、样本放入两个Q网络、损失函数、训练、参数复制、存储经验的流程

3.3 概念疑问

1、什么是Experience replay(经验回放)?为什么需要?里面放的是什么?
2、已经有了Q网络,为什么还有个目标网络?这两个网络的区别是什么?
3、两个网络输出的结果分别是什么?怎么计算loss?怎么优化Q网络?
4、为什么Q网络训练的时候,目标网络要固定,不训练?

对这些概念问梳理清楚,才能更好理解DQN,下面给出回答:

1、什么是Experience replay(经验回放)?为什么需要?里面放的是什么?

经验回放我理解为一个池子,这个池子中存放着大量与环境交互后的数据,当网络开始训练时,从池子中取一批数据,训练后更新了数据又放回池子,过段时间又取出、放回...这些数据也即与环境交互并网络训练后的经验,所以称经验回放

与环境交互时,经验回放取出当前状态,选择一个动作,得到奖励,以及执行动作后的下一个状态

需要注意的是,Q网络并不直接与环境交互,而是由经验回放这个池子与环境交互,得到一池子的交互数据,然后Q网络及目标网络从池子中取一批数据间接与环境交互。

因此,假设没有经验回放这个池子,网络直接与环境交互,那么输入网络的只有一条数据,则后续的训练将都以第一条数据为第一步往后进行,一条路走到黑,不具有泛化性。

比如,从院楼去往东门,如果出门第一步是向南,则后续所有动作都是在第一步向南这个基础上走的。如果变成第一步向东,网络就不适应了。

而经验回放池中存储着大量的各个状态、各个动作,并且Q网络和目标网络是取一批数据训练,而不是一条,从一开始代理所采取的所有行动和观察都是存储的,然后随机从这个经验回放池中选择大量的样本,这包含足够的多样性,从旧的和更新的样本,让网络学习的权重,概括到所有的场景。

2、已经有了Q网络,为什么还有个目标网络?这两个网络的区别是什么?

Q网络用于每次迭代的更新,而目标网络用于计算目标值,保持目标值的稳定性,从而提高训练的稳定性和收敛速度。

Q网络选取的当前状态,预测出的Q值结果称为预测Q值

目标网络选取的下一个状态,预测出的Q值结果称为目标Q值

3、两个网络输出的结果分别是什么?怎么计算loss?怎么优化Q网络?

预测Q值和目标Q值经过计算可得到loss,由loss即误差反向传播到Q网络,便可以优化Q网络中的各个参数。

4、为什么Q网络训练的时候,目标网络要固定,不训练?

Q网络的权值在每一时间步都会被更新,从而改进了对预测Q值的预测,但是由于网络和它的权重是相同的,它也改变了我们预测的目标Q值的方向。它们不会保持稳定,但在每次更新后都会发生波动。这就像追逐一个移动的目标。

通过使用没有经过训练的第二个网络,我们可以确保目标Q值保持稳定,至少在短时间内是这样,但这些目标Q值毕竟也是预测的,我们确实需要改进它们,因此我们做出了妥协。在预先设定的时间步骤数之后,Q网络的学习参数被复制到目标网络。

实验表明,使用“目标网络”可以获得更稳定的训练。

3.4 网络运行示例

将与环境交互得到的数据放入经验回放单元

随机取一部分数据放入网络训练

计算loss

MSE(Mean Square Error)均方误差计算公式:

将loss传到Q网络,优化Q网络

经过T步后,将Q网络的参数完整复制到目标网络

至此,DQN运行流程结束

四、DDQN

由于DQN在计算现实的动作价值函数Q时,是通过选取可以取得最大Q的行为a来更新目标函数,同时他是off-policy策略,因此下一个状态下并不一定会选择行为a。因此就会出现过度估计,也就是估计值比现实值要大,导致算法会将次优当成最优。

DDQN与DQN大部分都相同,只有一步不同,那就是在选择 Q ( s t + 1 , a t + 1 ) 的过程中,DQN总是选择Target Q网络的Q值。而DDQN不同,DDQN首先从Q网络中找到Q值的那个动作,然后再找到这个动作对应的Target Q网络的目标Q值。

参考文章:

Reinforcement Learning Explained Visually - Deep Q Networks, step-by-step

链接:Reinforcement Learning Explained Visually - Deep Q Networks, step-by-step | Ketan Doshi Blog

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号