阿明刚被聘为“多模态档案馆”的首席馆员。馆里收藏着数百万张照片和短文,却没有目录。读者常拿着照片问:“哪篇文章在讲这张照片的事?”或者举着文章问:“哪张图配得上这段话?” 阿明的任务,是给每件藏品写一张“语义摘要卡”——卡片虽短,却要抓住藏品最核心的含义。含义相近的藏品,卡片应当长得像;含义相远的,卡片应当长得不同。这张卡,在 AI 中叫“表示”(嵌入向量)。可阿明怎么知道自己的卡片写得好不好?当然要考试——而且是一套覆盖检索、分类、聚类三科的全科体检。 这篇文章就带你走进这场体检:先用“档案馆”的视角看懂检索评估的“找得准不准”、分类评估的“分得对不对”、聚类评估的“归得自然不自然”;再理解 CLIP/ALIGN 如何让图片卡与文本卡“说同一种语言”;最后认识标准考卷、自动阅卷机与防作弊守则,帮你建立从原理到落地的评估体系。
掌握表示学习评估体系,是你从“能训练多模态模型”走向“能交付可靠模型”的分水岭——检索、分类、聚类项目最终都要靠这套体检标准证明价值。
目录
可视化演示
本节配有交互动效(进入视口后自动加载,约 3KB)。
表示学习基础:语义摘要卡从何而来
阿明先给自己定了个规矩:每张摘要卡必须能放进同一个“语义柜子”——柜子是多维空间,含义越接近的藏品,摆放的位置就越靠近。这个“放进去”的过程就是表示学习,算出来的位置坐标就是嵌入向量。
在 AI 里,嵌入向量是一串数字,比如 128 维或 512 维。它的核心性质是“语义相似 ⇒ 空间距离近”。距离用什么量?最常用的是余弦相似度——把两个向量看作从原点出发的两条箭头,比较方向,不关心长短。方向越一致,说明两张卡“讲的是同一件事”。
有了“语义距离”这把尺子,阿明就能给卡片系统出考题了——而考试不能只考一门。
- 向量内积把两个向量的每一维相乘再累加,得到一个标量,它包含了两者的“同向程度”信息。
- 向量范数对向量各维求平方和再开根号,得到向量长度,代表这张摘要卡的“信息总量”。
- 归一化比值用内积除以两个范数的乘积,相当于把两条箭头都缩放到单位长度再比较方向。
- 几何意义这个比值恰等于两个向量夹角的余弦值,取值恒在 [-1, 1] 之间,越接近 1 表示语义越相近。
检索评估指标:考“找得准不准”
阿明出的第一门考卷叫“检索”。他抓一把读者的真实需求:拿着照片 A,要求系统在百万张摘要卡里把配对文本找出来,按相关度从高到低排列。好的卡片系统,应当在清单最靠前的位置就出现正确答案——就像查字典,谁也不想翻到第 500 页才找到要的词。
最常用的指标是 Recall@K:对每个查询,看前 K 个返回结果里有没有正确答案,有就算命中;最后统计所有查询的命中比例。K 就像“允许翻看的页数上限”——K 越大,答案越容易出现在前 K 里,指标自然越高。论文里常见的 R@1、R@5、R@10,就是对“前 1、前 5、前 10 个”分别统计。
光考“命中”还不够:如果正确答案排在第二位,R@1 会冤枉地记零。所以业界还有 mAP(平均精度,衡量排序整体质量)和 MRR(首个正确答案位置的倒数)等补充指标——它们像附加题,专治“排得近但不够前”的模糊地带。
- 查询集合把全部 N 个测试查询(照片或文本)一一列举。
- 排序取前 K对查询 q 按相似度降序排列所有候选,截取前 K 个形成集合。
- 命中指示判断正确答案 r_q 是否落在前 K 集合内,在则记 1,否则记 0。
- 平均对 N 个查询的命中率求算术平均,得到整体检索召回率。
分类评估指标:考“分得对不对”
第二门考卷是“分类”。档案馆有几排已经按主题分好的书架:体育、烹饪、山川、星舰……阿明让卡片系统给每张卡自动贴一个主题标签,再和书架上的“标准答案”比对。这就像学生做选择题:选对了得分,选错了扣分。
最朴素的指标是准确率(Accuracy):答对的卡片数除以总卡片数。但档案库里体育照片占八成时,系统只要无脑贴“体育”标签,准确率就有 80%——这是“赌徒式高分”。于是要引入精确率(Precision,声称是体育的卡片里真体育占多少)和召回率(Recall,真体育的卡片里被认出多少),再把两者压成一个综合分 F1。
阿明把这个指标写进了馆规:任何新卡片系统上线,必须同时报出精确率、召回率与 F1,不许只挑好看的数。对严重不均衡的馆藏(比如罕见天文照片只占千分之一),他还会额外看 ROC-AUC,因为 AUC 对类别比例相对不敏感——相当于给“偏科”的考试加了难度系数。
- 混淆矩阵计数TP 是实际正例且被判正例的数量,FP 是实际负例却被判正例(误报),FN 是实际正例却被判负例(漏报)。
- 精确率在所有被判为正例的卡片中,真实正例的比例,衡量“抓得准不准”。
- 召回率在所有真实正例的卡片中,被成功判出的比例,衡量“抓得全不全”。
- 调和平均把 P 和 R 的倒数取平均再取倒数,对偏低的一方更敏感,得到综合指标 F1。
聚类评估指标:考“归得自然不自然”
第三门考卷最特别:没有标准答案标签。阿明想看看,如果不告诉系统任何主题,它能不能自己把相像的卡片堆成一摞摞——就像让实习生不看书架标签,凭直觉把照片分组。分出来的堆,要和馆长手工分的主题越吻合越好。
这里有两个经典指标。NMI(标准化互信息)用信息论的方式回答:系统分组与真实标签“共享了多少信息”。分组和真标签完全对应时 NMI 为 1,随机乱分时接近 0。另一个是 ARI(调整兰德指数),它把所有卡片两两配对,看同一对卡片在系统分组与真实标签中是否“同进退”。
阿明还发现,聚类评估有个易踩的坑:如果系统分出的堆数和真实主题数差很远,NMI 会明显偏低。所以他还搭配“轮廓系数”看堆内是否紧凑、堆间是否疏离——这是不看任何标签、纯靠几何形状就能判断“归得自然不自然”的体检项。
- 互信息统计两个分组中“同时落入某个交叉小格”的概率,衡量两者互相透露的信息量。
- 信息熵分别计算两组划分的熵,熵越大说明分得越碎、越不确定。
- 归一化分母把互信息除以熵的平均值,使取值范围稳定在 0 到 1 之间。
- 系数 2因为分母是熵的和而不是平均值,乘 2 等价于用平均熵做归一。
多模态对齐评估:让图片与文本“对暗号”
三科考完,阿明意识到一个更深的问题:照片卡和文本卡之前是两套独立体系,彼此之间的“语义距离”根本没有校准。就像中英两本词典各自编得再好,没有对照表也无法互译。CLIP 与 ALIGN 就是来造这张“对照表”的。
CLIP 的做法像“相亲配对”:从海量图文对中取一批样本,把配对的图文视为“命定搭档”,把同批其他图文视为“干扰项”;训练目标是让配对组合的相似度远高于干扰组合。这就是对比学习。ALIGN 更进一步,直接使用十亿级别的噪声图文对——配对关系可能不精确,但数据量大到可以弥补噪声。
训练完成后,照片卡和文本卡被“对齐”进了同一个语义柜子。怎么验证?让模型做零样本迁移:对从未见过的类别,只要给它文本提示(如“一张极光照片”),就计算提示与所有图片的相似度,选出最高分。若它无需微调就能达到可观准确率,说明“对照表”确实好使。评估这类对齐效果,重点指标正是前文讲过的双向 R@K 与零样本 Top-1 准确率。
- 相似度矩阵对一批 N 对图文,计算图像嵌入与文本嵌入的两两余弦相似度,得到 N×N 矩阵。
- 温度缩放把相似度除以温度系数 τ,调节 softmax 的尖锐程度。
- 图像到文本方向对每一行做 softmax,希望对角线元素 s_ii 在整行中概率最大。
- 文本到图像方向 + 平均对每一列做同样约束,两个方向合成后除以 2N 求平均损失。
评估数据集基准:一份标准化考卷
阿明意识到,如果每家档案馆各出各的考题,成绩根本无法横向比较。业界因此沉淀了两份“标准化考卷”:Flickr30K 与 COCO Captions。Flickr30K 有 3.1 万张图片、每张配 5 句人工描述;COCO Captions 规模更大,有 33 万张图片、每张同样配 5 句描述。考卷规定:检索必须双向——图像检索文本(i2t)和文本检索图像(t2i),并且报告多个 K 下的 R@K。
为什么要双向?因为对齐是相互的:图片找文本强,不代表文本找图片也强。实践中常用“图文平均”把两个方向合成一个数,方便画曲线比高低。
除了这两份经典考卷,圈内还流行用 ImageNet 及其变体(如 ImageNetV2、ImageNet-R)考察零样本迁移的鲁棒性,用 MS COCO 的 Karpathy 划分保证图文检索与下游任务可比。阿明把规则写进馆规:所有模型必须用同一份考卷、同一种划分、同一套指标,成绩才作数——就像高考必须全国统一命题。
- 图像检索文本以图片为查询,看前 K 个返回文本中是否包含配对描述。
- 文本检索图像以文本为查询,看前 K 个返回图片中是否包含配对图像。
- 取平均两个方向等权平均,避免模型只擅长单向检索时“报喜不报忧”。
评估工具链实践:一台自动阅卷机
考试出好了,还得有阅卷机。阿明不想每次手工算指标,他把评估流程固定成一条“流水线”:加载模型 → 抽取图文嵌入 → 计算相似度矩阵 → 统计 R@K、mAP、F1、NMI → 输出成绩报告。
社区里现成的阅卷机很多。OpenAI 的 CLIP 仓库提供模型权重与零样本分类评估脚本;HuggingFace Transformers 里只需两行代码即可加载 CLIP 并抽取图文嵌入;clip_benchmark 等库一键跑完多数据集、多指标。工业界的做法则是把评估写成 CI(持续集成):每次模型更新自动重跑考卷,成绩不达标就禁止上线。
有了自动阅卷机,阿明的档案馆从“手工评卷”升级为“每周自动体检”。体检报告还能按类别拆解:哪类照片检索成绩差,说明摘要卡对这类语义记忆不足,下一步就该针对性地补数据或调温度系数。
- 逐位置精确率在第 k 个返回位置处,统计前 k 个结果里的相关命中比例。
- 相关标记rel(k) 表示第 k 个位置是否相关,相关为 1 否则为 0,只累加相关位置的 P(k)。
- 按相关数归一累加值除以总相关样本数,避免被长列表稀释,得到单个查询的 AP。
- 跨查询平均对所有查询的 AP 求平均,得到 mAP——排名质量的总分。
行业最佳实践:防作弊与科学选型
机器阅卷也有“作弊”风险。最典型的是数据泄漏:测试考卷里的图片(或其近重复版本)混进了训练数据,模型不是靠理解,而是靠“背答案”考出高分。阿明定下铁律:训练集与测试集必须严格隔离,凡是用过 Flickr30K/COCO 做训练的模型,不得再用同一份考卷宣称成绩。第二个风险是“偏科备考”:只在标准考卷上刷分,换一批真实场景数据就崩——这就是分布偏移。
科学的做法是“体检报告多看几项”。除了分布内成绩,还要看分布外(OOD)的落差:落差越大,说明模型只是记住了训练分布,而不是学到了真正可迁移的语义。
最后是选型:指标必须跟着业务场景走。做搜索引擎召回,优先看 R@10 与 mAP;做精准标签体系,必看 F1;做无监督去重归档,看 NMI/ARI 加轮廓系数;上线前再补一组 OOD 差距检查。阿明把这四条写成档案馆的《评估十诫》——从此每个模型在“入职”前,都要先过一遍这套全科体检。
- 分布内成绩在训练数据同分布的测试集上测得的准确率,是“熟悉的考场成绩”。
- 分布外成绩在经历过风格、背景、噪声变化的测试集上测得的准确率,是“陌生考场成绩”。
- 做差两者相减,差值越小说明泛化越稳,差值越大说明过拟合训练分布越严重。
AI 应用场景
电商多模态检索召回
阶段:模型部署与评估阶段
解决的问题:传统电商搜索只匹配标题文本,用户“以图搜图”时无法找到视觉相似但标题不同的商品。用 CLIP 类模型抽取商品图与商品文案的嵌入,再用 R@10 与 mAP 评估召回质量,能显著提升跨模态检索体验。这就像阿明给商品图与文案各写一张摘要卡,再考“凭图找文”。
具体案例:某服装电商把 500 万商品图与描述分别过 CLIP 编码器,构建统一向量索引;用户上传一张“奶油色针织开衫”照片,系统在 20 毫秒内返回前 10 个候选,评估报告显示 R@10 从旧版文本搜索的 0.42 提升到 0.78。
医学影像图文报告对齐
阶段:数据与评测体系建设
解决的问题:影像科报告与 X 光片之间缺乏自动关联手段。借鉴 ALIGN“海量噪声数据 + 对比学习”的思路,在弱标注数据上训练对齐模型,并用双向 R@K 评估图文匹配准确率,辅助医生检索历史报告——等于为影像与报告建立了一张专科“对照表”。
具体案例:某三甲医院将 60 万份“X 光片 + 报告”对用于训练轻量级对齐模型,评估遵循 COCO 式协议(i2t/t2i 双向、R@1/R@5/R@10),R@1 达 0.61,成功上线辅助诊断参考系统。
无监督档案聚类归档
阶段:数据处理与归档
解决的问题:企业知识库的图片与文档缺乏标签体系,人工打标成本高。使用预训练多模态嵌入加 KMeans 聚类,再用 NMI/ARI 与轮廓系数挑选合适的类别数,实现自动归档——正是阿明“不看标签自己归堆”的考题在工业界的翻版。
具体案例:某设计公司对 20 万张素材图抽取 CLIP 嵌入并聚类,NMI 0.83、轮廓系数 0.51,将素材自动分成 156 个主题堆,配合人工抽查即可上线内部素材库。
Python 演示
import numpy as npfrom sklearn.cluster import KMeansfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import (adjusted_rand_score, f1_score, normalized_mutual_info_score) rng = np.random.default_rng(42) def make_synthetic_data(n=600, dim=128): """生成模拟的图文配对嵌入: 同标签向量在语义空间中彼此靠近""" labels = rng.integers(0, 10, size=n) images = rng.normal(scale=0.6, size=(n, dim)) + labels[:, None] * 0.9 texts = rng.normal(scale=0.6, size=(n, dim)) + labels[:, None] * 0.9 return images, texts, labels def cosine_sim(a, b): """标准化后计算余弦相似度矩阵""" a = a / np.linalg.norm(a, axis=1, keepdims=True) b = b / np.linalg.norm(b, axis=1, keepdims=True) return a @ b.T def recall_at_k(sim, k): """每个查询在前k位是否召回配对正样本""" n = sim.shape[0] hits = sum(i in np.argsort(-sim[i])[:k] for i in range(n)) return hits / n def main(): images, texts, labels = make_synthetic_data() sim = cosine_sim(images, texts) for k in (1, 5, 10): print(f"Retrieval R@{k}: " f"i2t={recall_at_k(sim, k):.3f} " f"t2i={recall_at_k(sim.T, k):.3f}") clf = LogisticRegression(max_iter=500) pred = clf.fit(images, labels).predict(images) print(f"Classification F1: {f1_score(labels, pred, average='macro'):.3f}") km = KMeans(n_clusters=10, n_init=10, random_state=0) pred_km = km.fit_predict(images) nmi = normalized_mutual_info_score(labels, pred_km) ari = adjusted_rand_score(labels, pred_km) print(f"Clustering NMI: {nmi:.3f}, ARI: {ari:.3f}") if __name__ == "__main__": main()
images = rng.normal(scale=0.6, size=(n, dim)) + labels[:, None] * 0.9生成同标签彼此靠近的模拟嵌入,相当于给档案馆造一批“卡片”a = a / np.linalg.norm(a, axis=1, keepdims=True)按行做 L2 归一化,让余弦相似度只比方向不比长度return a @ b.T矩阵乘法一次性算完所有图文两两相似度hits = sum(i in np.argsort(-sim[i])[:k] for i in range(n))对每个查询取相似度降序前 k 个,判断配对正样本是否命中f1_score(labels, pred, average='macro')宏平均 F1,先算每个类再平均,避免多数类主导KMeans(n_clusters=10, n_init=10, random_state=0)固定类别数与随机种子,保证聚类结果可复现normalized_mutual_info_score(labels, pred_km)计算聚类结果与真实标签的 NMIadjusted_rand_score(labels, pred_km)计算 ARI,衡量两两配对的一致性
常见误区
误区小白拿到分类模型,第一反应就是看准确率。如果准确率 90%,就觉得模型很能打,可以直接上线。
正解准确率在类别不均衡时会严重失真——假如 90% 的样本是“非故障”,模型全部输出“非故障”就有 90% 准确率,却一个故障都抓不到。这就像档案馆里八成是体育照片时,闭眼贴“体育”标签也能得高分。必须同时看精确率、召回率、F1,必要时看 ROC-AUC。
为何常见:准确率最容易理解、最常出现在宣传材料里,新手自然把它当作第一直觉,等遇到长尾场景才意识到它会被多数类“绑架”。
误区同一篇文章里看到 R@10 比 R@1 高很多,就以为模型变强了,直接拿 R@10 当最大卖点。
正解对同一模型,R@10 ≥ R@1 是必然的——窗口放宽了,命中机会自然变多。正确姿势是固定考卷、固定 K 值再横向比较不同模型,并同时报告 R@1/R@5/R@10 与 mAP。就像考试改成“可翻书找 10 页”,分数高不代表记忆力强。
为何常见:数字大就好看,新手容易拿不同 K 的指标互相比大小,被“分母红利”误导。
误区聚类结果 NMI 0.9,就觉得系统把每件藏品都分到了正确类别,可以直接当分类结果用。
正解NMI 衡量的是分组与标签的“信息吻合度”,不保证能识别出标签的语义含义;聚类的用途恰恰是发现未知结构。0.9 的 NMI 只能说明分组结构和人工标注高度一致,堆内是否紧凑、堆间是否分离,还要看轮廓系数。就像两个实习生都把书分成三堆,分法“英雄所见略同”不意味着堆名正确。
为何常见:NMI 数值接近 1 让人误以为“等于分类准确率”,混淆了“与标签对齐”和“分类正确”两个概念。
误区用训练完的数据再测一遍,成绩漂亮,感觉模型已经掌握全部知识,就把报告写进 PPT。
正解训练集评估反映的是“记忆”而非“泛化”。模型见过训练样本甚至背下来,成绩会系统性虚高。严谨做法是训练/验证/测试三分离,并额外测分布外数据。好比学生拿做过的原题自测满分,考新题才知道真水平。
为何常见:训练集成绩唾手可得、数字漂亮,新手贪图方便,没意识到数据泄漏与过拟合会毁掉评估的可信度。
误区CLIP 在标准 benchmark 上零样本准确率很高,就直接部署到生产环境,结果真实场景效果崩了。
正解标准 benchmark 的分布与真实业务分布往往不同:真实数据可能有摄影风格、方言、低清晰度等偏移。上线前必须做分布偏移检查(分布内 vs 分布外的 Gap),并准备小样本微调或重排兜底。这就像阿明的卡片系统在“标准考卷”满分,进了读者的真实手机相册却认不出照片。
为何常见:标准数据集分数高带来信心,而真实场景的分布偏移看不见摸不着,直到用户投诉才暴露。
面试题
Q1. 在图文检索中,若正确文本恰好排在返回列表第 1 位,则本次查询的 Recall@1 记录为?
- A.记作一次命中,计入分子← 正确答案
- B.记作一次未命中,忽略
- C.记作零分,重新检索
- D.记作负分,惩罚模型
答案:A。Recall@K 的规则是每个查询若正确答案出现在前 K 位就记一次命中。正确答案排在第一位,必然位于前 1 个候选内,因此本次查询命中、计数加一。就像阿明拿着照片找文章,第一张翻开的卡片就是对的,当然算“找着了”。
Q2. 当正负样本数量极不平衡时,最不建议单独使用的分类指标是?
- A.F1 调和平均分数
- B.召回率 Recall
- C.准确率 Accuracy← 正确答案
- D.精确率 Precision
答案:C。样本极不均衡时,准确率会被多数类“绑架”——模型全猜多数类也能拿高分,但少数类一个都认不出。精确率、召回率与 F1 针对正类计算,不受总样本比例支配,AUC 也相对稳健,所以最不该单独用的是准确率。
Q3. 对同一模型的同一排序列表,Recall@5 与 Recall@1 的关系通常是?
- A.Recall@5 恒小于 Recall@1
- B.Recall@5 不小于 Recall@1← 正确答案
- C.两者结果必然完全相等
- D.两者计算结果毫无关联
答案:B。R@5 的判断窗口“前 5 个”包含了“前 1 个”的全部元素:只要正确答案在前 1 位,必然也在前 5 位。所以对同一排序列表,R@5 恒不小于 R@1。K 越大,窗口越宽、命中机会越多,这是定义使然而非模型变强。
Q4. 关于 NMI 指标,下列说法正确的是?
- A.NMI 越大分类一定越准
- B.NMI 衡量标签与聚类的互信息← 正确答案
- C.NMI 与类别标签含义无关
- D.NMI 只用于二分类的情况
答案:B。NMI 衡量聚类结果与真实标签的互信息,并以熵归一化取值 0~1。它反映“分组与标签的吻合度”而非“分类正确率”;NMI 对标签名不敏感,也适用于多类聚类,因此 A、C、D 均错误。
Q5. 为什么评估表示学习要用未参与训练的测试集,而不是训练集?
- A.训练集运算的速度更慢
- B.训练集存在过拟合虚高← 正确答案
- C.训练集数据量远远不够
- D.训练集格式与测试不同
答案:B。模型在训练集上会记住样本细节(过拟合),导致训练集成绩虚高。测试集从未参与训练,才能模拟真实新数据的表现。就像学生拿做过的原题考满分,不能证明掌握知识;数据泄漏正是指测试样本混入训练导致成绩失真。
Q6. CLIP 模型通过什么方式对齐图像与文本表示?
- A.拼接图文向量为单一表示
- B.对比学习拉近配对图文距离← 正确答案
- C.逐像素用文本回归图像
- D.用生成式翻译把文本变图
答案:B。CLIP 用对比学习训练:对一批图文对,拉近配对样本的嵌入距离、推远不配对样本。它不拼接向量、不做逐像素回归、也不是生成式翻译。训练目标就是让图文在统一语义空间中互相对齐。
Q7. ALIGN 方法与 CLIP 的主要区别在于?
- A.使用更大规模含噪数据← 正确答案
- B.完全舍弃了文本的编码器
- C.只处理单模态检索任务
- D.训练过程不需要损失函数
答案:A。ALIGN 与 CLIP 核心思想一致(对比学习对齐图文),区别在数据规模与质量:ALIGN 使用约十亿级、带噪声的图文对,用规模弥补噪声;CLIP 使用经过筛选的高质量数据。两者都保留图文双塔编码器和对比损失。
Q8. 以下哪些是表示学习评估中的常见风险?
- A.测试集与训练集发生数据泄漏← 正确答案
- B.只看平均分忽略分布细节← 正确答案
- C.检索评估只测一个单向← 正确答案
- D.增加测试图片数量提升指标
答案:ABC。测试集泄漏会使指标虚高;只看平均分可能掩盖长尾类别失效;只测单方向检索无法反映双向对齐质量,都是真实风险。而 D 选项“增加测试图片数量”只是换了考卷,模型能力不变,指标不会被提升,只会更稳定地暴露真实水平。
Q9. 关于分类指标的精确率与召回率,下列说法正确的有?
- A.精确率是预测正例中的真实正例比例← 正确答案
- B.召回率是真实正例中被预测出的比例← 正确答案
- C.两者在样本不均衡时都会失真
- D.F1 是精确率与召回率的调和平均← 正确答案
答案:ABD。精确率 = 预测正例中真实正例占比,召回率 = 真实正例中被预测出的占比,F1 是两者调和平均,这三项正确。C 错在样本不均衡时精确率与召回率本身依然有效,只是容易被误读,真正被“绑架”的是准确率。
Q10. 图文双向检索评估中,综合指标 R@K 通常如何得到?
- A.取文图双向检索结果的平均← 正确答案
- B.只取图像检索方向的数值
- C.只取文本检索方向的数值
- D.取两者之中较大的那个数值
答案:A。标准协议要求双向检索(i2t 与 t2i)都报告 R@K,综合指标通常取两者算术平均,避免模型只擅长单向。只报单方向会掩盖对齐缺陷,取最大值更是“报喜不报忧”,所以 A 正确。