当前位置: 首页 > 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.gsyq.cn/news/1462971.html

相关文章:

  • 普宁预算有限但想配品牌镜片找哪家|五百以内能配到蔡司依视路吗 - 品牌观察
  • 2026年6月机箱机柜厂家推荐排行榜:钣金机箱机柜、不锈钢机箱机柜、大型钢制机箱机柜与工控自动化设备机箱机柜厂家精选 - 企业推荐官【官方】
  • C# 五大访问修饰符
  • 2026年6月无刷电机/无刷直流电机/无刷电机控制器/直流无刷驱动板/无刷驱动板厂家推荐榜单:精密调速与高效节能优选! - 企业推荐官【官方】
  • Snippy快速指南:10分钟掌握单倍体变异检测与核心基因组比对
  • 多线程学习笔记
  • 普宁长期看电脑的人配眼镜找哪家好|防蓝光镜片真的有必要配吗 - 品牌观察
  • 做题记录5 —— 2026.6
  • 优刻得GLM-5 Pro国产芯片推理实战指南
  • OpenCV findCirclesGrid实战:手把手教你搞定相机标定用的圆点棋盘检测
  • 千问 LeetCode 2935. 找出强数对的最大异或值 II JavaScript实现
  • LLM和Agent——专题5: LLM Ops 入门(4)
  • 2026年 广东铝型材厂家推荐:深圳工业铝型材/散热器铝型材/异型铝型材/精密6063铝型材定制开模与挤压源头实力榜单 - 品牌企业推荐师(官方)
  • 基于Arduino LilyPad的视觉暂留手套制作:从原理到可穿戴互动艺术
  • es6新特性功能介绍(二)
  • 沐风老师3DMAX中式屋顶生成器ChineseRoof使用方法
  • HarmonyOS 6 ArkUI 像素单位使用文档
  • 大疆无人机固件自由:3步掌握DankDroneDownloader终极指南
  • DNS 的工作原理:面向开发者的图解指南
  • 构建私有化安全协作平台:以金融级协作平台与全链路安全防护体系重塑政企数字化底座
  • 揭秘低查重AI教材生成秘诀!AI教材写作工具实测,高效产出精品教材!
  • 2026苏州PLC培训标杆名录:三家机构实力对比解析 - 互联网科技品牌测评
  • 实战应用:基于快马生成的代码打造个人专属tvbox配置管理工具
  • 基于Arduino Pro Mini的便携式游戏机DIY全流程指南
  • 2026年炸鸡店创业品牌推荐榜:合肥/南京韩式炸鸡外卖,低成本社区档口与夜宵店优质之选! - 品牌企业推荐师(官方)
  • 2026昆山PLC培训排行:从硬件到就业的客观评估 - 互联网科技品牌测评
  • LinkSwift:5分钟掌握网盘直链解析终极方案,告别限速烦恼
  • 告别熬夜改PPT!百考通AI,一站式解决高校答辩PPT制作难题
  • 3步免费解锁Grammarly Premium高级版:autosearch-grammarly-premium-cookie完整指南
  • 如何在微信小程序中快速生成二维码:weapp-qrcode终极指南