想象一下,你让 AI 描述一张客厅的照片。它准确地识别出了沙发、电视和咖啡桌。但随后,它自信地补充道: “地毯上还睡着一只猫。”你仔细看了看。根本没有猫。那里从来就没有过猫。

这种现象被称为物体幻觉 (Object Hallucination) 。 这是大型视觉语言模型 (LVLMs,如 LLaVA 或 GPT-4V) 中最顽固且危险的问题之一。在医学成像或自动驾驶等高风险领域,幻觉出的肿瘤或不存在的行人可能会带来灾难性的后果。

长期以来,研究人员一直将矛头指向这些系统的“大脑”——大型语言模型 (LLM) 组件。他们认为,由于 LLM 接受了海量文本的训练,所以才会编造事实。但是,如果问题不在于大脑,而在于眼睛呢?

在这篇文章中,我们将深入探讨论文 《Investigating and Mitigating Object Hallucinations in Pretrained Vision-Language (CLIP) Models》 (调查与缓解预训练视觉-语言 CLIP 模型中的物体幻觉) 。 我们将探索研究人员是如何发现视觉编码器 (CLIP) ——即 AI 的眼睛——往往是这些幻觉的源头。更重要的是,我们将详细解析他们开发的数学方法,该方法旨在对这些模型进行“矫正眼科手术”,从而显著减少幻觉。

嫌疑人: 视觉编码器

要理解解决方案,我们需要先了解典型 LVLM 的架构。这些模型通常由三部分组成:

  1. 视觉编码器 (Visual Encoder) : 通常是一个 CLIP (对比语言-图像预训练) 模型。它将图像转换为数学表示 (嵌入) 。
  2. 模态连接器 (Modality Connector) : 一个将视觉嵌入翻译成语言模型能理解的形式的层。
  3. 大型语言模型 (LLM) : 生成文本响应的组件。

研究人员假设,如果视觉编码器 (CLIP) 本身就患有幻觉——意味着它认为图像中包含了不存在的物体——那么下游的 LLM 除了在文本输出中产生幻觉外别无选择。这是一个典型的“垃圾进,垃圾出”案例。

调查 CLIP

CLIP 的训练目标是将图像与文本描述进行匹配。理想情况下,如果你向 CLIP 展示一张“塔”的照片,它应该与文本“一座塔”有很高的相似度得分,而与“一座塔和城市景观”的得分较低。

为了测试 CLIP 是否做到了这一点,作者创建了一个名为 OHD-Caps (物体幻觉检测) 的新基准。

展示基准创建过程的流程图,显示图像如何被处理以创建正样本和负样本描述。

如上图所示,该过程的工作原理如下:

  1. 物体识别: 他们使用分割模型 (SEEM) 来识别图像中实际存在的内容 (例如,山、树、天空) 。
  2. 负样本生成: 他们使用 GPT-4 生成“幻觉”描述。他们可能会插入一个随机物体 (例如“城市景观”) 或移除一个现有物体。
  3. 测试: 他们将图像、正确的描述和幻觉描述输入 CLIP。

如果 CLIP 工作正常,它应该给正确的描述分配最高分。然而,结果令人震惊。在许多 AI 系统中广泛使用的标准 CLIP ViT-L/14 模型,仅在 19.0% 的情况下识别出了正确的描述。在上面的例子中,CLIP 实际上更倾向于声称背景中有“城市景观”的描述,即使实际上并没有。

这证实了假设: 视觉编码器容易产生幻觉。 它难以区分“一座塔”和“一座塔与城市景观”,因为它可能只是学到了“词袋 (bag-of-words) ”式的表示——捕捉图像的整体氛围,而不是精确的物体存在性。

疗法: 细粒度对象级对比损失

由于标准的 CLIP 训练不足以防止幻觉,作者提出了一种微调方法。该方法的核心是一个新的损失函数,旨在迫使模型关注特定的物体。

让我们一步步拆解这个解决方案的数学原理。

1. 标准对比损失 (基线)

首先,看看 CLIP 通常是如何训练的。目标是最大化图像 (\(I\)) 与其正确文本 (\(T^+\)) 之间的相似度,同时最小化与错误文本 (\(T^-\)) 的相似度。

图像到文本和文本到图像的标准对比损失方程。

在这个方程中:

  • \(\mathcal{L}_{i2t}\) 是图像到文本的损失。
  • 分子 \(\exp(I \cdot T^+ / \tau)\) 代表图像与正确文本之间的匹配强度。
  • 分母是对正确文本负样本文本 (\(T^-\)) 的匹配强度求和。
  • \(\tau\) 是一个缩放数值的温度参数。

在标准训练中,\(T^-\) 通常只是指同一批次中其他图像的描述。这对模型来说很容易解决。它只需要知道关于“狗”的描述与“汽车”的照片不匹配即可。这并不会迫使模型仔细观察细微的细节。

2. 将幻觉注入损失函数

为了解决这个问题,作者将特定的幻觉描述 (在 OHD-Caps 基准中生成的) 引入训练过程。我们将这些称为“增强负样本”或 \(T^{neg}\)。

他们修改了损失函数,在分母中显式包含了这些困难负样本:

包含负样本的修改后的图像到文本损失函数。

现在,如果模型认为图像 (\(I\)) 与幻觉文本 (\(T^{neg}\)) 相似,它就会受到惩罚。这迫使模型去区分“一张狗的照片” (正确) 和“一张狗和猫的照片” (幻觉) ,而不仅仅是将其与“一张车的照片”区分开来。

3. 边界损失 (强制分离)

仅仅将负样本添加到分母中可能还不够。作者希望确保正确文本的得分与幻觉文本的得分之间存在明显的“差距”或边界。

他们引入了 边界损失 (Margin Loss, \(\mathcal{L}_1\)) 。 这个损失就像一个楔子,强制正确配对 (\(I \cdot T^+\)) 的相似度比任何错误配对 (\(I \cdot T^*\)) 至少高出一个阈值 \(\tau_1\)。

第一个边界损失的方程。

如果正确得分与错误得分之间的差异已经大于 \(\tau_1\),则损失为零。如果不是,模型就会受到惩罚。这保证了正确的描述不仅仅是比幻觉“稍微好一点”——而是明显更好。

4. 区分幻觉与随机错误

并非所有的错误都是平等的。描述完全不同图像的文本 (批次内负样本,\(T^-\)) 明显是错误的。描述当前图像但添加了一个物体的文本 (\(T^{neg}\)) 则是“部分”正确的。

作者意识到,模型应该认识到幻觉描述 (\(T^{neg}\)) 比完全随机的描述 (\(T^-\)) 更相似 于图像,即使它仍然是错的。这有助于模型学习语义上的细微差别。

他们添加了第二个边界损失 (\(\mathcal{L}_2\)),以强制幻觉文本的得分比随机文本高出一个 \(\tau_2\) 的边界:

比较负样本的第二个边界损失方程。

这鼓励模型理解 \(T^{neg}\) 与图像共享内容 (存在的正确物体) ,而 \(T^-\) 则没有。

5. 最终目标

结合所有这些组件,最终的训练目标变成了标准对比损失和两个新边界损失的加权和:

结合所有组件的最终总损失函数。

这里,\(\lambda_1\) 和 \(\lambda_2\) 是控制边界损失重要性的权重。通过优化这个函数,CLIP 模型学会了对物体的存在极其挑剔。

实验与结果

研究人员使用这种新的损失函数在 COCO 和 Flickr30k 数据集上微调了 CLIP 模型。但这真的有效吗?

幻觉检测的改进

主要的测试是 OHD-Caps 基准——也就是原始模型惨败的那个测试。

表格显示 OHD-Caps 的结果。所提出的方法显著优于基线。

表 2 中的结果非常显著:

  • CLIP ViT-B/32: 得分从 14.3 (原始) 跃升至 82.5 (我们的方法) 。
  • CLIP ViT-L/14: 得分从 23.3 提高到 88.8

模型从容易被幻觉愚弄进化为能可靠地识别出正确的描述。

零样本泛化

微调中的一个常见担忧是“灾难性遗忘”——解决了一个问题但破坏了模型的通用能力。为了检查这一点,作者在标准的零样本分类任务 (如识别 CIFAR-10 或 ImageNet 中的物体) 上测试了模型。

表格显示各种数据集上的零样本结果。该方法保持了性能。

表 3 所示,所提出的方法 (Ours) 保持了与原始 CLIP 模型相当的性能。对于 CLIP-B/32,平均准确率甚至从 65.6% 略微上升到 66.0%。这证实了“眼科手术”并没有损害模型的通用视觉能力。

视觉示例

这种改进在实际中看起来如何?

来自 OHD-Caps 基准的示例,展示了模型如何区分描述。

图 3 中,我们看到了使用的数据示例。模型必须区分细微的变化。

  • 左图: 一个单板滑雪者。负样本添加了“一面旗帜”。
  • 中图: 理发师。负样本添加了“一位顾客”。
  • 右图: 能量饮料。负样本添加了“食物”。

微调后的模型成功学会了拒绝包含红色高亮词汇的描述,表明它实际上是在观察图像内容,而不是在瞎猜。

它对大型视觉语言模型有帮助吗?

最终目标是修复像 LLaVA 这样的 LVLM 中的幻觉。研究人员将他们改进后的 CLIP 编码器替换到了 LLaVA-1.5 架构中。

他们使用 AMBER 数据集评估了新的 LLaVA,该数据集检查生成式 (编写描述) 和判别式 (回答是/否) 任务中的幻觉。

表格显示 AMBER 数据集上的结果。

表 6 显示了明显的改进:

  • 准确率 (Accuracy) : 从 74.3 增加到 80.2
  • F1 分数: 从 77.2 增加到 84.9
  • 幻觉率 (\(C_I\)): 在生成任务中,包含幻觉的描述比例从 35.4% 下降到 31.7%

这验证了核心假设: 提高视觉编码器拒绝幻觉的能力,会产生一个更诚实的 LVLM。

需要多少数据?

一个令人惊讶的发现是这种方法的效率。你可能认为需要数百万张图像来重新训练 CLIP。

图表显示模型性能与训练数据量的关系。

图 2 显示,该模型仅用很少的数据就能实现显著的提升。即使只使用 1% 的训练数据 (大约 160 张图像) ,性能也从 ~20% 跃升至 ~60%。这表明模型实际上已经具备了正确观看的能力;它只是需要正确的学习信号 (特定的损失函数) 来解锁这种能力。

结论

AI 中的物体幻觉问题通常被视为语言生成问题——即 AI 只是太有创造力或在“撒谎”。这项研究转变了这一视角,表明问题往往始于感知。AI 的“眼睛” (CLIP) 从未被训练去严格验证物体的存在;它们被训练去将图像与宽泛的文本主题联系起来。

通过引入 反事实数据增强 (Counterfactual Data Augmentation) (创建带有特定幻觉的负样本) 和 细粒度对象级对比损失 (Fine-Grained Object-Level Contrastive Loss) , 作者成功教会了 CLIP 变得精准。

关键要点是:

  1. 不要轻信原始 CLIP: 现成的 CLIP 模型在验证图像中是否存在物体方面表现出奇地差。
  2. 困难负样本很重要: 使用“幻觉”描述进行训练比使用随机描述有效得多。
  3. 治好眼睛,修复大脑: 改进视觉编码器是减少 LLaVA 等下游多模态模型幻觉的高效方法。

随着我们迈向与物理世界互动的自主智能体,这种严格的视觉验证将至关重要。我们不能让机器人幻想出障碍物,或者让医疗 AI 幻想出症状。这篇论文为构建不仅仅是“看”,而是真正“看见”的 AI 提供了一份具体的数学蓝图。