当前位置: 首页 > news >正文

DQN 算法直觉

DQN 算法

深度Q网络。DQN 解决的是 Q-table 的核心问题:状态太多时表格存不下。例如 CartPole 里的状态是连续数值,Atari 游戏里状态是图像,这些都不适合用 Q-table。DQN 用神经网络输入 state,用神经网络来近似 Q 函数,因此可以处理更复杂的状态。off-policy,value_based

DQN 算法类型

off-policy 离线策略

DQN 的 replay buffer 里的数据来自旧的、带探索的行为策略;但 DQN 学的是当前 Q 网络下的最优 greedy 策略,所以是 off-policy。

Value-based 基于价值

基于价值的 (value-based) 的强化学习算法通过获取最优价值函数 \(Q(s, a)\),选取最大价值函数对应的动作。DQN 算法使用卷积神经网络估计价值函数,在输出中依据动作价值函数选取动作,故DQN算法是典型的 value-based 算法

算法直觉

DQN 维护两个网络,用卷积神经网络近似 Q 函数,输入原始游戏画面像素,输出每个可能动作的 Q 值。

\[Q_{\text{policy}}(s,a;\theta) \]

\[Q_{\text{target}}(s,a;\theta^-) \]

Policy network 是正在训练、每一步都会更新的网络;

Target network 是旧版本网络,从policy_net复制初始权重

DQN网络示意图

a627a548-32f4-45dd-9466-7f016c230b5b

# 策略网络 (Policy Network): 当前用于选动作和训练
self.policy_net = QNetwork(state_dim, action_dim).to(self.device)# 目标网络 (Target Network): 算目标 Q 值,参数冻结或缓慢更新
self.target_net = QNetwork(state_dim, action_dim).to(self.device)
self.target_net.load_state_dict(self.policy_net.state_dict())
self.target_net.eval()  # eval 模式:关闭 Dropout/BatchNorm 的随机性

采样

智能体依赖 Policy network 与环境互动收集经验。

基于 Policy network 进行决策。与环境互动过程中收集环境返回的 next_state, reward 和 done,与当前状态 state 和所选动作 action 组成经验\((s,\ a,\ r,\ s',\ done)\),存入 Reply Buffer。称为Experience Replay。

智能体输出动作 action 依靠 Epslion-Greedy 策略,也称 ε-greedy方法:

\(ε ∈ [0, 1]\) ,是一个接近于0的小值。在该方法中,智能体有 1 - ε 的较大概率选择当前策略下价值最高的动作,即基于 Online network 输出的 Q值中更大的那一个动作: \(a = argmax_{a∈A}Q(s,a)\);同时保留ε 的小概率随机选择动作,实现对状态空间的探索。

33c91cf9-b36a-4ea0-8135-766634a7eb8b

实现过程中,随着 Policy network 不断优化,贪婪探索的ε 值应不断衰减,直到降低到一个固定的、较低的探索率。

epsilon = max(0.01, epsilon * epsilon_decay)

训练

当 Replay buffer 足够大时抽取 batch 开始训练。

使用Policy network 计算 \(Q(s,a)\)

Policy network 基于 batch 里每条经验的 state 得到 \(Q(S,A)\),并只取每条经验里实际执行过的那个 action 对应的 Q 值,得到 \(Q_{policy}(s,a)\)

使用Target network 计算 \(Q(s',a')\)

Target network 基于 batch 里每条经验的 next state ,计算下一状态所有可能动作的Q值,然后取其中最大的,作为下一状态的最优未来价值。

\[ \max_{a'} Q_{target}(s',a') \]

基于贝尔曼方程计算临时目标 Q 值(TD target) \(y\) 并构造 TD error

贝尔曼 Bellman 方程本质是用“当前奖励 + 下一状态的未来价值”来估计当前动作的价值。考虑到done情况,只剩当前奖励,所以:

\[y = r + \gamma (1-done) \max_{a'} Q_{target}(s',a') \]

target_q = rewards + gamma * next_q * (1.0 - dones)

\[loss = δ=y−Q_{policy}(s,a) \]

优化

神经网络一开始并不会真的知道 Q 值。它只是随机初始化,先乱输出几个数。之后通过训练,把输出值不断往 TD target 靠近。故DQN的目标是

\[Q_{policy}(s,a)≈ r + \gamma \max_{a'} Q_{target}(s',a') \]

也就是:当前动作的 Q 值,应该接近“当前奖励 + 下一个状态最优动作的折扣价值”。

DQN的误差方程:

\[L(\theta)=\mathbb{E}\left[\left(Q_{policy}(s,a)-\left(r+\gamma(1-done)\max_{a'}Q_{target}(s',a')\right)\right)^2\right] \]

\(\mathbb{E}\) = batch mearn ,batch的平均MSE。

更新

反向传播,更新 Policy network

定期(每 C 步)更新,更新 Target network

减少训练震荡:用一个更新慢一点的旧网络来算标准答案,避免 target 一直乱变。

self.update_counter += 1
if self.update_counter % self.target_update_freq == 0:self.target_net.load_state_dict(self.policy_net.state_dict())

实际上多采用 soft update。


DQN 流程示意图 (图源chatgpt)

image

引用

  1. Mnih, V., Kavukcuoglu, K., Silver, D., Graves, A., Antonoglou, I., Wierstra, D., & Riedmiller, M. (2013). Playing Atari with deep reinforcement learning. arXiv preprint arXiv:1312.5602.

  2. 李茹杨,彭慧民,李仁刚,赵坤.强化学习算法与应用综述.计算机系统应用,2020,29(12):13–25. http://www.c-s-a.org.cn/1003-
    3254/7701.html

http://www.jsqmd.com/news/951353/

相关文章:

  • C++多线程detach()用不好,程序崩溃怎么查?聊聊传参的那些隐藏陷阱
  • 终极指南:如何用NewGAN-Manager快速解决Football Manager头像配置难题
  • 如何推动高校院所与企业开展高价值的产学研合作?
  • 普宁预算有限但想配品牌镜片找哪家|五百以内能配到蔡司依视路吗 - 品牌观察
  • 2026年6月机箱机柜厂家推荐排行榜:钣金机箱机柜、不锈钢机箱机柜、大型钢制机箱机柜与工控自动化设备机箱机柜厂家精选 - 企业推荐官【官方】
  • C# 五大访问修饰符
  • 5分钟精通哔哩下载姬:从新手到高手的完整指南
  • 三步彻底卸载Windows预装Edge浏览器:EdgeRemover专业工具完整指南
  • Ripes:可视化RISC-V处理器模拟器的五大实战应用场景
  • 3分钟实现专业虚拟背景:obs-backgroundremoval插件全攻略
  • 警惕!AI面试偏见指数超标2.3倍的3类岗位模型——2024人社部算法审计通报首曝
  • DeepSeek-R1实测与大模型选型方法论
  • 从像素梦想到专业创作:Pixelorama如何重新定义开源像素艺术创作体验
  • 美军脑机接口领域各项目研究投入部署解析
  • Snippy快速指南:10分钟掌握单倍体变异检测与核心基因组比对
  • 2026 年 6月档案柜厂家推荐榜单:密集档案柜,智能档案柜,手动/移动档案柜,铁皮机密档案柜源头企业深度测评! - 企业推荐官【官方】
  • 前端技术05-Selenium太慢?从手动测试到自动化:Playwright多浏览器并行测试实战,Playwright让E2E测试效率翻倍
  • 2026年6月无刷电机/无刷直流电机/无刷电机控制器/直流无刷驱动板/无刷驱动板厂家推荐榜单:精密调速与高效节能优选! - 企业推荐官【官方】
  • 多线程学习笔记
  • 普宁长期看电脑的人配眼镜找哪家好|防蓝光镜片真的有必要配吗 - 品牌观察
  • AI Agent实战入门:从ChatGPT到可执行数字员工的范式跃迁
  • 【HarmonyOS 6.0】Map Kit 流场图层:在基础地图上可视化动态流动数据
  • VASP 磁性结构可视化:一键生成 VESTA / MCIF
  • 【技术人职场避坑指南】当“权限不足”遇上“责任无限”,如何设计你的协作“防火墙”?
  • 1.2 原理图中的备用料如何一键导出?I 芯巧Cadence快问快答系列-操作锦囊
  • DIY锂电改造:从镍氢到锂离子电池的微型BMS实践指南
  • 做题记录5 —— 2026.6
  • GEO源头厂商主体杭州爱搜索:如何构建AI搜索优化长效竞争力 - 品牌报告
  • 优刻得GLM-5 Pro国产芯片推理实战指南
  • 千问 LeetCode 2935. 找出强数对的最大异或值 II JavaScript实现