对比方法就是让模型同时比较“合理搭配”和“不合理搭配”,学会给前者低能量、给后者高能量。 只练习合理搭配,模型可能把所有搭配都打成低能量,这就是前面说的坍塌。
用小球运动的例子。假设数据中,小球每一步向右移动 1 格:
1 → 2 → 3 → 4
我们自动构造一个训练题:
输入 x 候选后续 在训练中的角色
1 → 2 → 3 、y = 4 正样本:实际观察到的后续
1 → 2 → 3 、ŷ = 10 负样本:构造出来的不合理后续
这里用 ŷ 表示对比样本,也就是负样本。假设这个玩具环境中,小球始终匀速移动,因此 10 确实是不合理的。
模型的能量函数 F(x, y) 可以理解为一个“不匹配分数”:
- 分数低:模型认为这两个部分搭配合理。
- 分数高:模型认为它们不搭配。
第一步:看看只训练正样本会发生什么。
如果我们只要求:
F(x, 4) 越小越好
模型可能找到一个极其简单的办法:无论输入什么,永远输出 0。
于是:
F(x, 4) = 0
F(x, 10) = 0
F(x, −999) = 0
训练要求被满足了,但模型没有判断能力。
第二步:把负样本也加入训练。
现在,我们同时要求:
F(x, 4) 低,F(x, 10) 高。
为了让这个要求明确一点,可以规定:负样本的能量至少比正样本高 1。
也就是:
F(x, 10) ≥ F(x, 4) + 1
对应的简单训练损失是:
损失 = max(0, 正样本能量 − 负样本能量 + 1)
其中,max(0, …) 表示括号内小于零时,损失取零。
看三个具体情况:

现在,“永远输出 0”就不能蒙混过关了,因为它仍然有损失。
训练程序会根据损失调整模型参数,让正确搭配的能量下降、错误搭配的能量上升,直到两者拉开足够的差距。
这里举的是固定间隔为 1 的简化版本;
论文A Path Towards Autonomous Machine Intelligence中公式(7)让这个间隔随 y 和 ŷ 的距离变化。
第三步:用很多不同的题目反复训练。
例如:

为了持续区分这些搭配,模型就需要学习输入与后续之间的关系。
这也解释了论文A Path Towards Autonomous Machine Intelligence所说的“把正样本的能量压低,把负样本的能量抬高”。
你可以把模型想象成阅卷老师:它既要知道正确答案应该得什么分,也要能识别错误答案。
不过,负样本怎么选,是对比方法的难点。 如果每次只提供特别离谱的错误答案,模型可能学不会区分相近的候选;
如果给出的“负样本”其实也是一种合理未来,就可能把模型教错。例如汽车可以左转也可以右转,不能仅仅因为实际视频里左转了,就断定右转一定不合理。
论文A Path Towards Autonomous Machine Intelligence担心的是:在图像、视频这样的高维空间里,不合理的候选非常多。你训练模型排除了其中一些,它仍可能给其他不合理候选低能量,因此可能需要大量、精心选择的对比样本。
对比方法存在两个主要问题。
第一,研究者必须设计一种机制来生成或选择合适的 ŷ。
第二,当 y 位于高维空间中,而且基于能量的模型具有很强的灵活性时,可能需要数量极其庞大的对比样本,才能确保局部数据分布没有占据的所有方向都具有较高能量。
由于维数灾难,在最坏情况下,对比样本的数量可能随着表征空间维度的增加呈指数增长。
4037



被折叠的 条评论
为什么被折叠?



