视觉特征提取器-训练范式02-自监督-掩码图像建模01:MAE的Mask Vector【所有遮挡块复制同一个共享可学习向量】【初始化完全相同,预训练后仍为同一个参数向量】【各位置差异仅由位置编码提供】
MAE 中的 Mask Vector:从形状、初始化到预训练与推理1. Mask Vector 到底是什么?论文《Masked Autoencoders Are Scalable Vision Learners》的核心任务是:随机删除图片中的大量 patch,只让 Encoder 观察剩余 patch,再让 Decoder 重建被删除的 patch。MAE 使用一个特殊的掩码向量(mask vector)来告诉 Decoder:“这个位置原本存在一个 patch,但它的内容现在未知,需要预测。”论文将每个掩码标记(mask token)描述为共享的、通过学习得到的向量。同时,MAE 的 Encoder 只处理真实的可见图像块(visible patches),mask token 只在 Decoder 中出现。因此,首先要建立最重要的概念:maskvector不是缺失patch的内容,而是缺失patch的可学习占位符。\boxed{\text{mask vector 不是缺失 patch 的内容,而是缺失 patch 的可学习占位符。}}maskvector不是缺失patch的内容,而是缺失patch的可学习占位符。​2. Masked Patch、Mask Token 和 Mask Vector 的区别这三个概念不能混淆。被掩码图像块(masked patch)是原始图片中真实存在、后来被随机删除的 patch。例如原始图片有:[P0,P1,P2,P3,P4,P5,P6,P7][P_0,P_1,P_2,P_3,P_4,P_5,P_6,P_7][P0​,P1​,P2​,P3​,P4​,P5​,P6​,P7​]假设只保留P1P_1P1​和P3P_3P3​,那么其他 6 个 patch 都属于 masked patches。但在 Encoder 中,它们不是被替换成某个特殊向量,而是直接被删除。论文明确说明 Encoder 不使用 mask tokens。掩码向量(mask vector)则是模型真正保存的一个可训练参数,记为:m\mathbf mm掩码标记(mask token)可以理解为把这个m\mathbf mm复制到某个缺失位置后得到的 token。因此:一个maskvector→复制出很多masktokens\boxed{\text{一个 mask vector}\rightarrow\text{复制出很多 mask tokens}}一个maskvector→复制出很多masktokens​而不是每个 masked patch 都拥有自己独立的 mask vector。3. Mask Vector 的形状假设 Decoder 的隐藏维度为:DDD_DDD​那么从数学上看:m∈RDD\mathbf m\in\mathbb R^{D_D}m∈RDD​官方 MAE PyTorch 实现将它保存为:self.mask_token=nn.Parameter(torch.zeros(1,1,decoder_embed_dim))所以张量形状是:1×1×DD\boxed{1\times1\times D_D}1×1×DD​​官方 MAE 的 ViT-Base、ViT-Large 和 ViT-Huge 配置都采用 512 维 Decoder,因此这些默认模型中的 mask token 参数形状为:1×1×512\boxed{1\times1\times512}1×1×512​官方代码同时表明,ViT-Large 的 Encoder 维度为 1024,而 Decoder 维度为 512;Encoder 输出首先通过线性层映射到 Decoder 维度,然后才加入 mask tokens。这说明一个重要事实:maskvector属于Decoder表示空间,而不是Encoder表示空间。\boxed{\text{mask vector 属于 Decoder 表示空间,而不是 Encoder 表示空间。}}maskvector属于Decoder表示空间,而不是Encoder表示空间。​4. 为什么形状是[1, 1, 512]?可以把它拆成:[1, 1, 512] │ │ │ │ │ └── 一个 token 含 512 个特征 │ └────── 只有一个 mask token 参数 └───────── batch 维真正需要模型学习的是:m=[m1,m2,…,m512]\mathbf m=[m_1,m_2,\ldots,m_{512}]m=[m1​,m2​,…,m512​]也就是 512 个标量。如果一张图片有 147 个 masked patches,并不意味着模型学习:147×512147\times512147×512套独立参数。它只学习一个:m\mathbf mm然后重复使用。5. “Shared” 到底是什么意思?假设一张224×224224\times224224×224图片使用16×1616\times1616×16patch。patch 总数:L=22416×22416=14×14=196L=\frac{224}{16}\times\frac{224}{16}=14\times14=196L=16224​×16224​=14×14=196MAE 的典型 masking ratio 为 75%,因此:Lvisible=196×0.25=49L_{\text{visible}}=196\times0.25=49Lvisible​=196×0.25=49Lmasked=196−49=147L_{\text{masked}}=196-49=147Lmasked​=196−49=147论文的默认设置就是 75% masking ratio,并使用 512 维 Decoder。对于这 147 个缺失位置,模型不是学习:m1,m2,…,m147\mathbf m_1,\mathbf m_2,\ldots,\mathbf m_{147}m1​,m2​,…,m147​而是使用:m,m,…,m⏟147次\underbrace{\mathbf m,\mathbf m,\ldots,\mathbf m}_{147\text{ 次}}147次m,m,…,m​​所以共享(shared)的准确含义是:同一张图片的所有 masked positions、不同图片的 masked positions,都使用同一个可训练参数m\mathbf mm。6. Mask Vector 如何初始化?这里要区分“论文描述”和“官方代码实现”。论文说明它是可学习向量(learned vector),但方法部分并没有指定它必须按照什么概率分布初始化。官方 PyTorch 实现首先创建全零参数张量:self.mask_token=nn.Parameter(torch.zeros(1,1,decoder_embed_dim))随后在模型初始化函数中执行:torch.nn.init.normal_(self.mask_token,std=.02)因此真正开始训练时,每个维度近似满足:mj∼N(0,0.022)m_j\sim\mathcal N(0,0.02^2)mj​∼N(0,0.022)也就是说:创建时先是零张量,正式训练前再用标准差0.02的正态随机数初始化。\boxed{\text{创建时先是零张量,正式训练前再用标准差 0.02 的正态随机数初始化。}}创建时先是零张量,正式训练前再用标准差0.02的正态随机数初始化。​刚初始化时,这些数字没有“狗”“天空”“汽车”等视觉语义,它只是一个待优化的小随机向量。7. Mask Vector 在 Encoder 中出现吗?不出现。这是 MAE 与很多容易产生的直觉最不一样的地方。假设:[P0,P1,P2,P3,P4,P5,P6,P7][P_0,P_1,P_2,P_3,P_4,P_5,P_6,P_7][P0​,P1​,P2​,P3​,P4​,P5​,P6​,P7​]只保留:P1,P3P_1,P_3P1​,P3​Encoder 实际处理的是:[P1,P3][P_1,P_3][P1​,P3​]而不是:[m,P1,m,P3,m,m,m,m][\mathbf m,P_1,\mathbf m,P_3,\mathbf m,\mathbf m,\mathbf m,\mathbf m][m,P1​,m,P3​,m,m,m,m]论文明确采用非对称编码器—解码器(asymmetric encoder-decoder):Encoder 只处理 visible patches,而完整 token 集合只交给较轻量的 Decoder。这样既减少计算量,也避免 Encoder 在预训练阶段依赖下游完整图片中不存在的 mask tokens。

相关新闻

动态规划解LeetCode摆动序列问题与优化

动态规划解LeetCode摆动序列问题与优化

1. 问题背景与理解第一次看到LeetCode 376题"摆动序列"这个标题时,我脑海中浮现的是一条波浪形的曲线。这道题在动态规划分类中属于中等难度,但实际解题时需要跳出常规思维模式。题目要求我们找出数组中最长的摆动子序列长度,所谓摆…

2026/10/19 2:24:29 阅读更多 →
NEORV32 RISC-V处理器终极指南:构建可定制微控制器的完整解析

NEORV32 RISC-V处理器终极指南:构建可定制微控制器的完整解析

NEORV32 RISC-V处理器终极指南:构建可定制微控制器的完整解析 【免费下载链接】neorv32 🖥️ A small, customizable and extensible MCU-class 32-bit RISC-V soft-core CPU and microcontroller-like SoC written in platform-independent VHDL. 项目…

2026/10/16 16:26:53 阅读更多 →
StabilityMatrix终极指南:一站式管理20+主流AI绘画工具

StabilityMatrix终极指南:一站式管理20+主流AI绘画工具

StabilityMatrix终极指南:一站式管理20主流AI绘画工具 【免费下载链接】StabilityMatrix Multi-Platform Package Manager for Stable Diffusion 项目地址: https://gitcode.com/gh_mirrors/st/StabilityMatrix StabilityMatrix是一款革命性的跨平台AI绘画工…

2026/10/17 5:29:05 阅读更多 →

最新新闻

轻量级公式识别模型UniRec-0.1B:架构、9倍速推理与部署实战

轻量级公式识别模型UniRec-0.1B:架构、9倍速推理与部署实战

公式识别一直是文档数字化里最让人头疼的一环。你平时看论文、转电子教案、整理试卷,文字部分OCR都已经做得挺成熟,但一旦碰到积分公式、矩阵、分段函数,传统引擎基本就废了。最近我刷到一个开源项目,标题写得很直白:轻…

2026/10/19 2:24:38 阅读更多 →
Spring Boot电商商城系统从设计到部署:订单、购物车与后台管理实战

Spring Boot电商商城系统从设计到部署:订单、购物车与后台管理实战

这次我们来看一个非常典型的开源方向:基于 Spring Boot 的线上购物平台的设计与实现。这类项目在 GitHub 上很多,做成毕设、课程设计、或者拿来作电商系统原型都很合适。它的价值不在于技术有多新,而在于把商城主链路完整跑通了:商…

2026/10/19 2:24:38 阅读更多 →
AI写代码的“技术债”陷阱:边界、幻觉与防债实操

AI写代码的“技术债”陷阱:边界、幻觉与防债实操

1. 先聊几句:AI写代码这件事,我为什么会越用越慌我在某公司做了快八年的技术负责人,从去年开始,研发团队基本把AI编程助手当成了默认工具。新功能先让AI写一版,人再改,这个流程已经在好几个项目组里跑成了&…

2026/10/19 2:24:38 阅读更多 →
改进卷积模型的人脸性别与情感分类实践与思考

改进卷积模型的人脸性别与情感分类实践与思考

这题目一出,我当时的直观反应就是:又是一个把人脸识别和情感计算缝合起来的CNN改改进题。真正做进去之后才发现,题目里每一个词都不是白给的——"性别分类"和"情感分类"虽然都发生在同一张脸上,但它们在特征尺…

2026/10/19 2:24:38 阅读更多 →
影子模式实战:用真实流量安全验证数据库变更与全链路压测

影子模式实战:用真实流量安全验证数据库变更与全链路压测

如果只用一个字来概括近两年分布式系统改造里最值得关注的工程思路,我会选“影”字。它不是指某个具体框架,而是一类技术的统称:影子表、影子库、影子流量、Shadow Mode。今天这篇文章,我想把“影”这个字背后真正有价值的东西讲透…

2026/10/19 2:24:38 阅读更多 →
人形机器人产业链白皮书:制造业先行,算法决胜

人形机器人产业链白皮书:制造业先行,算法决胜

简介:2024人形机器人产业链白皮书是一份面向机器人领域研究者、产品经理、投资机构从业者的行业深度资料,内容系统覆盖宏观环境分析、产业链拆解、主流生产企业扫描、技术路线对比与市场投资建议等模块,能够帮助读者快速建立对人形机器人产业…

2026/10/19 2:23:38 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →