从随机到贝叶斯两类多臂老虎机探索策略的理论与实验分析

举报
柠檬🍋 发表于 2025/11/02 00:10:02 2025/11/02
【摘要】 在强化学习(Reinforcement Learning, RL)中,智能体(Agent)通过与环境的交互学习最优策略,其目标是在长期内最大化累积回报。 然而,在学习初期,Agent 面临一个根本性问题——**探索(Exploration)与利用(Exploitation)**的权衡:

从随机到贝叶斯两类多臂老虎机探索策略的理论与实验分析

一、引言:探索与利用的永恒平衡

在强化学习(Reinforcement Learning, RL)中,智能体(Agent)通过与环境的交互学习最优策略,其目标是在长期内最大化累积回报。
然而,在学习初期,Agent 面临一个根本性问题——**探索(Exploration)与利用(Exploitation)**的权衡:

  • 探索:尝试新的动作,以获取对环境更多的信息;
  • 利用:基于当前已知的经验选择最优动作,以最大化即时收益。

这一平衡问题在各类 RL 应用(如推荐系统、机器人控制、广告分发等)中至关重要。

本文将聚焦于两种经典的探索策略:

  • ε-greedy(ε-贪婪)
  • Thompson Sampling(汤普森采样)

并通过一个多臂老虎机(Multi-Armed Bandit)实验,对两者进行对比实现与性能评估。


二、探索策略概述

2.1 ε-greedy 策略

ε-greedy 是最简单、最直观的探索策略之一。其核心思想是:

以概率 ε 随机探索,以概率 1−ε 选择当前估计最优的动作。

公式化表示为:

[
a_t =
\begin{cases}
\text{random action}, & \text{with probability } \varepsilon
\arg\max_a Q(a), & \text{with probability } 1 - \varepsilon
\end{cases}
]

这种方法的优点是实现简单,缺点是探索无差别且低效,无法根据不确定性动态调整探索强度。


2.2 汤普森采样(Thompson Sampling)

汤普森采样基于贝叶斯推理(Bayesian Inference),通过维护每个动作的奖励分布不确定性,实现“概率意义下的最优探索”。

假设每个动作的奖励服从 Beta 分布,则每次选择动作时:

  1. 对每个动作 ( a_i ),从其后验分布 ( \text{Beta}(\alpha_i, \beta_i) ) 中采样一个值;
  2. 选择采样值最大的动作;
  3. 根据奖励结果更新该动作的后验参数。

这种方法能自然平衡探索与利用:高不确定性动作被采样的概率更高,从而实现“智能探索”。


三、实验设计:多臂老虎机(Multi-Armed Bandit)

为了客观对比两种策略,我们采用一个典型的 k 臂老虎机问题(k-Armed Bandit)

  • 每个臂代表一种可选动作;
  • 每个臂的奖励服从一个固定但未知的概率分布;
  • Agent 的目标是在若干轮交互中最大化累积奖励。

四、代码实战:ε-greedy 与汤普森采样的对比实现

下面的代码通过一个 10 臂老虎机环境,比较两种策略在 1000 次尝试下的表现。

💡 提示:该代码可直接运行于本地 Python 环境,无需复杂依赖,仅需 numpymatplotlib

import numpy as np
import matplotlib.pyplot as plt

# ====== 环境定义 ======
class BanditEnv:
    def __init__(self, k=10):
        self.k = k
        self.q_true = np.random.randn(k)  # 每个动作的真实期望奖励

    def step(self, action):
        reward = np.random.randn() + self.q_true[action]
        return reward

# ====== ε-greedy 策略 ======
class EpsilonGreedyAgent:
    def __init__(self, k=10, epsilon=0.1):
        self.k = k
        self.epsilon = epsilon
        self.q_est = np.zeros(k)
        self.action_count = np.zeros(k)

    def select_action(self):
        if np.random.rand() < self.epsilon:
            return np.random.randint(self.k)
        return np.argmax(self.q_est)

    def update(self, action, reward):
        self.action_count[action] += 1
        self.q_est[action] += (reward - self.q_est[action]) / self.action_count[action]

# ====== Thompson Sampling 策略 ======
class ThompsonSamplingAgent:
    def __init__(self, k=10):
        self.k = k
        self.alpha = np.ones(k)
        self.beta = np.ones(k)

    def select_action(self):
        samples = np.random.beta(self.alpha, self.beta)
        return np.argmax(samples)

    def update(self, action, reward):
        # 奖励二值化处理 (此处假设 reward > 0 为成功)
        if reward > 0:
            self.alpha[action] += 1
        else:
            self.beta[action] += 1

# ====== 实验主流程 ======
def run_experiment(agent_class, runs=2000, steps=1000, **agent_kwargs):
    rewards = np.zeros((runs, steps))
    for r in range(runs):
        env = BanditEnv()
        agent = agent_class(**agent_kwargs)
        for t in range(steps):
            action = agent.select_action()
            reward = env.step(action)
            agent.update(action, reward)
            rewards[r, t] = reward
    return rewards.mean(axis=0)

# ====== 对比运行 ======
eps_rewards = run_experiment(EpsilonGreedyAgent, epsilon=0.1)
ts_rewards = run_experiment(ThompsonSamplingAgent)

plt.figure(figsize=(8, 5))
plt.plot(eps_rewards, label='ε-greedy (ε=0.1)')
plt.plot(ts_rewards, label='Thompson Sampling')
plt.xlabel('Steps')
plt.ylabel('Average Reward')
plt.title('Exploration Strategies Comparison')
plt.legend()
plt.grid(True)
plt.show()

运行结果分析

实验结果通常表现为:

  • ε-greedy 在初期探索较多,后期趋于稳定;
  • Thompson Sampling 收敛更快,且平均奖励更高;
  • 探索效率显著优于固定 ε 的随机策略。

五、性能与适用性分析

维度 ε-greedy Thompson Sampling
探索机制 固定随机 基于不确定性
参数依赖 需人工设定 ε 自动平衡探索
收敛速度 较慢 较快
实现复杂度 简单 略高
典型应用 离线强化学习、DQN 推荐系统、在线广告投放

结论:

当环境动态变化或样本量有限时,汤普森采样往往能在较短时间内收敛到近似最优策略,尤其适合在线学习场景。


六、结论与展望

本文通过理论与实证对比了强化学习中两种核心探索策略:ε-greedy 与汤普森采样。结果表明:

  • ε-greedy 实现简洁但探索盲目;
  • 汤普森采样能动态调整探索强度,实现更高采样效率;
  • 在真实场景(如个性化推荐、广告竞价)中,Thompson Sampling 已成为主流算法之一。

未来的研究方向可进一步扩展到:

  • Contextual Bandit(上下文多臂老虎机),考虑环境状态特征;
  • UCB(Upper Confidence Bound) 策略,与 TS 的理论比较;
  • Deep RL 中结合贝叶斯神经网络实现不确定性驱动探索
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。