## 逆排列先恢复位置,像素答案仍然未知 ## 解释、算例与证据 # P21 · 解码器补位置,目标来自原图 解码阶段恢复位置,再预测内容;目标从原图来,误差只在隐藏集合比较。 图内标签与数值:P21 学习表示机制图,状态 2;解码端:所有位置加入 pᵢ;隐藏位置共用一个 mask 向量 M;h0+p0;M+p1;M+p2;h3+p3;M+p4;M+p5;M+p6;M+p7;M+p8;h9+p9;M+p10;M+p11;M+p12;M+p13;h14+p14;M+p15;4 个 h + 12 个 M;轻量解码器;ŷ0;ŷ1;ŷ2;ŷ3;ŷ4;ŷ5;ŷ6;ŷ7;ŷ8;ŷ9;ŷ10;ŷ11;ŷ12;ŷ13;ŷ14;ŷ15;各位置的像素预测(符号示意);原图目标 x;L = (1/12) Σ隐藏块 MSE(ŷᵢ, xᵢ);橙框:12 个计入 loss 的位置;预训练后留下编码器;重建用解码器不必进入下游系统。 4个编码结果和12个共享mask加位置线索进入解码器;输出是16个符号像素预测,橙框只标隐藏位置,原图小图为目标。 - 解码端:所有位置加入 pᵢ;隐藏位置共用一个 mask 向量 M - h0+p0 - M+p1 - M+p2 - h3+p3 - M+p4 - M+p5 - M+p6 - M+p7 - M+p8 - h9+p9 - M+p10 - M+p11 - M+p12 - M+p13 - h14+p14 - M+p15 - 4 个 h + 12 个 M - 轻量解码器 - ŷ0 - ŷ1 - ŷ2 - ŷ3 - ŷ4 - ŷ5 - ŷ6 - ŷ7 - ŷ8 - ŷ9 - ŷ10 - ŷ11 - ŷ12 - ŷ13 - ŷ14 - ŷ15 - 各位置的像素预测(符号示意) - 原图目标 x - L = (1/12) Σ隐藏块 MSE(ŷᵢ, xᵢ) - 橙框:12 个计入 loss 的位置 - 预训练后留下编码器;重建用解码器不必进入下游系统。4个编码结果和12个共享mask加位置线索进入解码器;输出是16个符号像素预测,橙框只标隐藏位置,原图小图为目标。 [查看对应图解状态](/#/l3-r2-p21/1)[查看完整图解](/course/figures/l3-r2-p21-1.html) ## 课堂讲述 来到解码阶段,编码结果和缺失位置的占位向量一起形成完整的位置集合。解码器根据这些信息预测像素,训练时拿原图中被隐藏的内容作目标。 于是答案的来源很清楚:我们先把它挡住,再让模型预测,不需要另外请人标“这是一只猫”。原始 MAE 的损失计算在被遮住的图块上,不能只靠复制已经看见的部分完成任务。 更重要的是,预训练结束后,我们关心的是留下的编码器表示;为重建服务的解码器不必成为后续分类或检测系统的一部分。这也解释了为什么编码端和解码端可以承担不同重量。接下来要问:重建完成得好,是否就说明留下的表示什么都适合? ### 补回位置与补回像素,是两件事 [独立阅读](/course/blocks/mae-shuffle-restore-worked-example.html) 用4个位置缩小算例。原位置是[0,1,2,3],随机顺序为[2,0,3,1],取前两项进入编码器。得到[z2,z0]后,解码阶段先加两个mask项:[z2,z0,M,M]。逆排列为[1,3,0,2],按它取值后成为[z0,M,z2,M]。 这时我们只是恢复了“谁在什么位置”。位置1和3仍未知,M不是正确像素;解码器要结合可见内容及各位置线索作预测,再与原图相应位置比较。 如果忘了逆排列,模型可能把正确形状放到错误坐标,loss也会对错位置。LAB 08的索引热身正好检查这个对应关系;后面的卷积重建才包含参数学习。不要把数组重排成功写成模型学会了补图。 #### 图示条件与公式约定 M 为共享学习向量,各位置还需位置线索;h 为相应可见块的编码结果(进入解码前可投影维度)。ŷ_i 是预测像素向量的符号占位,图中的原图小图是监督目标而不是重建结果。展示未归一化像素MSE;原论文亦比较逐块像素归一化目标。loss 的求和与平均仅在隐藏位置。 ## 只评价隐藏位置,别让已知真值稀释误差 已知位置、未知内容和用于比较的原图,是三种不同对象。 ### 只在隐藏位置算损失,分母也要一致 [独立阅读](/course/blocks/mae-masked-loss-denominator.html) 令隐藏集合为 $\mathcal M$,每个patch含P个像素值。一个清晰的口径是先在patch内平均,再在隐藏patch间平均:$L=|\mathcal M|^{-1}\sum_{i\in\mathcal M}P^{-1}\sum_{p=1}^{P}(\hat x_{ip}-x_{ip})^2$。16块中隐藏12块时,外层分母就是12。 若把已知可见像素直接拼回预测图,它们误差天然为零。此时对整图平均会使指标更小,却没有改善隐藏预测。图像面板可以为方便阅读拼回可见真值,但必须说明;数值则继续评价隐藏集合。 原论文还讨论对每个patch的像素做归一化后作为目标。比较不同实验时,要同时核对预测位置、像素缩放及归一化;同样叫“MSE”的数,分母和目标一变就未必可比。 ### 模拟问答:不知道的地方为何还有位置? [独立阅读](/course/blocks/mae-position-dialogue.html) 以下为备课用模拟对话,不是实际课堂记录。 **学生:**“遮住的地方没有像素,为什么解码器还有16项?” **教师:**“我们不知道内容,但知道问题要问哪个位置。可见位置放编码表示,隐藏位置放共同的mask占位,再给每项自己的位置线索。占位不是答案,位置告诉模型答案该落在哪儿。” **学生:**“既然原图有答案,为什么不直接把它送进去?” **教师:**“原图由损失端保存。若把隐藏像素作为输入,模型就可能复制,遮挡任务被取消了。看图时把编码器入口和损失比较端分开。” **学生:**“补得像原图,就算学会分类了吗?” **教师:**“那说明重建这件事做得更好。下一页再冻住编码器,另用标签做读出;只有测到那份结果,才能说明表示对分类有用。” ## 沿这个问题继续 先手算四位置逆排列与分母,再读模拟问答。理解位置后才进入LAB 08重建与误差图。 **出处:**[MAE 原论文 §3(2021)](https://arxiv.org/html/2111.06377v3)