强化学习---->多臂老虎机问题

什么是多臂老虎机:

每个摇臂的获奖概率和奖励分布未知且可能不同 。玩家的目标是:在有限次的尝试中,通过逐步试验发现 哪个摇臂更好(探索),并更多地选择 当前看来最好的摇臂(利用),以最大化长期累积奖励。
它是一个无状态​ 的序列决策问题(状态是确定的)

在深入探讨如何决策前,我们需要两个衡量标准:

  1. 累计懊悔

    假设我们已知每个摇臂真实的期望奖励 Q(a),那么最优摇臂 a∗=argmaxa​Q(a)。每一次拉动非最优的摇臂 a,我们都会损失一部分潜在奖励。这个单步损失定义为懊悔

    复制代码
    Regret(t)=Q(a∗)−Q(at​)

    累计懊悔 ,就是在整个交互过程中所有单步懊悔的总和。它直观地衡量了我们的策略与"全知全能"的最优策略之间累积的性能差距 。我们的核心目标,就是设计一个策略来最小化累计懊悔的增长速度

  2. 估计期望

    现实中,我们并不知道真实的 Q(a)。我们只能通过反复尝试来估计它。最直观的估计方法是计算样本均值:

    复制代码
    Q^​t​(a)=到时间t为止,拉动摇臂a的总次数到时间t为止,拉动摇臂a获得的总奖励​

    这个值 Q^​t​(a)就是我们当前对摇臂 a好坏的"信念"或"评分"。

决策时刻:探索与利用的两难

现在,您就可以开始想象自己再次拉动杆子的情景:

您面前有五个摇臂。您已经初步尝试过几次,记录下它们的"估计期望" Q^​(a)分别为:0.9, 1.5, 0.8, 1.1, 2.0。

  • 摇臂5​ 的当前估计(2.0)最高,但您只拉过它2次,这个"高分"可能仅仅是运气。

  • 摇臂2​ 的估计(1.5)次之,您已拉过它20次,这个分数相对稳定。

现在,您会拉哪一个?

  • 如果选择摇臂5(利用) :您相信当前信息,追求当下最高的预期奖励。但如果它的真实期望其实很低,您就浪费了一次机会,并增加了懊悔

  • 如果选择摇臂2(利用) :您选择了一个表现稳定且不错的选项,但这可能让您永远无法发现摇臂5是否真的是一个隐藏的"大奖"。

  • 如果选择摇臂1、3或4(探索) :您主动获取关于这些"非最佳"选项的信息,以期在未来做出更明智的判断。但这意味着您主动放弃了这次获得高奖励(1.5或2.0)的机会。

这个简单的两难困境,就是多臂老虎机乃至所有强化学习问题的核心缩影。 ​ 每一次拉动,您都在依据不完美的知识(估计期望)进行赌博,而目标就是通过这一系列决策,在游戏结束时让累计懊悔尽可能小。

解决方案

目前已有一些比较经典的算法来解决这个问题,例如ε -贪婪算法、上置信界算法和汤普森采样算法等

贪婪算法

想象一下,你面对一排老虎机(拉杆)。完全贪婪算法的思路很直接:永远只选择当前"看起来"最赚钱的那一台。

这听起来合理,但有一个致命问题:如果因为运气好,你第一次拉某台拉杆就中了个大奖,那么按照这个算法,你就会认定它是"最佳选择",从此再也不会尝试其他拉杆。这样一来,你很可能就错过了真实回报更高的"隐藏大奖"。这就像你第一次去餐馆街,进了第一家店觉得不错,然后就再也不去其他店了------你永远无法知道后面是不是有更美味的餐厅。


ε-贪婪算法:在信赖与好奇间平衡

为了解决这个问题,我们引入一个简单却强大的改进:ε-贪婪算法

它的决策方式很像一个理智又带点好奇心的人:

  • 大部分时间(概率为 1-ε) ,你是一个"信赖经验"的人。你会选择历史平均奖励最高的那台拉杆(这就是"利用":从已知最佳选项中获利)。

  • 但偶尔(概率为 ε) ,你内心那个"好奇宝宝"会跳出来。这时,你会完全随机地选一台拉杆试试手气(这就是"探索":尝试新选项,收集新信息)。

这里的 ε​ 是一个很小的数(比如 0.1),代表你的"探索心"或"好奇心"的强度。它精巧地平衡了"利用已知最优"和"探索未知可能"。

让"探索心"随时间消退

然而,一直保持固定的探索概率(ε)并不完美。想象一下,在你已经尝试了上千次、对每台拉杆的回报了如指掌后,依然有10%的概率在胡乱随机选择,这显然是低效的。

因此,一个自然的优化是:随着尝试次数增加,让探索概率 ε 逐渐降低。

开始时,你一无所知,需要高频探索(ε 较大)。

随着经验积累,你对奖励的估计越来越准,就应该减少漫无目的的探索,更专注地利用已知的好选择(ε 逐渐减小,甚至趋于 0)。

一个常见的衰减方法是"反比例衰减":ε(t) = 1/t。这意味着,在第 t 次 选择时,你的探索概率只有 1/t。例如:

  • 第一次选择(t=1):100% 随机探索(完全摸底)。

  • 第十次选择(t=10):10% 的概率探索。

  • 第一万次选择(t=10000):仅剩 0.01% 的概率探索。

这样一来,算法就能实现早期积极摸索,后期精准利用的动态平衡,从而在长期获得最大的累积回报,同时将"因未知而错过机会"的懊悔降到最低。

上置信界算法

我们来思考一个典型场景:假设一台老虎机有两个摇臂(拉杆)。

  • 摇臂A:你只拉过1次,获得了0的奖励。

  • 摇臂B:你拉过很多次,对其平均奖励已有一个稳定的估计。

此时,你会选择拉哪一个?一个自然的想法是:**应该再试试摇臂A。**​ 因为它只被尝试过一次,我们对其奖励分布的了解非常不确定------它可能很差,但也可能蕴藏着很高的潜在回报。

这种思路揭示了一个核心原则:**一个动作的价值不仅取决于当前已知的平均奖励,还取决于其不确定性。**​ 不确定性越高,探索的价值就越大,因为一次尝试可能极大改变我们对它的认知。

为了将这一原则转化为具体策略,我们为每个动作 a引入一个不确定性度量​ U(a)。U(a)通常会随着该动作被尝试次数的增加而减小(因为我们获得了更多数据,估计变得更确定)。

上置信界算法的核心思想,就是为每个动作构造一个乐观的价值估计

复制代码
UCB(a)=Q^​(a)+c⋅U(a)

其中:

  • Q^​(a)是当前观测到的平均奖励("利用"部分)。

  • U(a)是当前的不确定性度量("探索"部分)。

  • c是一个平衡两者权重的系数。

算法在每一步都选择 UCB(a)最大的动作 。这意味着,即使某个动作当前的平均奖励 Q^​(a)不是最高,但只要其不确定性足够高,它依然可能因其"潜力"而被选中。这种方法将探索导向了"最不明确、但可能带来惊喜"的选项,从而实现了一种系统、高效的探索。

因此,上置信界算法的关键,在于如何设计一个能合理反映置信区间宽度(即不确定性)的 U(a)。一个经典的形式是 U(a)∝N(a)lnt​​,其中 t是总尝试次数,N(a)是动作 a被选择的次数。这个形式确保了尝试越少的动作,其不确定性项越大,从而更可能被探索。

汤普森采样

想象一下,你需要每天从三家你不熟悉的餐馆(A、B、C)中选择一家吃午饭,目标是长期吃到最美味的。

你的大脑是这样工作的:

  1. 建立初步印象(先验分布)

    • 起初,你对每家餐馆的口味一无所知。你内心给每家餐馆一个非常宽泛的猜测:比如"A餐馆的评分可能在1分到10分之间的任何位置"(不确定性极高)。

    • 这个"猜测范围"就是你对这家餐馆奖励的概率分布

  2. 做决定的方法(采样与选择)

    • 每天中午,你不是去计算"我认为每家餐馆的平均分是多少",然后选最高的。汤普森采样用一种更直觉的方法

    • 你让大脑为每家餐馆快速模拟一次用餐体验:根据你当前的印象,你"幻想"出一个今天的可能评分。比如:

      • A餐馆(很少去,印象模糊):幻想出一个 8分(可能运气好,撞上大厨发挥超常)。

      • B餐馆(吃过几次,一般):幻想出一个 6分

      • C餐馆(吃过很多次,稳定):幻想出一个 7分

    • 然后,你直接选择幻想中评分最高的那家。今天,你会去A餐馆。

  3. 更新印象(更新分布)

    • 你去A餐馆实际吃完后,得到真实体验,比如 7.5分

    • 于是,你更新对A餐馆的印象:"哦,原来它大概在7.5分左右,没那么神,但也不错。"你对A餐馆的"猜测范围"会变窄并聚焦在7.5分附近(不确定性降低)。

    • 下次再做"幻想"时,从A餐馆幻想出的分数,就更可能接近7.5,而不是天马行空的10分或1分了。

这个过程如何自动平衡"探索"与"利用"?

  • 探索新选项 :像最初的A餐馆,因为你不了解(分布宽),你"幻想"时,它有可能冒出一个很高的分数(比如8分)。这使你有动力去尝试它。不确定性带来了探索的机会。

  • 利用好选项 :像C餐馆,你吃过很多次,知道它稳定在7分左右(分布窄且集中在7分)。你"幻想"时,它的分数通常就在7分上下,虽然不太会爆出9分,但很可靠。当没有新餐馆"幻想"出更高分时,你就会常去C餐馆。确定性带来了稳定的利用。

总结一下汤普森采品的精髓:

它不直接问"哪家最好? "(这需要确切知道答案),而是每次决策时都问自己一个更简单的问题:"如果我现在让每家餐馆都'吹嘘'一下自己今天能多好吃,谁'吹'得最让我心动?"

然后,你就去心动的那家。吃完后,根据实际味道,调整你对它"吹牛"可信度的判断。长期下来,你会自然地在"给新餐馆吹牛机会"和"信任老牌餐馆"之间找到完美平衡,最终锁定最好的那家。

它就像一个有品位又愿意尝新的美食家,用一种内在的、基于"直觉幻想"的方式,优雅地解决了"尝试与坚守"的难题。

相关推荐
LaughingZhu3 小时前
Product Hunt 每日热榜 | 2025-12-20
人工智能·经验分享·深度学习·神经网络·产品运营
love530love3 小时前
Win11+RTX3090 亲测 · ComfyUI Hunyuan3D 全程实录 ②:nvdiffrast 源码编译实战(CUDA 13.1 零降级)
人工智能·windows·python·github·nvdiffrast
pingao1413783 小时前
从数据到预警:自动雨量监测站如何用科技解码暴雨密码
人工智能·科技
undsky_3 小时前
【n8n教程】:执行工作流——从手动测试到生产自动化
人工智能·ai·aigc·ai编程
牛客企业服务3 小时前
牛客AI面试蓝领案例:破解制造业招聘效率困局
人工智能·面试·职场和发展
oscar9993 小时前
深度学习测试题与解析
人工智能·深度学习·测试题
小oo呆3 小时前
【自然语言处理与大模型】LangChainV1.0入门指南:核心组件Models
人工智能·自然语言处理
Ama_tor3 小时前
AI-agent|从人工智能代理角度再延伸至扣子编程
人工智能
北冥有一鲲3 小时前
LangChain 框架前世今生:从“万能接口”到“AI 应用全家桶”
人工智能·chatgpt·langchain