【深度强化学习】(1) DQN 模型解析,附Pytorch完整代码

本文介绍了深度强化学习中的DQN算法,结合OpenAIGym环境训练模型完成小游戏。DQN是深度神经网络与Q-Learning的结合,通过Q网络预测Q值。经验回放机制用于打破序列依赖,增加训练数据的多样性,确保网络稳定学习。文中还提供了DQN模型的实现代码,并展示了在CartPole-v1环境中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好,今天和各位讲解一下深度强化学习中的基础模型 DQN,配合 OpenAI 的 gym 环境,训练模型完成一个小游戏,完整代码可以从我的 GitHub 中获得:

https://github.com/LiSir-HIT/Reinforcement-Learning/tree/main/Model


1. 算法原理

1.1 基本原理

DQN(Deep Q Network)算法由 DeepMind 团队提出,是深度神经网络和 Q-Learning 算法相结合的一种基于价值的深度强化学习算法

Q-Learning 算法构建了一个状态-动作值的 Q 表,其维度为 (s,a),其中 s 是状态的数量,a 是动作的数量,根本上是 Q 表将状态和动作映射到 Q 值此算法适用于状态数量能够计算的场景。但是在实际场景中,状态的数量可能很大,这使得构建 Q 表难以解决。为破除这一限制,我们使用 Q 函数来代替 Q 表的作用,后者将状态和动作映射到 Q 值的结果相同。

由于神经网络擅长对复杂函数进行建模,因此我们用其当作函数近似器来估计此 Q 函数,这就是 Deep Q Networks。此网络将状态映射到可从该状态执行的所有动作的 Q 值。即只要输入一个状态,网络就会输出当前可执行的所有动作分别对应的 Q 值。如下图所示,它学习网络的权重,以此输出最佳 Q 值。


1.2 模型结构

DQN 体系结构主要包含:Q 网络、目标网络,以及经验回放组件。.Q 网络是经过训练以生成最佳状态-动作值的 agent。经验回放单元的作用是与环境交互,生成数据以训练 Q 网络。目标网络与 Q 网络在初始时是完全相同的。DQN 工作流程图如下


1.2.1  经验回放

经验回放从当前状态中以贪婪策略 \varepsilon -greedy 选择一个动作,执行后从环境中获得奖励和下一步的状态,如下图所示。

然后将此观测值另存为用于训练数据的样本,如下图所示。

评论 62
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

立Sir

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

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

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

打赏作者

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

抵扣说明:

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

余额充值