
从 Bellman 目标、经验回放和四帧状态出发,读懂 DQN 为什么能在 Atari 像素输入上稳定训练,并学会检查深度强化学习论文的目标偏差、样本相关性与实验对齐。
x_t,把截至当前时刻的历史写成 s_t = {x_1, a_1, x_2, ..., a_{t-1}, x_t}。只看一帧画面可能无法判断球是向左还是向右,所以网络至少要看到最近几帧。2Q(s,a) 表示:在状态 s 采取动作 a 后,未来能获得多少折扣回报。最优 Q 值满足 Bellman 方程:Q*(s,a) = E[r + γ max_{a'} Q*(s',a') | s,a]r,以及下一状态 s' 中最有希望的动作价值 max_{a'} Q*(s',a')。γ 是折扣因子,用来降低远期奖励的权重。这个方程的含义不是「网络预测下一个动作」,而是让当前动作的价值估计与「即时奖励加上下一步最优价值」对齐。4Q(s,a;θ) 近似 Q*,对一批经验最小化平方误差:L_i(θ_i) = E[(y_i - Q(s,a;θ_i))²]y_i 来自上一轮参数:y_i = E[r + γ max_{a'} Q(s',a';θ_{i-1}) | s,a](ϕ_j, a_j, r_j, ϕ_{j+1}):ϕ_{j+1} 是终止状态,目标就是 y_j = r_j,因为游戏已经没有未来回报。y_j = r_j + γ max_{a'} Q(ϕ_{j+1}, a';θ)。Q(ϕ_j,a_j;θ) 推向 y_j;网络一次前向计算会同时给出所有动作的 Q 值,但损失只选中这次实际动作对应的输出。max 会偏向噪声中较大的估计,Double DQN 后来正是从这个薄弱点切入。6e_t = (s_t, a_t, r_t, s_{t+1})ε-greedy 策略选动作:以概率 ε 随机探索,否则选择当前 Q 值最大的动作。(y_j - Q(ϕ_j,a_j;θ))² 做一次梯度下降。84×84,再把最近 4 帧堆叠成输入。四帧让网络能从画面变化中获得一部分速度和方向信息,同时把任意长度的历史压缩成固定大小的张量。984×84×4,先经过两层卷积和 ReLU,再经过一个含 256 个 ReLU 单元的全连接层。输出层为每个合法动作设置一个单元。假设某个游戏有 6 个动作,一次前向传播直接返回 6 个数:[Q(s,left), Q(s,right), Q(s,fire), ...]+1、负奖励裁成 -1,以便不同游戏共用学习率;这会让网络失去区分不同正奖励大小的能力,是实验设置的一部分,不应从结果中删掉。10ε=0.05 评估策略;DQN Best 是单次最高表现,不能与平均分混为一谈。11| 游戏 | Sarsa | Contingency | DQN 平均 | DQN Best | 人类基线 |
|---|---|---|---|---|---|
| Beam Rider | 996 | 1743 | 4092 | 5184 | 7456 |
| Breakout | 5.2 | 6 | 168 | 225 | 31 |
| Enduro | 129 | 159 | 470 | 661 | 368 |
| Pong | -19 | -17 | 20 | 21 | -3 |
| Q*bert | 614 | 960 | 1952 | 4500 | 18900 |
| Seaquest | 665 | 723 | 1705 | 1740 | 28010 |
| Space Invaders | 271 | 268 | 581 | 1075 | 3690 |
max 会不会高估价值max_{a'} Q(s',a') 同时完成动作选择和价值评估。只要 Q 值带有噪声,最大值就有机会专门挑中偏高的那个估计。Deep Reinforcement Learning with Double Q-learning 把表格型 Double Q-learning 的思路推广到深度函数逼近,报告 DQN 在部分 Atari 游戏中存在明显过估计,并称修正过估计后多个游戏的性能得到改善。6max 就不只是一个数学符号,而是误差进入目标值的通道。This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.