想象一下,你走进一座美术馆,一位经验丰富的讲解员站在一幅画前。他扫一眼画面,便开口说:“一只橘色的猫正蹲在藤编垫子上,午后阳光从左侧洒落。”他不是在喊出画的名字,也不是在数画里有几个物体,而是把眼前复杂的视觉信息,组织成了一句通顺、自然、有重点的话——这就是图像描述生成(Image Captioning)要做的事。让 AI 像这位讲解员一样,看到图片后自动生成一句符合内容的自然语言描述。 这样的能力背后,藏着一套完整的“看图说话”流程:先有一双“眼睛”把图像提炼成结构化信息,再有一个“大脑”决定每个时刻该看哪里,最后由一张“嘴”把要点逐词讲出来。近年来,BLIP、OFA 等模型更是把多项任务放进一次训练里,让讲解员同时学会看画、看雕塑、看照片。本文就用这位讲解员的成长故事,带你一步步看懂图像描述生成的技术全貌。

岗位关联

对 AI 从业者而言,图像描述生成是理解视觉-语言模型落地范式的绝佳入口:它串起特征编码、注意力、自回归生成与多任务训练,是进入多模态 AI 领域的必修课。

目录
  1. 可视化演示
  2. 图像描述基础:讲解员的岗位职责
  3. 特征编码器:一双会提炼的眼睛
  4. 注意力机制:观众想看哪里,目光就移向哪里
  5. 语言解码器:一张会讲故事的嘴
  6. 统一模型训练:全能讲解员的培养之路
  7. 评估与发展:评委如何给讲解员打分
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示编码器提取图像特征后解码器自回归生成描述文本的过程、注意力机制使解码器在每步关注图像相关区域、以及从CNN到ViT到统一模型BLIP/OFA的演进路线。

本节配有交互动效(进入视口后自动加载,约 3KB)。

编码器-解码器架构 CNN/ViT编码器提取图像视觉特征 解码器自回归生成描述文本序列 Enc→Dec 编码特征向量引导文本逐词生成

图像描述基础:讲解员的岗位职责

讲解员的日常工作听起来很简单:站在画前,看几秒,然后说出一个完整句子。但仔细想就会发现,这远比“认出画里有什么”难得多。画像里有一只猫,一句合格的描述不能只说“猫”,还要说出猫在做什么、在哪里、周围环境如何。图像描述生成任务的定义正是如此——给定一张图片,模型输出一句通顺、贴合画面的自然语言描述。输入是像素矩阵,输出是词序列,这决定了它不同于图像分类或目标检测,而是站在“视觉理解”和“语言生成”的交汇处。

在这个任务里,模型首先要理解画面内容,接着必须把这些内容组织成符合语法的句子。这就好比讲解员不能只认得主角,还必须知道怎么把主角、动作、场景串成听众能听懂的话。对于 AI 从业者而言,这个任务最大的价值在于它提供了一条完整的“多模态闭环”:从图像到语义,再从语义到文本。无论是给照片自动配文、帮助视障人士“听懂”图片,还是为视频生成摘要,底层都是同一套看图说话的引擎。

从技术架构上看,几乎所有现代图像描述模型都遵循同一个思路:先用编码器把图像变成一组“画区摘要”,再用解码器逐步生成单词。这也正是讲解员的两大核心能力——会看、会讲。接下来的章节,我们会依次拆解这双眼睛、这个大脑焦点,以及这张嘴是如何炼成的。理解了它们,你就掌握了图像描述生成的主干。

特征编码器:一双会提炼的眼睛

讲解员并不是把整幅画平均地看一遍,他会在扫视过程中快速提炼关键信息:主色调是暖还是冷、画面中央是谁、角落里有什么小道具。图像描述模型的第一步也类似,需要把一张几十万像素的图片压缩成一组紧凑的数字向量,这个过程由特征编码器完成。早期模型常用 CNN 作为编码器,图片经过层层卷积与池化后,会得到一个特征图;把特征图按空间位置展开,就得到一个个“画区向量”。后来,Vision Transformer 等方法可以直接把图片切成小块网格,再并行编码,效果同样出色。

这些“画区向量”构成了模型的视觉记忆。有的方法使用区域特征,也就是先让目标检测器找出画面中的对象框,再对框内内容提取特征;有的方法使用网格特征,即把图片均匀切成固定大小的格子,逐格编码。区域特征更贴合“物体”概念,计算也更聚焦;网格特征则更完整地保留空间布局,不容易漏掉背景信息。实际系统中,两者经常融合使用——这就像讲解员既会关注主要人物,也不会忽略背景布置。

为了统一描述这些视觉记忆,我们可以把编码器的输出写成一组向量的集合:

有了这组特征集合,模型就拥有了“可检索的视觉记忆”。讲解员的眼睛完成了第一轮工作:不是记住每一个像素,而是提炼出足够支撑讲解的要点。下一步,大脑需要决定每讲一句话时该翻看哪一页记忆,这就是注意力机制登场的时刻。

V={v1,v2,…,vK},vi∈Rd\displaystyle \mathbf{V} = \{\mathbf{v}_1, \mathbf{v}_2, \ldots, \mathbf{v}_K\}, \quad \mathbf{v}_i \in \mathbb{R}^{d}
  1. 特征集合 V代表讲解员在脑海中建立起的“画区索引”,所有需要参考的视觉信息都在这里。
    V={v1,v2,…,vK}\displaystyle \mathbf{V} = \{\mathbf{v}_1, \mathbf{v}_2, \ldots, \mathbf{v}_K\}
  2. 单个向量 v\_i第 i 个画区的特征向量,也就是一小块区域的颜色、轮廓、质感等信息的浓缩数字摘要。
    vi\displaystyle \mathbf{v}_i
  3. 维度 d每个画区用多少个数字来描述,相当于给每块区域填写的“特征登记表”有多详细。
    vi∈Rd\displaystyle \mathbf{v}_i \in \mathbb{R}^{d}
  4. 区域数量 K整幅图被划分为多少个画区,K 越大,空间细节保留得越多,计算量也越大。
    K\displaystyle K

注意力机制:观众想看哪里,目光就移向哪里

出色的讲解员不会一口气背完整段导览词。他会一边讲,一边观察观众的表情和视线:说到“猫的耳朵”时,如果观众的目光投向画中猫的耳朵,他就会顺势多讲几句。这种动态调整注意焦点的能力,在图像描述模型里被称为注意力机制。解码器每生成一个词,都要先计算一遍“当前该看哪里”,再根据那里提取信息来选词。

具体来说,解码器在生成第 t 个词时会有一个内部状态(可以理解为它“已经讲过的内容摘要”),我们记作查询向量 $\mathbf{h}_t$。注意力机制把 $\mathbf{h}_t$ 与每一个画区向量 $\mathbf{v}_i$ 做比较,算出每个画区的“默契分”,再通过一个归一化指数函数把分数变成总和为 1 的权重。数学表达如下:

根据权重的使用方式,注意力又分为软注意力和硬注意力。软注意力对所有画区做加权求和,每个区域都“看了一点”,只是权重不同,整个过程可以端到端微调;硬注意力则更像“视线跳跃”,强行只选一个区域,不可导,通常需要强化学习来训练。实际项目中,软注意力因为稳定易训练而更常用。训练好的注意力权重还能画成热力图,直观展示模型描述“猫”时究竟在看哪块区域——这让 AI 的决策过程第一次有了可解释的“目光轨迹”。

讲解员的目光至此有了灵魂:它不再平均地扫过每个角落,而是根据当前要表达的内容精准聚焦。接下来,真正开口说话的工作交给了语言解码器。

αt,i=exp⁡(et,i)∑j=1Kexp⁡(et,j),et,i=ht⊤Wavi\displaystyle \alpha_{t,i} = \frac{\exp(e_{t,i})}{\sum_{j=1}^{K}\exp(e_{t,j})}, \qquad e_{t,i} = \mathbf{h}_t^{\top}\mathbf{W}_a\mathbf{v}_i
  1. 默契分 e\_t,i用当前讲解状态 $\mathbf{h}_t$ 与第 i 个画区向量 $\mathbf{v}_i$ 做内积,中间的可学习矩阵 $\mathbf{W}_a$ 负责学习“状态和画面如何搭配”的模式。
    et,i=ht⊤Wavi\displaystyle e_{t,i} = \mathbf{h}_t^{\top}\mathbf{W}_a\mathbf{v}_i
  2. 指数变换 exp把默契分变成非负的“热度值”,分数越高热度越强,同时为归一化做好准备。
    exp⁡(et,i)\displaystyle \exp(e_{t,i})
  3. 分母归一化将所有画区的热度值求和,每个画区热度除以总和,得到一组和为 1 的权重。
    ∑j=1Kexp⁡(et,j)\displaystyle \sum_{j=1}^{K}\exp(e_{t,j})
  4. 权重 α\_t,i第 t 步生成时模型对第 i 个画区的关注比例,权重越大,说明这个画区对选当前这个词越重要。
    αt,i\displaystyle \alpha_{t,i}

语言解码器:一张会讲故事的嘴

讲解员在开口时有一个明显特征:话是一个字一个字说出来的,而且他说出的每一个词,都受到前面已经说过的话的影响。如果他已经说了“a cat”,那么下一个词更像是“sits”而不是“banana”。图像描述模型的解码器也遵循同样的逻辑,这种逐个生成词的方式叫作自回归生成。每一步,解码器都依据三部分信息做决策:已经生成的词、编码器提供的视觉特征、当前注意力聚焦出的上下文向量。

经典的解码器使用循环神经网络(如 LSTM)来建模这种“边说边记”的过程。LSTM 有一个记忆单元,负责把之前说过的话压缩成内部状态,再结合当前视觉上下文预测下一个词。近年来的 Transformer 解码器则改用自注意力捕捉长距离依赖,效果更好。无论结构如何,解码器的输出层都维护着一个词表,每个词都会被映射成一个向量,最后通过 softmax 输出词表上每个词的概率。整句描述的概率可以写成每一步条件概率的连乘:

生成时还有一个实用技巧叫束搜索。简单贪心是每一步只选概率最大的词,但这样可能走进局部最优;束搜索则每步保留若干条候选路径,最终选出整体概率最高的句子。束宽越大,候选越多,结果越接近全局最优,但计算量也越高。调整束宽,还能在“稳妥的描述”和“多样的描述”之间取得平衡——这就像讲解员准备了几套讲解词,最后选择最顺口又最准确的版本。有了这张会讲故事的嘴,模型终于能开口说话了。

p(y∣V)=∏t=1Tp(yt∣y1:t−1,V)\displaystyle p(\mathbf{y} \mid \mathbf{V}) = \prod_{t=1}^{T} p(y_t \mid y_{1:t-1}, \mathbf{V})
  1. 完整描述 y讲解员最终说出的整段话,通常以特殊符号表示开始和结束。
    y\displaystyle \mathbf{y}
  2. 当前词 y\_t第 t 个时间步正要吐出的那个词,它只由“已经说过的话”和“画面信息”决定。
    yt\displaystyle y_t
  3. 历史词 y\_{1t-1}:从第一个词到第 t-1 个词的所有内容,也就是讲解员的“前情提要”。
    y1:t−1\displaystyle y_{1:t-1}
  4. 连乘符号 ∏把每个词的条件概率相乘,得到整句话的概率,训练时最大化这个概率,生成时按概率逐步采样。
    ∏t=1Tp(yt∣y1:t−1,V)\displaystyle \prod_{t=1}^{T}p(y_t \mid y_{1:t-1}, \mathbf{V})

统一模型训练:全能讲解员的培养之路

在真实的美术馆里,顶级讲解员不会只擅长油画。面对雕塑、摄影、装置艺术,他都能从容应对,秘诀在于他经历过多种展品的讲解训练,并且很多能力是相通的:观察细节、组织语言、控制节奏。早期的图像描述模型是“专才”,只看一个数据集、只做一个任务。而 BLIP、OFA 等现代模型选择了另一条路:多任务统一训练,让模型同时学会图像描述、图文检索、视觉问答等多种技能,从而获得更强的泛化能力。

多任务听起来像是把几个损失函数简单相加,实际操作远为讲究。以 BLIP 为例,它设计了三个精心配合的任务:图像描述任务教模型“看图说话”,图文对比学习拉近匹配图文对的距离、推开不匹配的图文对,图文匹配任务则训练模型判断一张图和一句话是否对应。三个任务共享同一个编码器-解码器骨架,却从不同角度强化了模型对图文关系的理解。OFA 则走得更远,把图像分类、描述、问答等多种任务的输入输出统一成同一种“序列到序列”格式,真正实现一个模型包打天下。

这些任务在训练时会组合成多任务损失:

这种培养方式与讲解员的成长路径不谋而合:在多类展品、多种讲解任务中反复打磨,掌握共通能力,再面对新画作时也能触类旁通。BLIP 和 OFA 等模型通过大规模图文对预训练,再在下游任务上微调,使得图像描述质量与多样性都获得了显著提升。它们证明了“全能型训练”比“单点专精”更能带来稳定的收益。

L=Lcap+λ1LITC+λ2LITM\displaystyle \mathcal{L} = \mathcal{L}_{\text{cap}} + \lambda_1 \mathcal{L}_{\text{ITC}} + \lambda_2 \mathcal{L}_{\text{ITM}}
  1. 描述损失 L\_cap教模型根据图像生成正确描述词序列的损失,是图像描述任务的主目标。
    Lcap\displaystyle \mathcal{L}_{\text{cap}}
  2. 图文对比损失 L\_ITC拉近匹配图文对、推远不匹配图文对,帮助模型建立全局对齐关系。
    LITC\displaystyle \mathcal{L}_{\text{ITC}}
  3. 图文匹配损失 L\_ITM让模型学会判断“这张图和这句话是否匹配”,提升细粒度理解能力。
    LITM\displaystyle \mathcal{L}_{\text{ITM}}
  4. 权重系数 λ控制对比与匹配任务对总损失的贡献比例,避免某个任务喧宾夺主。
    λ1,λ2\displaystyle \lambda_1, \lambda_2

评估与发展:评委如何给讲解员打分

讲解讲得好不好,总得有评价标准。美术馆会请观众打分,但机器模型不能随时找真人,于是研究者设计了自动评估指标。最经典的是 BLEU,它统计模型生成的描述与人工参考描述之间 n-gram(连续 n 个词)的重合度。BLEU 简单高效,但它只看词面重合,不考虑同义替换,有时模型换个说法分数就低了。后来出现的 CIDEr 改进了这一点,它利用 TF-IDF 对每个 n-gram 加权,让更罕见、更有信息量的词获得更高权重,并与人工判断的相关性更好。

CIDEr 的核心计算可以理解为比较两个“词语重要性向量”的余弦相似度:

然而,自动指标终究只是尺子,不是裁判。一句描述可能语法完美、和参考句 n-gram 重合度高,却漏掉了画面里真正重要的事物;反过来,一句包含合理推理的描述也许在指标上得分不高。因此研究者呼吁更多关注人工评测、多参考句设计,以及面向具体场景的定制评测。在应用层面,图像描述也面临不少挑战:如何让描述更有多样性而不是千篇一律的“a photo of”;如何捕捉细粒度的物体差异;如何从静态图片扩展到视频描述。这些问题,恰恰是下一代视觉-语言模型需要攻克的方向。

回顾讲解员的故事:他从提炼要点开始,学会调整目光,组织语言,接受多任务训练,再被各种尺子衡量。图像描述生成的技术演进,正是这样一位讲解员不断精进的过程。

CIDEr=1N∑n=1Ngn⋅cn∥gn∥ ∥cn∥\displaystyle \text{CIDEr} = \frac{1}{N}\sum_{n=1}^{N} \frac{\mathbf{g}_n \cdot \mathbf{c}_n}{\|\mathbf{g}_n\|\, \|\mathbf{c}_n\|}
  1. 向量 g\_n从人工参考描述中统计出的 n-gram 重要性向量,相当于评委心中的“标准答案关键词清单”。
    gn\displaystyle \mathbf{g}_n
  2. 向量 c\_n从模型生成描述中统计出的 n-gram 重要性向量,反映模型说出的词及其权重。
    cn\displaystyle \mathbf{c}_n
  3. 点积与模长两向量做点积后除以各自模长,得到余弦相似度,衡量两组关键词的“方向”有多接近。
    gn⋅cn∥gn∥ ∥cn∥\displaystyle \frac{\mathbf{g}_n \cdot \mathbf{c}_n}{\|\mathbf{g}_n\|\, \|\mathbf{c}_n\|}
  4. 多阶平均对不同长度的 n-gram 分别计算后求平均,兼顾词组层面的准确性。
    1N∑n=1N\displaystyle \frac{1}{N}\sum_{n=1}^{N}

AI 应用场景

视障辅助“看懂”照片

阶段:模型推理与文本生成

解决的问题:视障人士难以通过触觉和听觉理解图片内容。传统方式依赖志愿者人工描述,实时性和覆盖度都有限。AI 描述模型可以在几秒内生成一句自然语言描述,再通过语音合成朗读出来,让视障用户“听懂”朋友发来的照片。

具体案例:视障用户收到一张聚餐照片,模型生成“三个朋友围坐在餐桌旁,桌上摆着火锅和几盘蔬菜”,语音助手随即朗读这句描述,用户便能感知画面内容。这就是编码器提取特征、注意力聚焦人物、解码器逐词生成描述的完整链条在真实世界的落地。

电商平台自动生成商品描述

阶段:数据预处理与模型微调

解决的问题:电商平台上每件商品都需要吸引人的标题和详情描述,人工撰写耗时且风格不统一。传统模板只能填充属性,无法根据商品主图生成有场景感的话术。图像描述模型能以商品图为输入,自动生成候选描述文案。

具体案例:商家上传一张白色运动鞋的主图,系统结合图像特征生成多句描述:“这双白色运动鞋侧身带有流线型线条,适合日常通勤和轻运动。”运营人员从中挑选或微调即可上架,大幅提升商品上架效率。

视频平台自动生成摘要字幕

阶段:多帧特征融合与序列生成

解决的问题:短视频平台每天新增海量内容,人工为每个视频写摘要不现实。传统方法只能抽取画面关键帧或截取音频转写,难以形成连贯的自然语言概述。图像描述技术扩展为视频描述后,可从多个关键帧中提取特征并生成一句话摘要。

具体案例:一段美食制作视频被抽取 8 个关键帧,模型综合各帧的注意力焦点,生成摘要“博主在厨房里切蔬菜、炒菜,最后装盘展示成品”,平台将该摘要用于搜索结果与推荐理由,提升内容分发效率。

Python 演示

python41 行
import numpy as np class SimpleCaptioner:    def __init__(self):        self.vocab = ["<s>", "a", "cat", "sits", "on", "mat", ".", "<e>"]        self.vocab_size = len(self.vocab)        self.hidden_dim = 8        self.num_region = 4        self.Wa = np.random.randn(self.hidden_dim, self.hidden_dim) * 0.1        self.Wh = np.random.randn(self.vocab_size, self.hidden_dim * 2) * 0.1     def softmax(self, x):        e = np.exp(x - np.max(x))        return e / e.sum()     def attend(self, h, features):        scores = np.array([h @ self.Wa @ f for f in features])        alpha = self.softmax(scores)        context = sum(a * f for a, f in zip(alpha, features))        return alpha, context     def generate(self, features, max_len=6):        h = np.zeros(self.hidden_dim)        words = []        end_id = self.vocab.index("<e>")        for t in range(max_len):            alpha, context = self.attend(h, features)            logits = self.Wh @ np.concatenate([h, context])            probs = self.softmax(logits)            idx = int(np.argmax(probs))            if idx == end_id:                break            words.append(self.vocab[idx])            h = np.tanh(0.5 * h + 0.5 * context)        return " ".join(words) if __name__ == "__main__":    np.random.seed(42)    features = [np.random.randn(8) for _ in range(4)]    model = SimpleCaptioner()    print("生成描述:", model.generate(features))
目的:用一个极简模型演示图像描述的完整推理链路:注意力模块计算各区域权重,解码器结合“记忆状态”与“视觉上下文”逐词生成描述。
  1. scores = np.array([h @ self.Wa @ f for f in features])用当前状态 h 与每个区域特征 f 计算默契分,对应正文中的注意力打分函数。
  2. alpha = self.softmax(scores)将默契分归一化成权重,所有权重之和为 1,对应软注意力的归一化过程。
  3. context = sum(a * f for a, f in zip(alpha, features))按注意力权重对区域特征加权求和,得到模拟讲解员“当前视线焦点”的上下文向量。
  4. logits = self.Wh @ np.concatenate([h, context])把“已讲内容”和“正在看的内容”拼接起来,映射为词表上每个词的得分。
  5. idx = int(np.argmax(probs))选出概率最大的词作为本步输出,这就是最简单的贪心解码。
  6. h = np.tanh(0.5 * h + 0.5 * context)用新的视觉上下文更新“记忆状态”,让下一步能结合已经看过和说过的内容继续生成。

常见误区

误区给模型看一张图,它从预设标签里挑一个最可能的贴上去,就是图像描述了。图像分类和图像描述差不多,只是标签换成句子。

正解图像分类的输出是单个离散标签,而图像描述需要解码器逐步生成长度不定的词序列。模型不仅要识别画面里有什么,还要组织语序、处理语法、融合上下文,甚至关注不同区域之间的关系。就像讲解员不是在喊出画名,而是在组织一段有逻辑的话。

为何常见:很多初学者先接触分类任务,容易把所有视觉任务都想象成“标签匹配”的变体。

误区注意力热力图颜色越深,说明模型看得越准。注意力权重低,就代表模型没抓住重点,一定是模型出问题了。

正解注意力权重只是模型为生成当前词而分配的相关性分布,并不等价于“语义重要性”或“置信度”。模型可能为了凑一个语法成分而把注意力放在无关背景上,高权重区域也不一定就是人类理解的“关键物体”。正确的做法是把注意力图与生成词联合起来看,才能判断模型是否真的“看对了”。

为何常见:热力图直观可视,容易让人把分布强度误解为模型的理解精度。

误区BLEU 分数越高,说明生成的描述越好。训练和调参的目标就是尽量把 BLEU 刷高。

正解BLEU 只统计 n-gram 词面重合度,不衡量语义合理性,也不了解同义替换。一段描述可能 BLEU 很高,但读起来别扭或漏掉关键信息。CIDEr 加入 TF-IDF 加权后与人工判断相关性更好,但仍有局限。真正稳妥的做法是结合自动指标小规模人工抽查,迭代时才不至于被单一分数误导。

为何常见:自动指标可以量化、可复现,工程师习惯了“分数驱动”的调参方式,容易忽视指标本身的盲区。

误区多任务训练就是把描述、对比、匹配几个损失相加,模型自然就能全能。损失加得越多越强。

正解BLIP、OFA 等模型能成功,靠的是精心设计的共享骨架、任务之间的协同关系和数据配比。简单相加可能带来任务冲突、梯度失衡,甚至让模型“顾此失彼”。统一模型本身是系统工程,涉及接口设计、预训练策略、任务权重调节等细节,远不是一行损失相加那么简单。

为何常见:看到“多任务”字样,容易误以为只要把损失函数写在一起就能自动获得通用能力。

面试题

Q1. 图像描述生成(Image Captioning)的任务输出是什么?

单选题 · easy

  • A.一句自然语言描述文本← 正确答案
  • B.一个图像类别标签
  • C.一个目标检测框
  • D.一段音频识别结果

答案:A。图像描述任务要求模型输入图片后输出自然语言句子,而不是像分类那样输出单一标签、像检测那样输出边界框或像语音任务那样输出音频转写。可以说,讲解员的工作是“说出整句话”,而不是喊出画的名字。

Q2. 特征编码器在图像描述模型中的主要作用是什么?

单选题 · easy

  • A.把图像转换为特征向量集合← 正确答案
  • B.逐词生成描述文本
  • C.计算注意力得分
  • D.对生成结果打分

答案:A。编码器负责“看画”,把像素级别的图像浓缩为区域特征或网格特征集合;解码器负责“说话”,注意力连接两者并动态聚焦。逐词生成、注意力打分和结果评估都不是编码器的职责。

Q3. 注意力机制主要解决了图像描述中的哪个核心问题?

单选题 · mid

  • A.让解码器每步聚焦图像相关区域← 正确答案
  • B.提升输入图像的分辨率
  • C.减少训练数据量
  • D.缩小词表规模

答案:A。解码器生成不同词时需要查看图片的不同位置,比如说“猫”时看猫,说“垫子”时看垫子。注意力机制通过权重分配实现这种动态聚焦。它不改变图像分辨率,也不减少数据或词表。

Q4. 关于软注意力机制,下列说法正确的有?

多选题 · mid

  • A.对所有区域做加权求和← 正确答案
  • B.对区域响应做最大池化
  • C.权重由归一化指数函数得到← 正确答案
  • D.每个区域要么全程使用要么不用

答案:AC。软注意力对所有区域计算权重并加权求和,权重用 softmax 归一化,整个过程可导。最大池化是另一种特征聚合方式,不属于软注意力;D 描述的是硬注意力的“全选或全不选”特性。

Q5. 自回归生成的含义是什么?

单选题 · mid

  • A.每步用已生成的词预测下一个词← 正确答案
  • B.所有词一次性并行生成
  • C.用分类器直接输出完整句子
  • D.完全依赖强化学习探索

答案:A。解码器按时间步逐词生成,当前步的输入包含上一步的输出,这种“自己生成的内容作为下一步输入”的方式就是自回归。并行生成、分类器直出完整句子都与主流的自回归范式不符。

Q6. 束搜索(Beam Search)在图像描述生成中的主要目的是什么?

单选题 · hard

  • A.每步保留多条候选路径以提升整体质量← 正确答案
  • B.完全随机采样以保证描述多样性
  • C.扩大词表覆盖更多生僻词
  • D.降低训练阶段的计算开销

答案:A。束搜索在每一步保留若干个概率最高的候选序列,最终挑选整体得分最高的句子,避免贪心解码陷入局部最优。它主要用于推理阶段,不是随机生成,也不直接处理词表或训练开销。

Q7. BLIP 与 OFA 等统一模型的共同策略包括哪些?

多选题 · hard

  • A.多任务联合预训练共享参数← 正确答案
  • B.用统一接口同时处理图像与文本← 正确答案
  • C.完全丢弃解码器只保留编码器
  • D.通过对比与匹配任务增强图文对齐← 正确答案

答案:ABD。两类模型都强调多任务预训练、统一接口和图文对齐。BLIP 用描述/对比/匹配三个任务共享骨架,OFA 把多种任务的输入输出统一为序列到序列。它们都保留了解码器来完成生成任务,C 与事实相反。

Q8. CIDEr 指标相比 BLEU 的主要改进是什么?

单选题 · mid

  • A.引入 TF-IDF 对 n-gram 加权← 正确答案
  • B.只衡量语法正确性
  • C.不需要人工参考描述
  • D.直接评估图像颜色分布

答案:A。CIDEr 对 n-gram 做 TF-IDF 加权,使罕见且有信息量的词更重要,从而与人工判断的相关性更好。它仍然需要参考描述,不衡量语法,也完全不管图像颜色,而 BLEU 只是简单统计词面重合。

Q9. 为什么机器自动评估分数高不代表描述真的很好?

单选题 · hard

  • A.n-gram 重合只反映表面相似,不反映语义质量← 正确答案
  • B.参考描述是唯一且完美的
  • C.模型没有使用注意力机制
  • D.解码过程不会产生任何语法问题

答案:A。BLEU 等指标基于词面 n-gram 重合,模型可以生成与参考句用词相似但不合理、漏关键信息的描述并获得高分。参考句并非唯一,注意力与语法问题都可能存在,因此必须结合人工评测判断真实质量。

Q10. 图像描述生成当前面临的主要挑战有哪些?

多选题 · hard

  • A.细粒度视觉差异难以准确描述← 正确答案
  • B.描述结果单一缺乏多样性← 正确答案
  • C.长尾概念识别能力有限← 正确答案
  • D.输出永远是固定长度的向量

答案:ABC。细粒度差异(如不同猫品种)难以用词精确描述;模型容易倾向于生成安全而重复的句子,缺乏多样性;长尾概念在训练数据中罕见,识别和描述都困难。而输出是自然语言句子,长度不固定,因此 D 错误。