2.1 零和博弈与极小极大:审理规则


2.1 零和博弈与极小极大:审理规则

GAN 的计分规则来自二人零和博弈:双方得失之和恒为零,造假者追求"最坏情况下最多赚",鉴定师追求"最坏情况下最少赔",合起来就是极小极大(minimax)规则。 本节从一张收益矩阵手算鞍点开始,把 GAN 的极小极大目标逐项拆到可复算。

进入数学审讯室的第一案。第 1 章我们说"双方利益相反",本节把这句话精确化:相反到什么程度(零和),双方各自的最优策略怎么定义(极小与极大),以及 Goodfellow 论文里那个著名的目标函数每一项到底记的是谁的账。

先手算一张收益矩阵

规则要从最小的例子长出来。设造假者有两种工艺 A、B,鉴定师有两种鉴定法甲、乙。矩阵里的数字是造假者的收益(鉴定师的收益取负,这就是零和):

造假者\鉴定师
工艺 A 3 -1
工艺 B 2 4

造假者不知道鉴定师会用哪招,稳妥起见看每行最小收益:A 行最小 -1,B 行最小 2。选 B,最坏也赚 2——这叫极大化极小(maximin)。鉴定师对称地看每列最大损失:甲列最大 3,乙列最大 4,选甲,最坏只赔 3——极小化极大(minimax)。用代码核一遍:

import numpy as np P = np.array([[3, -1], [2, 4]]) # 收益归造假者; 鉴定师收益 = -P print("造假者各行最小收益:", P.min(axis=1), " -> maximin 选工艺", P.min(axis=1).argmax() + 1) print("鉴定师各列最大损失:", P.max(axis=0), " -> minimax 选鉴定法", P.max(axis=0).argmin() + 1) print("maximin 值 =", P.min(axis=1).max(), "; minimax 值 =", P.max(axis=0).min()) # 输出: # 造假者各行最小收益: [-1 2] -> maximin 选工艺 2 # 鉴定师各列最大损失: [3 4] -> minimax 选鉴定法 1 # maximin 值 = 2 ; minimax 值 = 3

注意结果:maximin 值 2 不等于 minimax 值 3。这个例子没有鞍点——双方没有一对策略能互相锁死,理性对局会进入混合策略(按概率出招)的循环。这正是 GAN 训练"永不精确收敛、只能绕着均衡打转"的博弈论根源。当矩阵换成有鞍点的(比如把 4 改成 1.5,使得 B 行最小仍是 2、甲列最大恰为 2),双方策略才稳定互锁——对应 GAN 理论中"真实分布与生成分布重合"的完美均衡(2.4 节细讲)。

# 换一个有鞍点的矩阵观察互锁 P2 = np.array([[3, -1], [2, 1.5]]) print("maximin 值 =", P2.min(axis=1).max(), "; minimax 值 =", P2.max(axis=0).min()) # 输出: maximin 值 = 2.0 ; minimax 值 = 2.0 # 两者相等 => 鞍点存在: 工艺B 对 鉴定法甲, 博弈锁死

从矩阵到 GAN 的目标函数

矩阵说的是离散策略,GAN 的策略是连续的(两组网络参数),"收益"换成了期望对数似然。Goodfellow 给出的审理规则:

min_G max_D V(D, G) = E[log D(x)] + E[log(1 - D(G(z)))]

其中第一个期望对真实数据 x 取(x 服从数据分布),第二个对噪声 z 取(G(z) 是赝品)。逐项拆账:

  • log D(x):鉴定师把真品认成真品的得分,越大越好——鉴定师要它大;
  • log(1 - D(G(z))):鉴定师把赝品识破的得分(D(G(z)) 越小,此项越大)——同样是鉴定师的进账;
  • 两项合起来,鉴定师最大化 V:把真品打真、把赝品打假,两头都要抓;
  • 造假者最小化 V:让鉴定师的进账缩水,手段是把 D(G(z)) 推高(赝品被打成真品)。

一个 V,两种意图,这就是"极小极大"四个字在网络参数空间里的形态。对比一下更直观:

博弈元素 矩阵例子 GAN
造假者策略 工艺 A/B 生成器参数 θ_G
鉴定师策略 鉴定法甲/乙 判别器参数 θ_D
收益 矩阵元素 期望 V(D, G)
均衡 鞍点(若存在) 分布重合、D 恒输出 0.5

⚠️ 常见坑:把 GAN 叫"零和"严格来说要小心——工程实现里生成器常用"非饱和"改写损失(2.2 节),此时双方损失不再严格互为相反数,博弈从零和变成"近零和"。理论分析的起点是零和形式,训练代码里跑的多半是改写形式,两者别混。

为什么规则要设计成"极小极大"而不是"双赢"

直觉上,让两个网络合作拟合数据似乎更稳。问题在于合作目标仍要手工设计"像不像"的度量,绕回了显式建模的老路。极小极大的妙处是把"像不像"这个最难写的函数交给鉴定师去学,造假者只管对抗。代价是失去了单调的优化目标——没有哪条损失曲线能单独告诉你"整体在变好",这也是第 4 章验收指标要另起炉灶的原因。

本节要点回顾

  • 零和:鉴定师的账本恰是造假者账本的相反数,利益严格冲突;
  • 极小极大:双方各按"最坏情况"选策略,maximin 与 minimax 值相等着存在鞍点;
  • 无鞍点的常态:数值例中 2 ≠ 3,预示 GAN 训练绕均衡打转、不精确收敛;
  • 目标函数两账户:log D(x) 与 log(1-D(G(z))) 都归鉴定师最大化,造假者整体最小化;
  • 规则的代价:用可学的裁判换手工度量,牺牲了单一可监控的优化目标。

常见问题:规则层的疑惑

极小极大和极大极小是一回事吗? 是同一对操作的两种读法:造假者做"极大化极小"(在最坏鉴定下挑最优工艺),鉴定师做"极小化极大"(在最坏造假下挑最优鉴定)。GAN 目标里的 min_G max_D 就是把两个视角写进一个式子,先对 D 取极大再对 G 取极小。

既然零和,为什么训练里双方损失加起来不是零? 因为工程实现做了两处修改:生成器用非饱和改写(第 2.2 节),判别器常见标签平滑。账本不再严格互为相反数,博弈从纯零和变成"近零和"——理论分析用严格形式,训练代码用工程形式,两者别混用。

混合策略在 GAN 里对应什么? 对应"参数绕均衡点震荡"。博弈论中无鞍点的博弈靠概率混合出招;GAN 的参数空间里,梯度噪声天然起到了混合的作用,训练轨迹绕均衡点打转而不精确收敛——第 2.3 节的实录会看到这个形态。

演算自测

给定收益矩阵(造假者视角):第一行 5 与 0,第二行 3 与 2。请手算 maximin 与 minimax 值并判断有无鞍点。答案:造假者行最小为 0 与 2,选第二行得 2;鉴定师列最大为 5 与 2,选第二列得 2;两值相等即鞍点存在,工艺二对鉴定法二互锁。算完这题,极小极大的手工操作就过关了。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U