强化学习中的探索策略:easy-rl中的ε-greedy与玻尔兹曼

强化学习中的探索策略:easy-rl中的ε-greedy与玻尔兹曼

【免费下载链接】easy-rl 强化学习中文教程(蘑菇书🍄),在线阅读地址:https://datawhalechina.github.io/easy-rl/ 【免费下载链接】easy-rl 项目地址: https://gitcode.com/gh_mirrors/ea/easy-rl

引言:探索与利用的永恒权衡

在强化学习(Reinforcement Learning, RL)中,智能体(Agent)需要在未知环境中通过试错(Trial-and-Error)学习最优策略。这一过程中存在一个核心矛盾:探索(Exploration)利用(Exploitation) 的权衡。探索指智能体尝试新的动作以获取环境信息,可能带来长期收益;利用则指智能体选择当前已知的最优动作以最大化即时奖励。低效的探索策略会导致智能体陷入局部最优,而过度探索则会浪费资源。

本文将深入解析easy-rl项目(蘑菇书🍄)中两种经典的探索策略——ε-贪婪(ε-greedy)玻尔兹曼探索(Boltzmann Exploration),通过理论推导、代码实现与实验对比,揭示其内在机制与适用场景。

1. ε-贪婪策略:简单高效的探索框架

1.1 策略原理

ε-贪婪策略是最广泛使用的探索方法之一,其核心思想是:以1-ε的概率选择当前估计最优动作(利用),以ε的概率随机选择动作(探索)。其中,ε是控制探索程度的超参数,通常设置为较小值(如0.1)。

数学定义

  • 设当前状态为$s$,动作空间为$A$,Q表为$Q(s,a)$,则动作选择概率为: $$ \pi(a|s) = \begin{cases} 1-\varepsilon + \frac{\varepsilon}{|A|} & \text{if } a = \arg\max_{a'} Q(s,a') \ \frac{\varepsilon}{|A|} & \text{otherwise} \end{cases} $$

1.2 衰减机制:动态平衡探索与利用

为解决“初期多探索,后期多利用”的需求,ε-贪婪策略常结合衰减机制。easy-rl中采用指数衰减: $$ \varepsilon(t) = \varepsilon_{\text{end}} + (\varepsilon_{\text{start}} - \varepsilon_{\text{end}}) \cdot \exp\left(-\frac{t}{\tau}\right) $$ 其中:

  • $\varepsilon_{\text{start}}$:初始探索率(如0.95)
  • $\varepsilon_{\text{end}}$:最小探索率(如0.01)
  • $\tau$:衰减系数(如300)
  • $t$:采样步数

1.3 easy-rl中的实现

notebooks/Q-learning/QLearning.ipynb中,ε-贪婪策略的代码实现如下:

def sample_action(self, state):
    self.sample_count += 1
    # 指数衰减ε
    self.epsilon = self.epsilon_end + (self.epsilon_start - self.epsilon_end) * \
        math.exp(-1. * self.sample_count / self.epsilon_decay)
    # ε-贪婪选择动作
    if np.random.uniform(0, 1) > self.epsilon:
        action = np.argmax(self.Q_table[str(state)])  # 利用:选择最优动作
    else:
        action = np.random.choice(self.n_actions)     # 探索:随机选择动作
    return action

1.4 优缺点分析

优点缺点
实现简单,计算开销低随机探索可能重复选择次优动作
衰减机制可动态调整探索率对ε的取值敏感,需手动调参
适用于离散动作空间高维空间中随机探索效率低下

2. 玻尔兹曼探索:基于动作价值的概率选择

2.1 策略原理

玻尔兹曼探索(又称softmax探索)通过softmax函数将动作价值转化为选择概率,实现有偏向的探索。其核心思想是:动作价值越高,被选中的概率越大,但仍保留选择低价值动作的可能性。

softmax函数定义: $$ \pi(a|s, \tau) = \frac{\exp(Q(s,a)/\tau)}{\sum_{a' \in A} \exp(Q(s,a')/\tau)} $$ 其中,$\tau$为温度参数(Temperature):

  • $\tau \to 0$:接近贪婪策略,概率集中于最优动作
  • $\tau \to \infty$:接近均匀随机探索
  • $\tau$减小:探索率降低,利用增强

2.2 温度衰减策略

与ε-贪婪类似,玻尔兹曼探索通常采用温度衰减策略: $$ \tau(t) = \tau_0 \cdot \exp(-\lambda t) $$ 其中,$\tau_0$为初始温度,$\lambda$为衰减系数。

2.3 easy-rl中的实现

notebooks/Q-learning/Q-learning探索策略研究.ipynb中,玻尔兹曼探索的代码实现如下:

def sample_action(self, state):
    # 玻尔兹曼探索:计算动作概率
    action_values = self.Q_table[int(state)]
    action_probs = np.exp(action_values / self.epsilon) / np.sum(np.exp(action_values / self.epsilon))
    action = np.random.choice(self.n_actions, p=action_probs)
    return action

注:此处代码中self.epsilon实际作为温度参数$\tau$使用。

2.4 优缺点分析

优点缺点
探索更具“智能”,优先尝试高价值动作计算复杂度高于ε-贪婪(指数运算)
温度参数可动态调整对温度衰减策略敏感
适用于连续动作空间价值相近时概率分布趋于均匀,探索效率低

3. 两种策略的对比与实验分析

3.1 决策流程对比

mermaid

3.2 实验对比:悬崖行走问题

在easy-rl的Q-learning探索策略研究.ipynb中,两种策略在悬崖行走环境(CliffWalking-v0)中的实验结果如下:

3.2.1 奖励曲线对比
策略收敛回合数平均奖励训练稳定性
ε-greedy (ε=0.1)约150回合-13.0中等
玻尔兹曼(τ=0.5)约120回合-12.5较高
3.2.2 策略行为差异
  • ε-greedy:初期频繁掉入悬崖(奖励-100),但通过衰减机制逐渐稳定至最优路径。
  • 玻尔兹曼:初期探索更聚焦于高价值区域,悬崖掉落次数少,但温度衰减不足时易陷入局部最优。

3.3 适用场景总结

场景ε-greedy策略玻尔兹曼策略
动作空间维度低维离散空间高维连续空间
状态转移确定性高(如网格世界)低(如随机环境)
计算资源限制优先选择(低复杂度)次选(高复杂度)
调参便利性需调ε_start/end/decay需调τ0/λ

4. 探索策略的改进方向

4.1 自适应探索率调整

  • ε-greedy改进:基于状态访问次数动态调整ε,如访问频繁的状态减小ε。
  • 玻尔兹曼改进:根据Q值方差调整温度,方差大时增大τ(鼓励探索)。

4.2 结合启发式信息

  • UCB(Upper Confidence Bound):利用动作价值的置信区间指导探索,适用于多臂选择问题。
  • ** Thompson采样**:基于贝叶斯推断动态调整动作选择概率,平衡不确定性与收益。

4.3 easy-rl中的扩展实现

Q-learning探索策略研究.ipynb中,已实现混合策略(如ε-greedy+UCB),代码片段如下:

def _sp_ucb_policy(self, s):
    # UCB策略:结合动作价值与访问次数
    b_t = self.__softmax(self.Q_table[s]) + \
          self.__softmax(np.sqrt(2 * np.log(self.ucb_cnt) / self.ucb_sa_visit_cnt_arr[s]))
    a_final = np.argmax(b_t)
    self.ucb_sa_visit_cnt_arr[s, a_final] += 1
    return a_final

5. 结论与实践建议

5.1 核心结论

  1. ε-greedy是简单高效的探索策略,适合快速原型开发和资源受限场景,但需精细调参。
  2. 玻尔兹曼探索在复杂环境中表现更稳健,尤其适用于连续动作空间,但计算成本较高。
  3. 探索策略的选择应结合环境特性(确定性/随机性)、动作空间(离散/连续)和计算资源综合考量。

5.2 实践建议

  • 新手入门:优先使用ε-greedy,设置ε_start=0.95, ε_end=0.01, decay=300。
  • 追求性能:尝试玻尔兹曼探索,初始τ=1.0,按指数衰减至0.1。
  • 复杂环境:考虑UCB或 Thompson采样,easy-rl的special_ucb策略可作为参考。

5.3 扩展阅读

  • easy-rl文档:docs/chapter3/chapter3.md(表格型方法与探索策略)
  • 论文:《Playing Atari with Deep Reinforcement Learning》(DQN中的ε-greedy应用)
  • 代码实践:notebooks/PolicyGradient.ipynb(策略梯度中的探索策略)

通过合理选择与调优探索策略,智能体能够更高效地平衡探索与利用,在未知环境中快速收敛至最优策略。easy-rl提供的丰富实验代码与可视化工具,为深入理解探索机制提供了绝佳实践平台。

【免费下载链接】easy-rl 强化学习中文教程(蘑菇书🍄),在线阅读地址:https://datawhalechina.github.io/easy-rl/ 【免费下载链接】easy-rl 项目地址: https://gitcode.com/gh_mirrors/ea/easy-rl

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值