城东新开了一家老式游戏厅,三十多台街机一字排开:太空侵略者、打砖块、乒乓球……每台机器都遵循同样的规矩——投币开局、摇杆操作、屏幕反馈、计分器跳动。如果你想比较哪位玩家水平更高,最公平的办法,是让所有人用同一排街机、按同一套流程试玩,最后看计分牌。强化学习领域,真的就有这样一座“标准游戏厅”,它叫 Atari/Gym 基准。 Atari 提供了几十款经典街机游戏,Gym 是游戏厅老板定下的统一规则:任何算法只要学会两个操作(投币、拨杆),就能在这些游戏里一展身手。AI 玩家们——DQN、PPO、Rainbow——轮流上场,对着经过预处理的画面做决策,用得分曲线一决高下。这个基准之所以成为行业标准,因为它把“智能”变成了可量化的分数:环境固定、规则公开、评价一致,谁跑同一个实验,结果都八九不离十。对新工程师,它是入门强化学习的最佳课堂;对资深研究员,它是检验新算法是否真变强的考官。

岗位关联

掌握 Atari/Gym 基准,等于握住了衡量所有强化学习算法的“标准尺子”——从算法选型、超参调优到论文对比实验,你都能搭出一套可信的评估擂台。

目录
  1. 可视化演示
  2. 基准概念定义
  3. Gym环境架构
  4. Atari游戏特性
  5. 评分评估体系
  6. 训练工作流程
  7. 关键算法表现
  8. 工程实践要点
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示强化学习游戏AI基准三大核心:Atari环境(3款经典游戏BRK Breakout 400分/PNG Pong 20分/INV SpaceInvaders 800分+RL接口OBS 84x84x4帧堆叠+ACT离散动作+RWD分数奖励)、Gym架构(3阶段OBS观察→ACT决策→STP步进循环+step返回obs/rwd/done三元组)、算法对比(DQN 400分/1.0x vs A2C 600分/0.6x vs PPO 800分/0.8x分数与时间权衡),三模式切换理解RL基准。

本节配有交互动效(进入视口后自动加载,约 3KB)。

'+C1+'

基准概念定义

游戏厅要立规矩。老板想比较玩家的水平,就得规定每台机器怎么投币、怎么操作、怎么计分。Atari 就是那排经典街机,而 Gym 是老板与玩家签下的合同——只要遵守合同上的接口,任何人都能上台试玩。在强化学习里,这套合同把“游戏环境”变成了一台台可被算法驱动的机器。

技术上,Gym(现维护为 Gymnasium)是 OpenAI 推出的环境接口库。它定义了一个基类 gym.Env,任何环境只要实现两个方法 reset() 和 step(),就能被统一调用。著名的 Arcade Learning Environment(ALE)把 Atari 2600 的几十款游戏封装进这个接口,形成了“Atari 游戏基准”。研究者说“在 Atari 上跑一遍”,指的就是用这套标准流程测试算法。

这排街机的背后,是强化学习的数学骨架——马尔可夫决策过程(MDP)。一个 MDP 用五元组描述环境的全部要素:

理解了这五个符号,你就拿到了游戏厅的“管理手册”:状态是画面,动作是操作,转移是规则,奖励是分数,折扣是耐心。算法的一切目标,就是在这些元素共同构成的舞台上,找到让累计奖励最大的玩法。

M=(S, A, P, R, γ)\displaystyle M = (S,\ A,\ P,\ R,\ \gamma)
这五个符号分别是:状态集合、动作集合、状态转移概率、奖励函数和折扣因子。它们合在一起,精确刻画了“街机里正在发生什么”。
  1. 状态集合 S记录了游戏厅屏幕可能出现的所有画面,每一帧都是一个“时刻的快照”。
    SS
  2. 动作集合 A摇杆和按钮能做的全部操作,比如左移、右移、开火、跳。
    AA
  3. 转移概率 P按下按钮后,画面从当前状态跳到下一个状态的可能性分布。
    P(s′∣s,a)P(s' \mid s, a)
  4. 奖励函数 R每次操作后计分器给出的分数增量,引导玩家做出好决策。
    R(s,a)R(s, a)
  5. 折扣因子 γ衡量未来得分在今天值多少钱,范围在 0 到 1 之间。
    γ∈[0,1]\gamma \in [0, 1]

Gym环境架构

玩家拿到合同后,第一步是搞清操作面板:投币、开局、拨杆、看分、投币再来。Gym 把这套流程压缩成了两个核心按钮。env.reset() 相当于投币开局,系统清空画布、返回第一帧画面;env.step(action) 相当于拨一次摇杆,机器运转、画面跳转、计分器响动。

在代码层面,env.reset() 返回初始观测 obs;env.step(action) 则返回一个元组,新版 Gymnasium 中依次是:新观测、即时奖励、终止标志、截断标志、附加信息。许多教材中简化为“观测、奖励、是否结束、额外信息”四项,本质一致。

智能体的训练循环,就是反复按下这两个按钮。它在第 t 步选出动作 $a_t$,环境推进到新画面 $o_{t+1}$,计分器给出 $r_t$,同时告诉它游戏是否结束。整轮交互可以写成:

看懂这个面板后,你会发现所有游戏都长得一样了:不管打到《乒乓》还是《太空侵略者》,交互节奏都是“看画面→选动作→收反馈”。这种统一性正是 Gym 的价值——算法工程师只需要写好一次训练循环,就能在全部 Atari 游戏上通用。

ot+1, rt, donet=env.step(at)\displaystyle o_{t+1},\ r_t,\ \text{done}_t = \text{env.step}(a_t)
左边是环境“吐出来”的三样东西:新画面、即时分数、是否结束;右边是玩家“喂进去”的动作。
  1. 动作输入 $a_t$智能体在时间步 t 选择的摇杆操作,来自动作空间 A。
    at∈Aa_t \in A
  2. 新观测 $o_{t+1}$执行动作后屏幕显示的最新画面,代表环境的新状态信息。
    ot+1o_{t+1}
  3. 即时奖励 $r_t$本步操作引起的计分器变化,可正可负,是学习的唯一反馈。
    rtr_t
  4. 结束标志 $\text{done}_t$布尔值,为真表示本局游戏结束,需要重新投币开局。
    donet∈{True, False}\text{done}_t \in \{\text{True},\ \text{False}\}

Atari游戏特性

每台街机玩法不同,但屏幕都是像素画,操作都是少数几个按钮。Atari 游戏正是如此:智能体看到的是一帧帧 210×160 的 RGB 彩色图,动作则是 6 到 18 个离散选项,比如左右移动、开火、跳跃。这跟围棋那种“19×19 的抽象状态”完全不同,它要求算法直接理解原始画面。

为了让神经网络吃下这些画面,研究者制定了一套标准预处理流程。第一步是降维:把 210×160 的彩色图缩放为 84×84 的灰度图,大大减少计算量。第二步是堆叠:把连续几帧画面叠在一起,打包成一个“四通道”的观测。

为什么要堆叠帧?因为单张照片看不出运动。想象一颗垒球向你飞来,你只有看到它连续几帧的位置变化,才能判断速度和方向。Atari 里的球、子弹、敌人同样如此。于是状态被定义为:

这套“四帧连拍”的预处理至今仍是 Atari 基准的标配。它把老街机的高维度画面压缩成神经网络友好的紧凑输入,让算法不用关心像素级细节,只需要学会从连续画面中捕捉规律。

st=[xt, xt−1, xt−2, xt−3]∈R84×84×4\displaystyle s_t = [x_t,\ x_{t-1},\ x_{t-2},\ x_{t-3}] \in \mathbb{R}^{84 \times 84 \times 4}
当前帧加前三帧,摞成 4 层灰白画面,相当于给智能体配了一台能“连拍四张”的相机。
  1. 当前帧 $x_t$最新一帧经过灰度缩放后的画面,代表此刻的视觉信息。
    xtx_t
  2. 历史帧 $x_{t-k}$往前回溯第 k 帧的灰度画面,提供运动轨迹线索。
    xt−1, xt−2, xt−3x_{t-1},\ x_{t-2},\ x_{t-3}
  3. 四帧组合 $[x_t, x_{t-1}, x_{t-2}, x_{t-3}]$把四帧按时间顺序叠成四层“连拍照片”。
    [xt, xt−1, xt−2, xt−3]\left[x_t,\ x_{t-1},\ x_{t-2},\ x_{t-3}\right]
  4. 张量尺寸 $84 \times 84 \times 4$高度 84、宽度 84、通道数 4,是网络输入的标准形状。
    84×84×484 \times 84 \times 4

评分评估体系

游戏厅里最难的不是得分,而是判分。不同游戏难度天差地别:有的随便按都能拿到几千分,有的苦练半天也破不了百。直接比较绝对分数毫无意义,记分员必须找一把“通用标尺”。这把标尺就是人类玩家的平均成绩——大家都是凡人,拿 AI 和凡人比,公平。

人类归一化分数(HNS)因此而生。每次评估一个智能体,需要三个数字:智能体的平均得分、随机策略的成绩(闭眼猛摇摇杆的分数)、人类玩家的平均成绩。计算方式是把智能体相对随机的进步量,除以人类相对随机的进步量,得到百分数:

在论文里报告 Atari 成绩时,研究者通常还会做两件事:一是在全部 57 个游戏上分别算 HNS,二是报告这些分数的中位数或均值。单款游戏的绝对分很容易被“某一局运气好”带偏,归一化加中位数,才能反映算法的真实水平。

HNS=Ragent−RrandomRhuman−Rrandom×100%\displaystyle \text{HNS} = \frac{R_{\text{agent}} - R_{\text{random}}}{R_{\text{human}} - R_{\text{random}}} \times 100\%
HNS 等于 100%,表示 AI 追平人类;等于 200%,表示 AI 比人类厉害一倍;低于 0%,表示连乱按都不如。
  1. 智能体得分 $R_{\text{agent}}$算法在固定次数评估回合中的平均游戏得分。
    RagentR_{\text{agent}}
  2. 随机基线 $R_{\text{random}}$随机采样动作跑出来的平均分,代表“完全不会玩”的底线。
    RrandomR_{\text{random}}
  3. 人类基准 $R_{\text{human}}$人类专业玩家花固定时间练习后的平均分,代表“会玩”的水平。
    RhumanR_{\text{human}}
  4. 归一化计算分子是 AI 比随机强多少,分母是人类比随机强多少,两者相除取百分比。
    Ragent−RrandomRhuman−Rrandom\frac{R_{\text{agent}} - R_{\text{random}}}{R_{\text{human}} - R_{\text{random}}}

训练工作流程

玩家怎么变强?答案藏在游戏厅的日常里:反复投币、反复试错、反复记笔记。强化学习的训练循环与此完全一致——看画面、选动作、得奖励、改策略、再来一局。区别在于,人类靠脑细胞记忆经验,AI 靠神经网络记录规律。

DQN 是第一个在 Atari 上大放异彩的算法。它用神经网络拟合 Q 值,也就是“在某个画面下选择某个动作,未来累计能得多少分”的预测。为了让这个预测越来越准,DQN 引入了两个关键设计:经验回放和固定目标网络。经验回放像一本错题本——智能体把每次交互“画面、动作、奖励、下一画面”记下来,训练时随机抽出小批量来学习,从而打碎相邻样本之间的相关性。

Q-learning 的更新规则,是整个流程的数学核心。它告诉网络:把预测值往“眼前奖励 + 未来最优值”方向挪动一小步:

训练就是这样一步一步“越练越准”。经验回放像错题本,目标网络像稳定军心的老教练,而 γ 是理财观——今天少拿点没关系,未来多赚才重要。整个训练流程跑完几十万步,玩家就从“乱按摇杆”成长为一台游戏的专家。

Q(s,a)←Q(s,a)+α[r+γmax⁡a′Q(s′,a′)−Q(s,a)]\displaystyle Q(s, a) \leftarrow Q(s, a) + \alpha \left[ r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right]
方括号里的差叫 TD 误差,衡量“这次估计比预期的好还是差”;α 决定每步修正的幅度。
  1. 当前预测 $Q(s, a)$网络认为“画面 s 选动作 a”能带来的累计奖励估计值。
    Q(s,a)Q(s, a)
  2. 目标值 $r + \gamma \max_{a'} Q(s', a')$实际拿到的即时分,加上未来最有希望的分支。
    r+γmax⁡a′Q(s′,a′)r + \gamma \max_{a'} Q(s', a')
  3. TD 误差求解目标值减去当前预测,差值越大说明这个动作被低估了,需要上调。
    [r+γmax⁡a′Q(s′,a′)−Q(s,a)]\left[ r + \gamma \max_{a'} Q(s', a') - Q(s, a) \right]
  4. 学习率 α控制每次更新的步长,太大容易震荡,太小学得慢。
    α∈(0,1]\alpha \in (0, 1]

关键算法表现

游戏厅里渐渐冒出几位明星玩家。DQN 是第一位受认可的高手:2013 年它在三款 Atari 游戏上超越人类职业玩家,2015 年的 Nature 版本又在 49 款游戏上达到人类水平。它证明了“只看像素也能学会打游戏”,一举点燃了深度强化学习的浪潮。

后来的明星各有风格。PPO 属于策略梯度家族,不预测每步动作的分数,而是直接优化“选每个动作的概率分布”。它的特点用一个词概括:稳。通过 clip 机制限制每次参数更新的幅度,防止一次大改导致策略崩溃。Rainbow 则是“集齐七颗龙珠”的集大成者,融合了 Double DQN、优先级回放、多步回报、分布 Q 学习等七项改进,中位成绩远超原始 DQN。

PPO 的核心目标函数看起来有点吓人,拆开来看其实很简单:

你看,不同玩家风格迥异:DQN 靠复盘记忆,PPO 靠小步快跑,Rainbow 靠装备碾压。但无论谁上场,考卷都是同一套 Atari 游戏厅。这正是基准存在的意义——让不同的算法风格站在同一条起跑线上接受检验。

LCLIP(θ)=Et[min⁡(rt(θ)At, clip(rt(θ), 1−ϵ, 1+ϵ) At)]\displaystyle L^{CLIP}(\theta) = \mathbb{E}_t \left[ \min\left( r_t(\theta) A_t,\ \text{clip}(r_t(\theta),\, 1-\epsilon,\, 1+\epsilon)\, A_t \right) \right]
它的意思是:新策略比旧策略好,就多学一点;但好太多时先压住,别一步走太快闪了腰。
  1. 概率比 $r_t(\theta)$新策略与旧策略在动作 a 上概率的比值,衡量这次更新动了多少。
    rt(θ)=πθ(at∣st)πθold(at∣st)r_t(\theta) = \frac{\pi_\theta(a_t \mid s_t)}{\pi_{\theta_{\text{old}}}(a_t \mid s_t)}
  2. 优势函数 $A_t$这个动作比平均水平的做法好多少,正的就是该学,负的就是该躲。
    AtA_t
  3. clip 截断操作把概率比限制在 $1-\epsilon$ 到 $1+\epsilon$ 之间,防止更新幅度失控。
    clip(rt(θ), 1−ϵ, 1+ϵ)\text{clip}(r_t(\theta),\, 1-\epsilon,\, 1+\epsilon)
  4. 取最小值在被截断和没被截断的两个目标里选更保守的那个,宁稳勿激进。
    min⁡(⋅,⋅)\min\left( \cdot, \cdot \right)

工程实践要点

老玩家都懂街机的潜规则:连按按钮比单按反应快,开局时画面会有一段无意义的闪烁,不同机器的分数尺度可能差出十倍。这些经验映射到代码里,就是 Atari 基准的工程实践要点。

第一招是帧跳过(frame skip):让智能体每 4 帧才做一次决策,动作在这 4 帧内重复执行。这既模拟了人类反应速度,又把交互频率降低四倍,大大加快训练节奏。第二招是奖励裁剪(reward clipping):把每步得分压到 [-1, 1] 区间,避免某局大分差压垮损失函数。第三招是随机种子管理:固定环境种子和网络初始化种子,让实验可复现。第四招是训练评估分离:训练时让智能体大胆探索,评估时必须关闭探索、使用贪心策略。

奖励裁剪的公式可以说是整个 Atari 工程体系里最简单的改造之一:

此外,开局时还要做“随机空转”(no-op reset):让环境随机执行 0 到 30 帧的空操作再开始,打破固定的初始画面序列,增加数据多样性。记住这些潜规则,你的 AI 玩家在这座标准游戏厅里才能跑得又稳、比得又准。

rt′=clip(rt, −1, 1)\displaystyle r'_t = \text{clip}(r_t,\ -1,\ 1)
原分超过 1 就记 1,低于 -1 就记 -1,整个训练曲线因此稳定许多。
  1. 原始奖励 $r_t$游戏计分器每步给出的真实分数增量。
    rtr_t
  2. clip 函数把任意实数限制在一个区间内,越界的值被强制压到边界。
    clip(rt, −1, 1)\text{clip}(r_t,\ -1,\ 1)
  3. 裁剪后奖励 $r'_t$落入 [-1, 1] 区间的归一化奖励,用于网络更新。
    rt′∈[−1, 1]r'_t \in [-1,\ 1]
  4. 作用范围仅用于训练损失,不影响最终的 HNS 分数统计。
    仅训练使用\text{仅训练使用}

AI 应用场景

游戏公司算法选型测试

阶段:模型评估与选择

解决的问题:游戏公司做 AI 玩法时,常面对“该选 DQN 还是 PPO”的困惑。直接在自己的 3A 项目上试错成本极高,光渲染一帧就要几十毫秒,训练一轮要跑好几天。Atari 作为轻量但同样具有像素观测量和离散动作空间的基准,可以在几小时内给出算法的相对性能排名。

具体案例:某棋牌游戏团队在设计“AI 陪玩”前,先让候选算法在 Atari 的《Pong》《Breakout》上以同一套标准跑 1000 万步。通过对比学习曲线和 HNS,PPO 在训练稳定性上明显优于 DQN,团队据此选择了 PPO 作为主干策略,节省了约三周的预研时间。

论文与开源模型的基准汇报

阶段:实验验证与对比

解决的问题:学术论文中,算法改进了多少必须有硬指标支撑。Atari 基准提供了 57 个环境的统一考卷,配合人类归一化分数,让新手也能快速定位自己的算法处于什么水平,避免“自说自话”的无效对比。

具体案例:某研究者改进了经验回放的采样权重,在 Gymnasium 的 Atari 环境上跑了 5 个代表性游戏(Pong、Breakout、Seaquest 等),报告了每个游戏的 HNS 和全部游戏的中位数。审稿人参考 DQN、Rainbow 的公开数据即可验证结论,论文因此顺利通过评审。

强化学习入门与回归测试

阶段:入门教学与持续集成

解决的问题:新手学强化学习最大的痛点是“代码写完了,但不知道对不对”。Atari 环境结合 Gym 接口,提供了一个标准的“自检场”:只要训练循环能跑通、得分曲线能上升,就说明环境交互、网络更新、奖励处理等环节全部正确。

具体案例:某公司的算法交付流水线里,每次代码合入都会自动触发一次 Atari 冒烟测试——在《Breakout》上训练 20 万步,若平均得分低于阈值则阻止合并。这个做法把“算法实现失误”在提交阶段就拦截下来,大幅减少了线上事故。

Python 演示

python36 行
import gymnasium as gymimport numpy as np  def run_episode(env, max_steps=1000):    obs, _ = env.reset()    total_reward = 0.0    for _ in range(max_steps):        action = env.action_space.sample()        obs, reward, terminated, truncated, info = env.step(action)        total_reward += reward        if terminated or truncated:            break    return total_reward  def human_normalized_score(agent_score, random_score, human_score):    return (agent_score - random_score) / (human_score - random_score) * 100.0  def main():    raw_env = gym.make("ALE/Breakout-v5", render_mode="rgb_array")    env = gym.wrappers.AtariPreprocessing(        raw_env, noop_max=30, frame_skip=4, screen_size=84, grayscale_obs=True    )    print("动作空间大小:", int(env.action_space.n))    agent_scores = [run_episode(env) for _ in range(10)]    agent_avg = float(np.mean(agent_scores))    print("AI随机玩家平均得分: {:.2f}".format(agent_avg))    hns = human_normalized_score(agent_avg, random_score=1.5, human_score=30.0)    print("人类归一化分数: {:.1f}%".format(hns))    env.close()  if __name__ == "__main__":    main()
目的:用 Gymnasium 加载 Atari《Breakout》环境,套上标准预处理(帧跳过、灰度缩放),让随机策略跑 10 局评估,并演示人类归一化分数(HNS)的计算过程。
  1. gym.make("ALE/Breakout-v5", render_mode="rgb_array")创建《打砖块》街机环境实例,这是整个基准测试的入口。
  2. gym.wrappers.AtariPreprocessing(...)给原始环境叠加标准预处理:开局随机空转、帧跳过、84×84 灰度化。
  3. obs, _ = env.reset()投币开局,返回第一帧观测;新版本同时返回附加信息字典。
  4. env.action_space.sample()从离散动作空间中随机采样一个动作,代表“乱按摇杆”。
  5. env.step(action)执行动作,返回新观测、即时奖励、终止和截断两个结束标志、附加信息。
  6. human_normalized_score(...)把 AI 分数映射到“随机=0%、人类=100%”的尺子上,跨游戏可比。

常见误区

误区在一款 Atari 游戏上拿了高分,就宣称“我的算法超越了 SoTA”,甚至直接拿绝对分数跟别的论文比较。

正解不同游戏分数尺度差异巨大,像《Defender》动辄几万分,《Pong》只有正负 20 分左右。直接比绝对分,相当于拿跳高冠军跟举重冠军比谁力气大。正确做法是想办法归一化到随机和人类之间,并同时报告多个游戏的中位数,避免单点运气。

为何常见:人天生对“高分”敏感,直观上数值大就等于强,忽略了不同环境天然具有不同的分数分布与难度。

误区我的工作是机器人控制、推荐系统,又不是做游戏,Atari 基准学了没用。

正解Atari 只是一个代理任务,真正考验的是算法在像素观测、离散动作、稀疏奖励下的通用学习能力。很多在 Atari 上验证过的技巧(帧堆叠、奖励裁剪、经验回放、种子管理)都能迁移到工业场景,比如推荐系统的序列建模和机器人策略学习。

为何常见:Atari 的名字太有“游戏感”,让人误以为它只是游戏行业的专属玩具,忽略了它作为通用算法测试平台的地位。

误区训练跑到后期,得分曲线看着挺高,直接把这组数字当作论文里的“性能”上报。

正解训练过程中智能体为了探索会做随机动作,这些动作会拉低平均分。评估时必须切换到贪婪策略(每步选 Q 值最大的动作),并在固定回合内重新跑分。训练曲线反映“学习过程”,评估分数反映“真实水平”——两者必须严格分离,否则所有报告都会失真。

为何常见:训练脚本顺手记录了每局得分,研究者图省事直接复用这批日志,忽略了探索机制对分数的污染。

误区只要设了 `np.random.seed(42)` 和 `random.seed(42)`,实验就能 100% 复现。

正解种子管理的对象包括环境种子、网络初始化种子和动作采样种子。但即使全部固定,GPU 的非确定性、库版本差异、线程调度仍会造成微小偏差。正规做法是让同一个配置跑多个种子(至少 3 个),报告均值和方差,而不是把单种子结果当权威。

为何常见:复现焦虑让初学者渴望“一个种子救全部”,但实验系统的随机性来源远不止 Python 随机数生成器一个。

面试题

Q1. 新版 Gymnasium 中 env.step(action) 返回几个值?

单选题 · easy

  • A.两个值:状态和奖励
  • B.三个值:状态、奖励、标志
  • C.四个值:观测、奖励、标志、信息
  • D.五个值:观测、奖励、双标志、信息← 正确答案

答案:D。新版 Gymnasium 的 step 返回观测、奖励、终止标志(terminated)、截断标志(truncated)和附加信息共五个值。旧版 Gym 返回四个,把终止和截断合并为一个 done。选项 D 准确描述五个返回值。C 是旧版接口,B 和 A 遗漏严重,故不选。

Q2. Atari 观测预处理的常用做法是什么?

单选题 · easy

  • A.210×160 彩色转 84×84 灰度← 正确答案
  • B.256×256 彩色原图保留
  • C.128×128 灰度降采样
  • D.64×64 黑白反转升采样

答案:A。标准 Atari 预处理是先把 210×160 的 RGB 帧缩放为 84×84 的灰度图,再做帧堆叠。A 描述正确。B 保留原图会导致计算量巨大且尺寸不统一;C 的 128×128 不是标准值;D 的黑白反转会颠倒亮度语义,破坏观测含义。

Q3. 人类归一化分数 HNS = 100% 表示什么?

单选题 · mid

  • A.算法得分等于随机策略得分
  • B.算法玩家达到人类平均水平← 正确答案
  • C.算法玩家是人类的十倍强
  • D.算法在所有游戏都取得胜利

答案:B。HNS 把随机策略映射为 0%、人类平均水平映射为 100%。当 HNS = 100%,表示算法得分与人类玩家平均分相当。A 对应 0%,C 对应 1000%(且 HNS 是百分比尺度而非倍数),D 与 HNS 定义无关。

Q4. DQN 的 Q-learning 更新公式中,折扣因子 γ 的作用是什么?

单选题 · mid

  • A.控制画面输出的分辨率
  • B.衡量未来奖励的重要性← 正确答案
  • C.调节动作探索的随机性
  • D.决定游戏回合的最大时长

答案:B。γ 在公式中乘在未来最优值 $\max_{a'}Q(s',a')$ 前。γ 越接近 1,智能体越看重远期收益;越接近 0,越只关心眼前奖励。分辨率由预处理决定,探索由 ε-greedy 控制,回合时长由游戏机制决定,故 B 正确。

Q5. 在 Atari 基准训练中,哪些属于常用工程技巧?

多选题 · mid

  • A.帧跳过加快游戏推进节奏← 正确答案
  • B.奖励裁剪稳定损失尺度← 正确答案
  • C.保留全尺寸 RGB 不预处理
  • D.固定随机种子保证可复现← 正确答案

答案:ABD。帧跳过能降低交互频率、加速训练;奖励裁剪把分数压到 [-1,1] 防止梯度爆炸;固定随机种子让环境和初始化可复现,三者都是标准操作。C 错误:全尺寸 RGB 会大幅增加算力消耗,违背基准的工程实践规范。

Q6. PPO 的 clip 目标函数中,ε 的典型取值区间是多少?

单选题 · hard

  • A.0.001 至 0.01
  • B.0.1 至 0.2← 正确答案
  • C.1 至 2
  • D.10 至 20

答案:B。PPO 原论文建议 ε 取 0.1 到 0.2,表示允许新策略与旧策略的概率占比在 ±10%~20% 范围内波动。A 太保守会让更新几乎没有效果;C 和 D 过大则接近没有约束,违背 clip 设计的初衷。

Q7. 关于 Atari 基准的评估环节,哪些说法正确?

多选题 · hard

  • A.训练结束时继续用探索策略评估
  • B.评估时关闭探索使用贪婪动作← 正确答案
  • C.分游戏报告并取中位数更稳健← 正确答案
  • D.随机种子不影响实验结论

答案:BC。评估阶段必须关闭探索,否则随机动作会污染真实水平;由于各游戏难度和分数尺度差异大,分游戏报告 HNS 并取中位数能避免极端值干扰。A 错误:探索策略只用于训练。D 错误:种子选择会显著影响小规模实验的结果,需多种子平均。

Q8. Atari 中堆叠连续四帧画面的主要目的是什么?

单选题 · mid

  • A.提高单帧的分辨率大小
  • B.提供运动与速度信息← 正确答案
  • C.增加离散动作空间规模
  • D.压缩游戏的存储空间

答案:B。单帧是静态照片,无法体现物体的运动方向与速度;堆叠多帧后,网络能通过帧间像素位移推断运动特征。它不改变分辨率,也不改变动作空间,更与存储压缩无关。

Q9. "Rainbow"在强化学习中指的是什么?

单选题 · easy

  • A.一种游戏厅街机控制器
  • B.集成多项 DQN 改进的算法← 正确答案
  • C.OpenAI 发布的 Atari 环境包
  • D.Gym 内置的渲染后端

答案:B。Rainbow 是 DeepMind 提出的一种 DQN 变体,融合了 Double DQN、优先级回放、Dueling 网络、多步回报、分布 Q 学习、NoisyNet 等七项改进。它不是硬件、环境包或渲染后端,而是集大成式的强化学习算法。

Q10. 关于 Gym 环境中的观测空间与动作空间,哪些描述正确?

多选题 · hard

  • A.观测可以是像素数组形式← 正确答案
  • B.动作空间一定是连续的
  • C.动作空间可以是离散的← 正确答案
  • D.Atari 观测主要是像素画面← 正确答案

答案:ACD。Gym 支持多种观测形式,像素数组、特征向量均可;动作空间既可以是离散的(如 Atari 的 6-18 个按钮),也可以是连续的(如 MuJoCo)。B 说“一定是连续”显然错误。Atari 的经典观测就是 210×160 像素画面,故 A、C、D 正确。