Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Autoencoder

Автоэнкодер учится сжимать данные в компактный код и восстанавливать их без разметки. Структура, разновидности, обнаружение аномалий и код.

Автоэнкодер — это нейронная сеть, обученная воспроизводить собственный вход. Энкодер преобразует входные данные в компактный код, часто называемый латентным представлением; декодер восстанавливает данные из кода, а обучение минимизирует разницу между входом и результатом восстановления. Поскольку целевое значение — это сам вход, автоэнкодеры учатся на неразмеченных данных. Это разновидность обучения без учителя, которую сегодня обычно относят к самообучению. Полезность сети обеспечивает ограничение, не позволяющее ей просто скопировать вход, например узкое узкое место, добавленный шум, маскирование входных данных или штраф за разреженность. Оно заставляет сеть изучать структуру, благодаря которой данные можно сжать. Автоэнкодеры используются для снижения размерности, обнаружения аномалий, удаления шума, предварительного обучения и как этап сжатия в современных генераторах изображений.

Как работают автоэнкодеры#

Энкодер f отображает вход x в код z = f(x), декодер g формирует восстановление x̂ = g(z), а обучение минимизирует ошибку восстановления, например среднеквадратичную ошибку между x и x̂, с помощью обратного распространения ошибки. В недополненном автоэнкодере размерность z намного меньше размерности x, поэтому код представляет собой сводку в латентном пространстве, которая сохраняет лишь необходимую декодеру информацию. Линейный автоэнкодер, обученный с квадратичной ошибкой, усваивает то же подпространство, что и метод главных компонент (PCA). Этот результат доказали Пьер Балди и Курт Хорник в 1989 году. Нелинейные функции активации позволяют более глубоким автоэнкодерам улавливать криволинейные структуры, недоступные PCA. В статье для Science за 2006 год Джеффри Хинтон и Руслан Салахутдинов показали, что глубокие автоэнкодеры создают для изображений и документов гораздо более качественные низкоразмерные коды, чем PCA.

В вариантах, не зависящих от узкого узкого места, вместо этого искажают входные данные, а затем по-прежнему сравнивают восстановление с исходными чистыми данными:

Типы автоэнкодеров#

  • Денойзинг: добавляет шум к входным данным и обучает сеть восстанавливать исходные данные без шума, как описали Паскаль Винсент и его коллеги в 2008 году. Изученные признаки устойчивы к искажениям, а обученная модель может очищать зашумлённые изображения или сигналы.
  • Разреженные: используют больше кодовых единиц, чем входных данных, но штрафуют за количество единиц, активных одновременно. Разреженные автокодировщики, обученные на внутренних активациях больших языковых моделей (LLMs), разбивают их на множество признаков, каждый из которых обычно соответствует одному интерпретируемому понятию.
  • Вариационные (VAE): энкодер выдаёт вероятностное распределение кодов, а штраф за расхождение KL удерживает его близко к стандартному нормальному распределению, поэтому декодирование случайно выбранного кода создаёт новые данные. Дидерик Кингма и Макс Веллинг представили VAE в 2013 году.
  • С векторным квантованием (VQ-VAE): заменяют каждый вектор кода ближайшей записью из обучаемой кодовой книги с помощью векторного квантования, превращая изображения или аудио в дискретные токены, которые может генерировать авторегрессионная модель.
  • Маскированные: скрывают большую часть входных данных и восстанавливают пропущенные части. Маскированные автокодировщики (MAE) скрывают 75% фрагментов изображения, а обученный таким образом энкодер становится мощной базовой сетью для других задач компьютерного зрения. Модель сегментации всего (SAM) от Meta, работающая в пакете Ultralytics, строит свой энкодер изображений на Vision Transformer, предварительно обученном с помощью MAE, а SAM 2 — на энкодере Hiera, предварительно обученном с помощью MAE. Таким образом, признаки, лежащие в основе каждой маски, создаваемой по запросу, изначально были изучены при заполнении скрытых фрагментов.

Обнаружение аномалий по ошибке реконструкции#

Автокодировщик, обученный только на нормальных данных, хорошо восстанавливает нормальные входные данные и плохо — незнакомые, поэтому ошибка реконструкции служит показателем аномальности для производственных дефектов, мошеннических транзакций или неисправных машин — размеченные аномалии не нужны. Приведённый ниже фрагмент кода на PyTorch обучает небольшой автокодировщик на рукописных цифрах из набора scikit-learn, исключая все семёрки, и сравнивает ошибку на отложенных цифрах с ошибкой на семёрках:

import torch
from sklearn.datasets import load_digits
from torch import nn

# 8x8 handwritten digits scaled to [0, 1]; every 7 is held out as the unseen anomaly
digits = load_digits()
x = torch.tensor(digits.data / 16, dtype=torch.float32)
normal, sevens = x[digits.target != 7], x[digits.target == 7]
train, test = normal[:1200], normal[1200:]

# Encoder: 64 pixels to an 8-number code; decoder: code back to 64 pixels
torch.manual_seed(0)
encoder = nn.Sequential(nn.Linear(64, 32), nn.ReLU(), nn.Linear(32, 8))
decoder = nn.Sequential(nn.Linear(8, 32), nn.ReLU(), nn.Linear(32, 64), nn.Sigmoid())
model = nn.Sequential(encoder, decoder)
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
for step in range(1000):
    optimizer.zero_grad()
    nn.functional.mse_loss(model(train), train).backward()  # reconstruction error
    optimizer.step()

with torch.no_grad():
    for name, data in [("Held-out digits", test), ("Unseen 7s", sevens)]:
        print(f"{name}: reconstruction error {nn.functional.mse_loss(model(data), data):.4f}")

Он выводит ошибку реконструкции 0.0163 для отложенных цифр и 0.0547 для семёрок; в среднем она выше в 3,4 раза. Порог для ошибки каждого изображения превращает этот разрыв в флаг аномалии. Автокодировщик также может чрезмерно хорошо обобщать и точно восстанавливать некоторые аномалии, поэтому в практических системах размер узкого места и порог настраивают на валидационных данных, содержащих известные аномалии.

  • Генеративно-состязательные сети (GANs): Генератор GAN преобразует случайный шум в данные и обучается с помощью дискриминатора; энкодера и цели реконструкции нет. VAE тоже генерируют данные, а их целевая функция на основе правдоподобия обеспечивает более стабильное обучение, но обычно даёт более размытые изображения.
  • U-Net: Имеет ту же структуру энкодера-декодера, но преобразует входные данные в другую целевую сущность, например маску сегментации, и передаёт данные через пропускающие соединения в обход узкого места. В автокодировщике это позволило бы сети просто копировать входные данные.
  • Контрастивное обучение: Изучает представления, сравнивая образцы друг с другом, поэтому его признаки отражают различия между изображениями и игнорируют попиксельные детали, которые необходимо сохранять при обучении с функцией потерь реконструкции.
  • Эмбеддинги: Код, который выдаёт энкодер, — это разновидность эмбеддинга, а автокодировщики — один из нескольких способов их обучить.

Автокодировщики в генерации изображений#

Модели латентной диффузии, например Stable Diffusion, выполняют процесс диффузии в латентном пространстве автокодировщика и в конце декодируют результат обратно в пиксели. В Stable Diffusion 1.x используется автокодировщик с регуляризацией KL, который сжимает RGB-изображение размером 512×512 в латентное представление размером 64×64×4 — в 48 раз меньше значений, которые модели диффузии нужно обрабатывать на каждом шаге денойзинга.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения