了解蒙面自编码器(MAE)如何革新自监督学习。探索MAE重建技术如何Ultralytics 性能与效率。
带掩码自编码器(MAE)是计算机视觉这一广阔领域中 一种高效且可扩展的 自监督学习方法。 作为一种 无需大量标注数据集即可训练高度参数化神经网络的方法,MAE 通过有意遮蔽输入图像中大面积的随机区域,并训练模型来重建 缺失的像素来工作。通过成功预测隐藏的视觉信息,网络本质上学会了对形状、纹理和空间关系的 深度语义理解。
该技术深受基于文本系统中掩码语言建模(MLM)成功经验的启发,但针对 图像数据的高维特性进行了调整。该架构采用了广受欢迎的 transformer 框架,采用非对称的 编码器-解码器结构。
MAE 的核心创新在于其处理效率。在训练过程中,输入图像会被划分为一个 由图像块组成的网格。 其中很大一部分(通常高达 75%)会被随机遮蔽并舍弃。 编码器(通常为 视觉Transformer ViT))仅处理 可见的、未被遮蔽的图像块。由于编码器完全跳过了被遮蔽的部分,因此所需的 计算和内存资源大幅减少,使得训练过程显著加快。
在编码器生成可见区域的潜在表征后,一个轻量级的解码器将接手工作。该 解码器接收经过编码的可见区域以及“掩码令牌”(缺失数据的占位符),并 尝试重建原始图像。由于解码器仅在此预训练阶段使用,因此可以 将其设计得非常小巧,从而进一步降低计算开销。 预训练完成后,解码器将被弃用, 而功能强大的编码器则会被保留下来,用于后续应用。
要全面理解MAE,了解它们与较早或更广泛的 深度学习概念有何不同会有所帮助:
由于MAE能够学习到视觉数据的极其稳健的表示形式,因此它们是构建复杂、 现实世界人工智能系统的理想起点。
一旦使用MAE方法对骨干网络进行了预训练,下一步就是对模型进行微调并部署,以 处理图像分类或 图像分割等特定任务。 现代云生态系统使 这一过渡变得无缝衔接。例如,团队可以利用 Ultralytics 轻松标注特定任务的数据集, 协调云端训练,并将生成的生产就绪模型部署到边缘设备或服务器上。这 消除了机器学习运维(MLOps)中通常涉及的大量 基础架构重复性工作。
虽然训练完整的MAE需要完整的transformer 补丁遮罩的核心概念 PyTorch tensor 轻松可视化。这个 简单的代码片段演示了如何从输入tensor随机选取可见补丁。
import torch
def create_random_mask(batch_size, num_patches, mask_ratio=0.75):
"""Generates a random mask to simulate MAE patch dropping."""
# Calculate how many patches to keep visible
num_keep = int(num_patches * (1 - mask_ratio))
# Generate random noise to determine patch shuffling
noise = torch.rand(batch_size, num_patches)
# Sort noise to get random indices
ids_shuffle = torch.argsort(noise, dim=1)
# Select the indices of the patches that remain visible
ids_keep = ids_shuffle[:, :num_keep]
return ids_keep
# Simulate a batch of 4 images, each divided into 196 patches
visible_patches = create_random_mask(batch_size=4, num_patches=196)
print(f"Visible patch indices shape: {visible_patches.shape}")
对于希望将强大的预训练视觉能力集成到工作流程中,却无需从头开始编写 架构的开发者而言,查阅内容丰富的 Ultralytics 是将 最先进的视觉模型应用于您独特挑战的绝佳起点。此外,诸如 TensorFlow 等主流框架,也提供了强大的生态系统,用于将前沿的 机器学习研究成果落地到可扩展的生产 环境中。