跳到主要内容

环境里有别人 — 三种均衡与一个多智能体平台

这一章讲三件事: 为什么多了一个会学的对手,「最优」这个词就用不了了; 换上来的那个词(均衡)有哪三种,以及它们在同一张表上各给出什么结果; 以及怎么把「合作」「竞争」这类形容词,变成一台机器能验算的条件。

它在全书链条里的位置:第 11 章那八个障碍的第四味药。 第 11 章第 8 节说过:智能的上限由环境决定,而对手本身就构成了会变的环境。 这一章不给算法,它给的是一套新的评判标准 —— 前面十五章所有算法都在最大化某个东西,而这一章说:有对手时,「最大」不存在。

顶层全景:一张两人收益表,六个结论

这一章从头到尾用同一张表:书里那个「胆小鬼博弈」。

两个人开车对撞,各自选「怯懦」(打方向躲开)或者「勇敢」(直冲)。
★ 这张表里的四组数全部是书里给的真数。★[^1]

对方选怯懦 对方选勇敢
我选怯懦 我 5, 他 5 我 3, 他 6
我选勇敢 我 6, 他 3 我 0, 他 0

★ 一句话读懂这张表:两个都躲,各得 5(还行);一个躲一个冲,冲的拿 6、躲的拿 3;
两个都冲 —— 撞了,各得 0(最惨)。★

这一章要在同一张表上得出六个结论:

① 纯策略的纳什均衡有两个 §3 → (我冲他躲) 与 (我躲他冲)
② 混合策略的纳什均衡 §4 → 各以 **0.75** 的机会选怯懦,期望效用各 **4.5**
③ ★ 所有纳什均衡的总效用都是 9 ★ §4 → 6+3 = 9 · 3+6 = 9 · 4.5+4.5 = 9;
而两个都怯懦的 5+5 = 10 更高,但它不是均衡(§3 逐格验算)
④ 换成按外部信号协调 §5 → 总效用 **9.3333** ★ 比 9 高 ★
⑤ 没人想偏离,逐条验算 §5 → 照做得 4,私自改只有 3
⑥ 改成一先一后 §6 → ★ 先动的那个直接拿到 6 ★

图说:这就是本章的主走查。同一张表,六个结论,全部是书里给的数。

1. 为什么「最优」这个词失效了

这一节回答:多一个会学的家伙,到底改变了什么。

先看现象

前十五章的所有算法,做的事都可以概括成一句:找一个策略,让某个东西最大。

现在加一个人进来。

★ 我该选怯懦还是勇敢?★

如果他选怯懦 → 我该选勇敢(6 比 5 高)
如果他选勇敢 → 我该选怯懦(3 比 0 高)

★ 我的最优,取决于他选什么。★
★ 而他的最优,同样取决于我选什么。★
★ 于是「最优策略」这个词,在这里指不到任何一个具体的东西。★

于是换一个词

书里说得很直接:因为每个智能体的收益和所有智能体的决策动作都相关, 所以我们希望的是「所有智能体最终都能有稳定的决策策略」—— 在那个状态下,每一个智能体都不能通过只改变自身的策略而使自己获得更高的收益1

★ 这就是「均衡」这个词的定义,而它比「最优」弱得多:★ 「最优」说的是「没有更好的了」;「均衡」只说「你一个人改,不会更好」。

书里在开头就点明:根据每个智能体的优化问题,「均衡的概念被提出并用于规范多智能体的分布式动作」2

三个基本元素

书里给这一章立了三个元素3:

元素书里的说法
智能体一群有自主决策意识的个体,各自独立地和环境交互;数目为 1 时就退回普通强化学习
策略每个智能体自己制定,而它「会被其他智能体的策略影响」
★ 效用函数 ★「智能体在实现各种目标时获得的总收益和总成本之差」4

★ 「效用」和「奖励」不是一回事,这一点要分清:★ 奖励是环境每一步给的分;效用是「把所有账算完之后,这件事对我值多少」—— 它已经把成本减掉了。这一章通篇用效用说话。

2. 见面几次,决定了你敢不敢骗人

这一节讲三种博弈框架,而它们的差别只有一个:重复不重复。

书里列了三种5:

框架长什么样★ 关键后果 ★
静态博弈所有人同时决策,而且每人只决策一次★ 因为只行动一次,可以骗 ★
重复博弈同一个局面下反复决策多次★ 骗了会被报复 ★
随机博弈多个局面、多次决策 —— 书里说它可以看作一个马尔可夫过程最一般的情况

书里对前两种的对照写得非常好:

★ 静态博弈:「由于每个智能体只行动一次,所以其可以做出一些出乎常规的
欺骗和背叛策略来使自己在博弈中获益。」★[^6]
→ 所以每个人在制定策略时,都得先防着别人骗。

★ 重复博弈:「当某个智能体在某一次动作时采取了欺骗或背叛的决策时,
在未来的动作中,该智能体可能会收到其他智能体的惩罚和报复。」★[^6]
→ 书里的结论:重复博弈「大大地避免了多智能体之间恶意的动作决策,
从而整体上提高了所有智能体总效益价值之和」。[^6]

★ 一句话:只见一次面可以骗,反复见面会被报复 —— 而后者对所有人都更好。★

★ 这一章下面全部用静态博弈(那张表只玩一次)—— 因为它是最难的那种。★

3. 第一种均衡:谁单方面改都不会更好

这一节走主走查的第一个结论。

定义

书里给的定义,拆开看只有一句话6:

★ 在其他人的策略都不变的前提下,每个人都不能通过只改自己的策略而拿到更高的效用。★ 满足这个条件的那一组策略,叫纳什均衡。

在那张表上验一遍

★ 逐格验算(全部照书里的推理):★

① 两个都选怯懦(各得 5)
我单方面改成勇敢 → 我从 5 变成 6 ★ 变好了 ★ → 不是均衡[^8]

② 两个都选勇敢(各得 0)
我单方面改成怯懦 → 我从 0 变成 3 ★ 变好了 ★ → 不是均衡[^8]

③ ★ 我怯懦、他勇敢(我 3、他 6)★
我单方面改成勇敢 → 我从 3 变成 0 ★ 更差 ★
他单方面改成怯懦 → 他从 6 变成 5 ★ 更差 ★
→ ★ 两个人都不想动 = 纳什均衡 ★[^8]

④ 我勇敢、他怯懦 —— 对称,同样是纳什均衡

★ 结论一:这张表上有两个纯策略的纳什均衡,而且都不是「大家都舒服」的那一格。★
书里的原话:「在胆小鬼博弈的例子中存在两个纯策略纳什均衡,
其中一个智能体选择怯懦动作,另一个智能体选择勇敢动作。」[^9]

★ 注意 ③ 那个结果有多别扭:两个人都不想动,但其中一个只拿 3、另一个拿 6。★ 「均衡」不保证公平,也不保证好 —— 它只保证「没人想单方面动」。

一个很重要的限定

书里当场加了一句:一般来说,纯策略的纳什均衡不一定存在7

★ 也就是说:上面那种「每人认死一个动作」的均衡,在很多博弈里根本找不到。★ (石头剪刀布就是:任何一组固定的出法,对手都能针对性地赢你。)

4. 第二种写法:不认死一个动作,而是掷骰子

这一节走主走查的第二、三个结论,并给出这一章最漂亮的一处推理。

为什么要掷骰子

书里说:每个智能体还可以「根据策略基于不同的概率随机选择不同的决策动作」; 这样带来随机性和不确定性,可以达到混合策略的纳什均衡8

★ 而书里给了一个很硬的保证:「一般来说,混合策略纳什均衡总是存在。」★8

★ 对照上一节那句「纯策略的不一定存在」—— 这就是为什么混合策略是这一行的默认工具。★

那个概率怎么解出来:一条很反直觉的原则

先看现象:我该以多大的机会选怯懦?

你可能以为要算「哪个动作对我更有利」。★ 不是。★

书里给的条件是:我的策略要「没有使其对手的动作有偏见」9 —— 也就是让对手选哪个都一样,他就没有理由偏向任何一边。

★ 设我选怯懦的机会是 p(那么选勇敢就是 1 − p)。★
站在对手的角度算他两个选择各值多少:

他选怯懦: 我怯懦时他得 5、我勇敢时他得 3 → 期望 = 5p + 3(1 − p)
他选勇敢: 我怯懦时他得 6、我勇敢时他得 0 → 期望 = 6p + 0(1 − p)

★ 让这两个相等(这样他选哪个都无所谓):★
5p + 3(1 − p) = 6p
5p + 3 − 3p = 6p
3 = 4p
★ p = 0.75 ★[^12]

书里给的正是这个式子和这个解。

所以:双方各以 0.75 的机会选怯懦、0.25 的机会选勇敢。 书里给了结果:这时每个智能体的期望效用是 4.510

第三个结论:所有纳什均衡的总效用都是 9

纯策略均衡 ③: 3 + 6 = 9
纯策略均衡 ④: 6 + 3 = 9
混合策略均衡: 4.5 + 4.5 = 9

★ 书里的原话:「对于所有纳什均衡的结果,两个智能体效用函数之和相同,等于 9。」★[^14]

★ 而这张表能达到的最大总效用是多少?两个都怯懦:5 + 5 = 10。★

★ 所以:纳什均衡把总效用锁死在 9,而桌上明明有 10。★
书里明说了这一点:9「小于所有两个智能体总效益之和的最大可能值 10」。[^15]

★ 这就是下一节存在的全部理由。★

5. 第三种均衡:找一个外人来发信号

这一节走主走查的第四、五个结论,而这是这一章最值钱的一段。

那 1 分为什么拿不到

书里指出了症结:两个人都选怯懦确实能到 10, 但「在绝对分布式的方式下是不稳定的」11 —— ★ 因为只要有一个人偷偷改成勇敢,他就从 5 变成 6。★

问题不在于大家不想合作,而在于没有任何机制拦住那次背叛。

做法:让一个外部信号来协调

书里的做法:让四种组合按一个约定好的机会出现,而这个机会是双方共同知道的12

★ 约定:三种组合各三分之一,「两个都勇敢」永不出现。★[^16]

(我怯 他怯) 三分之一 → 5 + 5 = 10
(我怯 他勇) 三分之一 → 3 + 6 = 9
(我勇 他怯) 三分之一 → 6 + 3 = 9
(我勇 他勇) ★ 0 ★ → 撞车这一格被划掉了

总效用的期望 = (10 + 9 + 9) / 3 = 28 / 3 = **9.3333**

★ 书里给的正是 9.3333,「比纳什均衡的结果要高」。★[^16]

这种均衡书里叫关联性均衡13「关联」两个字的意思是:两个人的选择不再各自独立,而是被一个共同的信号挂在一起。

凭什么没人想偏离:书里逐条验算了

★ 这一段是全章推理最漂亮的地方,值得完整走一遍。★

★ 情况一:信号通知我「选怯懦」。★

我怎么推断对方?按那个约定,「我怯」对应两格((我怯 他怯) 和 (我怯 他勇)),
各占三分之一 —— ★ 所以对方选怯懦和勇敢的机会各是 0.5。★[^18]

我老实照做(选怯懦): 0.5 × 5 + 0.5 × 3 = **4**
我私自改成勇敢: 0.5 × 6 + 0.5 × 0 = **3** ★ 反而更低 ★

书里的原话:私自改的效益价值是 3,「低于选择『C』情况下的效益价值 4」。[^18]

★ 情况二:信号通知我「选勇敢」。★

按约定,「我勇」只对应一格((我勇 他怯)) —— ★ 所以对方一定选怯懦。★[^19]
我老实照做: 拿 **6** ← 这已经是全表最高
我私自改成怯懦: 拿 **5** ★ 更低 ★

★ 两种情况下都不划算改 —— 这就是「关联性均衡」成立的全部验算。★

判断(我们的,不是书里的): 这一节值钱的地方不在那 0.3333 分,而在于它揭示了 「多出来的效用是从哪里买来的」—— 买它的钱是一个大家都信的外部信号★ 现实里这个信号可以是红绿灯、可以是合同、可以是一个调度中心。★ 也就是说:如果你的多智能体系统总效用上不去,除了改算法,还有一条路是加一个协调器如果错,会错在: 这个信号必须被所有人观察到、而且所有人都相信别人也在照它走。 判据是:有没有一个所有参与方都无法私自伪造、也无法忽略的公共信号。

6. 第三种均衡:谁先动

这一节走主走查的第六个结论,而它只改了一个设定。

改法

书里说:除了同时决策,智能体之间还可能顺序决策 —— 先动的叫领导者、后动的叫追随者14

★ 而领导者有「先发优势」:他「可以通过预测追随者对其决策的反应 来决定能够给自身带来最大收益的最佳决策」14

在那张表上

★ 我先动,他后动。我该选什么?★

我先在心里替他算一遍:

我选勇敢 → 他面对「对方已经勇敢」这个既成事实
他选怯懦得 3、选勇敢得 0 → ★ 他一定选怯懦 ★
→ 我拿 **6** ← 全表最高

我选怯懦 → 他选勇敢得 6、选怯懦得 5 → 他一定选勇敢
→ 我只拿 **3**

★ 所以我选勇敢,直接拿到 6。★
书里的原话:智能体 1 会选择勇敢,因为它可以预测到对方一定会选怯懦,
「从而使自己的效用价值为所有可能结果中的最大值 6」。[^21]

这种情况下达到的均衡,书里叫斯塔克尔伯格均衡。[^21]

★ 把三种均衡放在一起看,同一张表:★

设定结果我拿多少
同时决策,各自为战纳什均衡(两个纯的 + 一个混合的)3、6 或 4.5
同时决策,有公共信号关联性均衡总效用 9.3333
★ 我先动 ★斯塔克尔伯格均衡★ 6 ★

★ 一句话:同一张收益表,规则一改,答案就换。★ 这就是为什么这一章讲的是「怎么评判」,而不是「怎么算」。

7. 一张图把三种均衡收起来

这一节讲书里 11.4 节那个架构,而它同时是从上半章过渡到下半章的桥。

那张图

书里把前面三种均衡收成了一个统一的架构15:

★ 同一个时刻,把所有智能体分成若干层级:★

第 1 层(最高) ┌─ 智能体 A ─┬─ 智能体 B ─┐ ← 先动
│ │
▼ 低层看得见高层做了什么 ▼
第 2 层 ┌─ 智能体 C ─┬─ 智能体 D ─┐ ← 后动
│ │
第 3 层 ……

★ 层与层之间:求斯塔克尔伯格均衡(因为有先后)。★
★ 同一层内部:如果彼此能收到共同信号,求关联性均衡;
收不到,就求纳什均衡。★[^22]

书里的原话:「在不同层级之间,所有智能体期望达到斯塔克尔伯格均衡,
如果多个智能体存在相同层级中,根据这些智能体可否相关联,
期望能够达到纳什均衡或者关联性均衡的结果。」[^22]

而这一切在时间上是循环的:书里说这是「一个循环迭代的场景」,
所有智能体在不同时间段中多次做出决策。[^22]

书里给的定位很大:这个架构「一般可以用来建模并处理所有多智能体强化学习的问题」16

但它落不了地,除非有平台

★ 这张图一旦要落到几十个智能体上,立刻冒出一个工程问题:★ 谁跟谁是同一层?谁和谁是一队?这些关系怎么在代码里表达出来?

书里对这个问题的回答,在整整六章之外的第 17 章 —— 而那正是本章下半段。

8. 算法这一层:两条路,而第二条是今天的标准做法

这一节讲书里给的两个具体算法,它们是上面那套理论和真代码之间的桥。

第一条路:每个人都建模所有人

书里介绍的第一个做法是把 Q-Learning 扩展到多智能体17每个智能体维护一张表。而查这张表要用的索引(就是「按什么去定位表里的一格」), 不只是「我做什么」,还包括「别人做什么」。

★ 而它的代价书里写得很清楚:★

由于表的更新和其他智能体的策略相关,「智能体 i 需要同时建立并估计所有其他智能体的 Q 列表」。18

★ 这句话的代价有多大:★

2 个智能体、每人 5 个动作 → 一张表要记 5 × 5 = 25 格
5 个智能体、每人 5 个动作 → 5 的 5 次方 = 3125 格
10 个智能体 → ★ 约一千万格 ★

★ 而且每个智能体都要维护这么一整套 —— 关于所有其他人的。★
(这个换算是我们做的,用来说明量级;「要建模所有其他智能体」是书里的。)

第二条路:训练时集中,执行时分散

书里介绍的第二个做法基于第 10 章那个 DDPG,叫 MADDPG19它的安排只有两句话,但这两句是今天多智能体领域的标准做法:

★ 每个智能体对应一个分布式的演员,为它自己的决策提供建议; 而批判者是集中控制的,整体维护一个和所有智能体动作集合相关的表。★19

★ 为什么这么摆能成立:★

训练时: 批判者看得见所有人做了什么 → 它能算准「这一步到底好不好」
★ 那个「对手也在变」的问题被消掉了 ★

执行时: ★ 批判者根本不上场 ★ ——
第 20 章第 6 节那条会说:价值网络只在训练时用。
每个智能体只带着自己的演员出门,而演员只看自己的观察。

★ 所以:训练时享受「上帝视角」的准确,执行时不需要任何通信。★
(这段因果是我们的解释;两个网络怎么摆是书里的。)

9. 下半章:把「合作」和「竞争」变成可验算的条件

这一节开始讲原书第 17 章,而它做的是把上半章那些形容词工程化。

先看现象:形容词没法写进代码

「这两个智能体是合作关系」——这句话在代码里长什么样?

书里给的答案很硬:合作与竞争不是描述,是对奖励函数的一组约束。

书里把它们分成五类20,而每一类都是一个能验算的条件:

条件说的是什么一句话
① 不可学习任何人改自己的策略,都改变不了自己的回报21★ 白学 ★
② 独立我的回报和别人的策略无关22各干各的
③ 竞争★ 所有人的回报之和,不随任何人的策略改变 ★23蛋糕就那么大
④ 合作任意两人之间没有利益冲突,而且至少有一对是同增同减的24一荣俱荣
⑤ 混合以上四类之外的全部25真实世界大多在这里

三条值得单独记的注

★ 关于 ③ 竞争:书里说,如果片段长度为 1,它「表示典型的多玩家零和游戏」。★[^30]
书里举的例子是石头剪刀布。[^30]
→ 也就是说:零和博弈只是竞争类的一个特例(片段只有一步的那个)。

★ 关于 ② 独立:书里说这一类里的奖励函数,在其他文献中「通常被称为内部奖励函数」。★[^29]
书里给的理由很实在:群体层面的奖励(比如输赢)「可能很稀疏而难以学习」,
而这些内部奖励「可以更频繁地获取,即更加密集」。[^29]
→ ★ 这就是第 11 章第 3 节那个稀疏奖励问题,在多智能体场景下的解法。★
书里说,平台在这一类里现成提供了:能量损耗、施加较大力的惩罚、
保持稳定速度的激励、朝向目标的移动距离等。[^29]

★ 关于验算:书里说平台「对每个类别提供了一个验证选项」——
你自己写一个奖励函数,可以用它来确认这个函数真的落在你以为的那一类里。★[^33]
→ 这一条把「合作」从形容词变成了可检查的属性。

10. 社交树:在哪一层挂什么,就定义了那一层的关系

这一节走另起的一处走查(本章共两处),把三层关系一次讲透。

那个平台是什么

书里介绍的平台叫 Arena,它是「一个在 Unity 上对多体智能学习进行评估的通用平台」26书里给了它的定位和一个对照:它注重第一人称或第三人称的动作类 3D 游戏, 而另一个知名的开源项目则「专注于多智能体棋牌类游戏」26

核心概念:一棵树

平台的核心概念是一棵树,书里叫社交树27

做法一句话:树上的每个节点挂一个脚本,而在这个节点上挂什么奖励机制, 就定义了它的子节点之间是什么关系28

书里对这套东西的评价是:通过这棵树,平台「基本可以通过定义生存和奖励机制, 支持任意类型的社会关系」29

另起的一处走查:四只机器蚂蚁推箱子

★ 这是本章的第二处走查,书里给的例子,三层一次讲透。★30

四只机器蚂蚁,两只一队,两队比赛把箱子推到目标点。

┌─ 全局层(树根)──────────────────────────────────────┐
│ 挂的是 ★ 竞争类 ★:两队比谁先把箱子推到目标点。 │
│ 验算条件:两队回报之和不随任何一队的策略变化 │
│ → 一队早到一步,另一队就晚到一步,总和不变 ✓ │
├─ 队伍层 ─────────────────────────────────────────┤
│ 挂的是 ★ 合作类 ★:同队两只蚂蚁一起推,记合力推动的距离 │
│ 验算条件:两只之间没有利益冲突,且至少一对同增同减 │
│ → 两只拿的是同一个数(推动距离),显然同增同减 ✓ │
├─ 个体层(叶子)──────────────────────────────────┤
│ 挂的是 ★ 独立类 ★:每只蚂蚁自己学基本的运动技巧 │
│ 验算条件:我的回报和别人的策略无关 │
│ → 「我这一步走得稳不稳」只跟我自己有关 ✓ │
└───────────────────────────────────────────────┘

★ 那么某一步,一只蚂蚁实际拿到多少分?★
书里的答案:「应用到每个智能体的最终奖励函数,是以上三个层次的加权求和。」[^38]

这一步具体算一遍(这三个数和权重是**为演示编的**;三层的挂法与加权求和是书里的):

个体层(独立类): 这一步走得稳,得 **+0.2**
队伍层(合作类): 这一步全队把箱子推进了 3 厘米,得 **+0.3**
全局层(竞争类): 这一轮还没分出胜负,得 **0**

★ 权重取 (0.2, 0.5, 1.0) → 最终奖励 = 0.2×0.2 + 0.5×0.3 + 1.0×0 = **0.19** ★

★ 这个 0.19 就是这只蚂蚁这一步真正拿到的分 —— 而它同时携带了三种社会关系。★

书里还说了一条工程约定:合作类和竞争类的奖励函数定义在树根那个节点上, 独立类定义在智能体自己的节点上31

书里最后点了一句:同样可以定义超过三层的社交树 —— 小队组成大队,每个节点上的奖励机制「给出更加复杂和结构化的社会关系」30

判断(我们的,不是书里的): 这套设计真正解决的问题,是 §7 那张架构图的落地问题。 架构图说「层与层求斯塔克尔伯格均衡、同层内求纳什或关联性均衡」—— 但它没说这些层怎么在代码里存在。社交树给的答案是:层就是树的层,关系就是挂在节点上的奖励约束。 ★ 也就是说:上半章那套博弈论,在这套设计里变成了「往哪个节点上挂哪一类奖励」。★ 如果错,会错在: 五类奖励约束和三种均衡不是一一对应的 —— 前者约束的是奖励函数的形状,后者描述的是策略最终会停在哪里。 判据是:同一棵树上,挂了竞争类奖励的那一层,双方最后停在哪一种均衡上 —— 这一步书里没有推,是空的。

作者的判断与证据

书里给了定义或完整验算的:

  • 三种均衡的形式定义61332 —— 都给了式子;
  • ★ 胆小鬼博弈上的全部数字 ★:两个纯策略均衡、混合策略解 0.75、期望效用 4.5、 所有纳什均衡总效用 9、关联性均衡 9.3333、逐条验算的 4 与 3、先动者拿 67331034123532 —— 这是全书验算最完整的一章;
  • 五类奖励约束的形式定义2125;
  • 三层社交树的例子与「加权求和」30

作者的判断与说法:

  • 「重复博弈大大地避免了恶意的动作决策」5 —— 一句机理判断,没有实验;
  • 那个架构「一般可以用来建模并处理所有多智能体强化学习的问题」16 —— ★ 这是一句很大的话,书里没有给任何支撑;★
  • 平台「基本可以支持任意类型的社会关系」29 —— 同样是一句大话,没有边界说明。

书里没有给的:

  • ★ 这一章依然没有任何算法性能数据。★ 两个算法各给了伪代码,零实验;
  • 五类奖励约束和三种均衡之间的关系,书里完全没有讨论(见 §10 那个判断块);
  • 收到公共信号的那个「关联」在工程上怎么实现,书里没说。

边界与局限

  • ★ 上半章讲的全是两个人、一张表的静态博弈。★ 几十个智能体、多个局面的情况,书里给了式子但没有给任何可算的例子;
  • 书里给的两个算法都很老(1998 年那个 Q-Learning、2017 年那个 MADDPG), 而第 11 章第 8 节提到的联盟式训练在这一章一句都没展开;
  • 「所有人都相信这个公共信号」这个前提,书里没有讨论怎么保证 —— 而在有对抗的场合,这恰恰是最难的一环;
  • 原书第 17 章的大部分篇幅是安装步骤与操作说明(拖哪个预制件、改哪个 ID、 机器上没有显示器时怎么配一个虚拟的),这些属于工具手册,我们没有搬进来;
  • 五类奖励约束的验算,书里给的是数学条件,而实际怎么自动检查,书里只说了「有这个选项」;
  • ★ 最要紧的一条:这一章没有回答「有对手时该用哪个算法」。★ 它给的是评判标准和建模工具,不是解法。

可带走的

全章那条走查,一行写完: 同一张两人收益表(都躲各 5、一躲一冲是 3 和 6、都冲各 0)—— 纯策略的纳什均衡有两个(都是「一躲一冲」) → 混合策略解出 p = 0.75、期望效用各 4.5所有纳什均衡的总效用都是 9,而桌上明明有 10 → 换成按公共信号协调、三种组合各三分之一, 总效用 9.3333;而且没人想偏离(照做得 4、私自改只有 3) → 改成一先一后,先动的那个直接拿到 6。 另一处走查: 四只机器蚂蚁分两队推箱子,个体层挂独立类、队伍层挂合作类、全局层挂竞争类, 某一步的最终奖励 = 三层加权求和 = 0.19(收益表和六个结论全部是书里的真数;蚂蚁那一步的三个分与权重是为演示编的。)

  1. ★ 只要环境里还有第二个会学的家伙,「最优策略」就指不到任何具体的东西 —— 你的最优取决于他,他的取决于你。★
  2. 换上来的词是「均衡」,而它比「最优」弱得多:只保证「你一个人改不会更好」;
  3. 效用不是奖励:效用是总收益减总成本,是把账算完之后的那个数;
  4. ★ 只见一次面可以骗,反复见面会被报复 —— 而后者对所有人都更好。★
  5. 纳什均衡不保证公平也不保证好:那两个均衡里,一个拿 6、一个只拿 3,两个人都不想动;
  6. 纯策略的纳什均衡不一定存在,而混合策略的总是存在 —— 这是混合策略成为默认工具的理由;
  7. ★ 解混合策略的原则很反直觉:不是算「哪个动作对我更有利」, 而是让对手选哪个都一样 —— 这样他就没有理由偏向任何一边。★ 解出来是 0.75;
  8. ★ 所有纳什均衡的总效用都锁死在 9,而桌上明明有 10。★ 那 1 分拿不到,不是因为大家不想合作,是因为没有机制拦住背叛;
  9. ★ 加一个大家都信的公共信号,总效用能到 9.3333 —— 多出来的效用是用协调机制买来的。★
  10. 而且它是稳的:信号让我选怯懦时,照做得 4、私自改只有 3;信号让我选勇敢时,照做已经是全表最高;
  11. 规则一改答案就换:同一张表,一先一后时先动的那个直接拿 6(先发优势);
  12. 书里把三种均衡收成一张图:层与层之间求先后那种,同层内部按能不能收到共同信号分两种;
  13. 算法这一层的关键设计是★「训练时集中、执行时分散」★ —— 批判者训练时看得见所有人(对手在变的问题被消掉),执行时它根本不上场;
  14. ★ 合作与竞争不是形容词,是对奖励函数的五类可验算约束: 不可学习、独立、竞争(总和不变)、合作(没有利益冲突)、混合。★
  15. 零和博弈只是竞争类的一个特例(片段只有一步的那个);
  16. ★ 社交树:在哪个节点挂哪一类奖励,就定义了它的子节点之间是什么关系; 而一个智能体最终拿到的分,是它所在的每一层加权求和的结果。★

原文地图

主题原书章原文位置
均衡的概念与三个元素第11章 多智能体强化学习text/16-ch11.txt:4(搜「均衡的概念被提」) · text/16-ch11.txt:16(搜「分别是智能体、策」) · text/16-ch11.txt:25(搜「效用函数定义为智能体在实现各种目标时获得的总」)
为什么要换成「均衡」第11章 多智能体强化学习text/16-ch11.txt:61(搜「我们希望所有智能体最终都能有稳定的决策策略」)
三种博弈框架第11章 多智能体强化学习text/16-ch11.txt:34(搜「静态博弈是模拟智能体间交互的最基本形式」) · text/16-ch11.txt:36(搜「以做出一些出乎常规的欺骗和背叛策略来使自己在博弈中获益」) · text/16-ch11.txt:38(搜「重复博弈是多个智能体在相同的状态下采取重复多次的决策动作」) · text/16-ch11.txt:41(搜「该智能体可能会收到其他智能体的惩罚和报复」) · text/16-ch11.txt:43(搜「可以看作是一个马尔可夫过程」)
胆小鬼博弈那张收益表第11章 多智能体强化学习text/16-ch11.txt:63(搜「我们通过胆小鬼博弈」) · text/16-ch11.txt:68(搜「两者各自都会获得最低的效用价」) · text/16-ch11.txt:70(搜「体获得其最佳的效用价值 6」) · text/16-ch11.txt:71(搜「两者都会获得相对较高的收益 5」)
纳什均衡的定义与验算第11章 多智能体强化学习text/16-ch11.txt:77(搜「假设对方在保持当前决策动作」) · text/16-ch11.txt:85(搜「表示 m 个智能体下的静态场景」) · text/16-ch11.txt:97(搜「在胆小鬼博弈的例子中存在两个纯策略纳什均」)
混合策略与那个方程第11章 多智能体强化学习text/16-ch11.txt:107(搜「混合策略纳什均衡总是存在」) · text/16-ch11.txt:108(搜「为了保证智能体 1 策略的制定没有使其对手智能体 2 的」) · text/16-ch11.txt:113(搜「我们得到 p = 0.75」) · text/16-ch11.txt:115(搜「体获得的期望效益价值为 4.5」)
所有纳什均衡总效用是 9第11章 多智能体强化学习text/16-ch11.txt:122(搜「两个智能体效用函数之和相同」) · text/16-ch11.txt:125(搜「小于所有两个智能体总效益之和」)
关联性均衡与 9.3333第11章 多智能体强化学习text/16-ch11.txt:137(搜「两个智能体的总效用价值」) · text/16-ch11.txt:138(搜「为 9.3333」) · text/16-ch11.txt:149(搜「关联性均衡」)
逐条验算不偏离第11章 多智能体强化学习text/16-ch11.txt:140(搜「能获得的效益价值为」) · text/16-ch11.txt:143(搜「收到的效益价值为」) · text/16-ch11.txt:144(搜「其对手智能体 2 需要以 100%」)
斯塔克尔伯格均衡第11章 多智能体强化学习text/16-ch11.txt:164(搜「智能体之间还可能会顺序做出决策」) · text/16-ch11.txt:166(搜「领导者在决策时会有先发优势」) · text/16-ch11.txt:169(搜「么智能体 1 会选择策略动作」) · text/16-ch11.txt:170(搜「从而使自己的效用价值为所有可能结果中的最大值 6」)
零和博弈与踢足球第11章 多智能体强化学习text/16-ch11.txt:211(搜「每种情况下智能体收益价值之和总是为零」) · text/16-ch11.txt:219(搜「对一个简化的踢足球问题进行分析并建模为零和博」)
多智能体 Q-Learning 的代价第11章 多智能体强化学习text/16-ch11.txt:239(搜「学习被提出来解决一般情况下多智能体之间的竞争问题」) · text/16-ch11.txt:258(搜「要同时建立并估计所有其他智能体的 Q 列表」)
集中批判者、分散行动者第11章 多智能体强化学习text/16-ch11.txt:266(搜「在所有智能体同时做出决策的场景下」) · text/16-ch11.txt:267(搜「每个智能体对应一个分布式的行动者」) · text/16-ch11.txt:269(搜「是集中控制的」)
分层博弈分析架构第11章 多智能体强化学习text/16-ch11.txt:323(搜「我们设定一个循环迭代的场景」) · text/16-ch11.txt:324(搜「我们将所有智能体进一步分为多个层级」) · text/16-ch11.txt:326(搜「在不同层级之间」) · text/16-ch11.txt:327(搜「智能体期望达到斯塔克尔伯格均衡」) · text/16-ch11.txt:332(搜「博弈分析架构一般可以用来建模并处理所有多智能体强化学习的问题」)
平台的定位第17章 Arenatext/23-ch17-17-arena.txt:16(搜「Arena 是一个在 Unity 上对多体智能学习进行评估的通用平台」) · text/23-ch17-17-arena.txt:20(搜「Arena 注重于第一人称或第三人称动作类游戏」) · text/23-ch17-17-arena.txt:21(搜「则专注于多智能体棋牌类」)
社交树第17章 Arenatext/23-ch17-17-arena.txt:96(搜「我们将介绍如何在游戏场景中按照社交树」) · text/23-ch17-17-arena.txt:100(搜「这个基本概念可以用来帮助理解 Arena 游戏中定义的社会关系」) · text/23-ch17-17-arena.txt:155(搜「的社交树结构」)
五类奖励约束第17章 Arenatext/23-ch17-17-arena.txt:202(搜「意味着对于任何智能体」) · text/23-ch17-17-arena.txt:214(搜「接受的片段内奖励」) · text/23-ch17-17-arena.txt:234(搜「上式直观上意味着对于任何智能体」) · text/23-ch17-17-arena.txt:253(搜「上式直观上意味着对任何一对智能体」) · text/23-ch17-17-arena.txt:262(搜「混合型的 BMaRSs」)
内部奖励与零和的关系第17章 Arenatext/23-ch17-17-arena.txt:216(搜「通常被称为内部奖励函数」) · text/23-ch17-17-arena.txt:221(搜「提供了 f 来应对」) · text/23-ch17-17-arena.txt:235(搜「它表示典型的多玩家零和游戏」) · text/23-ch17-17-arena.txt:240(搜「中的剪刀石头布」)
验证选项与工程约定第17章 Arenatext/23-ch17-17-arena.txt:279(搜「也对每个 BMaRS 提供了一个验证选项」) · text/23-ch17-17-arena.txt:283(搜「框架通常在 GlobalManager 的 Arena Node 中定义了」)
四只蚂蚁那个例子第17章 Arenatext/23-ch17-17-arena.txt:287(搜「奖励机制被指定到各个 Arena Node 来定义它的子节点的社会关系」) · text/23-ch17-17-arena.txt:291(搜「的选项使得学习朝向基本的运动技巧」) · text/23-ch17-17-arena.txt:293(搜「两个机器蚂蚁互相合作来推动盒子前进」) · text/23-ch17-17-arena.txt:297(搜「应用到每个智能体的最终奖励函数是以上三个层次的」)

Footnotes

  1. 出处:「第11章 多智能体强化学习」第 60 段(text/16-ch11.txt:60,搜「因为每个智能体的收益函数和所有智能体的决策动作相关」)与第 61 段(text/16-ch11.txt:61,搜「我们希望所有智能体最终都能有稳定的决策策略」)。

  2. 出处:「第11章 多智能体强化学习」第 4 段(text/16-ch11.txt:4,搜「均衡的概念被提」)。这是原书这一章的开篇提要。

  3. 出处:「第11章 多智能体强化学习」第 16 段(text/16-ch11.txt:16,搜「分别是智能体、策」)与第 21 段(text/16-ch11.txt:21,搜「智能体的数目为 1 时即普通强化学习的场景」)。

  4. 出处:「第11章 多智能体强化学习」第 25 段(text/16-ch11.txt:25,搜「效用函数定义为智能体在实现各种目标时获得的总」)。原文的完整说法是:总收益和总成本之差。

  5. 出处:「第11章 多智能体强化学习」第 34 段(text/16-ch11.txt:34,搜「静态博弈是模拟智能体间交互的最基本形式」)、第 36 段(text/16-ch11.txt:36,搜「以做出一些出乎常规的欺骗和背叛策略来使自己在博弈中获益」)、第 38 段(text/16-ch11.txt:38,搜「重复博弈是多个智能体在相同的状态下采取重复多次的决策动作」)、第 41 段(text/16-ch11.txt:41,搜「该智能体可能会收到其他智能体的惩罚和报复」)与第 43 段(text/16-ch11.txt:43,搜「可以看作是一个马尔可夫过程」)。原书把第三种叫随机博弈或马尔可夫博弈。 2

  6. 出处:「第11章 多智能体强化学习」第 85 段(text/16-ch11.txt:85,搜「表示 m 个智能体下的静态场景」)。这是原书的定义 11.1;它的不等式说的就是「换成别的策略不会更好」。 2

  7. 出处:「第11章 多智能体强化学习」第 97 段(text/16-ch11.txt:97,搜「在胆小鬼博弈的例子中存在两个纯策略纳什均」)与第 98 段(text/16-ch11.txt:98,搜「一般来说,纯策略纳什均衡不」)。 2

  8. 出处:「第11章 多智能体强化学习」第 104 段(text/16-ch11.txt:104,搜「每个智能体还可以制定并采取决策的策略」)与第 107 段(text/16-ch11.txt:107,搜「混合策略纳什均衡总是存在」)。 2

  9. 出处:「第11章 多智能体强化学习」第 108 段(text/16-ch11.txt:108,搜「为了保证智能体 1 策略的制定没有使其对手智能体 2 的」)。原文的完整说法是:让对手的动作「没有偏见」,从而不会产生一个最佳的纯策略动作。

  10. 出处:「第11章 多智能体强化学习」第 115 段(text/16-ch11.txt:115,搜「体获得的期望效益价值为 4.5」)。原文写明双方选怯懦的机会均为 0.75、选勇敢为 0.25。 2

  11. 出处:「第11章 多智能体强化学习」第 125 段(text/16-ch11.txt:125,搜「小于所有两个智能体总效益之和」)与第 126 段(text/16-ch11.txt:126,搜「在绝对分布」)。原文写明:两个都选怯懦能到 10,但那个状态在绝对分布式的方式下是不稳定的。

  12. 出处:「第11章 多智能体强化学习」第 133 段(text/16-ch11.txt:133,搜「我们设定两个智能体选择」)、第 137 段(text/16-ch11.txt:137,搜「两个智能体的总效用价值」)与第 138 段(text/16-ch11.txt:138,搜「为 9.3333」)。原文给的分布正是三种组合各三分之一、「两个都勇敢」为 0。 2

  13. 出处:「第11章 多智能体强化学习」第 149 段(text/16-ch11.txt:149,搜「关联性均衡」)。这是原书的定义 11.2,注明出自 Aumann 1987 年的工作。 2

  14. 出处:「第11章 多智能体强化学习」第 164 段(text/16-ch11.txt:164,搜「智能体之间还可能会顺序做出决策」)与第 166 段(text/16-ch11.txt:166,搜「领导者在决策时会有先发优势」)。 2

  15. 出处:「第11章 多智能体强化学习」第 323 段(text/16-ch11.txt:323,搜「我们设定一个循环迭代的场景」)、第 324 段(text/16-ch11.txt:324,搜「我们将所有智能体进一步分为多个层级」)、第 326 段(text/16-ch11.txt:326,搜「在不同层级之间」)与第 327 段(text/16-ch11.txt:327,搜「智能体期望达到斯塔克尔伯格均衡」)。这是原书 11.4 节的图 11.5。

  16. 出处:「第11章 多智能体强化学习」第 332 段(text/16-ch11.txt:332,搜「博弈分析架构一般可以用来建模并处理所有多智能体强化学习的问题」)。原文接着列了三个多智能体平台。 2

  17. 出处:「第11章 多智能体强化学习」第 239 段(text/16-ch11.txt:239,搜「学习被提出来解决一般情况下多智能体之间的竞争问题」)。原书注明出自 Hu 等人 1998 年的工作,并给了算法 11.35 的伪代码。

  18. 出处:「第11章 多智能体强化学习」第 257 段(text/16-ch11.txt:257,搜「由于 Q 列表的更新和其他智能体」)与第 258 段(text/16-ch11.txt:258,搜「要同时建立并估计所有其他智能体的 Q 列表」)。原文说的目的是:据此预测其他智能体的策略,从而让整体停在混合策略纳什均衡上。

  19. 出处:「第11章 多智能体强化学习」第 266 段(text/16-ch11.txt:266,搜「在所有智能体同时做出决策的场景下」)、第 267 段(text/16-ch11.txt:267,搜「每个智能体对应一个分布式的行动者」)与第 269 段(text/16-ch11.txt:269,搜「是集中控制的」)。原书注明 MADDPG 出自 Lowe 等人 2017 年的工作,并给了行动者的梯度与批判者的损失。 2

  20. 出处:「第17章 Arena」第 194 段(text/23-ch17-17-arena.txt:194,搜「BMaRS」)。原书把这五类统称为「基本多智能体奖励机制」,并对每一类给了集合形式的定义。

  21. 出处:「第17章 Arena」第 202 段(text/23-ch17-17-arena.txt:202,搜「意味着对于任何智能体」)。原文的直观解释是:任何智能体改进自己的策略都无法优化自己的回报。 2

  22. 出处:「第17章 Arena」第 214 段(text/23-ch17-17-arena.txt:214,搜「接受的片段内奖励」)、第 216 段(text/23-ch17-17-arena.txt:216,搜「通常被称为内部奖励函数」)、第 218 段(text/23-ch17-17-arena.txt:218,搜「群体层面奖励可能很稀疏而难以学习」)与第 221 段(text/23-ch17-17-arena.txt:221,搜「提供了 f 来应对」)。

  23. 出处:「第17章 Arena」第 234 段(text/23-ch17-17-arena.txt:234,搜「上式直观上意味着对于任何智能体」)、第 235 段(text/23-ch17-17-arena.txt:235,搜「它表示典型的多玩家零和游戏」)与第 240 段(text/23-ch17-17-arena.txt:240,搜「中的剪刀石头布」)。原书还举了另外两个例子:为有限资源争斗、按出局顺序给奖励。

  24. 出处:「第17章 Arena」第 253 段(text/23-ch17-17-arena.txt:253,搜「上式直观上意味着对任何一对智能体」)、第 255 段(text/23-ch17-17-arena.txt:255,搜「至少有一对智能体」)与第 258 段(text/23-ch17-17-arena.txt:258,搜「一个物体的移动距离可以由多个智能体的共同努」)。

  25. 出处:「第17章 Arena」第 262 段(text/23-ch17-17-arena.txt:262,搜「混合型的 BMaRSs」)。原书对这一类的直观解释是:局部上有人在竞争,但整体利益仍然可以被某个策略组合最大化。 2

  26. 出处:「第17章 Arena」第 16 段(text/23-ch17-17-arena.txt:16,搜「Arena 是一个在 Unity 上对多体智能学习进行评估的通用平台」)、第 20 段(text/23-ch17-17-arena.txt:20,搜「Arena 注重于第一人称或第三人称动作类游戏」)与第 21 段(text/23-ch17-17-arena.txt:21,搜「则专注于多智能体棋牌类」)。原书说它有两个模块:开发工具包和基准库(text/23-ch17-17-arena.txt:25,搜「开发工具包」)。 2

  27. 出处:「第17章 Arena」第 96 段(text/23-ch17-17-arena.txt:96,搜「我们将介绍如何在游戏场景中按照社交树」)。

  28. 出处:「第17章 Arena」第 100 段(text/23-ch17-17-arena.txt:100,搜「这个基本概念可以用来帮助理解 Arena 游戏中定义的社会关系」)与第 287 段(text/23-ch17-17-arena.txt:287,搜「奖励机制被指定到各个 Arena Node 来定义它的子节点的社会关系」)。

  29. 出处:「第17章 Arena」第 155 段(text/23-ch17-17-arena.txt:155,搜「的社交树结构」)。原书前面用一个具体例子说明了同一棵树上换一个「存活条件」的设置,整局游戏的逻辑就变了。 2

  30. 出处:「第17章 Arena」第 291 段(text/23-ch17-17-arena.txt:291,搜「的选项使得学习朝向基本的运动技巧」)、第 293 段(text/23-ch17-17-arena.txt:293,搜「两个机器蚂蚁互相合作来推动盒子前进」)、第 296 段(text/23-ch17-17-arena.txt:296,搜「是将盒」)与第 297 段(text/23-ch17-17-arena.txt:297,搜「应用到每个智能体的最终奖励函数是以上三个层次的」)。原书还说可以定义超过三层的社交树。 2 3

  31. 出处:「第17章 Arena」第 283 段(text/23-ch17-17-arena.txt:283,搜「框架通常在 GlobalManager 的 Arena Node 中定义了」)。原文写明:合作类与竞争类定义在根节点上,独立类定义在智能体自己的节点上。

  32. 出处:「第11章 多智能体强化学习」第 169 段(text/16-ch11.txt:169,搜「么智能体 1 会选择策略动作」)、第 170 段(text/16-ch11.txt:170,搜「从而使自己的效用价值为所有可能结果中的最大值 6」)与第 174 段(text/16-ch11.txt:174,搜「为顺序执行的场景」)。最后一处是原书的定义 11.3。 2

  33. 出处:「第11章 多智能体强化学习」第 111 段(text/16-ch11.txt:111,搜「5p + 3」)与第 113 段(text/16-ch11.txt:113,搜「我们得到 p = 0.75」)。原书给的正是这一个方程。

  34. 出处:「第11章 多智能体强化学习」第 122 段(text/16-ch11.txt:122,搜「两个智能体效用函数之和相同」)。原书还用一张二维图把四种组合与混合策略的位置画了出来。

  35. 出处:「第11章 多智能体强化学习」第 138 段(text/16-ch11.txt:138,搜「假设当智能体 1 宣布将选择」)、第 140 段(text/16-ch11.txt:140,搜「能获得的效益价值为」)与第 143 段(text/16-ch11.txt:143,搜「收到的效益价值为」)。原书算的正是 0.5×5 + 0.5×3 = 4 与 0.5×6 + 0.5×0 = 3。