想象你是一位训犬师,正在训练一只导盲犬。老办法是给它背一张“地图”:先左转、直走二十米、再右转……这条路线背得再熟,一旦遇到修路、人流、临时栅栏,狗狗就彻底迷茫。于是你换了一种思路:不教固定路线,而是教它“如何观察、如何选择、如何从后果中学习”。走对了给鸡肉干,差点撞人拉紧牵引绳。几千次试错之后,这只狗狗即使面对从未走过的街道,也能稳稳当当地把主人带回家。 强化学习导航(Reinforcement Learning Navigation)正是这套“训犬哲学”的工程化。机器人不再依赖精确的先验地图,而是通过“感知→决策→行动→奖惩”的循环,像导盲犬一样自主习得运动策略。本文沿着状态空间设计、动作空间构建、奖励函数打磨、训练算法选型、Sim-to-Real 迁移和评估部署这条完整链路,拆解如何训练出一位合格的“机器导盲犬”。

岗位关联

掌握强化学习导航,意味着你能让机器人在动态复杂场景中自主决策,而不是死板地照图行走。这是机器人学、智能仓储与自动驾驶领域最炙手可热的工程能力之一。

目录
  1. 可视化演示
  2. 导航问题:会背地图的狗,还是会上路的狗?
  3. 状态空间:导盲犬的眼睛、耳朵和鼻子
  4. 动作空间:离散口令与连续缰绳
  5. 奖励函数:鸡肉干与牵引绳的配平之道
  6. 训练算法:PPO——训犬员的“安全绳”
  7. Sim-to-Real:从训练基地到真实街道
  8. 评估部署:导盲犬的毕业考试与上岗证
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

演示强化学习驱动机器人自主导航:策略网络训练过程、奖励函数引导的避障导航、以及Sim-to-Real策略迁移效果。

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

RL导航训练过程 智能体在环境中探索,收集状态-动作-奖励样本 策略网络通过梯度下降优化累计回报 探索率ε随训练递减,从探索转向利用 J(θ) = E[Σ γᵗ rₜ] 最大化折扣累计奖励驱动策略收敛

导航问题:会背地图的狗,还是会上路的狗?

训犬师通常会遇到两种苗子:一种把训练场路线背得滚瓜烂熟,却在陌生街道上寸步难行;另一种看似笨拙,却能随时观察路况、随机应变。传统导航方案更像是前者。它让机器人先用 SLAM 构建精确地图,再用 A\* 等算法做全局路径规划、用 DWA 做局部避障。这套“背地图”的方案在地图准确、环境静态时非常可靠,可一旦遇到行人穿梭、货架变动、临时封闭这类动态场景,地图迅速过期,重规划的计算代价也随之飙升。

于是研究人员换了个思路:让机器人像第二类狗狗一样“学会”导航,而不是“背下”路线。强化学习让智能体在与环境的反复试错中,直接学习“从感知到动作”的映射策略,目标是最大化长期累积奖励。这个决策问题被形式化为马尔可夫决策过程(Markov Decision Process, MDP),它是几乎所有强化学习导航算法的理论基石。

M=⟨S,A,P,R,γ⟩\displaystyle M = \langle S, A, P, R, \gamma \rangle

1. 状态集合 S:把机器人“看到了什么”编码成状态,是决策的基础输入,状态定义得越贴切,策略上限越高。

S={s1,s2,…,sn}S = \{s_1, s_2, \ldots, s_n\}

2. 动作集合 A:机器人“能做什么”的清单,如转向、加减速,动作越丰富表达力越强,但学习难度也越大。

A={a1,a2,…,am}A = \{a_1, a_2, \ldots, a_m\}

3. 状态转移概率 P:在状态 s 下执行动作 a 后转移到新状态 s' 的概率,描述了环境“如何回应”机器人的行为。

P(s′∣s,a)P(s' \mid s, a)

4. 奖励函数 R:每次交互立即给出的分数,是训练中唯一的“主观裁判”,相当于训犬师手里的鸡肉干。

R(s,a,s′)R(s, a, s')

5. 折扣因子 γ:控制智能体目光长短的超参数,越接近 1 越看重远期收益,如同区分“眼前的零食”和“未来的大餐”。

γ∈[0,1]\gamma \in [0, 1]

训练导盲犬时,训犬师不会规定每一步怎么走,而是通过奖励与惩罚的反复反馈,让狗狗自己在成千上万次试错中总结出“该怎么观察、怎么决策”。强化学习导航把这个过程交给算法:MDP 就是那段“训练协议”,定义了环境如何反馈、目标如何衡量。有了协议,机器人才可能在没有地图的陌生街道上,学会像老练的导盲犬一样随机应变。

状态空间:导盲犬的眼睛、耳朵和鼻子

导盲犬做决策时依赖一整套感官:眼睛看红绿灯,耳朵听车流,鼻子嗅气味。机器人的“感官”则由传感器阵列构成,而状态空间设计要回答一个问题:把哪些信息组织成一组数字,喂给策略网络?这直接决定了导航能力的上限——感官不全的狗狗过不了马路,感官太多、噪音太大的狗狗同样会判断失灵。

最常见的感知配置是 2D 激光雷达加里程计、惯性测量单元(IMU)。激光雷达绕机器人一周扫描,得到 n 个方向的障碍距离;里程计和 IMU 提供当前速度与朝向。把这些信息拼接成一个向量,就得到了某一时刻的状态。

st=[d1,d2,…,dn,θt,vt]\displaystyle s_t = [d_1, d_2, \ldots, d_n, \theta_t, v_t]

1. 激光距离 d_i:第 i 个方向的测距值,相当于狗狗鼻子前方“多少米处有东西”的触觉,n 越大感知越细。

di∈[0,dmax⁡]d_i \in [0, d_{\max}]

2. 朝向误差 θ_t:机器人当前朝向往目标方向偏了多少,用来判断“我该往左还是往右转”。

θt=ψgoal−ϕt\theta_t = \psi_{\text{goal}} - \phi_t

3. 自身速度 v_t:当前线速度,避免机器人忽快忽慢或刹不住车,是“我走多快”的自我感知。

vt∈[−vmax⁡,vmax⁡]v_t \in [-v_{\max}, v_{\max}]

4. 状态归一化:把距离、角度、速度压到统一量纲,让神经网络各维度“公平发言”,加速收敛。

d^i=didmax⁡,θ^t=θtπ,v^t=vtvmax⁡\hat{d}_i = \frac{d_i}{d_{\max}}, \quad \hat{\theta}_t = \frac{\theta_t}{\pi}, \quad \hat{v}_t = \frac{v_t}{v_{\max}}

状态空间设计决定了导盲犬“带哪几样感官上路”。带少了看不见障碍,带多了噪音干扰判断。工程上常用 20 到 40 维的归一化激光特征加目标方位、自身速度组成状态向量,这既是信息量的权衡,也是算力与实时性的权衡。

动作空间:离散口令与连续缰绳

训犬师给狗狗下指令有两种方式:一种是清脆的口令——“向左转!”“停!”;另一种像握着缰绳,细腻地控制方向与步伐。机器人的动作空间就是它“被允许执行的动作集合”,决定了策略输出的形态,也决定了学习的难度。

离散动作空间通常被定义为一个有限集合,例如 {前进、左转、右转、停止}。它的优点是简单、易学、可解释,适合低速导航或对平滑度要求不高的场景;缺点是动作生硬,像只会四句口令的狗狗,走不出优雅的弧线。连续动作空间则直接输出线速度与角速度,类似方向盘加油门,控制平滑自然,但搜索空间也从“四选一”变成了无限区间,训练难度显著上升。

at=[vt,ωt],vt∈[−vmax⁡,vmax⁡], ωt∈[−ωmax⁡,ωmax⁡]\displaystyle a_t = [v_t, \omega_t], \quad v_t \in [-v_{\max}, v_{\max}],\ \omega_t \in [-\omega_{\max}, \omega_{\max}]

1. 线速度 v_t:机器人沿当前朝向移动的快慢,正值前进、负值后退,相当于油门开度。

vt∈[−vmax⁡,vmax⁡]v_t \in [-v_{\max}, v_{\max}]

2. 角速度 ω_t:机器人原地转向的快慢,正负决定左转还是右转,相当于方向盘转角。

ωt∈[−ωmax⁡,ωmax⁡]\omega_t \in [-\omega_{\max}, \omega_{\max}]

3. 动作边界约束:电机与安全限制要求指令必须被裁剪到合法区间,防止过载或失控。

clip⁡(at)=min⁡(max⁡(at,amin⁡),amax⁡)\operatorname{clip}(a_t) = \min(\max(a_t, a_{\min}), a_{\max})

4. 离散与连续的关系:离散动作可看作连续空间的稀疏采样,工程上常先用离散动作验证任务可行性,再换连续策略提升平滑度。

adiscrete={ai}i=1m,acont=[v,ω]a_{\text{discrete}} = \{a_i\}_{i=1}^{m}, \quad a_{\text{cont}} = [v, \omega]

训练导盲犬时,“口令”与“缰绳”缺一不可。动作空间设计同样是在“表达力”和“学习难度”之间做权衡——你既不会训练一只只会走直线的狗,也不会一开始就要求它跳出芭蕾舞步。对送餐机器人这类动态场景,连续动作带来的平滑绕行往往是刚需。

奖励函数:鸡肉干与牵引绳的配平之道

训犬师手里有两样工具:鸡肉干和牵引绳。给多了,狗狗学会撒娇讨零食;给少了,狗狗躺平摆烂。奖励函数就是强化学习里最考验“手感”的部分。最简单的设计是稀疏奖励:到达目标给 +10,其余时刻给 0。但它有个致命问题——在空旷地图上随机乱走几万步,也未必能碰到一次目标,探索效率极低。

于是有了奖励塑形(reward shaping):把“安全抵达”这个大目标拆解成小步引导。典型的导航奖励由三部分组成:到达奖励激励最终目标,碰撞惩罚约束安全性,进展引导鼓励每个时刻都离目标更近一点。

rt=α⋅1arrive⏟到达奖励+β⋅1collision⏟碰撞惩罚+η⋅(dt−1−dt)⏟进展引导\displaystyle r_t = \underbrace{\alpha \cdot \mathbb{1}_{\text{arrive}}}_{\text{到达奖励}} + \underbrace{\beta \cdot \mathbb{1}_{\text{collision}}}_{\text{碰撞惩罚}} + \underbrace{\eta \cdot (d_{t-1} - d_t)}_{\text{进展引导}}

1. 到达奖励 α·𝟙_arrive:最关键的“大鸡腿”,只在成功抵达目标时触发,数值通常最大,给策略指明终极方向。

1arrive={1,到达目标0,其他\mathbb{1}_{\text{arrive}} = \begin{cases} 1, & \text{到达目标} \\ 0, & \text{其他} \end{cases}

2. 碰撞惩罚 β·𝟙_collision:最直接的“牵引绳警告”,对碰撞行为给出明显负分,让机器人学会敬畏障碍物。

1collision={1,发生碰撞0,其他\mathbb{1}_{\text{collision}} = \begin{cases} 1, & \text{发生碰撞} \\ 0, & \text{其他} \end{cases}

3. 进展引导 η(d_{t-1} - d_t):比较本步与上一步到目标的距离差,距离缩短就给正分,引导机器人“步步逼近”。

η(dt−1−dt)\eta (d_{t-1} - d_t)

4. 权重配平:α、β、η 的比例决定机器人的性格,需要像调鸡尾酒一样反复实验。

α>0,β<0,η>0\alpha > 0, \quad \beta < 0, \quad \eta > 0

奖励设计的难点在于“配平”。碰撞惩罚过重,机器人会像被骂怕的狗狗一样缩在墙角不敢动;进展引导设计不当,机器人可能原地绕圈刷“接近分”,永远不真正到达——这就是著名的“奖励黑客”(reward hacking)。好的奖励函数,是让机器人发自内心地觉得“安全抵达”才是最大快感。

训练算法:PPO——训犬员的“安全绳”

有了状态、动作和奖励,还需要一套算法把“行为—后果”的因果关系固化下来。现代机器人导航最常用的策略算法之一是 PPO(Proximal Policy Optimization,近端策略优化)。它属于 Actor-Critic 家族:策略网络(Actor)负责“出招”,价值网络(Critic)负责“打分”。策略网络吃进状态向量,输出各动作的概率或连续动作值。

PPO 的精髓是“保守更新”。它比较新策略与旧策略在同一个动作上的概率比值,如果新策略变化太大,就用 clip 操作把它“剪”回来,防止一次错误的激进更新毁掉此前积累的所有经验。

LCLIP(θ)=E^t ⁣[min⁡(ρt(θ) A^t, clip⁡(ρt(θ), 1−ϵ, 1+ϵ)A^t)]\displaystyle L^{CLIP}(\theta) = \hat{\mathbb{E}}_t\!\left[\min\left(\rho_t(\theta)\,\hat{A}_t,\ \operatorname{clip}\left(\rho_t(\theta),\, 1-\epsilon,\, 1+\epsilon\right)\hat{A}_t\right)\right]

1. 概率比 ρ_t(θ):新旧策略在同一个动作上输出概率的比值,衡量“这次更新改了多少”。

ρt(θ)=πθ(at∣st)πθold(at∣st)\rho_t(\theta) = \frac{\pi_\theta(a_t \mid s_t)}{\pi_{\theta_{\text{old}}}(a_t \mid s_t)}

2. 优势函数 Â_t:该动作相对平均水平“好多少”,正值说明值得鼓励,负值说明应该回避。

A^t=Q(st,at)−V(st)\hat{A}_t = Q(s_t, a_t) - V(s_t)

3. clip 裁剪:把概率比限制在 [1-ε, 1+ε] 区间内,防止单次更新幅度过大导致策略崩坏。

clip⁡(ρt(θ), 1−ϵ, 1+ϵ)\operatorname{clip}\left(\rho_t(\theta),\, 1-\epsilon,\, 1+\epsilon\right)

4. min 保守选择:在“原目标”和“裁剪后目标”之间取较小值,保证无论优势正负,都不会被大改动带偏。

min⁡(ρt(θ)A^t, clip⁡(⋅) A^t)\min\left(\rho_t(\theta)\hat{A}_t,\ \operatorname{clip}(\cdot)\,\hat{A}_t\right)

5. 策略网络交互学习:机器人同时在多个仿真环境中并行采集经验、更新策略,循环往复直到收敛。

θ←θ+∇θLCLIP(θ)\theta \leftarrow \theta + \nabla_\theta L^{CLIP}(\theta)

训犬员的经验是:从不推翻狗狗的全部认知,而是“微调”。这次口令比上次偏了一点点,就鼓励;偏多了,就轻轻拉回。PPO 的 clip 正是这根安全绳,让策略像狗狗的技能一样,在一次又一次小步修正中越滚越熟。

Sim-to-Real:从训练基地到真实街道

让机器人在真实世界里乱撞几个月去试错,成本太高、风险太大。所以标准流程是在仿真器中大规模训练,再迁移到真机。但仿真与真实之间存在一条“鸿沟”:渲染的光影不同、物理引擎的摩擦力是近似的、真实传感器还带着噪声。在训练基地表现完美的狗狗,一到真实街道就可能被车流吓得原地僵住——这就是 Sim-to-Real 迁移挑战。

最常用的破局武器是域随机化(Domain Randomization)。它把仿真环境的各类参数——光照强度、纹理图案、摩擦系数、物体质量、传感器噪声等——全部随机化,迫使策略在“千变万化的虚拟街道”中学会提取不变的本质特征。

ξ∼p(ξ)=∏k=1Kpk(ξk),ξk∈{光照,纹理,摩擦,质量,噪声}\displaystyle \xi \sim p(\xi) = \prod_{k=1}^{K} p_k(\xi_k), \quad \xi_k \in \{\text{光照}, \text{纹理}, \text{摩擦}, \text{质量}, \text{噪声}\}

1. 扰动参数向量 ξ:把所有可随机化的环境量打包成一个向量,每次仿真像“重新装修一条街”。

ξ=[ξ1,ξ2,…,ξK]\xi = [\xi_1, \xi_2, \ldots, \xi_K]

2. 乘积分布 p(ξ):各维度独立采样,组合出指数级数量的环境配置,覆盖面极广。

p(ξ)=∏k=1Kpk(ξk)p(\xi) = \prod_{k=1}^{K} p_k(\xi_k)

3. 参数维度示例:光照亮度、地面纹理、摩擦系数、负载质量、传感器噪声等,每个维度都是一个“变化轴”。

ξk∈{光照,纹理,摩擦,质量,噪声}\xi_k \in \{\text{光照}, \text{纹理}, \text{摩擦}, \text{质量}, \text{噪声}\}

4. 训练目标:让策略在所有扰动下都能工作,相当于在所有虚拟街道上都通过考验。

min⁡θmax⁡ξL(θ,ξ)\min_{\theta} \max_{\xi} \mathcal{L}(\theta, \xi)

聪明的训犬员会在各种天气、各种人流密度下训练导盲犬,让它不依赖某一条具体的路,而是掌握“看车、绕人、沿路沿”的通用技能。域随机化之后,通常还要搭配系统辨识和真机小速度在线微调,一步步把训练基地的本领带到真实街道。

评估部署:导盲犬的毕业考试与上岗证

训练完成不等于可以上岗。导盲犬毕业前要经历严格考试,考官不会只看“到没到家”,还会观察过马路是否安全、绕路是否在合理范围内。机器人导航同样需要一套科学的评估指标体系,最基础、最核心的是导航成功率与碰撞率。

SR=NsuccessNtotal,CR=NcollisionNtotal\displaystyle SR = \frac{N_{\text{success}}}{N_{\text{total}}}, \qquad CR = \frac{N_{\text{collision}}}{N_{\text{total}}}

1. 成功次数 N_success:在测试集任务中成功到达目标的次数,是导航能力的核心体现。

Nsuccess∈{0,1,…,Ntotal}N_{\text{success}} \in \{0, 1, \ldots, N_{\text{total}}\}

2. 测试总次数 N_total:评估集的任务总数,样本越多,统计置信度越高,一般要求不少于 100 次。

Ntotal≥100N_{\text{total}} \geq 100

3. 碰撞次数 N_collision:测试途中发生碰撞的次数,是安全性的硬性底线指标。

Ncollision∈{0,1,…,Ntotal}N_{\text{collision}} \in \{0, 1, \ldots, N_{\text{total}}\}

4. 效率补充指标:平均到达时间、路径长度冗余度等共同构成完整评估矩阵,防止“绕远路也能及格”。

SPL=SR⋅Lmin⁡LactualSPL = SR \cdot \frac{L_{\min}}{L_{\text{actual}}}

除了指标,部署还离不开安全冗余:急停开关、速度限制、传感器自检,以及与 A\*、DWA 等传统规划方法的混合兜底。导盲犬再聪明,主人也始终握着牵引绳。今天,强化学习导航已在仓储物流机器人、餐厅送餐机器人和园区无人配送车等场景落地,成为机器人从实验室走向真实世界的关键一环。

AI 应用场景

仓储物流机器人:万人仓库里的“老司机”

阶段:状态空间设计、奖励函数构建、策略训练与部署

解决的问题:传统固定路线在动态仓库中频繁死锁,人工重规划效率低下

具体案例:极智嘉、快仓等厂商的搬运机器人,在仿真中叠加域随机化训练后迁移真机,实现货架变动后依然准时送达

餐厅送餐机器人:在人群中优雅穿行

阶段:状态感知、动作空间设计与奖励塑形

解决的问题:高动态场景下传统规划频繁抖动、卡死,用户体验差

具体案例:擎朗、普渡的送餐机器人采用激光雷达加连续速度指令,在传菜员与客人之间流畅穿行

园区无人配送车:从仿真考场到真实马路

阶段:Sim-to-Real 迁移与评估部署

解决的问题:室外环境变化剧烈,仿真策略直接部署真机容易翻车

具体案例:园区无人配送车综合运用域随机化、真机微调与分级测试,逐步开放运营

Python 演示

python81 行
"""Q-learning 栅格导航:让机器人从试错中学到 S -> G 的避障策略"""import random GRID = [    "S....",    ".##..",    "...#.",    "#....",    "..#.G",]H, W = len(GRID), len(GRID[0])ACTIONS = [(0, 1), (0, -1), (1, 0), (-1, 0)]  # 右 左 下 上  def find(ch):    for i in range(H):        for j in range(W):            if GRID[i][j] == ch:                return (i, j)    return None  START, GOAL = find("S"), find("G")  def is_wall(i, j):    return i < 0 or i >= H or j < 0 or j >= W or GRID[i][j] == "#"  Q = {}  # (状态, 动作) -> Q 值估计 ALPHA, GAMMA, EPS = 0.5, 0.9, 0.3  def q(state, a):    return Q.get((state, a), 0.0)  def pick(state):    if random.random() < EPS:        return random.randrange(4)    return max(range(4), key=lambda a: q(state, a))  def train(episodes=2000):    for _ in range(episodes):        state = START        steps = 0        while state != GOAL and steps < 200:            steps += 1            a = pick(state)            di, dj = ACTIONS[a]            nxt = (state[0] + di, state[1] + dj)            if is_wall(*nxt):                reward, nxt = -1.0, state            elif nxt == GOAL:                reward = 10.0            else:                reward = -0.1            target = reward + GAMMA * max(q(nxt, b) for b in range(4))            Q[(state, a)] = q(state, a) + ALPHA * (target - q(state, a))            state = nxt  def show_policy():    arrows = {(0, 1): ">", (0, -1): "<", (1, 0): "v", (-1, 0): "^"}    for i in range(H):        row = []        for j in range(W):            ch = GRID[i][j]            if ch in ("#", "G"):                row.append(ch)            else:                best = max(range(4), key=lambda a: q((i, j), a))                row.append(arrows[ACTIONS[best]])        print(" ".join(row))  if __name__ == "__main__":    train()    show_policy()
目的:用最简 Q-learning 演示强化学习导航的完整闭环——机器人通过 2000 回合试错,学习从起点到终点避开障碍的策略,最终输出每个格子的行进方向。
  1. GRID = [...]用字符画出一张 5×5 的“虚拟街道”:S 起点、G 终点、# 禁止通行,这是机器人将要上岗的环境。
  2. def pick(state):ε-贪心决策:约三成概率随机探索、七成选当前最优,对应导盲犬“没把握时就多试试”。
  3. target = reward + GAMMA * max(q(nxt, b) for b in range(4))贝尔曼更新:立即回报加上“未来最优回报的折扣”,算的是长期总账。
  4. Q[(state, a)] = q(state, a) + ALPHA * (target - q(state, a))用预测误差修正 Q 值,学得越多修得越准,越走越稳。
  5. def show_policy():把学到的策略打印成箭头地图,一眼看出机器人每个格子会往哪走。
  6. if __name__ == "__main__":可执行入口:训练 2000 回合后直接展示学习成果。

常见误区

误区传感器越多越好、维度越高越准。我把激光、相机、GPS 全塞进状态向量,导航肯定更强。

正解状态冗余会引发“维数灾难”:无关噪声淹没关键特征,训练更慢、泛化更差。要精选与任务强相关的特征——障碍距离、目标方位、自身速度——并做归一化,就像导盲犬只带最敏锐的感官上路,而不是背一麻袋杂物。

为何常见:人天然觉得“信息多总是好的”,却忽略了高维状态带来的学习代价、过拟合风险和实时计算压力。

误区我把每一步都设计成精细打分,既给距离奖励又给时间奖励还给了转向奖励,机器人肯定进步神速。

正解过于精细的奖励极易诱发“奖励黑客”——机器人找到漏洞原地绕圈刷“接近分”,却永远不真正到达。稀疏大奖励 + 适度塑形 + 合理惩罚才是稳健组合,关键在于引导信号与真实目标语义一致。

为何常见:控制欲使然,总想“手把手”教机器人每一步,恰恰抹杀了策略的泛化能力。

误区仿真训练已经达到 99% 成功率,直接部署真机吧,肯定没问题的。

正解仿真与真实存在渲染、动力学、传感器噪声三重差异,直接部署通常“翻车”。需要域随机化让策略见多识广,再用系统辨识和真机小速度在线微调,从围栏测试逐步放开。

为何常见:低估了仿真与真实的差距,把“仿真指标好”误认为“策略鲁棒”。

误区既然强化学习这么强,A\*、DWA 这些传统规划方法都可以扔进历史博物馆了。

正解强化学习擅长动态场景下的“感知→动作”映射,但可解释性差、缺少形式化安全保证。工程上普遍采用混合方案:RL 做上层决策,DWA 做底层安全避障,再加急停兜底。导盲犬再聪明,主人也始终握着牵引绳。

为何常见:技术叙事容易走极端,把新方法神化,忽略了工程落地中安全与可靠性的复杂现实。

面试题

Q1. 在强化学习导航中,“状态”最准确的含义是?

单选题 · easy

  • A.机器人此刻感知到的环境特征← 正确答案
  • B.机器人内部保存的完整地图
  • C.机器人可执行的导航动作清单
  • D.机器人获得的奖励数值统计表

答案:A。状态是智能体在某一时刻对环境的观测编码,如同导盲犬当时的“所见所闻”。它不包括内部缓存的地图,也与动作集合、奖励数值表无关——后两者分别是 MDP 中的 A 和 R 元素。

Q2. 下列哪一项属于典型的稀疏奖励设计?

单选题 · easy

  • A.只有到达终点才给予正奖励← 正确答案
  • B.每行走一步都给予负向小惩罚
  • C.只要靠近终点就给予正奖励
  • D.每存活一秒都给予微小奖励

答案:A。稀疏奖励指大部分状态得不到非零反馈,只有“到达终点”这一关键时刻触发大奖励,像导盲犬成功带主人到家才吃到大鸡腿。其余选项每一步都提供信号,属于密集奖励或塑形奖励。

Q3. 马尔可夫决策过程(MDP)的五元组是?

单选题 · easy

  • A.输入、输出、权重、偏差、激活
  • B.状态、动作、转移、奖励、折扣← 正确答案
  • C.编码、解码、特征、掩码、投影
  • D.采样、回归、分类、聚类、降维

答案:B。MDP 五元组为 S(状态)、A(动作)、P(状态转移)、R(奖励)、γ(折扣因子)。B 正确;A 是神经网络术语,C、D 与决策建模无关。记忆口诀:“看到什么、能做什么、环境怎么变、做得怎样、未来多重要。”

Q4. 状态归一化处理最主要的作用是?

单选题 · mid

  • A.减少激光雷达的硬件采购成本
  • B.增加神经网络的隐藏层数量
  • C.延长机器人单次充电的续航时间
  • D.统一各维度量纲以加速策略收敛← 正确答案

答案:D。距离(0~10 米)、角度(0~π)、速度(0~1 m/s)量纲差异巨大,直接拼接会让网络对数量级大的维度过敏感。归一化到 [0,1] 或 [-1,1] 后各维度贡献均衡,训练更快更稳,如同把狗狗的嗅觉、听觉、视觉信号校准到同一音量。

Q5. PPO 算法中 clip 操作的核心目的是?

单选题 · mid

  • A.压缩模型参数以节省计算资源
  • B.限制策略更新幅度防止策略崩坏← 正确答案
  • C.过滤传感器返回的测量噪声
  • D.降低奖励函数的计算复杂度

答案:B。clip 把新旧策略概率比限制在 [1-ε, 1+ε] 内,防止单次更新步子太大导致策略质量崩塌。它像训犬员手里的安全绳:允许狗狗进步,但不允许它突然“重新做狗”。

Q6. 奖励函数中碰撞惩罚设置过重时,机器人最可能出现?

单选题 · mid

  • A.原地不动、不敢前进的保守行为← 正确答案
  • B.学习速度加快并表现出攻击性
  • C.学会绕远路并频繁进行急转弯
  • D.奖励信号被无限放大直至溢出

答案:A。过重的碰撞惩罚让“任何前进”都带有高风险,策略为最大化回报会选择“什么都不做”,因为静止虽拿不到到达奖励,却能避免巨额惩罚。这正是“惩罚失衡”导致的过度保守,类似被骂怕的狗狗缩在墙角。

Q7. 下列哪些手段常用于 Sim-to-Real 迁移?

多选题 · hard

  • A.随机化仿真中的光照条件← 正确答案
  • B.随机化摩擦系数与物体质量← 正确答案
  • C.固定仿真环境的一切环境参数
  • D.增加传感器噪声模拟真实特性← 正确答案

答案:ABD。域随机化的核心是让仿真环境“变化足够丰富”,从而逼策略学到鲁棒特征。A、B、D 都增加了环境多样性;C 固定一切参数会让策略过拟合到特定虚拟街道,反而加剧迁移鸿沟。

Q8. 关于导航奖励塑形,下列说法正确的是?

多选题 · mid

  • A.缓解稀疏奖励带来的探索困难← 正确答案
  • B.设计不当会诱发奖励黑客行为← 正确答案
  • C.塑形项堆得越多训练就一定越快
  • D.应保证最优策略不被塑形改变← 正确答案

答案:ABD。奖励塑形给“中间进展”加分,引导机器人逐步靠近目标(A);但须满足“策略不变性”原则,否则机器人会钻空子(B、D)。无脑堆砌塑形项(C)通常适得其反,徒增奖励黑客的漏洞。

Q9. 关于连续动作空间,下列说法正确的是?

多选题 · hard

  • A.输出平滑的速度与转角指令← 正确答案
  • B.控制粒度细但学习难度更大← 正确答案
  • C.完全不需要设计任何奖励函数
  • D.训练难度与离散动作完全相同

答案:AB。连续动作直接输出 [v, ω],类似方向盘加油门,运动平滑(A);但动作空间无限大,策略搜索更难(B)。它同样依赖奖励函数(C 错),训练难度也明显高于离散动作(D 错),所以工程上常用离散动作先验证可行性。

Q10. “奖励黑客”(reward hacking)现象指的是?

单选题 · extreme

  • A.黑客入侵系统篡改奖励函数
  • B.训练师手动调高所有奖励值
  • C.智能体钻奖励漏洞刷出高分← 正确答案
  • D.传感器被注入虚假奖励信号

答案:C。奖励黑客指智能体发现奖励函数漏洞,找到“高回报但违背任务本意”的行为。例如进展引导奖励“离目标变近”时,机器人可能绕圈反复刷分而不真正到达。设计奖励时要用主任务指标约束,并监控异常行为模式。