Ultralytics YOLO27:
Лицензия YOLO
Назад к глоссарию Ultralytics

Normalizing Flows

Нормализующие потоки преобразуют простой шум в сложные данные с помощью обратимых слоёв, поэтому одна модель может и генерировать выборки, и вычислять точные правдоподобия. Разбираем принцип работы.

Нормализующий поток — это модель генеративного ИИ, которая преобразует простое базовое распределение, обычно стандартное гауссово, в сложное распределение данных с помощью последовательности обратимых дифференцируемых функций. Поскольку каждый слой можно вычислить в обратном направлении, а его влияние на объём — точно определить, один поток выполняет две задачи, которые большинство генеративных моделей не могут выполнять одновременно: генерирует новые образцы, пропуская шум вперёд через слои, и вычисляет точное правдоподобие наблюдаемой точки данных, передавая её обратно в базовое распределение. Эстебан Табак и его коллеги сформулировали методы потоков для оценки плотности в 2010 и 2013 годах, а Данило Резенде и Шакир Мохамед из DeepMind ввели это название в глубокое обучение в работе Variational Inference with Normalizing Flows, представленной на ICML 2015. «Нормализующий» означает преобразование распределения данных в нормальное, то есть гауссово, и не связано с пакетной нормализацией.

Формула замены переменных#

Если обратимая функция f переводит точку данных x в латентную точку z = f(x), логарифм правдоподобия данных равен log p(x) = log p_z(f(x)) + log |det J|, где J — матрица Якоби функции f, а определитель показывает, насколько f растягивает или сжимает объём вокруг x. Для общей функции от D переменных вычисление этого определителя требует порядка D³ операций — это слишком медленно для изображений с сотнями тысяч измерений. Поэтому слои потока проектируют с треугольными матрицами Якоби, определитель которых равен просто произведению диагональных элементов. Последовательное объединение таких слоёв комбинирует их преобразования и складывает их логарифмы определителей, а обучение напрямую максимизирует правдоподобие обучающих данных.

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

import torch
from torch import nn

torch.manual_seed(0)
# Affine coupling layer (RealNVP): x1 passes through unchanged and sets the scale and shift for x2
net = nn.Sequential(nn.Linear(2, 32), nn.Tanh(), nn.Linear(32, 4))


def coupling(x):
    """Map data x to z and return log|det J|, which is just the sum of the log-scales."""
    x1, x2 = x.chunk(2, dim=-1)
    log_s, t = net(x1).chunk(2, dim=-1)
    return torch.cat([x1, x2 * log_s.exp() + t], dim=-1), log_s.sum(dim=-1)


x = torch.randn(4)
z, log_det = coupling(x)
jacobian = torch.autograd.functional.jacobian(lambda v: coupling(v)[0], x)
print(f"log|det J|: {log_det:.4f} from the formula, {torch.logdet(jacobian):.4f} from the full 4x4 Jacobian")

# Inverse: z1 equals x1, so the same scale and shift can be recomputed and undone
z1, z2 = z.chunk(2)
log_s, t = net(z1).chunk(2)
x_rec = torch.cat([z1, (z2 - t) * (-log_s).exp()])
print(f"Largest reconstruction error: {(x_rec - x).abs().max():.1e}")

И упрощённая формула, и полная матрица Якоби дают логарифм определителя 0.1489, а обратное преобразование восстанавливает вход с точностью до 1.2e-07 — погрешности округления float32. Сеть внутри слоя не нужно обращать, поэтому она может иметь произвольную сложность.

Архитектуры потоков#

  • Потоки сопряжения: NICE (2014) и RealNVP (2016) Лорана Дина и его коллег поочерёдно преобразуют разные половины входа, а Glow (2018) от OpenAI добавил обучаемые обратимые свёртки 1 x 1 и генерировал реалистичные лица размером 256 x 256. И генерация, и оценка плотности выполняются быстро.
  • Авторегрессионные потоки: Преобразуют каждое измерение с учётом предыдущих. Маскированные авторегрессионные потоки оценивают плотность за один проход, но генерируют образцы по одному измерению за раз; обратные авторегрессионные потоки делают наоборот. TarFlow (2024) от Apple применяет авторегрессионные блоки трансформера к фрагментам изображений и стал первым автономным потоком, образцы которого по качеству сравнялись с образцами моделей диффузии.
  • Непрерывные потоки: Задают преобразование как решение обыкновенного дифференциального уравнения, что снимает ограничения на конструкцию слоёв; FFJORD (2018) отслеживает изменение логарифма плотности с помощью стохастического оценивателя следа.

Применение#

  • Обнаружение аномалий: DifferNet (2021), CFLOW-AD и FastFlow обучают потоки на признаках предварительно обученной свёрточной нейронной сети на изображениях изделий без дефектов, а изображениям с низким правдоподобием присваивают метку дефектных. В 2021 году FastFlow показал AUC 99.4% при обнаружении аномалий на промышленном контрольном наборе MVTec AD.
  • Синтез речи: WaveGlow (2018) от NVIDIA генерировал аудиоречь из мел-спектрограмм за один параллельный проход.
  • Научное сэмплирование: Генераторы Больцмана (2019) Франка Ноэ и его коллег выбирают равновесные состояния молекул и белков, используя точное правдоподобие для перевзвешивания образцов в соответствии с истинным физическим распределением.

Эти детекторы моделируют признаки, а не пиксели, и на то есть причина: в 2019 году Эрик Налисник и его коллеги показали, что модель Glow, обученная на фотографиях CIFAR-10, назначает более высокое правдоподобие изображениям номеров домов SVHN, которых она никогда не видела. Позже выяснилось, что потоки моделируют локальные корреляции пикселей лучше, чем содержание изображений. Для обнаружения дефектов на вход потока можно подавать эмбеддинги из любой предварительно обученной базовой модели: метод embed в Ultralytics YOLO26 возвращает по одному усреднённому вектору признаков на изображение — по умолчанию из слоя непосредственно перед головкой детекции.

Explore solutions

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

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

Узнай, как 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. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее
Компьютерное зрение в спорте

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

Узнай, как 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. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее
Компьютерное зрение в спорте

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

Узнай, как 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. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

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

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