探索与利用的平衡
在多臂老虎机问题中,设计策略时需要平衡探索(尝试更多拉杆以了解奖励分布)和利用(选择当前已知最佳拉杆以最大化奖励)。这有助于累积奖励最大化。

探索:尝试拉动更多可能的拉杆,即使不一定获得最大奖励,但能收集信息。例如,在10臂老虎机中,拉动所有拉杆以识别最优拉杆。
利用:基于当前知识选择期望奖励最高的拉杆。但由于观测有限,可能不是全局最优。例如,只拉动过3根拉杆,就一直选择其中最好的,但其余7根可能更好。
平衡思路:初期多探索,后期多利用。经典算法包括ε-贪婪、上置信界和汤普森采样。
ε-贪婪算法
ε-贪婪算法在完全贪婪(纯利用)基础上添加噪声,以概率ε随机选择拉杆(探索),以概率1-ε选择估值最高拉杆(利用)。
公式:采样概率从[0,1]中随机选择;ε随时间衰减,减少探索,但不会降至0(保持一定探索以避免局部最优)。
优势:简单有效,平衡探索与利用。
局限:ε固定时,累积懊悔线性增长;随机探索可能产生固定懊悔。
代码实现
以下是ε-贪婪算法的Python代码实现,继承自Solver类。
类定义:
python
16 lines
Copy code
Download code
Click to expand
class EpsilonGreedy(Solver):
""“ epsilon贪婪算法,继承Solver类 ”""
…
绘图函数:用于可视化累积懊悔。
python
11 lines
Copy code
Download code
Click to expand
def plot_results(solvers, solver_names):
"""生成累积懊悔随时间变化的图像。输入solvers是一个列表,列表中的每个元素是一种特定的策略。
…
实验结果
使用10臂老虎机进行实验,设置ε=0.01,运行5000步。
累积懊悔:25.526630933945313。
观察:初期探索后,累积懊悔近似线性增长(因随机探索产生固定懊悔)。不同ε值会影响结果;ε较大时探索多,懊悔增长慢但初期波动大;ε较小时利用多,但可能陷入局部最优。
建议:尝试不同ε值(如0.1、0.05),观察对累积懊悔的影响,以优化策略。