集智俱乐部 08月25日
深度Q网络(DQN)算法:核心能力与局限性解析
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

深度Q网络(DQN)是一种基于深度学习的强化学习算法,它利用深度神经网络逼近最优动作价值函数(Q函数),能够直接从高维感知输入(如游戏画面像素)中学习最优决策策略。DQN的核心创新在于结合了经验回放机制和目标网络技术,有效解决了传统Q学习在非线性函数逼近中的稳定性问题。该算法在Atari游戏上实现了从原始像素输入到控制指令的端到端学习,达到了人类水平的游戏表现。本文将深入解析DQN的核心思想、结构、实现细节及其主要改进算法,并探讨其在不同领域的应用与面临的局限性。

🌟 **DQN的核心机制与优势**:DQN是一种深度强化学习算法,通过深度神经网络(特别是卷积神经网络)来近似Q函数,实现了从高维感知输入(如游戏像素)到动作输出的端到端学习。其关键创新包括经验回放(Experience Replay)机制,通过存储和随机采样历史数据打破了数据间的时序相关性,提高了训练的稳定性和样本效率;以及目标网络(Target Network)的引入,通过分离用于计算目标Q值和当前Q值的网络,有效缓解了Q值过高估计的问题,进一步增强了训练的稳定性。

🎯 **Q-Learning基础与DQN的改进**:Q-Learning是一种经典的无模型强化学习算法,通过学习状态-动作对的价值函数(Q值)来指导决策。然而,传统Q-Learning在处理大规模状态空间时面临维度灾难和效率低下问题。DQN通过使用神经网络进行函数逼近,克服了这些局限,使得强化学习能够应用于更复杂、更抽象的环境。DQN的成功促使了后续一系列改进算法的出现,如Double DQN(解决过高估计)和Dueling DQN(分离状态价值与优势函数),这些改进进一步提升了算法的性能和稳定性。

🚀 **DQN的应用与局限性**:DQN在Atari游戏等领域取得了显著成功,展示了其在从原始像素学习复杂策略的能力。此外,它还在机器人控制、路径规划和推荐系统等领域展现出应用潜力。然而,DQN也面临一些挑战,包括对连续动作空间的直接处理困难、较低的样本效率(需要大量数据训练)以及训练过程中的稳定性问题(如收敛速度慢、易受超参数影响)。这些局限性促使了更先进的算法(如DDPG、A3C等)的发展。

原创 集智百科团队 2025-08-25 17:16 上海

一文带你理解DQN算法的核心能力与局限

导语

深度Q网络(Deep Q-Network, DQN)是一种基于深度学习的强化学习算法,它通过深度神经网络来近似最优动作价值函数(Q函数),能够直接从高维感知输入(如游戏画面像素)中学习最优决策策略。该算法的核心创新在于结合了经验回放机制和目标网络技术,有效解决了传统Q学习在非线性函数逼近中的稳定性问题,首次在Atari游戏上实现了从原始像素输入到控制指令的端到端学习,达到了人类水平的游戏表现。

“集智百科精选”是一个长期专栏,持续为大家推送复杂性科学相关的基本概念和资源信息。作为集智俱乐部的开源科学项目,集智百科希望打造复杂性科学领域最全面的百科全书,欢迎对复杂性科学感兴趣、热爱知识整理和分享的朋友加入,文末可以扫码报名加入百科志愿者!

↑↑↑扫码直达百科词条

关键词:深度学习,Deep Q Network,无模型(Model free)算法,动作价值函数,经验回放(Experience Replay)

邹佳玮、罗福海 | 编写

张江 | 审校

目录

1. 背景

1.1 强化学习的基本概念与挑战

1.1.1 基本概念

1.1.2 面临的挑战

1.2 Q-Learning 简介

1.3 深度学习与强化学习的融合背景

1.4 DQN 的提出及其在 Atari 游戏中的突破性成果

1.4.1 提出的模型

1.4.2 模型的细节

1.4.3 具体算法及其训练流程

2. Q-Learning 基础

2.1 马尔可夫决策过程(MDP)简介

2.1.1 MDP 的核心思想

2.1.2 策略与价值函数

2.2 Q 值函数的定义与更新公式

2.2.1 定义

2.2.2 更新公式

2.3 ε-greedy 策略与探索-利用权衡

2.4 Q-Learning 的收敛性

2.5 Q-Learning 的局限性

3. DQN 的核心思想与结构

3.1 使用神经网络逼近 Q 值函数

3.2 经验回放(Experience Replay)机制

3.3 目标网络(Target Network)的引入与参数更新策略

4. DQN在pytorch中的简单完整实现

5. DQN 的主要改进算法

5.1 Double DQN:解决 Q 值过高估计问题

5.1.1 Double DQN的思想

5.1.2 Double DQN的优势

5.2 Dueling DQN:分离状态价值与优势函数

5.2.1 Dueling DQN的思想

5.2.2 Dueling DQN的优势

5.3 DRQN

5.3.1 DRQN的思想

5.3.2 DRQN的优势与局限

6. DQN 的应用领域

6.1 Atari 游戏中的应用与表现

6.2 机器人控制与路径规划

6.3 推荐系统中的策略优化

7. DQN 的局限性与挑战

7.1 对连续动作空间的处理困难

7.2 训练过程中的样本效率问题

7.3 策略收敛速度慢与稳定性问题

7.4 泛化能力与过拟合风险

1. 背景

1.1 强化学习的基本概念与挑战

1.1.1 基本概念

强化学习(Reinforcement Learning, RL)是一种机器学习方法,强调智能体(agent)通过与环境的交互,在试错过程中学习策略,以最大化累积奖励。其核心在于解决“探索-利用”之间的权衡:既要尝试新的动作以发现潜在的高奖励策略(探索),又要利用已知的最优策略以获得即时收益(利用) 。

1.1.2 面临的挑战

尽管强化学习在游戏AI、机器人控制、推荐系统等领域取得了显著成果,但在实际应用中仍面临诸多挑战:

(1)样本效率低:强化学习通常需要大量的交互数据才能学习有效策略,这在数据获取成本高或交互受限的场景中尤为困难。

(2)泛化能力弱:在特定环境中训练出的策略,往往难以适应稍有变化的新环境,缺乏迁移学习能力。

(3)奖励设计困难:设计合适的奖励函数至关重要,不当的奖励设计可能导致智能体学习到与预期不符的行为。

(4)训练稳定性与收敛性问题:特别是在基于深度神经网络的模型中,训练过程可能不稳定,容易发生发散。策略或环境的微小变化可能导致性能的极大波动,使得难以获得一致的结果。在连续或高维动作空间的情况下,这种不稳定性更加明显,学习过程变得更复杂且难以预测。

1.2 Q-Learning 简介

Q-Learning 是强化学习中一种经典且广泛应用的无模型(model-free)算法,属于基于值(value-based)的方法。其核心目标是通过学习一个动作价值函数(Q函数),指导智能体在不同状态下选择最优动作,以最大化长期累积奖励。

举例老鼠在迷宫中寻找奶酪来理解Q-Learning :

(1)环境设定

(2)Q-Learning 学习过程

老鼠通过不断尝试不同的路径,学习如何从起点移动到奶酪所在的位置,同时避免毒药。每次移动后,老鼠根据获得的奖励更新其对当前状态下各个动作的价值估计(即 Q 值)。随着学习的进行,老鼠逐渐形成一套策略,使其能够更快、更安全地找到奶酪。

(3)Q 值更新公式

Q-Learning 的核心在于通过以下公式更新 Q 值: 

其中:st:当前状态;at:当前动作;rt:即时奖励;st+1:执行动作后的新状态;α(0,1]:学习率;γ[0,1):折扣因子

(4)策略选择:ε-贪婪策略

为了在探索新路径和利用已知最佳路径之间取得平衡,采用 ε-贪婪策略:

随着训练的进行,逐渐减小 ε 的值,以减少探索,增加利用。

(5)学习过程

以下是老鼠在迷宫中学习的简要过程:

a.初始化:将所有状态-动作对的 Q 值初始化为 0。

b.选择动作:根据 ε-贪婪策略选择一个动作。

c.执行动作:老鼠移动到新的位置,获得相应的奖励。

d.更新 Q 值:根据 Q 值更新公式,更新当前状态下该动作的 Q 值。

e.重复:将新位置作为当前状态,重复步骤 2 至 4,直到达到终止条件(如找到奶酪或达到最大步数)。

通过多次迭代,老鼠能够学习到从起点到奶酪的最优路径,同时避免毒药。该示例展示了 Q-Learning 如何通过与环境的交互,学习最优策略以最大化累积奖励。通过不断更新 Q 值,智能体能够在复杂的环境中找到最优路径。

1.3 深度学习与强化学习的融合背景

深度学习与强化学习的融合起源于两者互补的优势:强化学习擅长决策与策略优化,而深度学习擅长处理高维感知数据(如图像、语音、文本等)。传统强化学习方法在面对大规模状态空间(例如图像输入)时,因无法使用查表的方式存储 Q 值而表现不佳。为了解决这一瓶颈,研究者引入深度神经网络作为函数逼近器,用以估计状态-动作值函数(Q 值)或策略函数,从而大幅提升了强化学习在复杂环境中的泛化能力和实用性。

这一融合的代表性成果是 2015 年 DeepMind 提出的深度 Q 网络(DQN)[1],首次在无需人工特征设计的情况下,仅凭像素输入便在多款 Atari 游戏中实现了超越人类水平的表现。

1.4 DQN 的提出及其在 Atari 游戏中的突破性成果

举例:Atari游戏之breakout,引自[1]

Deep Q-Network(DQN)是由DeepMind团队在2015年发表的论文[1]中提出的深度强化学习算法。该研究首次将深度神经网络与Q-learning结合,直接从高维感官输入(如Atari游戏的像素)学习控制策略,而无需手工设计特征。DQN在Atari 2600游戏上的表现达到或超越人类水平,标志着深度强化学习在复杂任务中的重大突破。

DQN的核心创新包括使用深度卷积神经网络(CNN)处理原始像素输入,模仿生物视觉系统的层次化特征提取能力。此外,为了解决传统强化学习在非线性函数逼近下的不稳定性,DQN引入了经验回放(Experience Replay)机制,通过存储并随机采样历史经验来打破数据相关性,提高训练稳定性。同时,采用目标网络分离技术,定期冻结目标Q网络的参数,减少训练过程中的波动。

在实验中,DQN在49款Atari 2600游戏上进行测试,仅以游戏屏幕像素和分数作为输入,使用相同的网络架构和超参数。结果显示,DQN在43款游戏中超越了此前所有强化学习方法,并在29款游戏中达到人类专业测试员水平的75%以上。例如,在“Breakout”中,DQN自主发现“侧边挖隧道”的高分策略,最终得分远超人类玩家;在“Space Invaders”中,DQN学会忽略无关视觉特征,专注于关键状态价值预测。

DQN的成功不仅验证了端到端强化学习的可行性,还揭示了深度神经网络与生物学习机制的相似性,如经验回放与海马体记忆重放的类比。然而,DQN仍存在训练数据需求大、对超长程规划任务(如“Montezuma’s Revenge”表现有限等挑战。尽管如此,DQN为后续深度强化学习研究奠定了基础,推动了从游戏AI到机器人控制等领域的广泛应用。

1.4.1 提出的模型

模型示意图,引自[1]

该示意图展示了深度Q网络(DQN)的典型架构设计,直观呈现了从原始游戏画面到控制指令的端到端处理流程。系统采用多级特征提取架构,左侧输入层接收预处理后的游戏画面(84×84像素,4帧堆叠),通过两个卷积层(Convolution)进行空间特征提取,其中网格状结构表示卷积核在空间维度上的特征映射过程。随后经由两个全连接层(Fully connected)实现高级特征的抽象与组合,最终输出层与游戏手柄控制指令直接关联,作为根据学到的动作价值Q来选择动作。该架构设计充分体现了DQN直接从原始像素学习控制策略的核心思想,通过卷积神经网络的特征提取能力与强化学习的决策机制相结合,实现了从感知到行动的完整映射。

1.4.2 模型的细节

该研究在模型设计上体现了显著的普适性特征,采用单一网络架构处理所有Atari游戏任务,仅需输入原始像素、动作空间和生命值等基本先验知识。在算法实现方面,创新性地引入了经验回放机制(experience replay),通过循环缓冲区存储历史转移样本(st,at,rt,st+1),并采用均匀随机采样方式抽取小批量(minibatch size=32)进行训练。这种设计有效打破了数据间的时间相关性,显著提高了样本利用率和训练稳定性。

在奖励函数设计方面,研究者采用了归一化处理策略,将正向奖励设为+1,负向奖励设为-1,其余情况为0,这种标准化方法有效控制了误差范围并实现了跨游戏的统一训练速度。经验回放机制与奖励归一化的协同作用,使得算法能够在不同游戏间保持一致的性能表现。

针对大规模训练数据的高冗余特性,研究采用了RMSProp优化算法,其核心机制是通过将梯度除以其近期幅度的滑动平均值来调整学习率。训练过程中引入衰减系数ϵ,采用ϵ-greedy策略进行探索-利用权衡:在前1百万训练步中,ϵ值从1线性衰减至0.1,之后保持恒定。这种动态调整策略与经验回放机制相结合,有效避免了过早收敛问题,特别适合处理非平稳目标函数。值得注意的是,经验回放缓冲区的容量设置为1,000,000个样本,并在训练前预填充50,000帧数据以确保初始采样质量。

为提高计算效率,研究者对所有游戏采用了跳帧技术(每4帧处理1帧),在保证性能无明显下降的前提下显著提升了训练速度。这种时间抽象方法与经验回放机制协同工作,使得样本复杂度相比在线策略降低了约10倍。实验结果表明,移除经验回放会导致性能下降58.7%,充分验证了该机制的必要性。这些创新设计共同构成了DQN算法的核心框架,为后续深度强化学习研究奠定了重要基础。

1.4.3 具体算法及其训练流程

算法流程,引自[1]

算法流程示意图,引自[1]

1. 初始化阶段

2. 回合(Episode)循环 对每个回合episode=1,2,...,M执行: 状态预处理:初始化环境观测x1,通过预处理函数ϕ生成初始状态表征ϕ1=ϕ(s1)

3. 时间步(Timestep)循环 对每个时间步t=1,2,...,T执行:

2. Q-Learning 基础

2.1 马尔可夫决策过程(MDP)简介

马尔可夫决策过程(Markov Decision Process,简称 MDP)是强化学习的核心数学框架,用于建模智能体在不确定环境中通过试错学习最优策略的过程。它在马尔可夫过程的基础上引入了“动作”和“奖励”机制,广泛应用于人工智能、控制系统、经济学等领域。

马尔可夫决策过程

2.1.1 MDP 的核心思想

在 MDP 中,智能体与环境的交互过程如右图所示:

(1)智能体观察当前状态st

(2)根据策略 π,选择一个动作at

(3)环境根据状态转移概率P ,转移到下一个状态 st+1,并给予智能体奖励 rt

(4)智能体根据获得的奖励和新的状态,更新策略 π,以期获得更高的累计奖励。

这一过程持续进行,智能体通过不断与环境交互,学习最优策略。

2.1.2 策略与价值函数

在MDP中,策略与价值函数是强化学习的核心概念,它们共同构成了智能体学习与决策的理论基础。以下是关于策略与价值函数的定义:

 • 策略 π(a|s):在状态 s下选择动作 a 的概率分布。

 • 状态值函数Vπ(s):在策略 π 下,从状态 s 开始,期望获得的累计奖励。其定义为:

其中γ[0,1)为折扣因子,控制未来奖励的权重;rt+1为从stst+1获得的即时奖励。

 • 动作值函数 Qπ(s,a):在策略 π 下,从状态 s 开始,采取动作 a 后,期望获得的累计奖励。其定义为:

这些函数用于评估策略的优劣,指导策略的改进。

2.2 Q 值函数的定义与更新公式

2.2.1 定义

Q 值函数 Q(s,a) 表示智能体在状态 s下采取动作 a 后,遵循某一策略所能获得的期望累积奖励。

2.2.2 更新公式

Q-Learning 算法使用以下更新公式来迭代 Q 值:

其中,符号含义如下:st:当前状态;at:当前动作;rt:即时奖励;st+1:执行动作后的新状态;α(0,1]:学习率;γ[0,1):折扣因子。

此公式基于贝尔曼方程的时序差分(TD)更新思想,逐步调整 Q 值函数以逼近最优策略。

2.3 ε-greedy 策略与探索-利用权衡

Q-learning 通常面临“探索(exploration)”与“利用(exploitation)”之间的权衡问题。为了解决这一问题,通常采用 ε-greedy 策略。ε-greedy 策略是一种简单而有效的动作选择策略,旨在平衡探索与利用。

其中,ϵ 是一个介于 0 和 1 之间的参数,控制探索的频率。较大的 ϵ 值鼓励更多的探索,而较小的 ϵ 值则倾向于更多的利用。

在实际应用中,通常会随着训练的进行逐步减小 ϵ 值,从而实现以下目标:

这种策略有助于智能体在学习初期获取足够的经验,在后期则能够稳定地执行最优策略。

2.4 Q-Learning 的收敛性

Q-Learning 收敛性的证明主要基于以下几点:

(1)Bellman 最优算子是压缩映射[2]

Bellman 最优算子 B 定义为:它满足: BQ1BQ2γQ1Q2 即B是以折扣因子γ为压缩率的压缩映射。

(2)Banach 不动点定理保证唯一固定点

因为B是压缩映射,存在唯一的固定点Q满足: Q=BQ 这就是最优状态-动作值函数。

(3)随机逼近框架中的收敛条件[3]

Q-Learning 通过随机采样和迭代逼近Q,在学习率满足以下条件时收敛:同时,算法需保证每个状态-动作对 (s,a) 被无限次访问。

收敛的关键条件:

充分探索:智能体必须保证所有对无限次访问,通常通过 ε-greedy 等策略实现。

学习率衰减:学习率αt随时间衰减,但不宜过快。折扣因子限制:γ∈[0,1),保证未来奖励的影响递减。

在满足适当的学习率调节、充分探索、以及折扣因子约束的情况下,Q-Learning 算法能够以概率 1 收敛到最优值函数Q,其数学表达为:这为强化学习算法的理论可靠性提供了坚实基础。

2.5 Q-Learning 的局限性

Q-Learning 广泛应用于多种决策任务。在实际应用中,它的局限性主要体现在以下几个方面:

(1)状态-动作空间维度灾难(Curse of Dimensionality):Q-Learning 使用 Q 表来存储每个状态-动作对的价值。当状态或动作空间非常大时,Q 表的尺寸会急剧膨胀,导致存储和更新变得不切实际。

例如,在具有数百万状态和动作的环境中,传统的 Q 表方法可能无法有效处理。为了解决这个问题,通常采用函数逼近方法,如线性函数逼近或深度神经网络,以估计 Q 值,从而避免直接使用庞大的 Q 表。

(2)在状态和动作空间较大的环境中,Q-Learning 的学习过程可能非常缓慢,通常需要大量的训练回合才能收敛到最优策略。这种慢收敛性使得 Q-Learning 在需要快速学习的应用场景中可能不太适用。[1]

(3)探索与利用的平衡问题:Q-Learning 依赖于探索(exploration)和利用(exploitation)之间的平衡。过度探索可能导致学习效率低下,而过度利用可能导致陷入局部最优解。例如,ε-greedy 策略通过引入随机性来平衡探索与利用,但选择合适的 ε 值仍然是一个挑战。

(4)对超参数敏感:Q-Learning 的性能对学习率(α)、折扣因子(γ)和探索率(ε)等超参数非常敏感。选择不当的超参数可能导致学习过程不稳定或收敛到次优解。例如,过高的学习率可能导致 Q 值更新过快,导致震荡;而过低的学习率可能导致学习过程过慢。

(5)对函数逼近的稳定性问题:当使用函数逼近(如神经网络)来估计 Q 值时,Q-Learning 可能出现不稳定或发散的情况,尤其是在非线性函数逼近器的情况下。

这种不稳定性主要源于估计目标值与当前 Q 值之间的相互依赖关系。为了解决这个问题,提出了 Double Q-Learning 等方法,通过使用两个独立的 Q 值估计器来减少过估计偏差,从而提高稳定性。[2]

4. DQN 的核心思想与结构

3.1 使用神经网络逼近 Q 值函数

DQN的⾏为值函数Q(s,a;θ) 利⽤神经⽹络逼近,属于⾮线性逼近。此处的值函数对应着⼀组参数,在神经⽹络⾥参数是每层⽹络的权重,用θ表示。 用公式表示的话,如下:

Q(s,a)Q(s,a;θ)

其中:

网络具体结构

在论文[1]中DQN所用的网络结构是三个卷积层加两个全连接层,网络的输入是经过预处理后的数据,预处理指的是将210*160的游戏图像转化为84*84的图像等操作,得到算法结构中的具体代码实现和网络结构见图和以下代码:

# 预处理图像
def preprocess(frame):
    # 转灰度图
    frame = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
    # 调整大小
    frame = cv2.resize(frame, (8484))
    # 归一化
    frame = frame.astype(np.float32) / 255.0
    return frame
# Q-Network (CNN)
class DQN(nn.Module):
    def __init__(self, action_dim):
        super(DQN, self).__init__()
        self.conv1 = nn.Conv2d(432, kernel_size=8, stride=4)
        self.conv2 = nn.Conv2d(3264, kernel_size=4, stride=2)
        self.conv3 = nn.Conv2d(6464, kernel_size=3, stride=1)
        self.fc1 = nn.Linear(64 * 7 * 7512)
        self.fc2 = nn.Linear(512, action_dim)
    def forward(self, x):
        x = F.relu(self.conv1(x))
        x = F.relu(self.conv2(x))
        x = F.relu(self.conv3(x))
        x = torch.flatten(x, start_dim=1)
        x = F.relu(self.fc1(x))

核心意义

3.2 经验回放(Experience Replay)机制

通过经验回放可以令神经网络的训练收敛且稳定。这是因为训练神经⽹络时,存在的假设是训练数据是独⽴同分布的,但是通过强化学习采集的数据之间存在着关联性,利⽤这些数据进⾏顺序训练,神经⽹络当然不稳定。经验回放可以打破数据间的关联。在强化学习过程中,智能体将数据存储到⼀个数据库中,再利⽤均匀随机采样的⽅法从数据库中抽取数据,然后利⽤抽取的数据训练神经⽹络。 这种经验回放的技巧可以打破数据之间的关联性。

经验回收

代码实现可参考:

# 经验回放
class ReplayMemory:
    def __init__(self, capacity):
        self.memory = deque(maxlen=capacity)
    def push(self, state, action, reward, next_state, done):
        self.memory.append((state, action, reward, next_state, done))
    def sample(self, batch_size):
        return random.sample(self.memory, batch_size)
    def __len__(self):
        return len(self.memory)

3.3 目标网络(Target Network)的引入与参数更新策略

为了更长远的提高稳定性,使用一个独立的神经Q网络去得到target y,即建立另一个独立的神经网络target network。每经过c次更新后,复制 network Q得到target network Q’,然后使用Q’去生成target y应用与接下来的c次更新。好处就是比起online Q-learning算法更稳定。因为online Q-learning每次更新在增加Q(st+1,a)的同时也增加了针对每个a的Q(st+1,a),从而增加了 target y,这又可能会引起策略的震荡甚至发散。所以目标网络(Target Network)的引入可以解决这一问题。

于是,

 • 损失函数表示为(忽略无关的方差项)

 • 梯度为

工程中,使用随机梯度下降方法来完成优化,另外当令时,退化为原始的 Q-Learning 更新形式。

DQN的训练与参数更新策略可部分参考以下代码实现:

# DQN Agent
class DQNAgent:
    def __init__(self, action_dim):
        self.action_dim = action_dim
        self.memory = ReplayMemory(10000)
        self.policy_net = DQN(action_dim).to(device)
        self.target_net = DQN(action_dim).to(device)
        self.target_net.load_state_dict(self.policy_net.state_dict())
        self.optimizer = optim.Adam(self.policy_net.parameters(), lr=0.0001)
        self.exploration_rate = 1.0
        self.steps_done = 0
    def select_action(self, state):
        # ϵ-贪心策略
        if random.random() < self.exploration_rate:
            return random.randrange(self.action_dim)
        else:
            with torch.no_grad():
                return self.policy_net(state).argmax().item()
    def train(self):
        # 样本不足时直接返回
        if len(self.memory) < 64:
            return
        # 从经验回放中采样
        batch = self.memory.sample(64)
        states, actions, rewards, next_states, dones = zip(*batch)
        # 转为张量,并去除多余维度
        states = torch.tensor(np.array(states), dtype=torch.float32).to(device)  # shape: (64, 1, 4, 84, 84)
        states = states.squeeze(1)  # shape: (64, 4, 84, 84)
        actions = torch.tensor(actions, dtype=torch.int64).unsqueeze(1).to(device)  # shape: (64, 1)
        rewards = torch.tensor(rewards, dtype=torch.float32).to(device)  # shape: (64,)
        next_states = torch.tensor(np.array(next_states), dtype=torch.float32).to(device)  # shape: (64, 1, 4, 84, 84)
        next_states = next_states.squeeze(1)  # shape: (64, 4, 84, 84)
        dones = torch.tensor(dones, dtype=torch.bool).to(device)  # shape: (64,)
        # 计算当前 Q 值
        q_values = self.policy_net(states).gather(1, actions).squeeze()
        # 计算下一时刻最大 Q 值
        next_q_values = self.target_net(next_states).max(1)[0].detach()
        # 计算目标 Q 值
        target_q_values = rewards + (0.99 * next_q_values * ~dones)
        # 优化
        loss = F.mse_loss(q_values, target_q_values)
        self.optimizer.zero_grad()
        loss.backward()
        self.optimizer.step()
        # 更新探索率
        if self.exploration_rate > 0.01:
            self.exploration_rate *= 0.995
    def update_target_net(self):
        self.target_net.load_state_dict(self.policy_net.state_dict())
# 训练循环
   ...
    # 定期更新目标网络
    if episode % 10 == 0:
        agent.update_target_net()
   ...

4. DQN在pytorch中的简单完整实现

该代码基于深度Q网络(DQN)算法,是一个简单的使用DQN解决OpenAI Gym中的经典控制任务CartPole-v1的完整例子。任务目标是控制小车左右移动,使竖直杆子尽可能长时间保持直立。智能体通过4维状态(小车位置、速度、杆子角度及角速度)感知环境,输出离散动作(左移/右移),最终实现稳定平衡超过500步的满分表现。

CartPole-v1

算法实现Q值网络: 使用三层全连接神经网络(输入4维→128→128→输出2维)近似Q值函数,输出左右移动的动作价值。 目标网络与主网络分离,定期同步参数以稳定训练。经验回放: 存储10,000条历史转移样本(状态、动作、奖励、下一状态、终止标志),训练时随机采样64条数据打破时序相关性。训练机制: ε-贪婪策略动态衰减(初始ε=1.0,衰减率0.995,最低ε=0.01),平衡探索与利用。 基于贝尔曼方程计算目标Q值,通过均方误差损失更新网络,折扣因子γ=0.99。

import torch
import torch.nn as nn
import torch.optim as optim
import random
from collections import deque
import gym
# 定义Q网络
class QNetwork(nn.Module):
    def __init__(self, input_dim, output_dim):
        super(QNetwork, self).__init__()
        self.fc = nn.Sequential(
            nn.Linear(input_dim, 128),
            nn.ReLU(),
            nn.Linear(128128),
            nn.ReLU(),
            nn.Linear(128, output_dim)
        )
    def forward(self, x):
        return self.fc(x)
# 定义DQN代理
class DQNAgent:
    def __init__(self, state_dim, action_dim, lr=0.001, gamma=0.99, epsilon=1.0, epsilon_decay=0.995, min_epsilon=0.01, buffer_size=10000, batch_size=64):
        self.state_dim = state_dim
        self.action_dim = action_dim
        self.gamma = gamma
        self.epsilon = epsilon
        self.epsilon_decay = epsilon_decay
        self.min_epsilon = min_epsilon
        self.batch_size = batch_size
        self.q_network = QNetwork(state_dim, action_dim)
        self.target_network = QNetwork(state_dim, action_dim)
        self.target_network.load_state_dict(self.q_network.state_dict())
        self.optimizer = optim.Adam(self.q_network.parameters(), lr=lr)
        self.replay_buffer = deque(maxlen=buffer_size)
        self.criterion = nn.MSELoss()
    def choose_action(self, state):
        if random.random() < self.epsilon:
            return random.randint(0, self.action_dim - 1)
        else:
            state = torch.tensor([state], dtype=torch.float32)
            q_values = self.q_network(state)
            return torch.argmax(q_values).item()
    def store_experience(self, state, action, reward, next_state, done):
        self.replay_buffer.append((state, action, reward, next_state, done))
    def update_network(self):
        if len(self.replay_buffer) < self.batch_size:
            return
        batch = random.sample(self.replay_buffer, self.batch_size)
        states, actions, rewards, next_states, dones = zip(*batch)
        states = torch.tensor(states, dtype=torch.float32)
        actions = torch.tensor(actions, dtype=torch.int64)
        rewards = torch.tensor(rewards, dtype=torch.float32)
        next_states = torch.tensor(next_states, dtype=torch.float32)
        dones = torch.tensor(dones, dtype=torch.float32)
        q_values = self.q_network(states).gather(1, actions.unsqueeze(1)).squeeze()
        next_q_values = self.target_network(next_states).max(1)[0]
        target_q_values = rewards + self.gamma * next_q_values * (1 - dones)
        loss = self.criterion(q_values, target_q_values)
        self.optimizer.zero_grad()
        loss.backward()
        self.optimizer.step()
    def update_target_network(self):
        self.target_network.load_state_dict(self.q_network.state_dict())
    def decay_epsilon(self):
        self.epsilon = max(self.min_epsilon, self.epsilon * self.epsilon_decay)
# 环境
env = gym.make('CartPole-v1')
state_dim = env.observation_space.shape[0]
action_dim = env.action_space.n
# 初始化代理
agent = DQNAgent(state_dim, action_dim)
# 训练循环
episodes = 1000
for episode in range(episodes):
    state = env.reset()
    total_reward = 0
    done = False
    while not done:
        action = agent.choose_action(state)
        next_state, reward, done, _ = env.step(action)
        agent.store_experience(state, action, reward, next_state, done)
        agent.update_network()
        state = next_state
        total_reward += reward
    agent.update_target_network()
    agent.decay_epsilon()
    print(f'Episode {episode + 1}/{episodes}, Total Reward: {total_reward}, Epsilon: {agent.epsilon:.3f}')
# 评估
state = env.reset()
done = False
while not done:
    action = agent.choose_action(state)
    state, _, done, _ = env.step(action)
    env.render()
env.close()

5. DQN 的主要改进算法

5.1 Double DQN:解决 Q 值过高估计问题

5.1.1 Double DQN的思想

在DQN与Double DQN中使用目标网络的学习结构

在经典的 Q-Learning 及其深度版本 DQN(Deep Q-Network)中,动作值函数的估计存在系统性偏差,即过高估计(overestimation bias)。这种偏差源自于最大化操作:

当估计的 Q 值存在噪声时,直接选取最大 Q 值动作容易导致期望的过高估计,从而影响策略的稳定性和最终性能。为了减少 DQN 中的 Q 值过高估计,Double DQN 引入了两个 Q 网络:当前 Q 网络和目标 Q 网络[4]

经典 DQN 的目标 Q 值计算公式为:

其中: rt 是在时间步 t 获取的奖励, γ 是折扣因子,是在时间步 t+1 下,通过目标网络 θ 计算的最大 Q 值,选择下一个状态 st+1 中的最佳动作。

Double DQN目标 Q 值计算公式改为:

动作选择:依然通过当前 Q 网络 Q(st+1,a;θ) 来选择下一个状态 st+1 中的最优动作,,这个步骤使用的是当前网络 θ 来选择动作。

动作评估:评估这个动作的 Q 值时,使用的是目标网络 θ,即评估选中的动作 a 对应的 Q 值:Q(st+1,a;θ),通过这种方式,Double DQN 通过分开动作选择和动作评估,避免了经典 DQN 中同一网络同时执行选择和评估的操作,从而减少了因选择最大 Q 值而导致的过高估计偏差。

5.1.2 Double DQN的优势

传统 DQN 在更新时,直接用目标网络估计的最大 Q 值作为目标,这种“最大化”操作容易从噪声中挑选出偏大值,导致整体偏高。Double DQN 则先用当前网络挑选动作,再用目标网络计算价值,避免了单一网络同时负责选动作和评估动作价值所带来的偏差。Double DQN 是一种简单有效的改进策略,通过“动作选择”和“动作评估”分开估计,显著缓解了 Q 值过高估计问题,提高了深度强化学习算法的稳定性和性能,已成为深度强化学习领域的重要方法之一。

5.2 Dueling DQN:分离状态价值与优势函数

5.2.1 Dueling DQN的思想

Dueling DQN 网络结构示意图

Dueling DQN(Dueling Deep Q-Network)是对经典 DQN 的一种结构性改进,旨在提升智能体在复杂环境中的学习效率和稳定性[5]

在传统的 DQN 中,Q 值函数 Q(s,a) 直接输出每个动作的价值。然而,在许多情况下,某些状态下的所有动作的价值差异较小,导致学习过程中的梯度更新效率低下。Dueling DQN 通过将 Q 值函数分解为状态价值函数 V(s) 和优势函数 A(s,a),使得网络能够分别评估状态的总体价值和各个动作的相对优势,从而提高学习效率。具体地,Dueling DQN 的 Q 值计算公式为:

 Q(s,a)=V(s)+A(s,a)

其中,V(s) 是状态s的价值,表示在该状态下智能体的期望回报;A(s,a) 是动作a相对于当前状态的优势,表示在该状态下采取动作a相对于其他动作的优势程度。

Dueling DQN 的网络结构在传统 DQN 的基础上进行了修改。

具体而言,网络的前几层共享,用于提取输入状态的特征;然后,网络分为两个分支:一个用于计算状态价值函数V(s),另一个用于计算优势函数 A(s,a)。最后,两个分支的输出被合并,得到每个动作的 Q 值估计。这种结构使得网络能够更有效地学习到状态的价值和动作的优势,从而提高学习性能。

5.1.2 Dueling DQN的优势

(1)提高学习效率:通过分离状态价值和动作优势,Dueling DQN 能够更好地聚焦于重要信息,减少无关因素干扰,提高学习效率。

(2)增强鲁棒性:对状态价值和优势的独立建模有助于缓解环境噪声和稀疏奖励带来的影响,提高算法的鲁棒性。

(3)提升泛化能力:Dueling 架构允许网络在未见过的环境中更快地推断出合理的 Q 值,增强了算法的泛化能力。

5.3 DRQN

5.3.1 DRQN的思想

DRQN架构

Deep Recurrent Q-Network(DRQN)是对经典 DQN 的一种扩展,旨在解决部分可观察马尔可夫决策过程(POMDP)中的挑战[6]。在 POMDP 中,智能体无法获得完整的环境状态信息,传统的 DQN 依赖于完整的观察序列进行决策,可能导致性能下降。DRQN 通过引入递归神经网络(RNN),特别是长短期记忆(LSTM)网络,使智能体能够处理部分观察信息,保留历史信息,从而在部分可观察的环境中表现出更好的性能。DRQN 的核心思想是将传统 DQN 的全连接层替换为 LSTM 层,以便在每个时间步都能保留历史信息。具体而言,DRQN 的 Q 值计算公式为:

Q(st,at)=LSTM(ht1,[ϕ(st),at])

其中,ht1是上一时间步的隐藏状态,ϕ(st)是当前状态的特征表示,at是当前动作。通过这种方式,DRQN 能够在每个时间步都考虑到历史信息,从而更好地应对部分可观察的环境。

DRQN 的网络结构通常包括以下几个部分:

(1)卷积层(Convolutional Layers):用于从输入图像中提取特征。

(2)LSTM 层:用于处理时间序列数据,保留历史信息。

(3)全连接层(Fully Connected Layer):用于输出每个动作的 Q 值。 这种结构使得 DRQN 能够在每个时间步都考虑到历史信息,从而更好地应对部分可观察的环境。

5.3.2 DRQN的优势与局限

1.优势

(1)处理部分可观察环境:DRQN 能够在每个时间步都保留历史信息,从而在部分可观察的环境中表现出更好的性能。

(2)提高决策质量:通过引入 LSTM 层,DRQN 能够更好地捕捉时间序列中的长期依赖关系,从而提高决策质量。

(3)适应性强:DRQN 可以适应不同的环境和任务,具有较强的泛化能力。

2.局限

(1)训练难度:由于引入了 LSTM 层,DRQN 的训练过程可能比传统 DQN 更加复杂和困难。

(2)计算资源需求高:LSTM 层的引入增加了计算量,对硬件资源的要求更高。

(3)超参数调优复杂:LSTM 层引入了更多的超参数,需要进行精细的调优。

6. DQN 的应用领域

6.1 Atari 游戏中的应用与表现

[1]的作者在 49 款 Atria 游戏上进行测试,大多数达到了人类水平,并且有 43 款达到了 SOTA(最先进水平State-Of-The-Art)。图中 100% 和 0% 分别代表人类水平和随机策略水平。

性能表现,引自[1]

性能表现

DQN在49款Atari 2600游戏上的测试结果,参见,引自[1]。其展现了突破性性能。在统一网络架构、算法和超参数的前提下,仅以原始像素和游戏分数为输入,DQN在43款游戏中超越了此前所有强化学习算法(如线性函数逼近和SARSA)。更显著的是,其表现达到人类专业玩家水平的75%以上的游戏中占29款(超过总数半数)。典型案例如:

训练过程稳定性通过平均每局得分和预测Q值曲线得到验证,见图,

预测Q值曲线,引自[1]

二者均随训稳步上升,未出现传Q学习的发散现象。奖励裁剪策略(正奖励+1,负奖励-1)则确保了不同游戏间学习率的一致性。

泛化与表征能力

DQN的核心突破在于其从高维输入中学习通用表征的能力。

通过t-SNE降维可视化,DQN的最终隐藏层表征显示:

感知相似状态(如敌机密集排列的屏幕)被映射到嵌入空间的相邻位置,见图;

人类表征对比,引自[1]

奖励等价但知不同状态(如游戏尾阶段的掩体场景)同样被聚类——这些状态因即时奖励潜力低被赋予相似价值(V值),证明网络超越了表层像素特征,学会了与决策相关的抽象特征。 进一步实验表明,该表征可泛化至人类玩家产生的状态:将人类30分钟游戏数据输入DQN网络,其t-SNE嵌入与智能体自身2小时游戏数据的嵌入结构高度重叠,证明表征不受策略依赖性的限制。

价值函数的预测能力通过具体案例得到验证:

这些结果证明,DQN通过端到端训练构建的表征能同时支持感知泛化与长期价值推理。

6.2 机器人控制与路径规划

参考综述[7]这些方法都是使用DQN直接从原始传感器数据映射到动作,无需依赖预先构建的环境模型或先验知识。

典型应用案例

当然也存在一些局限性,比如DQN 仅支持离散动作,无法直接应用于连续控制(如无人机精细姿态调整),需依赖DDPG等算法补充。训练需大量交互数据,现实场景中数据采集成本高。稀疏奖励环境下(如目标距离远),学习效率下降。就是DQN 通过端到端学习与经验回放机制,在移动机器人视觉导航、室内避障及无人机控制中取得显著成果。其核心价值在于处理高维感知数据的能力和算法稳定性,但需结合改进技术(如Double DQN、Rainbow)以提升性能。未来研究需解决连续动作支持与样本效率问题,以扩大应用场景。

6.3 推荐系统中的策略优化

文章[13]提供了强化学习在推荐系统中的应用,具体思路流程见右图所示。

基于强化学习的推荐系统,引自[13]

其中,深度Q网络(DQN)通过建模用户动态偏好和长期价值,解决了传统推荐系统面临的探索-利用困境和延迟奖励优化问题。其核心思想是将推荐视为序列决策过程:用户状态 st为历史交互特征,动作 at为待推荐物品,奖励 rt为点击/转化等反馈。

问题建模与优势

动态偏好捕捉(vs. 静态协同过滤): DQN通过时序状态转移( stst+1)实时更新用户兴趣表征,克服协同过滤的静态建模局限。

长期价值优化(vs. 即时收益模型):最大化累计奖励,避免短视策略(如仅推荐热门商品)。

探索机制:ε-greedy策略主动推荐低曝光商品,缓解冷启动问题。

技术实现架构

状态表征:用户画像(性别/年龄) + 行为序列(点击/购买历史) → 嵌入层 → LSTM编码 → 状态向量 st

动作空间:离散候选物品集 a1,a2,...,aN(N=千至百万级)。

网络结构如右图所示。

基于dqn的推荐系统算法,引自[13]

7. DQN 的局限性与挑战

7.1 对连续动作空间的处理困难

DQN 作为一个基于离散动作空间的算法,在面对连续动作空间时表现不佳。传统的 DQN 将动作空间离散化为有限的几种选择,并对每一个动作分别进行 Q 值更新。然而,在实际应用中,许多任务要求在连续的动作空间中进行选择(如机器人控制、自动驾驶等),这使得 DQN 难以直接应用。

为了解决这个问题,研究者们提出了如深度确定性策略梯度(DDPG)[14]、软行为者-评论家(SAC)等算法,这些算法使用连续的策略输出,并结合策略梯度方法来优化连续动作空间中的决策过程。然而,DQN 在处理连续动作空间时的适应性仍然是一个亟待解决的难题。

7.2 训练过程中的样本效率问题

DQN 在训练过程中需要大量的与环境的交互数据,才能有效地学习到最优策略,这使得样本效率低下。为了减少训练时间,DQN 引入了经验回放(Experience Replay)机制,将历史经验存储在回放缓冲区,并在训练过程中随机抽取样本进行学习。虽然这种方法能有效缓解相关性带来的问题,但它并不能从根本上解决样本效率问题。

低样本效率使得 DQN 在需要快速反应或交互受限的环境中(如现实世界中的机器人控制)表现不理想。此外,训练数据的高需求增加了计算开销,并且可能导致算法在实际任务中的应用不够灵活。文章[15]提出了Rainbow DQN,将多种 DQN 的改进技术融合,以提高 DQN 的稳定性和样本效率。

7.3 策略收敛速度慢与稳定性问题

DQN 的训练过程通常存在收敛速度慢和训练不稳定的问题。由于 Q 值函数是通过神经网络逼近的,而深度神经网络本身容易出现梯度爆炸、梯度消失等问题,这会导致训练过程中的不稳定。此外,Q 值更新过程中的目标值(即最大化的 Q 值)通常会发生变化,导致目标网络和行为网络之间的不一致,这会进一步加剧训练的震荡和不稳定。

为了提高稳定性,DQN 引入了目标网络(Target Network)和经验回放机制。目标网络的引入使得 Q 值的更新目标在一定时间内保持不变,从而避免了目标网络的不断变化对训练过程的影响。文章[16]介绍了 PPO 算法,解决了策略优化中稳定性差和收敛速度慢的问题。然而,尽管这些技术改善了稳定性,DQN 的收敛速度和训练过程的稳定性问题依然存在,特别是在复杂的环境中。

7.4 泛化能力与过拟合风险

DQN 在面对高维状态空间和复杂环境时,容易出现过拟合问题。在训练过程中,DQN 通过对大量的环境交互进行学习来更新 Q 值函数。然而,在有限的训练数据上,DQN 可能会过度拟合某些特定的状态和动作,从而失去对未知环境或未见过状态的适应能力。

这种过拟合的现象特别明显在高维空间或多变环境中,智能体的泛化能力受到限制。当智能体在一个有限的训练环境中获得训练后,其学到的策略在新的或略微不同的环境中表现较差。为了解决这一问题,提出了更先进的技术,如正则化、自动调整网络结构等方法,以增强模型的泛化能力,但这些方法仍未能完全消除 DQN 在复杂环境中面临的过拟合风险。

参考文献

1. Mnih, V.; Kavukcuoglu, K. (2015). "Human-level control through deep reinforcement learning". Nature. 518 (7540): 529–533. doi:10.1038/nature14236. PMID 25719670.

2. Overmars M G. Analyzing the convergence of Q-learning through Markov decision theory[D]. University of Twente, 2021.

3. Even-Dar E, Mansour Y. Convergence of optimistic and incremental Q-learning[J]. Advances in neural information processing systems, 2001, 14.

4. Van Hasselt H, Guez A, Silver D. Deep reinforcement learning with double q-learning[C]//Proceedings of the AAAI conference on artificial intelligence. 2016, 30(1).

5. Wang Z, Schaul T, Hessel M, et al. Dueling network architectures for deep reinforcement learning[C]//International conference on machine learning. PMLR, 2016: 1995-2003.

6. Hausknecht M J, Stone P. Deep Recurrent Q-Learning for Partially Observable MDPs[C]//AAAI fall symposia. 2015, 45: 141.

7. Sun, Huihui; Zhang, Weijie; Yu, Runxiang; Zhang, Yujie (2021). "Motion planning for mobile robots—Focusing on deep reinforcement learning: A systematic review". IEEE Access. IEEE. 9: 69061–69081. doi:10.1109/ACCESS.2021.3076530.

8. Tai, Lei; Paolo, Giuseppe; Liu, Ming (2017). "Virtual-to-real deep reinforcement learning: Continuous control of mobile robots for mapless navigation". IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE: 31–36. doi:10.1109/IROS.2017.8202134.

9. Wang, Y.; Sun, J.; He, H.; Sun, C. (2020). "Deterministic policy gradient with integral compensator for robust quadrotor control". IEEE Transactions on Systems, Man, and Cybernetics: Systems. IEEE. 50 (10): 3713–3725. doi:10.1109/TSMC.2020.3002218.

10. Barron, T.; Whitehead, M.; Yeung, A. (2016). Deep reinforcement learning in a 3-D blockworld environment. IJCAI/AAAI Press. pp. 1–6. {{cite conference}}: Unknown parameter |booktitle= ignored (help)

11. Li, H.; Zhang, Q.; Zhao, D. (2020). "Deep reinforcement learning-based automatic exploration for navigation in unknown environment". IEEE Transactions on Neural Networks and Learning Systems. IEEE. 31 (6): 2064–2076. doi:10.1109/TNNLS.2019.2930059.

12. Kang, Kyunghoon; Belkhale, Suneel; Kahn, Gregory; Abbeel, Pieter; Levine, Sergey (2019). "Generalization through simulation: Integrating simulated and real data into deep reinforcement learning for vision-based autonomous flight". IEEE International Conference on Robotics and Automation (ICRA). IEEE: 6008–6014. doi:10.1109/ICRA.2019.8793701.

13. {Chen, Xiaocong and Yao, Lina and McAuley, Julian and Zhou, Guanglin and Wang, Xianzhi} (2021). "A survey of deep reinforcement learning in recommender systems: A systematic review and future directions". arXiv preprint: arXiv:2109.03540.

14. Lillicrap, T. P., Hunt, J. J., Pritzel, A., Heess, N., Erez, T., Tassa, Y., ... & Wierstra, D. (2015). Continuous control with deep reinforcement learning. arXiv preprint arXiv:1509.02971.

15. Hessel, M., Modayil, J., Van Hasselt, H., Schaul, T., Ostrovski, G., Dabney, W., ... & Silver, D. (2018, April). Rainbow: Combining improvements in deep reinforcement learning. In Proceedings of the AAAI conference on artificial intelligence (Vol. 32, No. 1).

16. Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Klimov, O. (2017). Proximal policy optimization algorithms. arXiv preprint arXiv:1707.06347.

参考文献可上下滑动查看

作者简介

本词条由集智俱乐部众包生产,难免存在纰漏和问题,欢迎大家留言反馈,一经采纳,可以获得对应的积分奖励噢!

加入我们

亲爱的社区伙伴与知识探索者:

我们诚挚邀请热爱知识分享的您,加入集智百科词条编写志愿团队!无论您是领域专家,还是对特定主题充满热忱的学习者,这里都有您的舞台。通过编写百科词条,您将为全球读者传递权威知识,同时获得专家指导个人能力跃升的双重成长。

📝 志愿者职责

创作新词条:覆盖复杂系统、人工智能等前沿领域

迭代经典内容:更新现有词条,守护知识的准确性与时效性

质量守护者:参与内容校对审核,共建精品知识库

🌟 我们期待您

集智读书会成员(需完成共创任务并获得退费资格)

拥有清晰表达复杂概念的写作能力

对特定领域有深度研究或强烈兴趣

具备信息检索与整合素养

怀揣责任感与协作精神,愿为知识共享赋能

🎁 您将收获

百科积分(支持兑换集智俱乐部周边:文化衫、复杂科学知识卡等)

集智俱乐部创始人张江教授亲自指导写作

科研助理晋升通道:表现优异者可加入张江教授科研团队

加入张江组发起的任何一期读书会并完成共创任务即可 让我们一起,用知识连接世界!

自由能原理与强化学习读书会

自由能原理被认为是“自达尔文自然选择理论后最包罗万象的思想”,它试图从物理、生物和心智的角度提供智能体感知和行动的统一性规律,从第一性原理出发解释智能体更新认知、探索和改变世界的机制,从而对人工智能,特别是强化学习世界模型、通用人工智能研究具有重要启发意义。

集智俱乐部联合北京师范大学系统科学学院博士生牟牧云,南京航空航天大学副教授何真,以及骥智智能科技算法工程师、公众号 CreateAMind 主编张德祥,共同发起「自由能原理与强化学习读书会」,希望探讨自由能原理、强化学习世界模型,以及脑与意识问题中的预测加工理论等前沿交叉问题,探索这些不同领域背后蕴含的感知和行动的统一原理。读书会已完结,现在报名可加入社群并解锁回放视频权限。

详情请见:

自由能原理与强化学习读书会启动:探索感知和行动的统一原理

推荐阅读

1. 基于世界模型的强化学习框架: 做梦者|集智百科

2. 强化学习:关于行动的智能 | 俞扬

3. AI打游戏背后的技术原理 | 张江

4. 涌现动力学如何用来分析复杂系统? | 新课上线

5. 集智学园精品课程免费开放,解锁系统科学与 AI 新世界

6. 高考分数只是张入场券,你的科研冒险在这里启航!

7. 系统科学前沿十讲:理解自然、生命与社会的复杂性

点击“阅读原文”,报名读书会

阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

深度Q网络 DQN 强化学习 深度学习 Q-Learning 经验回放 目标网络 Atari游戏 Reinforcement Learning Deep Learning Experience Replay Target Network Atari Games
相关文章