[{"data":1,"prerenderedAt":315},["ShallowReactive",2],{"content-query-zGuyjKagWt":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"cover":11,"type":12,"body":13,"_type":309,"_id":310,"_source":311,"_file":312,"_stem":313,"_extension":314},"/technology-blogs/zh/3015","zh",false,"","华为诺亚方舟实验室提出LocalMIM，局部重构自监督预训练3倍加速MAE","作者：王云鹤 ｜来源：知乎","2024-03-06","https://obs-mindspore-file.obs.cn-north-4.myhuaweicloud.com/file/2024/03/08/39cb9cea06534b8faa3be3a402a7215c.png","technology-blogs",{"type":14,"children":15,"toc":302},"root",[16,24,43,48,56,61,72,77,87,95,100,112,127,132,137,142,149,154,162,169,174,186,198,203,215,220,227,232,239,244,251,256,261,266,273,278,283,292,297],{"type":17,"tag":18,"props":19,"children":21},"element","h1",{"id":20},"华为诺亚方舟实验室提出localmim局部重构自监督预训练3倍加速mae",[22],{"type":23,"value":8},"text",{"type":17,"tag":25,"props":26,"children":27},"p",{},[28,30,36,38],{"type":23,"value":29},"**作者：**",{"type":17,"tag":31,"props":32,"children":33},"strong",{},[34],{"type":23,"value":35},"王云鹤",{"type":23,"value":37}," ｜",{"type":17,"tag":31,"props":39,"children":40},{},[41],{"type":23,"value":42},"来源：知乎",{"type":17,"tag":25,"props":44,"children":45},{},[46],{"type":23,"value":47},"不同于已有全部MIM模型仅在编码器顶层施加重构损失，我们首次将重构任务引入多个选择的局部层，并提出多尺度重构：较低层重构细尺度信息，较高层重构粗尺度信息。就ImageNet-1K上Top-1微调准确率而言，我们的LocalMIM分别以3.1倍、5.6倍、3.6倍和6.4倍的加速达到MAE，MaskFeat，SimMIM192和GreenMIM的最佳表现。我们的方法是架构无关的，未来可以应用到更多新的主干网络中。",{"type":17,"tag":25,"props":49,"children":50},{},[51],{"type":17,"tag":52,"props":53,"children":55},"img",{"alt":7,"src":54},"https://obs-mindspore-file.obs.cn-north-4.myhuaweicloud.com/file/2024/03/08/45001d233796401497d2701ee4f06f0d.png",[],{"type":17,"tag":25,"props":57,"children":58},{},[59],{"type":23,"value":60},"论文见：",{"type":17,"tag":25,"props":62,"children":63},{},[64],{"type":17,"tag":65,"props":66,"children":70},"a",{"href":67,"rel":68},"https://arxiv.org/pdf/2303.05251v1.pdf",[69],"nofollow",[71],{"type":23,"value":67},{"type":17,"tag":25,"props":73,"children":74},{},[75],{"type":23,"value":76},"MindSpore代码：",{"type":17,"tag":25,"props":78,"children":79},{},[80],{"type":17,"tag":65,"props":81,"children":84},{"href":82,"rel":83},"https://gitee.com/mindspore/hub/blob/master/mshub%5C_res/assets/noah-cvlab/gpu/1.8/localmim%5C_v1.0%5C_imagenet2012.md",[69],[85],{"type":23,"value":86},"https://gitee.com/mindspore/hub/blob/master/mshub\\_res/assets/noah-cvlab/gpu/1.8/localmim\\_v1.0\\_imagenet2012.md",{"type":17,"tag":25,"props":88,"children":89},{},[90],{"type":17,"tag":31,"props":91,"children":92},{},[93],{"type":23,"value":94},"引言",{"type":17,"tag":25,"props":96,"children":97},{},[98],{"type":23,"value":99},"近年来，从MoCo，SimCLR等对比式方法到MAE, BEiT等掩码图像建模（MIM）方法，视觉自监督表征学习的研究如火如荼。随着vision transformer的发展，MIM方法凭借其在下游任务中更为优越的微调性能而成为关注的焦点。现有的MIM方法通常训练成本很高，而实践中我们期望其能够从海量无标记数据（如网络上随机爬取的图像）中学习通用的知识，所以高昂的预训练成本限制了其工业落地。",{"type":17,"tag":25,"props":101,"children":102},{},[103,105,110],{"type":23,"value":104},"MIM方法的计算量在于编码器和解码器，由于解码器可以很小，已有的加速预训练的方法都通过",{"type":17,"tag":31,"props":106,"children":107},{},[108],{"type":23,"value":109},"降低编码器的计算量来加速编码过程",{"type":23,"value":111},"，可分为：",{"type":17,"tag":113,"props":114,"children":115},"ul",{},[116,122],{"type":17,"tag":117,"props":118,"children":119},"li",{},[120],{"type":23,"value":121},"编码器只处理可见patch，如MAE和GreenMIM；",{"type":17,"tag":117,"props":123,"children":124},{},[125],{"type":23,"value":126},"降低输入图像分辨率来减少总的patch，如LoMaR，UM-MAE和FastMIM。",{"type":17,"tag":25,"props":128,"children":129},{},[130],{"type":23,"value":131},"不同于已有的思路，我们转换视角，从表征学习过程本身来深入思考现有方法的不足。有理论[1]表明当我们对输入图像做片段划分并线性映射之后，由于映射过程的随机性，所获得的patch表征已经基本丢失patch之间的语义关联。vision transformer中的注意力机制通过后续patch之间的交互来学习出这种语义关联并获得比像素空间更优的表征空间。值得注意的是，处理patch之间关联的计算复杂度是O(N^2)的，所以模型想要较好地学到这种语义关联并非易事。现有全部MIM方法只在顶层引入重构任务，使得较低层无法获得直接的指导，从而只能通过缓慢的学习过程来学习patch表征及语义关联，拖累了整体的表征学习过程。尤其对于一些金字塔型主干网络，其较低层往往有着远多于顶层的patch（如Swin-224中3136（最底层）vs 49（顶层））。另一方面，实际上较低层在表征学习中扮演关键角色：",{"type":17,"tag":25,"props":133,"children":134},{},[135],{"type":23,"value":136},"1）良好学习的较低层可以将知识传递给较高层以促进其学习；",{"type":17,"tag":25,"props":138,"children":139},{},[140],{"type":23,"value":141},"2）在下游任务微调时，较高层通常快速适应到新任务中，而较低层变化较慢，需要在预训练时就得到充分学习（无论是NLP还是CV下游任务中学习率layer decay通常效果最佳）。为了更直观地展现模型不同层对patch间语义关联的学习程度，我们考察了不同层的query patch与key patch之间的标准化互信息（Normalized Mutual Information，NMI），如图3所示。",{"type":17,"tag":25,"props":143,"children":144},{},[145],{"type":17,"tag":52,"props":146,"children":148},{"alt":7,"src":147},"https://obs-mindspore-file.obs.cn-north-4.myhuaweicloud.com/file/2024/03/08/6f80920f25744eebaaf77247d33de1b0.png",[],{"type":17,"tag":25,"props":150,"children":151},{},[152],{"type":23,"value":153},"较高的NMI值意味着注意力强烈地依赖于query patch，如图3所示已有的很多经典模型（BeiT，SimMIM和MaskFeat）在较低层的注意力并不像顶层一样强烈地依赖于query patch。",{"type":17,"tag":25,"props":155,"children":156},{},[157],{"type":17,"tag":31,"props":158,"children":159},{},[160],{"type":23,"value":161},"方法",{"type":17,"tag":25,"props":163,"children":164},{},[165],{"type":17,"tag":52,"props":166,"children":168},{"alt":7,"src":167},"https://obs-mindspore-file.obs.cn-north-4.myhuaweicloud.com/file/2024/03/08/62827dfc4d7849d196768c3f3a62d64e.png",[],{"type":17,"tag":25,"props":170,"children":171},{},[172],{"type":23,"value":173},"LocalMIM框架图",{"type":17,"tag":25,"props":175,"children":176},{},[177,179,184],{"type":23,"value":178},"通过上面的分析，我们发现在掩码图像建模中较低层的学习很关键，然而",{"type":17,"tag":31,"props":180,"children":181},{},[182],{"type":23,"value":183},"目前所有MIM方法",{"type":23,"value":185},"都只显式地指导顶层的学习。为此，考虑到重构任务需要patch之间的语义推理才能完成，我们将重构任务引入多个局部层以显式地进行有意义的指导。实际上，特征蒸馏也可以显式指导多个局部层，但是特征蒸馏需要提前训练好的或动量更新的teacher网络，会显著增加计算量，而且简单的特征匹配比不上推理任务对学习语义关联带来的增益。进一步地，我们发现直接地将顶层的重构任务引入到多个局部层增益不明显，原因可能是多个不同的局部层需要学习不同粒度的信息。为此，我们考虑从原始输入中提取不同尺度的监督信号来指导多个局部层的学习。具体的，对于原始输入，为了获得监督信号，已有方法通常首先将x划分为不重叠的区域，该划分与构造编码器输入的划分对齐。然后使用恰当的特征描述算子（如像素标准化，HOG或预训练的codebook）提取每个区域的特征作为监督信号。我们定义此时监督信号的尺度为，通常可以认为在粗糙划分（p较大）下每个区域捕捉原始输入相对high-level的语义信息，比如目标的部分或整体形状，而精细划分（p较小）下每个区域捕捉相对low-level的语义信息，比如边、角或纹理。",{"type":17,"tag":25,"props":187,"children":188},{},[189,191,196],{"type":23,"value":190},"另一方面，视觉主干网络设计的很多工作已经表明从底层到高层特征图的尺度由粗到细对各种视觉任务（检测，分割和分类）都有增益，通常较低层学习细粒度的信息而较高层学习粗粒度的信息。为此，我们不妨从原始输入中构造多尺度的监督信号（选择不同的p）来分别用于多个局部层的重构，令较低层重构细尺度的监督信号而较高层重构粗尺度的监督信号。值得注意的是，",{"type":17,"tag":31,"props":192,"children":193},{},[194],{"type":23,"value":195},"我们的方法与“加速编码”方法兼容",{"type":23,"value":197},"，特别的我们采用MAE和GreenMIM中的做法，即编码器只输入可见patch。算法的整体流程如图2(a)所示。图2(b)中演示了某一特定尺度下的解码过程，解码器由三部分组成：推理部分（transformer blocks）+缩放部分（Deconvolution/Pool）+预测部分（MLP）。推理部分负责基于可见patch的表征推理被遮挡patch的信息；缩放部分是处理特征尺度与监督信号尺度不一致的情况，比如ViT这种柱状结构每层特征尺度不变而监督信号尺度是变化的，当不匹配时需要使用反卷积或池化操作进行上/下采样；预测部分负责整合放缩后的预测来作为最终输出。对于金字塔结构的模型，通常已经划分为多个stage，我们将重构任务用于每个stage的末端，对于柱状架构，我们参照金字塔架构的经验，选择部分层进行重构。",{"type":17,"tag":25,"props":199,"children":200},{},[201],{"type":23,"value":202},"总的来说，局部层多尺度重构（LocalMIM[2]）既能显式地指导较低层以加速整体表征学习，又能促进对输入图像的多尺度理解。而且，该方法是架构无关的，理论上与各种主干网络适配，可用于未来更先进的主干网络中。",{"type":17,"tag":204,"props":205,"children":207},"h3",{"id":206},"实验结果",[208],{"type":17,"tag":31,"props":209,"children":210},{},[211],{"type":17,"tag":31,"props":212,"children":213},{},[214],{"type":23,"value":206},{"type":17,"tag":25,"props":216,"children":217},{},[218],{"type":23,"value":219},"我们目前在柱状架构ViT以及金字塔架构Swin上验证LocalMIM的有效性，考察其在分类、检测以及分割中的表现，如表1，2和3所示。出于其简单性，我们只考察像素标准化和HOG两种特征描述算子。",{"type":17,"tag":25,"props":221,"children":222},{},[223],{"type":17,"tag":52,"props":224,"children":226},{"alt":7,"src":225},"https://obs-mindspore-file.obs.cn-north-4.myhuaweicloud.com/file/2024/03/08/95731d2833074cc59fe98a42bb55ba40.png",[],{"type":17,"tag":25,"props":228,"children":229},{},[230],{"type":23,"value":231},"表1.在ImageNet-1K上的Top-1微调准确率",{"type":17,"tag":25,"props":233,"children":234},{},[235],{"type":17,"tag":52,"props":236,"children":238},{"alt":7,"src":237},"https://obs-mindspore-file.obs.cn-north-4.myhuaweicloud.com/file/2024/03/08/ee000212a9fc4502a75970fa5555762d.png",[],{"type":17,"tag":25,"props":240,"children":241},{},[242],{"type":23,"value":243},"表 2. ADE20K上语义分割结果",{"type":17,"tag":25,"props":245,"children":246},{},[247],{"type":17,"tag":52,"props":248,"children":250},{"alt":7,"src":249},"https://obs-mindspore-file.obs.cn-north-4.myhuaweicloud.com/file/2024/03/08/c019946ac1344d809aa9f1c40a380e61.png",[],{"type":17,"tag":25,"props":252,"children":253},{},[254],{"type":23,"value":255},"表3. COCO上目标检测和实例分割结果",{"type":17,"tag":25,"props":257,"children":258},{},[259],{"type":23,"value":260},"从表1中可以看到，LocalMIM比已有模型显著更加高效。具体的，就ImageNet-1K上top-1微调准确率而言，LocalMIM分别以3.1倍和5.6倍的加速达到MAE和MaskFeat的最佳表现，以3.6倍和6.4倍的加速达到SimMIM192和GreenMIM的最佳表现。相较于其他模型，LocalMIM也以显著更少的预训练时长实现了可比较的表现。从表2和3中可以看到，在下游的检测及分割任务上，LocalMIM以显著更少的计算成本获得更优的表现。更多的消融实验及实施细节可见论文。",{"type":17,"tag":25,"props":262,"children":263},{},[264],{"type":23,"value":265},"除此之外，我们还做了一个有趣的实验，在训练过程中对选择的层进行梯度截断，即每阶段的参数只能接收来自该阶段重构任务的反传梯度，接收不到来自更高层的梯度，其结果如表4所示。",{"type":17,"tag":25,"props":267,"children":268},{},[269],{"type":17,"tag":52,"props":270,"children":272},{"alt":7,"src":271},"https://obs-mindspore-file.obs.cn-north-4.myhuaweicloud.com/file/2024/03/08/7f144cc0adc842a8bc46b8765b54b320.png",[],{"type":17,"tag":25,"props":274,"children":275},{},[276],{"type":23,"value":277},"表4.LocalMIM进行梯度截断的训练可以达到与全局反向传播相同的表现",{"type":17,"tag":25,"props":279,"children":280},{},[281],{"type":23,"value":282},"我们发现，即便没有全局的反向传播梯度只使用局部的监督梯度也能很好的指导主干网络每层的表征学习，这一方面展现了我们引入的局部监督任务的优越性，另一方面也展现了神经网络解耦训练的可能性。神经网络解耦训练能够训练任意深的网络而无须担心显存不够，而且也可以有效缓解梯度消失和爆炸问题。目前视觉领域常用的主干网络通常较浅，但未来也许会需要预训练非常深层的主干网络，可以作为进一步的探索。",{"type":17,"tag":284,"props":285,"children":287},"h2",{"id":286},"参考文献",[288],{"type":17,"tag":31,"props":289,"children":290},{},[291],{"type":23,"value":286},{"type":17,"tag":25,"props":293,"children":294},{},[295],{"type":23,"value":296},"[1] How to Understand Masked Autoencoders. Cao and Xu, 2022.",{"type":17,"tag":25,"props":298,"children":299},{},[300],{"type":23,"value":301},"[2] Masked Image Modeling with Local Multi-Scale Reconstruction. Wang et.al. CVPR 2023.",{"title":7,"searchDepth":303,"depth":303,"links":304},4,[305,307],{"id":206,"depth":306,"text":206},3,{"id":286,"depth":308,"text":286},2,"markdown","content:technology-blogs:zh:3015.md","content","technology-blogs/zh/3015.md","technology-blogs/zh/3015","md",1776506125313]