Узнайте, как маскированные автоэнкодеры (MAE) революционизируют самообучение. Узнайте, как реконструкция с помощью MAE повышает производительность и эффективность Ultralytics .
Маскированные автокодировщики (MAE) представляют собой высокоэффективный и масштабируемый подход к самообучению в рамках более широкой области компьютерного зрения. Введенные в качестве метода обучения сильно параметризованных нейронных сетей без необходимости использования обширных наборов данных с метками, MAE работают путем намеренного скрытия большой случайной части входного изображения и обучения модели реконструкции пропущенных пикселей. Успешно предсказывая скрытую визуальную информацию, сеть по сути приобретает глубокое семантическое понимание форм, текстур и пространственных отношений.
Эта методика в значительной степени основана на успехе моделирования языка с маскировкой в текстовых системах, но адаптирована к высокоразмерному характеру изображений. Архитектура построена на базе широко распространенного фреймворка Transformer и использует асимметричную структуру «кодер-декодер».
Основная инновация MAE заключается в эффективности обработки. Во время обучения входное изображение делится на сетку фрагментов. Значительная часть этих фрагментов (часто до 75%) случайным образом маскируется и отбрасывается. Кодер, как правило, представляющий собой Vision Transformer (ViT), обрабатывает только видимые, немаскированные фрагменты. Поскольку кодер полностью пропускает замаскированные участки, он требует значительно меньше вычислительных ресурсов и памяти, что делает процесс обучения чрезвычайно быстрым.
После того как кодер сгенерирует скрытые представления видимых фрагментов, работу принимает на себя упрощенный декодер. Декодер получает закодированные видимые фрагменты вместе с «маркерными токенами» (заполнителями для отсутствующих данных) и пытается восстановить исходное изображение. Поскольку декодер используется только на этапе предварительного обучения, его размер можно свести к минимуму, что позволяет еще больше сократить вычислительные затраты. После завершения предварительного обучения декодер отбрасывается, а мощный кодер сохраняется для последующих задач.
Чтобы полностью понять MAE, полезно понять, чем они отличаются от более старых или более общих концепций глубокого обучения:
Поскольку модели MAE обучаются невероятно устойчивым представлениям визуальных данных, они являются идеальной отправной точкой для создания сложных реальных систем искусственного интеллекта.
После предварительного обучения базовой модели с использованием подхода MAE следующим шагом становится ее тонкая настройка и развертывание для конкретных задач, таких как классификация изображений или сегментация изображений. Современные облачные экосистемы делают этот переход беспроблемным. Например, команды могут использовать Ultralytics для простого аннотирования наборов данных для конкретных задач, организации обучения в облаке и развертывания полученных готовых к производственному использованию моделей на периферийных устройствах или серверах. Это избавляет от большей части рутинной работы по настройке инфраструктуры, обычно связанной с операциями машинного обучения (MLOps).
Хотя для обучения полноценной модели MAE требуется полная трансформаторная архитектура, основную концепцию маскирования участков можно легко наглядно продемонстрировать с помощью tensor PyTorch . Этот простой фрагмент кода показывает, как можно случайным образом выбирать видимые участки из входного 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 также предоставляют надежные экосистемы для внедрения передовых исследований в области машинного обучения в масштабируемые производственные среды.