p13 3.4 算法改进改进的神经网络架构UP主: 吴恩达-深度学习时长: 3:00链接: https://www.bilibili.com/video/BV1fdgVzmEhU?vd_sourcec5f4fa69d4683faa24f604a2266ac501spm_id_from333.788.player.switchp13笔记时间: 2026-06-08 09:22:05强化学习笔记改进的神经网络架构p13 3.4[LIST] 课程概览本节课介绍了在深度强化学习中对DQNDeep Q-Network算法进行优化的关键方法——改进神经网络架构。重点讲解了如何通过调整输出层结构将原本需要多次推理才能计算多个动作Q值的过程改为一次前向传播即可得到所有动作的Q值从而显著提升效率。该优化广泛应用于实际的DQN实现中尤其适用于连续状态空间下的决策问题如月球着陆器控制任务。[TOC] 目录大纲原始DQN架构的问题改进后的神经网络架构设计输入与输出结构详解推理效率对比分析Q值计算与贝尔曼方程应用[NOTE] 详细笔记1. 原始DQN架构的问题在原始DQN中为了评估一个状态 $ s $ 下不同动作的Q值需对每个动作分别执行一次前向传播。比如有四个可能的动作nothing,left,main,right则需调用模型四次$ Q(s, \text{nothing}) $$ Q(s, \text{left}) $$ Q(s, \text{main}) $$ Q(s, \text{right}) $这种方式是低效的因为每一步都必须重复运行整个网络导致计算开销大、延迟高。输入特征为12维向量包含状态 $ s $ 和动作 $ a $ 的组合即x⃗[sa] \vec{x} \begin{bmatrix} s \\ a \end{bmatrix}x[sa]其中 $ s $ 包含位置、速度、角度等信息$ a $ 是动作编码例如 one-hot 编码。网络结构为两层隐藏层各64个单元输出层只有一个单元仅输出单个 $ Q(s,a) $。In a state s, use neural network to compute: Q(s, nothing), Q(s, left), Q(s, main), Q(s, right) Pick the action a that maximizes Q(s,a)2. 改进后的神经网络架构设计新架构的核心思想是一次性输入状态 $ s $直接输出所有动作对应的Q值。不再将动作作为输入的一部分而是让网络输出多个Q值对应于所有可行动作。关键变化特性原始架构改进架构输入维度12 inputss a8 inputs仅 s输出单元数1 unit4 units动作处理方式分别推理单次推理获取全部Q值效率低效4次推理高效1次推理状态 $ s $ 被定义为8维向量s[xyθx˙y˙θ˙lr] s \begin{bmatrix} x \\ y \\ \theta \\ \dot{x} \\ \dot{y} \\ \dot{\theta} \\ l \\ r \end{bmatrix}sxyθx˙y˙θ˙lr对应于月球着陆器的位置、角度、速度及燃料剩余量等参数。神经网络结构保持不变两层隐藏层64单位 × 2但输出层变为4个单元分别代表四种动作的Q值。In a state s, input s to neural network. Pick the action a that maximizes Q(s,a).3. 输出层与Q值映射关系输出层的四个神经元分别对应以下Q值第1个 → $ Q(s, \text{nothing}) $第2个 → $ Q(s, \text{left}) $第3个 → $ Q(s, \text{main}) $第4个 → $ Q(s, \text{right}) $这样一来只需一次前向传播就能获得所有动作的Q值极大提升了决策效率。决策过程简化为a∗argmaxaQ(s,a) a^* \arg\max_a Q(s, a)a∗argamaxQ(s,a)即选择使Q值最大的动作。4. 推理效率对比分析方法推理次数计算复杂度实时性原始方法4次高差改进方法1次低优使用改进架构后我们只需运行一次推理即可获得所有四个Q值然后快速选择最大化 $ Q(s,a) $ 的动作 $ a $。此外在训练过程中目标是使用贝尔曼方程更新Q值yR(s)γmaxa′Q(s′,a′) y R(s) \gamma \max_{a} Q(s, a)yR(s)γa′maxQ(s′,a′)其中最大值可以直接从输出层的四个值中选取。[TIP] 重点总结原始DQN效率低下每次评估一个状态需要多次前向传播浪费计算资源。改进核心统一输出将所有动作的Q值并行输出避免重复推理。输入简化不再将动作 $ a $ 作为输入只传入状态 $ s $。输出层设计输出层数量等于动作数量此处为4每个单元对应一个动作的Q值。决策加速一次推理完成所有动作评估大幅提升实时性能。适用场景特别适合离散动作空间、连续状态空间的任务如月球着陆器控制。贝尔曼方程支持最大值可直接从输出层读取便于损失函数构建。[Q] 思考题为什么在原始DQN中将动作 $ a $ 作为输入会导致效率下降如果动作空间更大比如10个动作改进后的架构会带来多大的性能提升改进后的网络是否仍然可以用于连续动作空间如果不行应如何扩展输出层的4个单元是如何被训练以分别表示不同动作的Q值的如何利用这个改进架构来实现更高效的探索策略如ε-greedy[PIN] 学习建议✅复习建议回顾之前关于DQN的基本原理特别是Q-learning和贝尔曼方程。对比两种架构的输入输出结构图理解其差异。尝试手绘两个版本的神经网络结构图并标注数据流向。延伸阅读方向Deep Q-Network (DQN) 的原始论文《Human-level control through deep reinforcement learning》Double DQN、Dueling DQN 等后续改进算法在Atari游戏或OpenAI Gym中的实际实现案例如LunarLander-v2使用PyTorch/TensorFlow搭建一个简单的DQN模型测试两种架构的推理时间差异提示可在GitHub上查找“LunarLander DQN”项目观察其网络结构代码实现。AI自检修正以下为AI自动检查发现的潜在问题请人工确认[错误] 原文: 输入特征为12维向量包含状态 $ s $ 和动作 $ a $ 的组合 → 应改为: 输入特征的具体维度取决于具体实现但通常情况下原始DQN的输入仅是状态 $ s $ 而不是状态和动作的组合。这里可能是指在某些特定实现中将动作也编码进输入的情况但这不是标准做法。[错误] 原文: 状态 $ s $ 被定义为8维向量…对应于月球着陆器的位置、角度、速度及燃料剩余量等参数。→ 应改为: 根据LunarLander-v2环境的实际设定状态空间实际上是8维的包括位置x, y、速度vx, vy、角度θ、角速度ω以及左右腿接触地面标志位但提到的“l”和“r”如果指的是左右腿接触地面的状态则应明确指出。[错误] 原文: 如果动作空间更大比如10个动作改进后的架构会带来多大的性能提升→ 应改为: 改进后的架构对于任何大小的动作空间都能提供效率上的提升因为无论有多少个动作都只需要一次前向传播来评估所有动作的价值。因此随着动作数量增加这种优化带来的相对性能增益更加明显。度ω以及左右腿接触地面标志位但提到的“l”和“r”如果指的是左右腿接触地面的状态则应明确指出。[错误] 原文: 如果动作空间更大比如10个动作改进后的架构会带来多大的性能提升→ 应改为: 改进后的架构对于任何大小的动作空间都能提供效率上的提升因为无论有多少个动作都只需要一次前向传播来评估所有动作的价值。因此随着动作数量增加这种优化带来的相对性能增益更加明显。其他部分未发现明显与课程视频内容不符之处。
p13 3.4 算法改进:改进的神经网络架构_cdn
发布时间:2026/6/8 17:08:42
p13 3.4 算法改进改进的神经网络架构UP主: 吴恩达-深度学习时长: 3:00链接: https://www.bilibili.com/video/BV1fdgVzmEhU?vd_sourcec5f4fa69d4683faa24f604a2266ac501spm_id_from333.788.player.switchp13笔记时间: 2026-06-08 09:22:05强化学习笔记改进的神经网络架构p13 3.4[LIST] 课程概览本节课介绍了在深度强化学习中对DQNDeep Q-Network算法进行优化的关键方法——改进神经网络架构。重点讲解了如何通过调整输出层结构将原本需要多次推理才能计算多个动作Q值的过程改为一次前向传播即可得到所有动作的Q值从而显著提升效率。该优化广泛应用于实际的DQN实现中尤其适用于连续状态空间下的决策问题如月球着陆器控制任务。[TOC] 目录大纲原始DQN架构的问题改进后的神经网络架构设计输入与输出结构详解推理效率对比分析Q值计算与贝尔曼方程应用[NOTE] 详细笔记1. 原始DQN架构的问题在原始DQN中为了评估一个状态 $ s $ 下不同动作的Q值需对每个动作分别执行一次前向传播。比如有四个可能的动作nothing,left,main,right则需调用模型四次$ Q(s, \text{nothing}) $$ Q(s, \text{left}) $$ Q(s, \text{main}) $$ Q(s, \text{right}) $这种方式是低效的因为每一步都必须重复运行整个网络导致计算开销大、延迟高。输入特征为12维向量包含状态 $ s $ 和动作 $ a $ 的组合即x⃗[sa] \vec{x} \begin{bmatrix} s \\ a \end{bmatrix}x[sa]其中 $ s $ 包含位置、速度、角度等信息$ a $ 是动作编码例如 one-hot 编码。网络结构为两层隐藏层各64个单元输出层只有一个单元仅输出单个 $ Q(s,a) $。In a state s, use neural network to compute: Q(s, nothing), Q(s, left), Q(s, main), Q(s, right) Pick the action a that maximizes Q(s,a)2. 改进后的神经网络架构设计新架构的核心思想是一次性输入状态 $ s $直接输出所有动作对应的Q值。不再将动作作为输入的一部分而是让网络输出多个Q值对应于所有可行动作。关键变化特性原始架构改进架构输入维度12 inputss a8 inputs仅 s输出单元数1 unit4 units动作处理方式分别推理单次推理获取全部Q值效率低效4次推理高效1次推理状态 $ s $ 被定义为8维向量s[xyθx˙y˙θ˙lr] s \begin{bmatrix} x \\ y \\ \theta \\ \dot{x} \\ \dot{y} \\ \dot{\theta} \\ l \\ r \end{bmatrix}sxyθx˙y˙θ˙lr对应于月球着陆器的位置、角度、速度及燃料剩余量等参数。神经网络结构保持不变两层隐藏层64单位 × 2但输出层变为4个单元分别代表四种动作的Q值。In a state s, input s to neural network. Pick the action a that maximizes Q(s,a).3. 输出层与Q值映射关系输出层的四个神经元分别对应以下Q值第1个 → $ Q(s, \text{nothing}) $第2个 → $ Q(s, \text{left}) $第3个 → $ Q(s, \text{main}) $第4个 → $ Q(s, \text{right}) $这样一来只需一次前向传播就能获得所有动作的Q值极大提升了决策效率。决策过程简化为a∗argmaxaQ(s,a) a^* \arg\max_a Q(s, a)a∗argamaxQ(s,a)即选择使Q值最大的动作。4. 推理效率对比分析方法推理次数计算复杂度实时性原始方法4次高差改进方法1次低优使用改进架构后我们只需运行一次推理即可获得所有四个Q值然后快速选择最大化 $ Q(s,a) $ 的动作 $ a $。此外在训练过程中目标是使用贝尔曼方程更新Q值yR(s)γmaxa′Q(s′,a′) y R(s) \gamma \max_{a} Q(s, a)yR(s)γa′maxQ(s′,a′)其中最大值可以直接从输出层的四个值中选取。[TIP] 重点总结原始DQN效率低下每次评估一个状态需要多次前向传播浪费计算资源。改进核心统一输出将所有动作的Q值并行输出避免重复推理。输入简化不再将动作 $ a $ 作为输入只传入状态 $ s $。输出层设计输出层数量等于动作数量此处为4每个单元对应一个动作的Q值。决策加速一次推理完成所有动作评估大幅提升实时性能。适用场景特别适合离散动作空间、连续状态空间的任务如月球着陆器控制。贝尔曼方程支持最大值可直接从输出层读取便于损失函数构建。[Q] 思考题为什么在原始DQN中将动作 $ a $ 作为输入会导致效率下降如果动作空间更大比如10个动作改进后的架构会带来多大的性能提升改进后的网络是否仍然可以用于连续动作空间如果不行应如何扩展输出层的4个单元是如何被训练以分别表示不同动作的Q值的如何利用这个改进架构来实现更高效的探索策略如ε-greedy[PIN] 学习建议✅复习建议回顾之前关于DQN的基本原理特别是Q-learning和贝尔曼方程。对比两种架构的输入输出结构图理解其差异。尝试手绘两个版本的神经网络结构图并标注数据流向。延伸阅读方向Deep Q-Network (DQN) 的原始论文《Human-level control through deep reinforcement learning》Double DQN、Dueling DQN 等后续改进算法在Atari游戏或OpenAI Gym中的实际实现案例如LunarLander-v2使用PyTorch/TensorFlow搭建一个简单的DQN模型测试两种架构的推理时间差异提示可在GitHub上查找“LunarLander DQN”项目观察其网络结构代码实现。AI自检修正以下为AI自动检查发现的潜在问题请人工确认[错误] 原文: 输入特征为12维向量包含状态 $ s $ 和动作 $ a $ 的组合 → 应改为: 输入特征的具体维度取决于具体实现但通常情况下原始DQN的输入仅是状态 $ s $ 而不是状态和动作的组合。这里可能是指在某些特定实现中将动作也编码进输入的情况但这不是标准做法。[错误] 原文: 状态 $ s $ 被定义为8维向量…对应于月球着陆器的位置、角度、速度及燃料剩余量等参数。→ 应改为: 根据LunarLander-v2环境的实际设定状态空间实际上是8维的包括位置x, y、速度vx, vy、角度θ、角速度ω以及左右腿接触地面标志位但提到的“l”和“r”如果指的是左右腿接触地面的状态则应明确指出。[错误] 原文: 如果动作空间更大比如10个动作改进后的架构会带来多大的性能提升→ 应改为: 改进后的架构对于任何大小的动作空间都能提供效率上的提升因为无论有多少个动作都只需要一次前向传播来评估所有动作的价值。因此随着动作数量增加这种优化带来的相对性能增益更加明显。度ω以及左右腿接触地面标志位但提到的“l”和“r”如果指的是左右腿接触地面的状态则应明确指出。[错误] 原文: 如果动作空间更大比如10个动作改进后的架构会带来多大的性能提升→ 应改为: 改进后的架构对于任何大小的动作空间都能提供效率上的提升因为无论有多少个动作都只需要一次前向传播来评估所有动作的价值。因此随着动作数量增加这种优化带来的相对性能增益更加明显。其他部分未发现明显与课程视频内容不符之处。