想象一个游戏:桌上摆着一张风景照,有人随手撕下几张不透明贴纸,啪地盖在照片上。你的任务很简单——不许揭开贴纸,只凭周围没被遮住的画面,猜出贴纸下面原本画着什么。刚上手你会觉得这是玄学:贴纸盖住一片森林,你怎么知道底下是树还是草?但玩久了你会发现,只要照片其他部分足够清晰,地面纹理、光影方向、远处山峦的轮廓,都会悄悄暗示答案。猜得准,恰恰说明你看懂了整张照片。 SimMIM(Simple Masked Image Modeling,简单掩码图像建模)就是让AI玩这个游戏。它随机遮挡一张图片的一部分——相当于贴纸——然后命令模型逐像素还原被遮住的内容。为了通过这场考试,模型被迫理解物体的轮廓、纹理规律和空间关系。更妙的是,这个游戏不需要任何人工标注,随便一张图都能玩,AI因此能在海量无标签图片上自学成才。等它玩熟练了,这双“火眼金睛”就能被请去干正事:图像分类、目标检测、语义分割。
掌握SimMIM,你就能理解视觉自监督预训练的核心范式之一,在实际项目中用无标签数据预训练骨干网络,从容完成分类、检测、分割等下游任务迁移。
可视化演示
本节配有交互动效(进入视口后自动加载,约 3KB)。
SimMIM掩码策略 1. 随机遮挡:大比例(60%)大patch(32x32)2. 高比例\u2192模型学全局语义,非局部插值3. 掩码token: [M]可学习嵌入,替换被遮挡patch1. 随机遮挡:大比例(60%)大patch(32x32)1. 随机遮挡:大比例(60%)大patch(32x32)2. 高比例\u2192模型学全局语义,非局部插值3. 掩码token: [M]可学习嵌入,替换被遮挡patch1. 随机遮挡:大比例(60%)大patch(32x32) 1...
核心思想
继续回到那场贴纸猜图游戏。你盯着被贴纸盖住的照片,眼睛扫过周围的草地、树干和远处的山峰,脑子里开始补全贴纸下面的画面。你之所以敢猜,是因为照片的其余部分提供了足够多的线索。SimMIM的设计者正是抓住了这个直觉:让AI挡住一张图的一部分,然后凭其余部分还原被挡住的内容。能还原得越逼真,说明AI对图像的理解越深刻。
在技术层面,SimMIM是一种自监督预训练方法。所谓自监督,就是不需要人类给图片打标签,模型自己和自己玩“问答游戏”:把图片随机遮住一些块,作为输入;把被遮住的原始像素,作为标准答案。训练数据可以是任何无标签图片——互联网上的照片、监控视频帧、医学影像,拿来就能用。一个简单的重建任务,却逼迫模型学习颜色、纹理、边缘、物体形状等丰富的视觉语义。
从整体上看,SimMIM的任务可以写成:给定经过掩码处理的图像,模型需要预测每个被遮挡块的原始像素。这个过程把所有信息都压缩进了骨干网络的参数中。
这就是SimMIM的全部游戏规则:贴上贴纸,让模型猜。规则越简单,“玩”出来的观察力反而越通用——因为模型没有偷懒走捷径,只能老老实实理解图像结构。
- 认识符号$\mathcal{M}$ 是所有被遮挡块的集合,$i$ 是其中某一块的位置。
- 输入构造$x_{\text{masked}}$ 是掩码处理后的图片,可见块保留原始像素,被遮挡块用特殊的掩码占位符填充。
- 前向预测$f_\theta(\cdot)$ 表示整个神经网络,网络的第 $i$ 个输出就是模型对被遮挡区域像素的预测。
掩码策略
贴纸怎么贴,直接决定游戏难度。如果只贴一小块,你瞥一眼周围就能猜出来,游戏太简单;如果贴纸盖住大半个画面,线索太少,谁也猜不出来。SimMIM的实验者像调游戏难度一样调了两个旋钮:掩码比例(贴纸面积)和掩码块大小(贴纸形状)。
实验结论很有意思:掩码比例大约50%时效果最佳。也就是说,一半的图片被遮住,只留一半给模型参考。为什么图像能承受这么高的遮挡率?因为自然图像有极强的空间冗余——天空旁边多半还是天空,桌面的木纹延续到贴纸下面还是木纹。模型不需要看到每一块,就能推测出整体的连续模式。相比之下,语言模型BERT只敢遮15%的文本,因为文字符号彼此独立、信息密度高,遮多了根本无法推断。
掩码块的大小同样关键。SimMIM默认把图像分成若干32×32像素的方形块,随机遮住其中一部分。块太小,比如4×4,贴纸像撒了一地芝麻,模型随便看邻居就能外插出来,难度太低;块太大,比如128×128,一张224×224的图只够遮三四个块,模型几乎等于盲猜。32×32是一个黄金平衡点。
贴纸贴得太多,游戏变成瞎猜;贴得太少,模型学不到东西。50%这个数字,是SimMIM用大量实验换来的“最佳游戏难度”。
- 划分图像把宽高为 $H \times W$ 的图像按块边长 $s$ 均匀切成网格,总块数为 $N$。
- 随机采样从 $N$ 个块中不放回地随机挑出 $|\mathcal{M}|$ 个作为掩码块,保证位置分布均匀。
- 计算比例掩码比例等于被遮挡块数除以总块数,SimMIM默认取 $r \approx 0.5$。
预测目标
猜图游戏还有一个隐藏问题:你要猜得多细?只说出“贴纸下面大概是片森林”很容易,但要你说出每一片叶子的具体颜色,难度立刻翻倍。SimMIM选择了最严格、最原始的答案要求——直接预测被遮挡区域每个像素的RGB数值。一个像素在RGB颜色空间里由红、绿、蓝三个通道的数值决定,取值范围都是0到255。模型要做的,是把贴纸下的每个像素、每个通道的值都报出来。
这个设计看似“笨”,实则巧妙。有些方法会把图像先压成离散的“视觉单词”,让模型做分类任务,像让AI做选择题;SimMIM则直接做回归,像是让AI默写答案。默写更难,但也更彻底——模型不能靠猜中选项蒙混过关,必须真正掌握像素级的细节规律。论文中还有一个可选操作:对目标像素做块归一化,即把每个块内的像素减去均值、除以标准差,信息等价但训练更平稳。不过实验显示,直接用原始像素配L1损失已经足够好,这体现了SimMIM“简单有效”的哲学。
从输出维度上看,预测目标天然捆绑了块形状:每个被遮挡块都要还原出块内全部像素的完整颜色信息。
要求越严格,学到的本领越扎实。SimMIM不搞“开卷考试”,直接让模型默写出被挡住的每一个像素,这份扎实正是它后续迁移能力强的根源。
- 块内像素数一个边长为 $s$ 的方形块中包含 $s \times s$ 个像素。
- 三通道扩展每个像素在RGB空间中由 $3$ 个数值描述,因此块的总数值量为 $3 \times s^2$。
- 输出对齐预测头输出的 $d_{\text{out}}$ 维向量,与该块 $s^2$ 个像素的真实RGB值逐元素一一对应,才能计算误差。
损失函数
猜图游戏需要一个裁判。你给出的答案和真实画面之间,差多少就要扣多少分。SimMIM的裁判非常简单:平均绝对误差(L1损失)。模型对每个被遮挡像素报一个值,裁判把这个值和真实值相减、取绝对值、再求平均。预测得越准,分数越小;训练的目标,就是把这个分数压到最低。
为什么用L1而不是更常见的MSE(均方误差)?MSE会把误差平方,相当于对“离谱的答案”加倍惩罚。这导致模型过度纠结那些特别亮的噪点、高光边缘等极端像素,反而忽略了平淡但重要的区域。L1是线性的,差10就是10,差100就是100,不会因为个别大误差扭曲整个学习方向。SimMIM的实验也证实,L1显著优于MSE。另一个细节是:损失只计算被遮挡区域。可见区域的像素本来就摆在模型面前,再算损失相当于让考生抄卷子,毫无意义。裁判只盯着被贴纸盖住的地方打分。
从形式上看,SimMIM的损失函数极其朴素,没有任何花哨的加权技巧,这是“简单有效”设计哲学最直观的体现。
裁判的评分标准越稳定,选手越清楚该怎么改进。L1让SimMIM的预训练过程极其平稳,几乎不需要调参就能收敛,这正是工业界最看重的特性之一。
- 逐元素绝对差对第 $i$ 个块,把预测向量 $\hat{x}_i$ 与真实向量 $x_i$ 的每个分量相减并取绝对值。
- 只统计掩码块求和符号的下标限定在 $\mathcal{M}$ 集合内,即可见块完全不参与损失计算。
- 求平均除以掩码块总数 $|\mathcal{M}|$,得到每个掩码块的平均误差,损失与掩码数量无关、便于对比。
网络架构
猜图的玩家需要两样东西:一双敏锐的眼睛,和一张能把细节讲清楚的嘴。SimMIM里,Swin Transformer骨干网络就是眼睛,负责从图像中提取各级特征;轻量预测头就是嘴,把高层特征翻译成具体的像素值。
Swin Transformer之所以被选为骨干,是因为它擅长处理图像的局部相关性和多尺度信息。它把图像切成一个个小patch,在窗口内做注意力计算,再用层级结构逐步合并相邻patch,让模型既能看清细小的纹理,又能把握全局的物体轮廓。SimMIM还有一个关键设计:把整个图像(包括被遮挡块的位置)全部输入骨干网络。剪掉图像的掩码块位置用可学习的掩码token占位,和可见块的token排成完整序列一起送进Swin。这样做保留了空间的连续性,Swin的窗口注意力可以利用掩码块周围的上下文。
预测头非常轻量,通常只有LayerNorm加一个线性层。骨干输出每个位置的深层次特征后,预测头做一次归一化和线性变换,直接映射到该位置的RGB像素值。没有复杂的转置卷积,没有单独的解码器,整个重建过程就在这一个线性层内完成——简单到令人惊讶。
眼睛负责看,嘴巴负责说。Swin骨干加上一层简单的线性投影,SimMIM用最少的零件组装出了一台精密的“看图说话机器”。
- 骨干编码Swin在每层对token序列做窗口注意力,得到逐层精炼的特征。
- 层归一化对最后一层特征 $h_i^{(L)}$ 做LN,把每个位置的向量拉回到标准尺度,稳定训练。
- 线性投影用一个全连接层把归一化特征映射到像素空间,输出即预测值。
对比MAE
同样是贴纸猜图游戏,业界另一个著名方法MAE(掩码自编码器)玩了完全不同的版本。SimMIM是捏着贴纸的轮廓、一边看周围一边想;MAE则是干脆把大部分贴纸连同画面一起撕走,只留下少数关键碎片,然后用一个专门的“脑补器”把缺失部分脑补出来。
两种策略的第一处差异在编码器输入:SimMIM把掩码token和可见token拼成完整序列,全量送入Swin骨干;MAE只把可见块送入编码器,掩码块在编码器之后才被脑补器处理。这意味着SimMIM的编码器一直“看着”完整图像,而MAE的编码器只能从稀疏的碎片中提取特征。第二处差异在预测头与损失:SimMIM用轻量线性层加L1损失直接回归原始像素;MAE则额外设计一个解码器做重建,并用MSE损失预测归一化像素。第三处差异在效率:MAE因为75%的token被丢弃,编码器计算量骤减,训练速度比SimMIM快不少;SimMIM结构上没有解码器,整体设计更简单,配合Swin这样的强骨干,微调后的精度在检测、分割等任务上往往更胜一筹。
两种方法没有绝对优劣:MAE适合计算资源受限、追求训练速度的场景;SimMIM适合追求下游任务准确率、愿意多花一些训练成本的项目。
两种玩法都练出了出色的观察力。SimMIM胜在简单和完整,MAE胜在速度和专注,理解它们的差异,你就能在真实项目中根据GPU和时间预算做出合理选型。
- 可见块分支位置 $i$ 不在掩码集合时,把该位置的图像块 $x_i$ 通过PatchEmbed转换为特征token。
- 掩码块分支位置 $i$ 被遮挡时,直接使用一个可学习的向量 $e_{\text{mask}}$ 占位,表示“这里有内容待还原”。
- 真实对比MAE的编码器只接收所有 $i \notin \mathcal{M}$ 的token,完全跳过掩码位置,这是两者最本质的架构差异。
迁移应用
在猜图游戏里练就的观察力,换个场景依然好使。SimMIM预训练结束后,预测头就没用了,真正值钱的是骨干网络——它已经学会从像素中提炼纹理、形状、语义的能力。下游应用时,只需要把预测头换成对应任务的头,再在带标签的数据上做微调,就能把观察力转化为生产力。
在图像分类任务上,SimMIM预训练的Swin骨干在ImageNet-1K上微调,Top-1准确率能达到87.1%,这个数字已接近甚至超过一些有监督方法。在目标检测任务上,预训练骨干在COCO数据集上微调后,比从零训练的模型有显著提升——因为模型早就知道“被遮住的地方可能是物体的延续”,所以更擅长从局部片段推断完整目标。在语义分割任务上,模型在ADE20K上的表现同样亮眼,说明学到的是逐像素级别的精细理解,而非模糊的全局印象。
所有这些任务共享一个公式:预训练(玩猜图游戏)→ 换任务头 → 微调。整个过程只消耗少量标注数据,这正是自监督预训练最大的工业价值——大多数公司没有天价的标注预算,却有海量未标记的原始图片。
从猜图游戏毕业的模型,带着一身“眼力”走进真实世界。它见过亿万张被遮住的图,知道如何凭蛛丝马迹还原全貌,这份经验让它在新任务上总是比从零学起的模型更快、更准。
- 取对数概率对模型预测的第 $c$ 类概率 $\hat{y}_{b,c}$ 取对数,真实类别处概率越接近1,此项越接近0。
- 乘真实标签$y_{b,c}$ 是one-hot标签,只有真实类别处为1,其余为0,因此只惩罚真实类别预测不准的样本。
- 批量平均对所有样本、所有类别求和后取平均,得到该批次的总损失。
AI 应用场景
医疗影像智能诊断
阶段:自监督预训练 + 下游微调
解决的问题:医疗影像的标注极度依赖资深医生,每张CT或X光片标注耗时数小时、成本高昂,普通医院根本攒不起大规模标注数据集。传统方法从零训练模型容易过拟合,精度不稳定。
具体案例:某三甲医院积累50万张无标注肺部CT影像。算法团队用SimMIM在这些原始影像上预训练Swin骨干,模型先学会“看CT图”——理解肺叶结构、血管走向、病灶纹理。之后仅用2000张医生标注的结节图像微调分类头,就达到了接近完全监督训练的效果,早期肺癌筛查的灵敏度提升12%。
工业视觉质检
阶段:预训练特征迁移 + 分类头微调
解决的问题:生产线上新增产品型号时,瑕疵样本往往只有几十张,且瑕疵种类快速变化。传统方式每次都要重新标注大量数据、从头训练模型,迭代周期长。
具体案例:某面板制造厂存有80万张历史质检图片(包含各类划痕、污渍、缺件),但标注率不足10%。工程师先用SimMIM在这批无标签图片上预训练骨干网络,再针对当前型号的少量缺陷样本微调一个轻量分类头。新产品导入时,只需100张标注图就能达到旧方案5000张标注图的检出率,新缺陷类型上线周期从两周缩短到两天。
遥感地物识别
阶段:自监督预训练 + 多任务微调
解决的问题:卫星遥感影像覆盖面广、场景多样,地表覆盖的标注需要专业测绘人员逐像素勾画,成本极高。不同地域的影像风格差异大,单一标注集很难泛化。
具体案例:一家地理信息公司用SimMIM在20万平方公里无标注的高分卫星影像上预训练骨干,学会区分植被、水体、建筑和裸土的纹理差异。随后在少量标注数据上微调,实现建筑物自动提取和道路分割,在非洲某国的土地规划项目中,将人工测绘工作量减少了70%。
Python 演示
import torchimport torch.nn as nn def random_mask(batch, num_patches, mask_ratio): mask = torch.rand(batch, num_patches) < mask_ratio return mask.float() class PatchEmbed(nn.Module): def __init__(self, in_ch=3, dim=64): super().__init__() self.proj = nn.Conv2d(in_ch, dim, kernel_size=4, stride=4) self.norm = nn.LayerNorm(dim) def forward(self, x): x = self.proj(x) x = x.flatten(2).transpose(1, 2) return self.norm(x) class SimMIM(nn.Module): def __init__(self, in_ch=3, dim=64, num_heads=4, depth=2): super().__init__() self.patch_embed = PatchEmbed(in_ch, dim) encoder_layer = nn.TransformerEncoderLayer( d_model=dim, nhead=num_heads, dim_feedforward=dim * 4, batch_first=True ) self.encoder = nn.TransformerEncoder(encoder_layer, num_layers=depth) self.mask_token = nn.Parameter(torch.zeros(1, 1, dim)) nn.init.normal_(self.mask_token, std=0.02) self.pred_head = nn.Linear(dim, in_ch * 16) def forward(self, x, mask): tokens = self.patch_embed(x) tokens = tokens * (1 - mask.unsqueeze(-1)) + self.mask_token * mask.unsqueeze(-1) feats = self.encoder(tokens) pred = self.pred_head(feats) return pred def simmim_loss(pred, x, mask, patch_size=4): B, C, H, W = x.shape x_patch = x.unfold(2, patch_size, patch_size).unfold(3, patch_size, patch_size) x_patch = x_patch.contiguous().view(B, C, -1, patch_size, patch_size) x_patch = x_patch.permute(0, 2, 1, 3, 4).reshape(B, -1, C * patch_size * patch_size) diff = (pred - x_patch).abs().mean(dim=-1) loss = (diff * mask).sum() / (mask.sum() + 1e-6) return loss def main(): torch.manual_seed(0) model = SimMIM(dim=64, depth=2) optimizer = torch.optim.Adam(model.parameters(), lr=1e-3) x = torch.randn(4, 3, 32, 32) num_patches = (32 // 4) ** 2 mask = random_mask(4, num_patches, 0.5) for step in range(10): pred = model(x, mask) loss = simmim_loss(pred, x, mask) optimizer.zero_grad() loss.backward() optimizer.step() print(f"step {step}: loss = {loss.item():.4f}") if __name__ == "__main__": main()
mask = torch.rand(batch, num_patches) < mask_ratio用均匀随机数生成二值掩码,True的位置即被遮挡块,模拟“随机贴纸”。self.mask_token = nn.Parameter(...)定义可学习的掩码token,它是模型表示“此处被遮挡”的占位符。tokens = tokens * (1 - mask) + self.mask_token * mask把被遮挡位置的patch嵌入替换成掩码token,构建完整的输入序列。self.encoder = nn.TransformerEncoder(...)用标准Transformer编码器模拟Swin骨干,处理完整token序列。simmim_loss` 中的 `(pred - x_patch).abs().mean(dim=-1)计算每个块的L1误差,对应SimMIM的核心损失。loss = (diff * mask).sum() / (mask.sum() + 1e-6)只对掩码区域的误差求平均,可见区域不参与监督。
常见误区
误区我一开始以为和BERT一样,掩码越多任务越难,模型被迫学的东西越多,所以把掩码比例调到70%甚至90%会更强。
正解SimMIM的实验明确显示,掩码比例在50%左右时预训练效果最好。遮得太多,可见线索太少,模型无法精确重建像素,只能瞎蒙;遮得太少,任务太简单,模型不需要理解图像结构就能“抄”出答案。猜图游戏既要靠线索又要靠推理,线索和推理的平衡点才是最佳难度。
为何常见:人们容易把“任务更难”等同于“学到更多”,却忽略了超过模型能力边界的难度只会让学习失效,这个直觉在不少机器学习场景里是反直觉的。
误区MAE很有名,我天然以为SimMIM也把被遮挡的块丢掉,只把可见块送进编码器,两者一模一样。
正解这是两者最关键的架构差异。SimMIM把掩码token和可见token拼成完整序列,全量输入骨干网络;MAE则完全丢弃掩码块,编码器只处理25%的可见token,重建任务交给后置的解码器。SimMIM全量输入保留了空间完整性,不需要解码器;MAE丢弃token大幅降低了计算量。混淆这点,会在讨论计算效率和重建性能时得出完全错误的结论。
为何常见:MAE名气太大,很多人读了SimMIM的标题就套用MAE的直觉,没有仔细看论文里的输入构造图和消融实验。
误区MAE在计算损失前会对每个块做像素归一化,我理所当然地以为SimMIM也必须这么做,否则训练不稳定。
正解SimMIM的默认做法是直接预测原始像素值,配合L1损失就能取得优秀效果。论文的消融实验显示,块归一化对结果的提升非常有限,甚至在某些配置下不必要。L1损失对像素数值范围不敏感,稳定性来自损失函数的鲁棒性,而非目标的归一化。
为何常见:MAE论文详细说明了逐块归一化的重要性,读者把这些设计细节错误地迁移到所有掩码图像建模方法上。
误区SimMIM的论文里处处是Swin,我就以为这个方法被绑定在Swin架构上,换了别的骨干就失效。
正解SimMIM是一个通用框架,可以用ViT、PVT等任何ViT变体作为骨干。论文选择Swin是因为它的层级局部注意力更适合重建像素级细节,实验也验证了不同骨干下的有效性。框架的核心是“随机遮挡+像素预测+L1损失”这一套规则,骨架可以按需替换。就像猜图游戏不挑玩家,谁都能来玩,只是观察力强的玩家得分更高。
为何常见:论文的实验全部围绕Swin展开,读者容易把“实验用到的骨干”误当成“方法唯一可用的骨干”。
面试题
Q1. SimMIM中“掩码”操作的含义是什么?
- A.删除图像中的噪声像素
- B.随机遮挡图像块并预测← 正确答案
- C.对图像做强增强变换
- D.将图像缩放到固定大小
答案:B。SimMIM的掩码是随机遮挡一部分图像块,把被遮挡位置排除在监督信息之外,让模型自行预测还原。A是图像去噪、C是数据增强、D是尺寸归一化,都与掩码建模的目标无关。
Q2. SimMIM的预测目标是什么?
- A.被遮挡区域的原始像素值← 正确答案
- B.图像的语义类别标签
- C.图像的高层特征向量
- D.图像的文字描述信息
答案:A。SimMIM要求模型直接回归被遮挡区域的原始RGB像素值,属于像素级重建任务。它不预测类别标签(那是分类)、不预测特征向量(那是对比学习)、更不涉及文字信息。
Q3. SimMIM默认使用的损失函数是哪种?
- A.交叉熵损失函数
- B.均方误差MSE损失
- C.平均绝对误差L1损失← 正确答案
- D.铰链损失Hinge
答案:C。SimMIM使用L1损失(平均绝对误差),对预测像素与真实像素逐元素求差取绝对值。L1对极端像素不如MSE敏感,训练更稳定。交叉熵用于分类任务,Hinge常见于SVM。
Q4. SimMIM实验中发现效果最好的掩码比例约为多少?
- A.约15%
- B.约35%
- C.约50%← 正确答案
- D.约75%
答案:C。SimMIM论文实验表明,掩码比例约50%时预训练效果最佳。15%是BERT文本掩码的常用比例;75%是MAE采用的掩码比例。图像空间冗余度高,50%既保留足够线索又保证了任务难度。
Q5. 与MAE相比,SimMIM在编码器输入上的关键差异是什么?
- A.使用卷积网络做编码器
- B.掩码token填充全量输入← 正确答案
- C.只将可见块输入编码器
- D.不使用编码器直接预测
答案:B。SimMIM用可学习掩码token填充被遮挡位置,把完整token序列全量送入编码器;MAE则完全丢弃掩码块,只把可见块输入编码器,掩码位置在解码器阶段才加入。这是两者最本质的架构区别。
Q6. 关于SimMIM,下列说法正确的有哪些?
- A.属于自监督预训练方法← 正确答案
- B.需要类别标签辅助训练
- C.掩码位置用掩码token占位← 正确答案
- D.可见区与掩码区都算损失
答案:AC。SimMIM是自监督方法,不需要任何人工标签;它用掩码token填充被遮挡位置后全量输入编码器;损失只作用于掩码区域,可见区域不参与监督。B把监督学习说成自监督,D把损失范围说错了。
Q7. SimMIM选择L1损失而不是MSE损失的主要原因是什么?
- A.L1计算量更小
- B.对波动更鲁棒且稳定← 正确答案
- C.是分类任务的标配
- D.不需要梯度计算
答案:B。L1对误差是线性惩罚,MSE会把误差平方放大,导致模型过度关注高光、噪点等极端像素。L1对像素值波动更鲁棒,训练过程更稳定。二者计算量相差无几,且L1不是分类任务标配,也需要梯度。
Q8. SimMIM预训练后可以支撑哪些下游任务?
- A.图像分类← 正确答案
- B.目标检测← 正确答案
- C.语义分割← 正确答案
- D.语音识别
答案:ABC。SimMIM学到的是通用视觉特征,可以迁移到图像分类、目标检测、语义分割等视觉任务。语音识别处理的是音频信号,文本处理则是NLP领域,不属于视觉骨干的迁移范畴。
Q9. 关于SimMIM与MAE的计算效率,下列说法正确的是?
- A.全量token输入计算量更大← 正确答案
- B.因掩码比例高计算量更小
- C.两者计算量完全相同
- D.MAE全量输入计算量更大
答案:A。SimMIM把包括掩码token在内的完整序列全量送入编码器,token数量是MAE编码器可见token数的数倍,因此计算量通常更大。MAE丢弃75%的token,编码器计算量大幅降低,但结构上多了一个解码器。
Q10. 关于掩码块大小,SimMIM实验表明哪些说法正确?
- A.块大小32x32是均衡选择← 正确答案
- B.块越大保留可见信息越少
- C.块太小让任务过于简单← 正确答案
- D.块大小与掩码比例须同步
答案:AC。SimMIM默认用32×32的掩码块,在224×224输入下取得最佳平衡。块太小,模型很容易从邻近像素外插,任务没有难度;B的说法混淆了块大小与掩码比例——在相同掩码比例下,可见面积由掩码比例决定,与块大小无关;D“须同步”没有依据。