Fréchet Loss: как отказаться от FID и получить генератор изображений из одной фото

Метрика FID (Fréchet Inception Distance) долго считалась непригодной для прямой оптимизации генеративных моделей — слишком большая выборка нужна для оценки, слишком шумный градиент получается. Исследование Representation Fréchet Loss for Visual Generation показывает, что проблема решаема: достаточно отделить размер батча для вычисления градиента от размера выборки для оценки Fréchet Distance. Результат — один и тот же генератор можно заставить работать в один шаг без учительской дистилляции.

Что не так с FID как функцией потерь

FID измеряет расстояние между распределениями реальных и сгенерированных изображений в пространстве признаков модели Inception. Для надёжной оценки нужно 50 000 изображений — это делает прямую оптимизацию FID вычислительно невозможной. Градиент FID по параметрам модели получается слишком шумным при маленьких батчах.

FD-loss решает эту проблему: батч для вычисления градиента может быть 1024, а для оценки Fréchet Distance — 50 000. Размер популяции для оценки и размер батча для градиента — это два независимых параметра.

Один шаг против ста: как FD-loss превращает генератор

Главный контринтуитивный результат работы: мультишаговый генератор можно превратить в одношаговый без дополнительной дистилляции. Достаточно применить FD-loss в пространстве признаков Inception к базовому генератору, обученному на одну стадию.

После пост-обучения базового генератора (one-step) с FD-loss в различных пространствах признаков визуальное качество последовательно улучшается. В пространстве признаков Inception один шаг генератора достигает 0.72 FID на ImageNet 256×256 — это сопоставимо с мультишаговыми моделями, требующими десятки итераций.

Результат тем более неожиданный, потому что традиционный подход требует либо teacher-student дистилляции (большой учитель диктует маленькому, как уточнять), либо adversarial training (GAN loss для стабильности), либо per-sample targets (индивидуальные цели для каждого примера). FD-loss обходится без всего этого.

Почему FID может ошибаться

Второе интересное наблюдение работы: FID способен давать неправильный порядок моделей по визуальному качеству. Исследователи демонстрируют случаи, когда более низкий FID не соответствует более качественным изображениям при человеческой оценке. Это происходит потому, что FID измеряет только статистику распределения признаков, но не учитывает локальные паттерны, релевантные для восприятия.

FD-loss, оптимизируя напрямую Fréchet Distance, захватывает больше информации о визуальном качестве, чем непрямая оценка через FID.

Как это работает технически

Ключевая идея — декорреляция двух статистик: оценки Fréchet Distance и градиента этой оценки. Fréchet Distance между двумя многомерными нормальными распределениями вычисляется аналитически, если известны средние и ковариации распределений признаков. Для 50 000 изображений эти оценки достаточно точны. Но градиент по параметрам модели можно вычислить на любом подмножестве — при условии, что оценка ковариации уже стабильна.

Математически: если $N$ — размер популяции для оценки (50 000), а $B$ — размер батча для градиента (1024), то оценка ковариации $\Sigma$ накапливается по всей популяции $N$, а градиент вычисляется по батчу $B$ с использованием накопленной оценки. Это позволяет обновлять параметры модели на каждом шаге, не дожидаясь полной оценки по 50 000 изображениям.

Практические последствия

Результат 0.72 FID одним шагом — не предел, а начальная точка. Авторы показывают, что FD-loss применим в разных пространствах признаков: помимо Inception можно использовать CLIP, DINOv2 и другие энкодеры. Каждое пространство даёт свой компромисс между скоростью и качеством.

Для индустрии это означает, что дорогие мультишаговые генераторы ( которые требуют 20–50 итераций на изображение ) потенциально можно заменить на один быстрый генератор, обученный с FD-loss. Экономия вычислений — на порядок.

Часто задаваемые вопросы

Почему раньше не использовали FD как loss?

Потому что нужна большая выборка для стабильной оценки, а значит — дорого вычислять градиент. FD-loss решает проблему разделением размера оценки и размера батча для градиента.

FID всё ещё полезен?

Да. FID остаётся стандартной метрикой для сравнения моделей между собой и в бенчмарках. Но для обучения новых архитектур FD-loss может быть лучшим выбором — он даёт направление улучшения напрямую.

Какие пространства признаков лучше?

Авторы тестировали Inception, CLIP и другие. Inception даёт 0.72 FID на ImageNet. CLIP может давать лучшие результаты для задач с текстовым описанием, потому что пространство признаков ближе к семантическому.

Итог

FD-loss — простая, но сильная идея: Fréchet Distance оптимизируема как функция потерь, если правильно разделить оценку статистики и вычисление градиента. Результат — один шаг генератора вместо десятков, без учительской дистилляции и без adversarial training. Это не замена GAN или diffusion моделям, а новый инструмент для их обучения и сжатия.

← Все записи