想象一位经验丰富的侦探推开书房的门,目光扫过书架、桌面和地毯。有人问了他一个问题:“书架上那只红色皮球,旁边放着的印章是什么材质?”侦探没有立刻回答,而是把问题记在心里,重新观察现场——先看到红色皮球,又顺着皮球所在的位置找到印章,再将材质、颜色、位置等线索组合起来,最终给出答案。VQA(Visual Question Answering,视觉问答)要训练的正是这样一位“侦探”:它一边看懂图片,一边读懂问题,把两种信息在大脑中交叉比对,最后说出符合画面事实的答案。 本文的核心主线,就是用“侦探破案”这个生活场景贯穿始终。破案要读现场(图像特征)、听证词(问题编码)、锁线索(注意力机制)、拼证据(跨模态融合),还要练出稳定的破案水平(评估与优化)。我们会从基本概念讲到关键算法,再讲到工程实践,全程不堆术语,让零基础读者也能建立清晰的直觉。

岗位关联

掌握视觉推理能力,是迈向多模态 AI 工程师的关键一跃。理解 VQA 的完整链路后,你可以轻松迁移到图文搜索、跨模态内容理解、智能辅助问答等真实业务中,也让“让机器真正理解世界”从口号变成可落地的工程能力。

目录
  1. 可视化演示
  2. 推理基本概念
  3. VQA问题编码
  4. 视觉特征提取
  5. 跨模态融合
  6. 注意力机制
  7. 评估基准体系
  8. 工程优化策略
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示系统处理流水线、实时性能指标曲线及多方案对比分析,包含数据流转、吞吐延迟监控与方案评估。

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

系统可视化 处理流程:输入→处理→模型→输出 性能监控:实时指标 P=L×T

推理基本概念

一位侦探走进书房,他必须先明白自己的任务:看现场、听问题、给结论。如果连“破案”是什么都说不清,后续的一切技术都无从谈起。视觉推理的第一步,就是要框定任务边界——给定一张图像和一个自然语言问题,让机器给出正确的答案。这就是 VQA 的核心任务定义。

从技术视角看,视觉推理是一个典型的多模态问题。它同时涉及计算机视觉(看懂图像中的物体、空间、属性)和自然语言处理(理解问题的语义、意图、逻辑约束)。人的直觉很容易同时处理这两种信息,但机器需要把像素和文字映射到同一个数学空间里才能运算。

形式化地看,VQA 模型试图在给定图像和问题的条件下,找到概率最高的答案。我们用条件概率来描述这一过程:

回到侦探的比喻:图像是案发现场,问题是目击者的陈述,而答案就是侦探最终给出的结论。随着后续章节逐步展开,我们会看到这位侦探如何一步步从“看现场”进化到“综合推理”。

P(a^∣I,Q)=arg⁡max⁡a∈A  P(a∣I,Q)P(\hat{a} \mid I, Q) = \underset{a \in \mathcal{A}}{\arg\max} \; P(a \mid I, Q)
这个公式的意思是:在所有候选答案中,挑出最有可能同时匹配图像内容和问题语义的那一个。
  1. 条件概率符号$P(a \mid I, Q)$ 读作“在已知图像 $I$ 和问题 $Q$ 的前提下,答案 $a$ 出现的概率”。概率越高,说明答案与当前图文信息越吻合。
    P(a∣I,Q)P(a \mid I, Q)
  2. 候选答案集合$\mathcal{A}$ 是所有可能答案的集合,比如“红色”"5"“球”等,模型从中挑选。
    A={a1,a2,…,am}\mathcal{A} = \{a_1, a_2, \ldots, a_m\}
  3. 求最大概率$\arg\max$ 表示“使后面式子取最大值的那一项”,这里就是找出概率最大的答案 $\hat{a}$。
    a^=arg⁡max⁡a∈A  P(a∣I,Q)\hat{a} = \underset{a \in \mathcal{A}}{\arg\max} \; P(a \mid I, Q)

VQA问题编码

侦探在出发前,会先把目击者的话在脑中翻译成一条条清晰的线索。比如“你看到一只红色的球了吗”会被拆成“颜色=红”“物体=球”“数量=1”等要素。VQA 中,问题编码负责把原始文本转换为机器能计算的语义向量。

最简单的方式是词向量嵌入:把每个单词映射到一个稠密向量。比如“红”对应 $[0.8, -0.2, 0.5]$,“球”对应 $[0.1, 0.9, -0.4]$。这些向量的空间位置能刻画单词之间的语义相似性。但光有孤立词向量还不够,因为“球在书旁”和“书在球旁”的词相同,语义却不同。所以还需要 RNN 或 Transformer 等序列模型,来捕获单词的先后顺序。

我们可以用一个简化公式来表示问题的整体表示:对问题中的每个词取嵌入,再送入序列模型,得到整个问题的语义向量:

问题编码模块就像侦探的记录本:它把零散的证词整理成有逻辑的线索链。后续当“视觉特征”到来时,这条线索链将指导侦探把目光放到关键位置。

q=GRU(Wew1, Wew2, …, WewT)\mathbf{q} = \mathrm{GRU}\left( \mathbf{W}_e \mathbf{w}_1,\ \mathbf{W}_e \mathbf{w}_2,\ \ldots,\ \mathbf{W}_e \mathbf{w}_T \right)
这条公式把一句话逐词编码成一个固定长度的向量,作为“侦探脑中整理好的线索清单”。
  1. 词嵌入矩阵$\mathbf{W}_e$ 是一个映射矩阵,把单词的 one-hot 编码变成稠密语义向量。
    ei=Wewi\mathbf{e}_i = \mathbf{W}_e \mathbf{w}_i
  2. 序列建模$\mathrm{GRU}$ 是一种循环神经网络,按顺序读取每个词向量,逐步更新“记忆”。
    ht=GRU(et,ht−1)\mathbf{h}_t = \mathrm{GRU}(\mathbf{e}_t, \mathbf{h}_{t-1})
  3. 整体问题向量最后一步的隐状态 $\mathbf{q}$ 浓缩了整个问题的语义信息。
    q=hT\mathbf{q} = \mathbf{h}_T

视觉特征提取

侦探看现场时,不会盯住整间屋子不眨眼,而会快速扫视,把注意力放在门把手、脚印、书桌上的痕迹等关键细节上。VQA 模型同样需要从图像中提取有用的视觉线索,这一步就是视觉特征提取。

传统做法是使用 CNN 对整个图像做卷积,得到特征图。特征图可以理解为一个“浓缩版”的画面:每个位置都包含该区域的语义信息。现代 VQA 模型更常采用目标检测器,从图像中取出若干个候选区域,再对每个区域提取特征向量。这样,图像不再是一整块模糊的像素,而变成一组“物体卡片”——每张卡片记录一个区域的内容和位置。

这些视觉特征组成一个集合,通常表示为一个矩阵:

视觉特征提取把一张高分辨率图片压缩成若干张“线索卡”。后面章节中,这些线索卡将和问题线索卡进行交叉比对,最终完成推理。

V=[v1, v2, …, vK]∈RK×d\mathbf{V} = \left[ \mathbf{v}_1,\ \mathbf{v}_2,\ \ldots,\ \mathbf{v}_K \right] \in \mathbb{R}^{K \times d}
矩阵中的每一列 $\mathbf{v}_i$ 代表图像中一个候选区域的特征向量,$K$ 是区域数量,$d$ 是向量维度。这张“物体卡片集”就是侦探在现场收集到的物证清单。
  1. 区域特征向量$\mathbf{v}_i$ 表示第 $i$ 个图像区域的特征,例如“一个红色球体”区域对应的向量。
    vi∈Rd\mathbf{v}_i \in \mathbb{R}^{d}
  2. 特征矩阵把所有区域特征按列拼接成矩阵 $\mathbf{V}$,统一管理所有物证。
    V=[v1,v2,…,vK]\mathbf{V} = [ \mathbf{v}_1, \mathbf{v}_2, \ldots, \mathbf{v}_K ]
  3. 维度说明$K$ 为区域数量,$d$ 为每个特征向量的长度,通常为几百到上千。
    RK×d\mathbb{R}^{K \times d}

跨模态融合

侦探现在手里有两套材料:从问题整理的线索卡(问题向量)和从现场提取的物证卡(视觉特征)。跨模态融合要解决的问题,就是如何把这两种不同“语言”的材料放在同一张桌面上。

由于图像特征和文本特征来自不同的网络,它们的数值分布往往不同。因此融合的第一步通常是特征对齐:通过线性变换把两者映射到同一空间中。第二步是融合网络设计:可以选择拼接、逐元素乘、相加等方式组合两种特征。例如,一种被广泛使用的方案是将问题向量与视觉特征做逐元素乘,得到“问题感知”的视觉特征:

跨模态融合是侦探把证词和物证摆在一起比对的过程。如果侦探只记证词、不看物证,就会凭空臆测;只看物证、不听证词,就会被细节淹没。融合的好坏直接决定了推理的天花板。

zi=σ(Wqq⊙Wvvi+b)\mathbf{z}_i = \sigma\left( \mathbf{W}_q \mathbf{q} \odot \mathbf{W}_v \mathbf{v}_i + \mathbf{b} \right)
这里 $\odot$ 表示逐元素相乘,$\sigma$ 是非线性激活函数。融合后的 $\mathbf{z}_i$ 代表着“结合了问题的关注点之后,对第 $i$ 个图像区域的理解”。
  1. 线性变换$\mathbf{W}_q \mathbf{q}$ 把问题向量映射到与视觉特征一致的维度空间中。
    q′=Wqq\mathbf{q}' = \mathbf{W}_q \mathbf{q}
  2. 视觉变换$\mathbf{W}_v \mathbf{v}_i$ 对视觉特征做同样的空间映射,让两者可以“对话”。
    vi′=Wvvi\mathbf{v}_i' = \mathbf{W}_v \mathbf{v}_i
  3. 逐元素相乘$\mathbf{q}' \odot \mathbf{v}_i'$ 表示两个向量对应元素相乘,编码“问题与区域之间的互动”。
    mi=q′⊙vi′\mathbf{m}_i = \mathbf{q}' \odot \mathbf{v}_i'
  4. 激活函数与偏置加偏置 $\mathbf{b}$ 后通过 $\sigma$ 非线性变换,增强模型的表达能力。
    zi=σ(mi+b)\mathbf{z}_i = \sigma(\mathbf{m}_i + \mathbf{b})

注意力机制

侦探翻阅物证卡时,不会每一张都平均用力——他会先根据线索卡的指示,把目光集中到最关键的证物上。如果问题问“球是什么颜色”,侦探就不需要关注书的细节。这种“动态选择关键证据”的能力,在 VQA 中由注意力机制实现。

注意力机制计算的是“问题对每个图像区域感兴趣的程度”。我们通常用一个打分函数计算问题向量与区域特征之间的相似度,再通过 softmax 归一化成权重。最后对这些区域特征做加权求和,得到“问题感知的上下文向量”:

注意力机制相当于侦探的目光追踪器:权重高的区域就是侦探此刻凝视的物证。值得注意的是,注意力权重不仅服务于答案预测,还可以可视化——研究者把权重画在图上,就能直观看到“模型回答问题时在看哪里”,这是 VQA 可解释性的重要工具。

αi=exp⁡(q⊤Wavi)∑j=1Kexp⁡(q⊤Wavj),c=∑i=1Kαivi\alpha_i = \frac{\exp\left( \mathbf{q}^\top \mathbf{W}_a \mathbf{v}_i \right)}{\sum_{j=1}^{K} \exp\left( \mathbf{q}^\top \mathbf{W}_a \mathbf{v}_j \right)}, \qquad \mathbf{c} = \sum_{i=1}^{K} \alpha_i \mathbf{v}_i
$\alpha_i$ 就是第 $i$ 个区域的注意力权重,权重之和为 1。上下文向量 $\mathbf{c}$ 是“在问题指导下对整幅图最有信息量的汇总”。
  1. 注意力打分$\mathbf{q}^\top \mathbf{W}_a \mathbf{v}_i$ 计算问题与区域 $i$ 的匹配分数,分数越高越相关。
    si=q⊤Wavis_i = \mathbf{q}^\top \mathbf{W}_a \mathbf{v}_i
  2. Softmax 归一化$\frac{\exp(s_i)}{\sum_j \exp(s_j)}$ 将分数转为总和为 1 的概率分布。
    αi=exp⁡(si)∑j=1Kexp⁡(sj)\alpha_i = \frac{\exp(s_i)}{\sum_{j=1}^{K} \exp(s_j)}
  3. 加权汇总$\sum_{i=1}^{K} \alpha_i \mathbf{v}_i$ 用权重把区域特征融合成一个上下文向量 $\mathbf{c}$。
    c=∑i=1Kαivi\mathbf{c} = \sum_{i=1}^{K} \alpha_i \mathbf{v}_i

评估基准体系

侦探的水平如何,不能靠口碑,要靠在标准案件库上的破案率来评判。VQA 领域同样依赖大型数据集和统一指标来考核模型。最常见的评估指标是准确率(Accuracy),即预测答案与标准答案一致的比例:

不过仅看准确率会掩盖两类问题。第一是语言先验偏差:如果训练集中“有多少个”类问题大多答案是 2,模型可能不认真看图像就回答 2,从而获得虚高分数。第二是鲁棒性不足:换一种光照、遮挡或图像风格,模型准确率可能大幅下降。这提醒我们,评估一个视觉推理系统时,要同时考察其在分布外样本、对抗样本、常识反事实场景中的表现,而不只是盯着总准确率。

Acc=1N∑i=1N1[a^i=ai∗]\mathrm{Acc} = \frac{1}{N} \sum_{i=1}^{N} \mathbb{1}\left[ \hat{a}_i = a_i^* \right]
$N$ 是测试样本数,$\hat{a}_i$ 是模型预测的第 $i$ 个答案,$a_i^*$ 是人工标注的正确答案,$\mathbb{1}[\cdot]$ 为指示函数(条件成立取 1,否则取 0)。
  1. 指示函数$\mathbb{1}[x]$ 表示当 $x$ 为真时等于 1,否则等于 0。用于判断“这一题是否答对”。
    1[a^i=ai∗]\mathbb{1}[\hat{a}_i = a_i^*]
  2. 求和累加$\sum_{i=1}^{N}$ 把所有测试样本的正确次数累加。
    ∑i=1N1[a^i=ai∗]\sum_{i=1}^{N} \mathbb{1}[\hat{a}_i = a_i^*]
  3. 除以总数$\frac{1}{N}$ 将累加结果转为比例,得到最终准确率。
    Acc=1N∑i=1N1[a^i=ai∗]\mathrm{Acc} = \frac{1}{N} \sum_{i=1}^{N} \mathbb{1}[\hat{a}_i = a_i^*]

工程优化策略

最后,侦探要把一身的破案技巧从理论搬到实战中。实战环境资源受限、样本稀缺,需要用工程手段提效。第一个常用手段是数据增强:通过旋转、裁剪、颜色扰动等方式扩充训练图像,让模型见过更多“现场变体”。第二个是模型蒸馏:用一个大而强的教师模型指导一个小而快的学生模型学习,让压缩后的模型仍然保持不错的推理能力。

知识蒸馏的简化损失可以用两个损失项的加权和表示:学生模型既要学习真实标签,又要模仿教师模型的软输出分布:

工程优化的最后一步是部署落地:模型量化、剪枝、批处理等手段可以显著降低延迟。无论何种技巧,最终目标都是让视觉推理系统在算力有限的手机、摄像头、服务器上依然保持侦探般敏锐的判断力。

L=αLCE(y^s,y)+(1−α)⋅KL(pssoft ∥ ptsoft)\mathcal{L} = \alpha \mathcal{L}_{\mathrm{CE}}\left(\hat{y}_s, y\right) + (1 - \alpha) \cdot \mathrm{KL}\left( p_s^{\mathrm{soft}} \ \|\ p_t^{\mathrm{soft}} \right)
$\mathcal{L}_{\mathrm{CE}}$ 是学生与真实标签之间的交叉熵,$\mathrm{KL}$ 散度用于衡量学生与教师输出分布的差距。$\alpha$ 控制两者权重。
  1. 交叉熵损失$\mathcal{L}_{\mathrm{CE}}(\hat{y}_s, y)$ 衡量学生模型的预测与标准答案之间的差距。
    LCE(y^s,y)\mathcal{L}_{\mathrm{CE}}(\hat{y}_s, y)
  2. 教师软标签$p_t^{\mathrm{soft}}$ 是教师模型输出的“软化概率分布”,蕴含比硬标签更丰富的信息。
    ptsoft=softmax(zt/T)p_t^{\mathrm{soft}} = \mathrm{softmax}(\mathbf{z}_t / T)
  3. KL 散度$\mathrm{KL}(p \ \|\ q)$ 度量两个分布之间的距离,用来让学生逼近教师的输出风格。
    KL(pssoft ∥ ptsoft)\mathrm{KL}\left( p_s^{\mathrm{soft}} \ \|\ p_t^{\mathrm{soft}} \right)

AI 应用场景

医疗影像辅助诊断

阶段:视觉特征提取 + 跨模态推理

解决的问题:放射科医生阅读 CT 影像时,常需要反复对照影像与病历描述。传统工作流中,查询“右下肺是否存在磨玻璃结节”需要医生手动翻找影像序列,耗时且易遗漏。

具体案例:某三甲医院引入 VQA 辅助系统后,医生可直接输入自然语言问题:“左下叶靠近胸膜处是否有实性结节?”系统对 CT 影像提取区域特征,将问题与区域特征融合推理,定位可疑区域并给出“是/否/不确定”的结论,辅助医生优先复核高危区域。

智能驾驶场景理解

阶段:问题编码 + 注意力机制

解决的问题:乘客在自动驾驶汽车中提问“前方路口左转是否有行人?”传统感知系统只能输出检测框,无法直接回答语义化问题。

具体案例:某自动驾驶公司基于视觉推理模块,让车载系统将自然语言问题编码为语义向量,对多个摄像头画面做注意力加权融合,锁定“前方路口左转”区域的行人,在 200 毫秒内返回回答并提供证据区域的可视化标注,提升乘客的信任感。

无障碍视觉辅助

阶段:视觉特征提取 + 多模态融合 + 工程部署

解决的问题:视障人士拍摄周围环境后,最关心的是与自身安全相关的具体问题,如“我的水杯在桌上吗?”通用图像描述模型无法按需回答这类问题。

具体案例:无障碍应用“看见助手”内置轻量化 VQA 模型,用户在手机上拍摄房间照片并语音提问,模型通过知识蒸馏压缩到 20MB 以内,在端侧实时回答“桌上有一个红色水杯”,同时通过语音播报位置提示,帮助用户完成日常物体寻找任务。

Python 演示

python73 行
"""视觉推理迷你演示:一个基于规则的 VQA 示例从场景生成 -> 问题解析 -> 视觉特征提取 -> 推理回答"""import randomfrom dataclasses import dataclass, field COLORS = ['红', '绿', '蓝']SHAPES = ['球', '方', '帽']  @dataclassclass SceneObject:    color: str    shape: str    x: float    y: float  @dataclassclass VisualScene:    objects: list = field(default_factory=list)     def generate(self, num=10, seed=42):        random.seed(seed)        for _ in range(num):            self.objects.append(SceneObject(                color=random.choice(COLORS),                shape=random.choice(SHAPES),                x=random.uniform(0, 100),                y=random.uniform(0, 100),            ))     def extract_regions(self, color=None, shape=None):        """视觉特征提取:按颜色/形状筛选候选区域"""        return [obj for obj in self.objects                if (color is None or obj.color == color)                and (shape is None or obj.shape == shape)]  def encode_question(question):    """问题编码:从问句中解析出目标颜色与形状"""    target_color = next((c for c in COLORS if c in question), None)    target_shape = next((s for s in SHAPES if s in question), None)    return target_color, target_shape  def multimodal_reasoning(scene, question):    """跨模态融合推理:结合问题约束与视觉区域计数"""    color, shape = encode_question(question)    if color is None and shape is None:        return None, '问题未能识别,请包含颜色或形状关键词'    matched = scene.extract_regions(color, shape)    return len(matched), None  if __name__ == '__main__':    scene = VisualScene()    scene.generate()     test_questions = [        '画面中有多少个蓝色的球?',        '绿色的帽子数量是多少?',        '总共有几个球?',        '这张图里有猫吗?',    ]     for q in test_questions:        answer, error = multimodal_reasoning(scene, q)        if error:            print(f'问题:{q} -> {error}')        else:            print(f'问题:{q} -> 答案是 {answer}')
目的:用极简规则实现演示 VQA 的完整链路——场景生成(图像)、问题解析(问题编码)、区域筛选(视觉特征提取)、条件计数(多模态推理)。
  1. class VisualScene模拟“图像”:存储场景中所有物体的颜色、形状与空间位置。
  2. def generate(self, num=10, seed=42)随机生成物体布局,相当于构造一张测试图像。
  3. def extract_regions(self, color=None, shape=None)视觉特征提取模块,按条件筛选候选区域。
  4. def encode_question(question)问题编码模块,把自然语言问题解析为结构化查询条件。
  5. matched = scene.extract_regions(color, shape)跨模态融合的关键一步:将问题约束作用到视觉特征上。
  6. if error:处理冷启动场景:当问题超出词表时给出可理解的错误提示,对应真实系统中的未知问题兜底策略。

常见误区

误区我以为 VQA 就是把图片打一个标签,再用 NLP 处理问题文本,最后把两个结果拼在一起做判断。

正解VQA 的核心难点在于“跨模态交互”。图像和文本在模型内部必须互相引导、逐步对齐,才能回答“球在书旁边”这类需要联合空间与语义信息的问题。单纯堆叠两个分类器就像侦探只看物证清单和自己抄写的证词,却从不对照二者,自然得不出准确结论。

为何常见:初学时容易把多模态任务拆解成多个单模态子任务,忽略了模态间的相互依赖才是多模态的灵魂。

误区模型只要答对了问题,说明它一定真正“看懂了”图片,和人的理解是一样的。

正解VQA 模型本质上是模式识别和统计关联的产物。它可能在训练数据中发现“有多少个”类问题常常回答“两个”,于是不仔细看图像也输出“两个”。这种由语言先验驱动的回答,看似正确,实则是走捷径。就像侦探凭借经验猜出答案,却没有真正查看现场一样。

为何常见:神经网络在常见样本上表现好,容易让人误以为它获得了类人的因果推理能力。

误区测试集上准确率有 85%,说明模型已经很优秀,可以直接上线了。

正解VQA 数据集存在严重的不均衡问题:高频问题类型(如颜色、计数)占比大,模型只要掌握少数几类问题的规律就能拿到高分,但在低频问题上表现极差。正确做法是分层评估各类问题的准确率,并用鲁棒性测试验证模型是否真正依赖视觉信息。

为何常见:只看总体指标是人类评估系统的本能,但多模态任务必须拆开细看才能发现问题。

误区用教师模型给数据打标签,再让学生模型照着学,只要答案一样就完成了蒸馏。

正解知识蒸馏的关键在于让学生模型学习教师模型输出的“软概率分布”,其中包含模型对相似答案的模糊判断(如对“红色”和“深红色”的犹豫)。这种模糊性蕴含着比硬标签更丰富的知识,类似老侦探教新侦探时,不仅要讲结论,还要讲“为什么觉得这个线索可疑”。

为何常见:初学者容易只盯着分类是否正确,忽略了概率分布里的信息量。

面试题

Q1. 以下哪项最符合 VQA 任务的本质定义?

单选题 · easy

  • A.从图像中识别物体的类别标签
  • B.根据图像和问题生成并输出答案← 正确答案
  • C.对图像进行风格迁移与美化处理
  • D.对问题文本进行情感分类判断

答案:B。VQA 的核心是同时输入图像和问题两种模态,输出对应答案。A 只处理图像,D 只处理文本,C 则是图像生成任务。这道题考验多模态任务的基本理解。

Q2. 在 VQA 问题编码中,GRU 或 Transformer 的主要作用是什么?

单选题 · mid

  • A.把答案映射为概率分布
  • B.捕获问题中单词的顺序与依赖关系← 正确答案
  • C.提取图像中的边缘信息
  • D.计算注意力权重的矩阵乘积

答案:B。词嵌入只处理单个词语,而序列模型负责建模整句话的顺序和语义依赖关系。B 准确描述了该作用;A 是分类头的工作;C 属于视觉特征提取;D 是注意力机制的计算步骤。

Q3. 视觉特征提取中,用目标检测器提出区域特征的好处是什么?

单选题 · mid

  • A.提升图像的分辨率
  • B.让图像特征和文本特征直接相加
  • C.得到与问题无关的全局特征
  • D.获得聚焦于局部物体的细粒度语义特征← 正确答案

答案:D。目标检测器先定位物体再提取特征,能为推理提供“物体级”的细粒度区域特征。A 是图像处理而非特征提;B 相加需要特征对齐;C 与目标检测的“局部”思想正好相反。

Q4. VQA 模型容易产生语言先验偏差,以下哪些现象属于该问题?

多选题 · mid

  • A.训练集中“有多少个”问题大多数答案是 2,模型见这类题都答 2← 正确答案
  • B.模型完全不看图像就能答对大部分高频问题← 正确答案
  • C.图像中加入噪声后模型准确率显著下降
  • D.模型对所有问题都输出同一个答案向量

答案:AB。语言先验偏差指模型利用训练集的统计规律而非视觉信息作答。A 和 B 正好描述这种现象;C 反映的是鲁棒性问题;D 属于模型退化或训练失败,与先验偏差不同。

Q5. 跨模态融合中,特征对齐(Feature Alignment)的根本目的是什么?

单选题 · hard

  • A.让图像和文本特征的维度相等且分布可比← 正确答案
  • B.用更多图像数据扩充训练集
  • C.让模型可以同时输出多个答案
  • D.提高模型在云端部署时的吞吐量

答案:A。图像特征和文本特征通常来自不同网络,维度、数值范围都不同。特征对齐通过线性变换把二者映射到同一向量空间,使逐元素乘或拼接等融合操作有意义。C、D 与对齐无关。

Q6. 以下哪项是注意力权重在 VQA 中的直接作用?

单选题 · mid

  • A.替代损失函数参与训练
  • B.对图像区域做重要性加权,突出关键证据← 正确答案
  • C.增加图像的分辨率
  • D.将答案映射到候选词表

答案:B。注意力机制对每个区域计算权重,将关键区域的重要性放大并聚合为上下文向量。权重的可视化还能帮人类理解模型在“看哪里”。A、C、D 均与注意力机制的功能不符。

Q7. 常用 VQA 鲁棒性测试手段包括哪些?

多选题 · hard

  • A.对抗样本攻击与防御评测← 正确答案
  • B.改变光照和遮挡的分布外测试← 正确答案
  • C.去掉注意力模块直接观察准确率变化
  • D.反事实问题测试← 正确答案

答案:ABD。鲁棒性指模型在分布外、对抗或反事实等异常情况下的表现。A、B、D 都是典型测试手段;C 属于消融实验,目的是分析模块贡献,而非测试鲁棒性。

Q8. 在 VQA 评估指标公式中,指示函数 1[·] 的作用是什么?

单选题 · easy

  • A.计算两个向量的欧氏距离
  • B.对模型参数做正则化
  • C.判断单个样本的预测是否与真值一致← 正确答案
  • D.把答案嵌入映射到低维空间

答案:C。指示函数当条件成立时为 1,否则为 0,用在这里就是记录“这一题答对了没有”,再通过对所有样本求和取平均得到准确率。C 准确描述了它的作用。

Q9. 知识蒸馏训练学生模型时,教师模型提供的“软标签”为什么更利于学习?

单选题 · mid

  • A.软标签比硬标签更节省存储空间
  • B.软标签包含了类别间的相似度信息← 正确答案
  • C.软标签完全消除了分类误差
  • D.软标签用于裁剪网络通道

答案:B。软标签如“猫 0.8、狗 0.15、虎 0.05”蕴含类别相似度等暗知识,能让学生模型学会更细腻的边界判断。这与老侦探讲清推理过程比只给结论更有价值同理。

Q10. 工程部署 VQA 模型到端侧设备,常用的压缩优化手段有哪些?

多选题 · mid

  • A.模型量化降低参数精度← 正确答案
  • B.模型剪枝去除冗余通道← 正确答案
  • C.知识蒸馏用小模型逼近大模型← 正确答案
  • D.增加训练集图像的分辨率

答案:ABC。量化、剪枝、蒸馏是端侧部署的主流压缩手段,能显著降低模型体积和延迟。D 无法在部署阶段执行,且提高分辨率只会增加计算量,与压缩目标相反。