3.3 探索与利用


3.3 探索与利用

本节摘要:探索试新动作发现更优策略;利用选当前最优拿回报。ε-greedy、Softmax(Boltzmann)、乐观初值、UCB 是常见平衡手段。Q-learning 行为策略常 ε-greedy,目标策略是 greedy。

读前必看

  1. 实现 ε-greedy 动作选择
  2. 写 Softmax 概率 P(a)∝exp(Q(s,a)/τ)
  3. 诊断「只利用不探索」导致的局部最优

冲突与症状

过度探索:随机乱走,样本浪费,收敛慢。

过度利用:永远选当前 max Q,错过更优路径——GridWorld 里困在次优出口。

ε-greedy

以概率 ε 随机动作,1-ε 选 argmax_a Q(s,a)。

def epsilon_greedy(Q, s, eps, n_actions): if random.random() < eps: return random.randint(0, n_actions - 1) return max(range(n_actions), key=lambda a: Q[s, a])
策略 公式/规则 特点
ε-greedy ε 随机,否则 greedy 简单;ε 固定
Softmax P(a)=exp(Q/τ)/Σexp(Q'/τ) τ 大→探索多
乐观初值 Q 初值很大 鼓励未访问 (s,a)
UCB 选置信上界最大臂 多臂 bandit 经典

工程调参

训练初期 ε 高(0.3–1.0),后期衰减到 0.05。Q 表未收敛就 ε→0 → 策略锁死在早期噪声。

工程调参

⚠️ 常见坑:ε 不变——后期仍大量随机,回报曲线平台。

💡 关键直觉:Off-policy Q-learning 靠行为策略探索、更新用 max Q(s',·) 学最优。

核心回顾

  • 探索 vs 利用永恒张力
  • ε-greedy 最常用
  • Softmax 用温度 τ
  • ε 衰减 schedule
  • 与 Q-learning 行为策略配套

深度扩展:ε 衰减安排与"探索陷阱"

ε-greedy 是最简单的探索策略,但参数怎么调、衰减怎么安排,是工程里最常踩坑的地方。这里给一套可操作的思路。

# 概念:ε 衰减调度(线性衰减示例) def epsilon_schedule(step, eps_start=1.0, eps_end=0.05, decay_steps=100_000): if step >= decay_steps: return eps_end progress = step / decay_steps return eps_start - progress * (eps_start - eps_end)

衰减的意义:训练初期对 Q 一无所知,几乎全靠随机探索(ε≈1);随着经验积累,Q 越来越可信,应该逐步加大"利用当前最优"的比例,最终把 ε 压到很小的值(0.05 左右)保证仍有少量探索。最典型的翻车方式是 ε 不衰减——训练后期每步仍有 30% 的概率随机乱走,智能体始终学不到精细策略,回报曲线在高位平台震荡。反过来,ε 衰减太快也会翻车:Q 还没收敛就只剩 2% 的探索,策略会被锁死在早期噪声估计上,形成"次优陷阱"。

探索陷阱的经典例子:GridWorld 里有远近两个出口,近出口奖励 +1,远出口奖励 +100。如果早期探索不足,智能体总是发现近出口就给分,Q 表把"走向近出口"估得很高;一旦 ε 快速降为 0,它就永远停在 +1 的次优解上——因为"远出口 +100"这条路没被充分探索过,Q 值一直是错的。这个例子解释了为什么 Q-learning 里"探索策略"与"目标策略"是分开的(off-policy):行为策略负责探索,目标策略贪婪,两不耽误。

Softmax(Boltzmann)的直觉:它把 Q 值按温度 τ 转成概率——τ 大时各动作概率接近均匀(更像探索),τ 小时概率集中到 Q 最大者(更像利用)。相比 ε-greedy 的"一刀切",Softmax 对"价值差"敏感:Q 差别小的动作概率接近,Q 明显更优的动作概率突出。代价是多一个要调的温度参数,且对 Q 值尺度敏感,工程上常用 ε-greedy 起步。

UCB 的适用边界:UCB 根据"平均奖励 + 不确定性上界"选臂,在多臂老虎机(bandit)里是最优策略之一;但它假设动作不改变状态(无状态转移),所以严格说只适用于 bandit 而非完整 RL。把 UCB 用在完整 MDP 上需要 UCB1 式的树搜索(如 AlphaGo 的 MCTS 思想),远超本教程范围——理解它的"置信上界"直觉即可。

动手练习:设计一份 ε 衰减计划

把一个模糊的"ε 要衰减"落实成一份可执行的计划。场景:10×10 的格子寻宝,预计训练 20 万步。请按以下要素设计:初始 ε(建议 1.0,因为对 Q 一无所知);最终 ε(建议 0.05,保留少量探索防漏最优);衰减方式(线性衰减、指数衰减、分段常数,任选一种并写明理由);衰减拐点(什么时候开始降、什么时候降到最低)。写下计划后,再设计两个验证实验:实验一,固定 ε=0.5 永不衰减,跑同样的 20 万步,预期现象是什么(Q 无法精细收敛,后期回报平台震荡)?实验二,ε 从 1.0 在前 1 万步就骤降到 0.01,预期现象是什么(Q 没学完就锁死,策略停在早期噪声上)?

最后对照三个"训练症状 → 原因"的映射自检:曲线平台不升,看 ε 是否没降;曲线剧烈抖动,看 ε 是否降太快或学习率过大;策略死板只会走一条路,看最终 ε 是否降到了 0 而不是 0.05。把这份计划和两个实验写下来,探索与利用就从概念变成了你手中可调可验的参数。做实验时记住一点:探索不是"为了随机而随机",而是"为未来的信息付费"——好的探索策略应该让每次随机都有明确的信息收益,这也是 UCB 思想存在的理由。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U