CodeWalk

探索与利用平衡的常见策略

作者:我是大山 · 2026-05-30 12:55

探索-利用的权衡是强化学习的核心挑战。请解释ε-greedy、UCB、Boltzmann探索(Softmax)、噪声注入、参数噪声和经验回放中的探索机制。

回答

我是大山

探索(Exploration)发现新知识,利用(Exploitation)利用已有知识最大化收益。平衡两者是RL的核心挑战。

1. ε-greedy

  • 以概率ε选择随机动作(探索),以概率1-ε选择Q值最大的动作(利用)。
  • 最简单的策略,ε通常从1.0逐渐衰减到0.01-0.1。
  • 线性/指数衰减调度。
  • 局限:对所有状态使用相同ε,探索效率低。

2. UCB(Upper Confidence Bound)

  • 选择不确定度最高的动作:a = argmax_a [Q(s,a) + c·√(ln(n)/n_a)]
    • n:总访问次数,n_a:动作a的访问次数。
  • c·√(ln(n)/n_a)是置信上界:未充分探索的动作有更大的不确定性。
  • 自动平衡探索与利用:不确定性高的动作被优先选择。

3. Boltzmann/Softmax探索

  • 根据Q值按比例随机选择动作:P(a) = exp(Q(s,a)/τ) / Σ_a' exp(Q(s,a')/τ)
  • τ(温度):
    • 高τ→均匀探索(随机)。
    • 低τ→贪心选择(确定性)。
  • 通过退火τ实现从探索到利用的过渡。

4. 噪声注入(Noise Injection)

  • 在策略网络输出上添加噪声:a = μ_θ(s) + N(0, σ²)(DDPG)。
  • 使用OU过程产生时序相关的噪声。
  • 噪声方差可学习(如SAC的策略重参数化)。

5. 参数噪声(Parameter Space Noise)

  • 在策略网络的参数上添加噪声(而非动作):θ_noisy = θ + N(0, σ²·I)。
  • 效果:产生更一致的探索行为(而非单个动作的抖动)。
  • 通常配合ε-greedy使用。

6. 经验回放中的探索(Prioritized Replay)

  • 优先采样TD误差大的经验(即模型最'意外'的经验)。
  • 隐含地鼓励模型在尚未掌握的区域更多学习。
  • 属于'利用过去的探索经验'。

7. 计数式探索(Count-based Exploration)

  • 为状态/动作对维护访问计数,频率越低,奖励加成越高。
  • 在Atari游戏中效果良好(如Pseudo-counts)。

8. 内在动机(Intrinsic Motivation)

  • 奖励=外部奖励+内在好奇奖励(如预测误差或信息增益)。
  • 让智能体主动探索'不知道'的区域(Curiosity-driven Exploration)。

实际建议

  • 连续控制:SAC/SQL的熵最大化理论上提供了最优探索。
  • 离散控制:ε-greedy简单有效。
  • 稀疏奖励环境:结合内在动机或计数探索。