一、碧澜港的醉月宴

碧澜港有九家酒坊,各家酿法不同,谁也摸不准哪一家的欢愉最得人心。

每年渔汛散去、商船归港的时节,港里要办一连七七四十九夜的"醉月宴"。宴上最要紧的一桩事,由年轻的守宴人阿砚掌管:每入夜,他得从九家酒坊里只挑一家,作为当夜大堂正中那瓮"今夜之选"。

挑哪一家,全港人的舌头当晚就只认这一家。宾客饮过,由评宴官在玉牌上记一个"欢愉度",从零到一百,越乐呵分越高。

"这有何难,"阿砚头一夜想,"头一夜闭眼抓阄便是。"

头七夜,他真就轮着来,一家一瓮。可第七夜散宴,老酿师杞翁捻着胡须摇头:"你这七夜,三家酿得平平,两家还惹了宾客皱眉,白白糟蹋了七个好夜。"

阿砚讪讪:"我不试,怎知哪家好?"

"试,是要试,"杞翁笑,"可你总得想清楚——往后的四十几夜,每一夜都只能供一家,你是要守着已尝过的甜,还是去碰没准更好的?"

二、评酿翁老杞的账册

第九夜,阿砚把前八夜的玉牌摊在杞翁面前,请他指条明路。

杞翁不急着说哪家好,只取一册空账,在九页上各写一家酒坊的名号,又添两栏:"被选几次"、"平均欢愉"。

"你瞧,"他点着账册,"醉仙居被挑过三回,平均分七十二;满堂红也被挑过三回,平均分八十九。若只按这账面,明夜该供满堂红。"

阿砚点头:"那便供满堂红。"

"且慢,"杞翁按住他的手,"满堂红那三回,头一回恰逢宾客都是好酒的汉子,分给得高;醉仙居那三回,有一回正赶上一船人晕船,谁也喝不进甜。你敢说,账面的高低,就是九家的真本事?"

阿砚一愣。他忽然懂了杞翁的意思:账面上的平均分,是试出来的,试得少的那几家,分数里掺着运气,当不得真。

"那怎么办?"阿砚问,"总不能四十几夜都拿不准。"

杞翁提笔,在账册每一页的"平均欢愉"旁,又添了一栏,名唤"偏账"。

三、乐观的偏账

"我教你我年轻时学来的一招,"杞翁说,"每夜供酒前,你给每家都算一笔'总评':总评 = 平均欢愉 + 偏账。"

他指着"偏账"那栏:"这一栏,专给试得少的酒坊长脸。一家若只被挑过一两回,偏账就大,总评便被抬上去;挑得越多,偏账越小,渐渐就剩个实在的平均分。"

阿砚皱眉:"那岂不是总在偏袒没试过的?"

"不是偏袒,是给它们一个证明自己的机会,"杞翁正色,"一家只试过一回,你不知它是真好还是碰巧;一家试过三十回还平平,那平平便是它的真面目。偏账要做的,就是让那些'还没说清自己本领'的坊,也能被请上大堂几回。"

"那偏账该有多大?"

杞翁笑而不答,只把笔尖在"总评"栏的算式上点了点:"你只记着——偏账的大小,要看两件事:一是这坊自己被挑过几回,回数越少,偏得越多;二是四十九夜已经过去了几夜,夜越深,你越舍不得把好夜浪费在没底的事上,偏账便收得越紧。"

阿砚似懂非懂,却照着做了。

四、两家酒坊的真相

第十夜起,阿砚依着"总评"挑酒。头几夜,连他自己都意外:分明满堂红账面最高,他倒连着把醉仙居、晚晴庐几家少人问津的坊请了上来。

第二十夜,怪事显了。

醉仙居被多请了几回后,平均分竟从七十二一路爬到九十四——原来它头三回是真撞了霉运,底子却是九家里的头一份。偏账早早把它从冷板凳上扶了正。

而满堂红,随着被选次数累加,那点运气被摊薄,平均分从八十九慢慢落回七十六。它本就不差,却也并非账面那般风光。

第四十九夜散宴,阿砚翻着写满的账册,长舒一口气。九家里孰高孰低,此刻清清楚楚:醉仙居居首,晚晴庐次之,满堂红排在中间,最末一家自始至终没翻过身。

"你可知你赢在哪?"杞翁问。

阿砚想了想:"我没死守着一开始看着最好的,也没胡乱每家都匀。偏账替我把'没试够'和'试够了'分了家。"

杞翁颔首:"宁可先给未知一个机会,也别把最好的那一瓮,永远埋在没试透的运气里。"

技术解读

多臂老虎机(Multi-Armed Bandit, MAB)是强化学习中最基础又最经典的序贯决策问题:面前有 K 台"老虎机"(臂),每台吐钱的概率分布固定但未知;玩家每一轮只能拉一台的拉杆,只能观测到这一台的奖励。目标是在总共 T 轮内,让"本可拿到的最大累计奖励"与"实际拿到奖励"之差(即 regret,遗憾)尽可能小。

核心矛盾即"探索 vs 利用"(Exploration vs Exploitation):一直拉当前看起来最好的臂(贪心利用),可能永远错过一台均值更高却早期运气差的臂;均匀轮流试探所有臂(盲目探索),又会把大量轮次浪费在明显糟糕的臂上。

UCB(Upper Confidence Bound,置信上界)由 Auer、Cesa-Bianchi 与 Fischer 在 2002 年的论文 "Finite-time Analysis of the Multiarmed Bandit Problem" 中提出,给出了一个优雅的折中:对每台臂 i,维护其被拉动次数 n_i 与经验平均奖励 \hat{μ}_i,每轮选择

a_t = argmax_i [ \hat{μ}_i + c · √( ln t / n_i ) ]

其中 t 为当前轮次,c 为可调系数。第二项就是故事里的"偏账"——它随样本 n_i 增大而衰减,随总轮次 t 缓慢增长,保证每台臂都被探索足够多次,且探索的"慷慨程度"随时间收敛。Auer 等人证明,UCB 的累计遗憾上界为 O(√KT·ln T),在理论上达到最优量级。

另一类主流做法是汤普森采样(Thompson Sampling,1933 年提出、2010 年代被重新证明最优),即根据每台臂"是好臂"的后验概率随机抽选——对应故事中杞翁对手"按胜场比例抽签"的筒子。

核心概念回顾

概念 通俗解释
多臂老虎机(MAB) 每轮只能选一个未知收益的选项,目标是总收益最大化
探索(Exploration) 去试那些还不了解的选项,以收集信息
利用(Exploitation) 选当前看起来最好的选项,以获取已知收益
遗憾(Regret) 本可拿到的最优累计收益与实际收益之差
经验平均 \hat{μ}_i 某臂被拉动后,按已观测奖励算出的平均值
置信上界 UCB 在平均值上叠加一项"乐观不确定性",选最大者
偏账项 √(ln t / n_i) UCB 的探索激励:试得越少越大,随时间收紧
汤普森采样 按各臂"为好臂"的后验概率随机抽选
贪心策略 每轮只选当前平均最高者,易陷入利用陷阱
最优臂 真实期望奖励最高的那台臂,是探索最终要找的目标

故事中的隐喻对照

故事元素 映射的技术概念 解释
碧澜港的醉月宴(连办四十九夜) 多臂老虎机序贯决策过程 每一夜是一步决策,共 T 步
守宴人每夜只挑一家酒坊 每轮从 K 个臂中选一个 单步只能获得被选臂的反馈
宾客欢愉度(0–100) 奖励 reward 选中的臂吐出的收益
九家酒坊各自的隐藏真实平均欢愉 各臂的真实期望回报 μ_i 固定但未知的均值
某坊某夜恰逢霉运/好运(分数波动) 奖励的随机性/方差 同臂每轮奖励围绕均值波动
九家酒坊 K 个臂 候选选项集合
始终只供账面最佳(如早期满堂红) 贪心利用策略 只看当前均值,错失更优臂
头七夜轮着抓阄 均匀随机探索 不偏袒但浪费轮次
杞翁的账册(被选次数 + 平均分) 维护每臂的样本计数 n_i 与经验均值 \hat{μ}_i 在线估计算法状态
"偏账"栏 UCB 的不确定性激励项 c·√(ln t / n_i) 试得越少、总夜越深,偏账越讲究
总评 = 平均分 + 偏账,取最大 UCB 选择规则 argmax(\hat{μ} + bonus) 乐观面对不确定性
醉仙居早期霉运却最终居首 最优臂被早期坏样本低估,靠探索激励翻盘 optimism in the face of uncertainty
满堂红早期好运后回落 早期幸运样本被大数定律纠偏 经验均值随 n 增大收敛到真值
对手"按胜场比例抽签"的筒子 汤普森采样 / 贝叶斯抽样 按后验概率随机选臂
守宴人阿砚 决策智能体 / 学习算法 在信息不完全下做序贯选择

为什么这个故事对应多臂老虎机与 UCB?

  1. 因为每夜只能挑一家,未被选的八家当晚欢愉全无记录,所以只能观测到被选中酒坊的质量 → 类比 MAB 每轮仅获得被拉臂的奖励,信息天然不完整,这正是它与"全信息反馈"问题的根本区别。
  2. 因为账册只记"被选过的坊",从未被请上大堂的坊没有平均分 → 类比未被拉动的臂无任何样本,必须用"偏账/乐观初始化"去补偿信息缺失,否则永远不被尝试。
  3. 因为偏账随被选次数 n_i 增大而衰减(√(ln t / n_i) 中 n_i 在分母),所以试得越多的坊,探索激励越小 → 类比 UCB 的不确定性项随样本增多收敛,估计变准后不再需要额外激励去探索。
  4. 因为满堂红早期好运被高估,而 UCB 用"经验均值 + 置信上界"而非瞬时分数,且大 n 下偏账消失,使其回归真实排名 → 类比 UCB 以经验均值为下界、置信项为上界,天然抵抗早期幸运样本的误导。
  5. 因为醉仙居早期霉运但真实最佳,偏账保证它获得足够尝试次数才肯下结论 → 类比 UCB 的"面对不确定性保持乐观"原则,确保最优臂以高概率被识别而非被过早淘汰。
  6. 因为总夜数 t 出现在 ln t 中,夜越深探索越"吝啬"却仍在必要处探索 → 类比 UCB 的遗憾上界 O(√KT·ln T),理论上累计遗憾随时间有界增长,不会无限膨胀。

后记:多臂老虎机是机器学习里少有的、能把"好奇心"写成一道精确公式的问题。杞翁的偏账栏,本质上是在替算法存一份谦卑——它承认自己看走眼过,所以愿意再给未知一次机会。现实中的推荐系统、临床试验分组、广告投放,背后都站着这位碧澜港的守宴人:在"已知的甜"与"未知的可能是更甜"之间,用一笔乐观的偏账,温柔地平衡着每一次抉择。