18 / 33 · Оценка качества
Fréchet Inception Distance
FID сравнивает настоящие и сгенерированные изображения через среднее и ковариацию их признаков Inception. Это квадрат расстояния Вассерштейна-2 между двумя подогнанными гауссианами.
Inception Score · Многомерные гауссовские распределения · GAN Вассерштейна
На этой странице 11
Inception Score смотрит только на сгенерированные изображения: он проверяет, уверенно ли классификатор предсказывает класс каждого изображения и разнообразны ли предсказанные классы. Похожи ли изображения на обучающие данные, он не проверяет никогда. Fréchet Inception Distance (FID) из работы Heusel et al. (2017) закрывает этот пробел. Настоящие и сгенерированные изображения пропускаются через одну и ту же предобученную сеть Inception, каждый набор признаков сводится к вектору средних и ковариационной матрице, и измеряется, насколько далеко друг от друга эти две сводки.
Обозначения. Нижний индекс отмечает настоящие изображения, а — сгенерированные. — вектор признаков Inception для изображения , — евклидова норма. Как и в заметке о гауссовских распределениях, векторы средних и матрицы набраны полужирным: — вектор средних, — ковариационная матрица, — единичная матрица.
Формула#
- — средние векторы признаков настоящих и сгенерированных изображений.
- — их ковариационные матрицы.
Это определение из Heusel et al. (2017), формула (6). Для настоящих изображений (и так же для сгенерированного набора) обе сводки — обычные выборочные оценки:
По сути мы приближаем каждое распределение признаков гауссианой — для настоящих изображений и для сгенерированных — и сравниваем две гауссианы. Heusel et al. обосновывают этот выбор принципом максимума энтропии (maximum entropy; Heusel et al., 2017, текст перед формулой 6). Среди всех плотностей на с заданными средним и ковариацией наибольшую дифференциальную энтропию имеет гауссиана (Cover and Thomas, 2006, теорема 8.6.5). Поэтому гауссиана — распределение, которое делает меньше всего допущений сверх двух моментов, сохраняемых FID: подгонка не добавляет никакой структуры помимо них.
Эмбеддинги берутся до softmax. Признаки — это не вероятности классов, которые использует IS, а активации внутри сети. Heusel et al. используют в качестве кодирующего слоя (coding layer) последний слой пулинга Inception v3 (Szegedy et al., 2016). В их коде TTUR это слой pool3, выход которого поступает в классификационный выходной слой (head): 2048 чисел на изображение (рисунок 1). Вероятности классов отбросили бы бо́льшую часть того, что сеть видит в изображении, а предпоследний слой сохраняет более богатое описание, чем 1000 вероятностей классов, хотя и он сформирован классами ImageNet (см. Недостатки).
Как вычисляется FID
Как читать два члена#
- Член средних измеряет, насколько далеко друг от друга центры двух облаков признаков.
- Член ковариаций измеряет, насколько по-разному облака разбросаны и ориентированы. Он никогда не бывает отрицательным и обращается в нуль, только когда . Оба факта следуют из интерпретации через расстояние Вассерштейна ниже: при равных средних формула сводится к этому члену, так что он равен квадрату расстояния между и . — метрика (Peyré and Cuturi, 2019, предложение 2.3), поэтому это расстояние неотрицательно и равно нулю только для одинаковых распределений, здесь — для одинаковых ковариаций.
Итак, чем меньше FID, тем ближе подогнанные гауссианы, то есть тем ближе средние и ковариации двух облаков признаков. FID = 0 означает равные средние и равные ковариации, а не одинаковые распределения признаков (см. Недостатки).
Два члена FID на двумерном примере
Проверка в одномерном случае#
Для скалярных признаков превращается в дисперсию , квадратный корень из матрицы — в обычный квадратный корень, , поскольку стандартные отклонения неотрицательны, а след исчезает:
Член ковариаций равен квадрату разности стандартных отклонений. Возьмём настоящие признаки и сгенерированные признаки :
Генератор со слишком большим разбросом сэмплов штрафуется так же, как сдвинутый. Так же штрафуется и генератор со слишком узким разбросом. У модели, которая каждый раз выдаёт почти одно и то же изображение (коллапс мод, mode collapse), , и член ковариаций стремится к , даже если среднее верное.
То же верно в измерениях для изотропных ковариаций и . Тогда , и каждый из диагональных элементов даёт вклад , так что член ковариаций равен . Рисунок 3 показывает случай с , и сдвигом среднего , так что .
FID при сдвиге и сжатии сгенерированной гауссианы
Двумерный пример в числах#
На рисунке 2 взяты параметры
Обе ковариации здесь положительно определённые (, , диагонали положительны). Единственный нетривиальный шаг — квадратный корень из матрицы. Остаток этого абзаца и следующая формула обосновывают его замкнутый вид, ; это дополнительный математический материал, и тот, кто готов принять формулу на веру, может сразу перейти к таблице. Произведение не симметрично. Поскольку обратима, оно подобно симметричной положительно определённой матрице :
Значит, диагонализуема с положительными собственными значениями , а её главный квадратный корень (principal square root) имеет те же собственные векторы и собственные значения . Для матрицы это даёт формулу в замкнутом виде. Квадрат суммы двух корней равен , а сумма и произведение собственных значений — это след и определитель:
| Величина | Значение |
|---|---|
| FID |
На практике признаки 2048-мерные, и квадратный корень вычисляется численно, например с помощью scipy.linalg.sqrtm. В отличие от симметричного корня из заметки о гауссовских распределениях, — главный квадратный корень несимметричной матрицы. В арифметике с плавающей точкой он может получиться с крошечными мнимыми частями, которые реализации отбрасывают, если они пренебрежимо малы (иначе TTUR выдаёт ошибку). Если вычисленный корень содержит бесконечные значения, потому что произведение почти вырождено, к обеим ковариациям добавляют малую матрицу и вычисляют корень заново (см. calculate_frechet_distance в коде TTUR).
FID — расстояние Вассерштейна между двумя гауссианами#
Расстояние Вассерштейна-2 (2-Wasserstein distance) между распределениями и на с конечными вторыми моментами равно
где — множество транспортных планов с маргинальными распределениями и , как в заметке о WGAN; конечность вторых моментов гарантирует, что инфимум конечен. Это то же семейство транспортных расстояний, что и , но стоимость в нём — квадрат евклидова расстояния, а не само расстояние. Для двух гауссиан инфимум выражается в замкнутом виде (Dowson and Landau, 1982), и это выражение и есть формула FID:
FID — это квадрат расстояния, поэтому внешнего квадратного корня в нём нет. Морис Фреше изучал это расстояние между распределениями вероятностей (Fréchet, 1957), поэтому его также называют расстоянием Фреше; именно к нему отсылает буква «F» в FID.
Сравнение с Inception Score#
В отличие от IS, FID сравнивает сгенерированные изображения с настоящими данными.
| Inception Score | FID | |
|---|---|---|
| Цель | уверенность и разнообразие сгенерированных изображений | близость сгенерированных изображений к настоящим |
| Используемые данные | только сгенерированные изображения | настоящие и сгенерированные изображения |
| Что сравнивается | каждое с маргинальным | гауссиана, подогнанная к настоящим признакам, и гауссиана, подогнанная к сгенерированным |
| Расстояние | KL-дивергенция | квадрат расстояния Фреше (Вассерштейна-2) |
| Лучше | больше | меньше |
Недостатки#
- Гауссовское приближение. Признаки Inception не распределены нормально: эмбеддинги типичного набора изображений имеют много мод (Jayasumana et al., 2024, §3.3). Два распределения признаков с одинаковыми средним и ковариацией, но разной формой получают FID 0, потому что сравниваются только первые два момента. Jayasumana et al. строят такую пару из гауссианы и смеси гауссиан с одинаковыми общими средним и ковариацией (§3.2, таблица 2).
- Данные, не похожие на ImageNet. Сеть обучена на фотографиях ImageNet, поэтому для далёких от них данных, например медицинских изображений, набросков или спектрограмм, ничто не гарантирует, что её признаки улавливают то, что делает изображение хорошим. Одно из решений — вычислять то же расстояние в признаках энкодера, обученного на данных этой области (ниже). Даже там, где FID — стандартная метрика, признаки остаются привязанными к классам ImageNet. На лицах FFHQ FID сильнее всего реагирует на области вне лица, где классификатор распознаёт объекты ImageNet, например галстуки-бабочки, ремни безопасности или академические шапочки (Kynkäänniemi et al., 2023, §2, рисунок 4). Если отобрать сгенерированные изображения повторной выборкой (resampling) так, чтобы их статистики классов ImageNet совпадали со статистиками настоящих, FID снижается без видимого улучшения изображений: примерно на 10%, когда совпадают только гистограммы классов Top-1, и примерно на две трети на FFHQ (с 5.30 до 1.78), когда совпадают сами признаки pool3 (§3, таблицы 1–2).
- Одно число для двух свойств. FID смешивает реалистичность сэмплов и то, какую часть вариативности данных они покрывают (Kynkäänniemi et al., 2023, §1). Худшее значение может объясняться нереалистичными сэмплами, которые сдвигают облако признаков и меняют его форму, или недостаточным разнообразием, которое его сжимает (рисунок 3), поэтому два генератора с одинаковым FID могут ошибаться по-разному. Метрики точности и полноты (precision / recall) показывают эти два свойства по отдельности (Sajjadi et al., 2018).
- Не замечает запоминания (memorization). Heusel et al. вычисляют статистики настоящих изображений по всей обучающей выборке. Генератор, который возвращает случайно выбранные обучающие изображения, воспроизводит их среднее и ковариацию с точностью до шума выборки, поэтому его FID близок к 0, хотя он не выучил ничего сверх самих данных. Та же слабость есть у Inception Score. Чтобы обнаружить копии, нужно сравнивать отдельные изображения, например искать ближайшего соседа в обучающей выборке по перцептивному расстоянию вроде LPIPS.
- Нужны тысячи изображений. У ковариационной матрицы 2048 × 2048 есть свободных элементов. При изображениях выборочная ковариация вырождена (её ранг не больше ), и вычисление квадратного корня из матрицы становится численно неустойчивым. При нескольких тысячах изображений оценка всё ещё шумная. Она смещена вверх, и смещение зависит от генератора, поэтому фиксированный размер выборки смягчает проблему, но не устраняет её: два генератора, оценённые с одним и тем же , могут ранжироваться по смещению, а не по качеству (Chong and Forsyth, 2020, §3.1, рисунок 2). Chong и Forsyth экстраполируют по и получают практически несмещённое (§3.2). Heusel et al. использовали 50 000 сгенерированных изображений; обычно берут 10 000 или 50 000.
- Чувствителен к предобработке. Изменение размера до входного размера сети (фильтр масштабирования и его сглаживание, antialiasing), 8-битное квантование и сжатие JPEG меняют признаки, и значения FID, вычисленные разными конвейерами, несравнимы (Parmar, Zhang and Zhu, 2022, §3).
По каким изображениям вычисляется FID?#
Стандартный FID вычисляется один раз, по всем сгенерированным и всем настоящим изображениям, а не по классам и не по парам изображений. Мы собираем все настоящие изображения в одно облако признаков, а все сгенерированные — в другое, подгоняем к каждому облаку по гауссиане и сравниваем две гауссианы. FID не нужны метки классов, и ни одно сгенерированное изображение не сопоставляется с конкретным настоящим. (Условные генераторы иногда оценивают с помощью intra-FID — FID, вычисленного отдельно внутри каждого класса между сгенерированными и настоящими изображениями этого класса (Miyato and Koyama, 2018, §5.1), но это отдельный вариант.) Поскольку FID сравнивает распределения, а не пары, ему нужны большие выборки, о которых говорилось выше. Отдельные изображения попарно сравнивает LPIPS.
FID с собственным энкодером#
Ничто в формуле не зависит от Inception: ей нужен вектор признаков для каждого изображения, а дать его может любой энкодер. Для данных, не похожих на ImageNet, естественный выбор — энкодер, обученный на данных самой этой области, например энкодер автоэнкодера, обученного на этих данных; Bińkowski et al. (2018), §4, оценивают модели на MNIST по признакам классификатора MNIST в духе LeNet вместо Inception. Цена — сравнимость. Расстояние, вычисленное с одним энкодером, можно сравнивать только с расстояниями, вычисленными с тем же энкодером, тем же слоем и той же предобработкой. Строго говоря, это уже не FID, ведь буква I означает Inception: это расстояние Фреше в признаках названного энкодера и слоя. Стандартный FID — это протокол с Inception, и значение, полученное с другим энкодером, нельзя сравнивать с опубликованными FID. Ниже «FID» в формулах — сокращение для этого расстояния в признаках.
Расстояния между классами как проверка. Прежде чем доверять новому энкодеру, применим его только к настоящим изображениям. Разобьём размеченный набор данных по классам, подгоним гауссиану к признакам каждого класса и вычислим расстояние Фреше для каждой пары классов. Для классов получается матрица , у которой нужно проверить три свойства:
- Нулевая диагональ. У класса, сравниваемого с самим собой, средние и ковариации равны, поэтому оба члена обращаются в нуль. Численное вычисление квадратного корня из матрицы оставляет малые значения любого знака, поэтому проверке нужен небольшой допуск.
- Симметричность. — метрика, поэтому .
- Смысловой порядок. Если признаки несут смысл, похожие классы ближе друг к другу, чем непохожие. На CIFAR-10 следует ожидать и .
Размер выборки здесь важнее, чем для стандартного FID. В CIFAR-10 по 1000 тестовых изображений на класс, поэтому ковариация каждого класса оценивается по 1000 векторам и имеет ранг не больше . Значит, энкодер с кодом из 1000 чисел или больше даёт вырожденные ковариации, и вычисление квадратного корня из матрицы становится неустойчивым (Нужны тысячи изображений). Добавление к обеим ковариациям с малым , например , делает вычисление устойчивым ценой небольшого смещения; код меньшего размера позволяет избежать проблемы.
Тот же энкодер можно применить и к изображениям, на которых он не обучался, например к двум классам фотографий из другого набора данных. Тогда результат — расстояние в признаках, выученных на обучающей области, и эти признаки могут не улавливать того, что отличает новые классы: это то же ограничение, что и у признаков Inception на данных, не похожих на ImageNet, только в обратном направлении.
Kernel Inception Distance: несмещённая альтернатива#
Kernel Inception Distance (KID) из работы Bińkowski et al. (2018), §4, сохраняет признаки Inception, но отказывается от подгонки гауссиан. Это квадрат максимального расхождения средних (maximum mean discrepancy, MMD) между настоящими и сгенерированными признаками с кубическим полиномиальным ядром (kernel)
где — размерность признаков ( для pool3). Для распределений признаков и
где и независимы. Если раскрыть куб, оказывается суммой скалярных произведений , , с положительными весами, а — это скалярное произведение -х тензорных степеней и . Поэтому — взвешенная сумма квадратов разностей между моментами и порядков от 1 до 3, и она равна нулю тогда и только тогда, когда эти моменты совпадают. FID сравнивает первые два момента; KID сравнивает также третьи моменты, в том числе асимметрию (skewness), и не предполагает никакой параметрической формы.
Пусть — признаки настоящих изображений, а — сгенерированных. KID оценивается как
Исключение слагаемых с делает каждое среднее несмещённой оценкой своего математического ожидания (Gretton et al., 2012, лемма 6), поэтому оценка несмещённая при любом размере выборки. В этом её главное преимущество перед FID, оценка которого смещена вверх на величину, зависящую от генератора (Нужны тысячи изображений); несмещённой оценки FID не существует (Bińkowski et al., приложение D.3). Если сравнивать обучающую и тестовую выборки CIFAR-10 — две выборки из одного распределения, — оценка KID распределена вокруг при каждом из показанных размеров выборки, а оценка FID даже на всех 10 000 тестовых изображениях всё ещё около (Bińkowski et al., §4, рисунок 1). Цена несмещённости в том, что оценка может быть слегка отрицательной, когда два распределения близки.
Двойные суммы стоят операций для изображений в каждом наборе против для ковариаций и квадратного корня из матрицы в FID. Поэтому Bińkowski et al. рекомендуют усреднять оценку по нескольким подмножествам умеренного размера: в их экспериментах усредняются 100 подмножеств по 1000 изображений (§5). Как и FID, KID зависит от того, что улавливают признаки, обученные на ImageNet, и чем он меньше, тем лучше.
Ноутбук#
Ноутбук о метриках из репозитория HSE-LAMBDA Deep Generative Models (закреплённый коммит; ячейки нумеруются с 1, считая все ячейки подряд, в том числе текстовые) описывает FID в ячейке 5: признаки из промежуточных слоёв предобученной сети, «часто Inception v3», гауссиана, подогнанная к настоящим и к сгенерированным признакам (там они записаны как и ), и расстояние Фреше между ними. Стандартный FID использует один слой — 2048-мерный выход pool3, описанный выше. Ячейка 6 сравнивает IS, FID и LPIPS в таблице; таблица сравнения IS и FID выше основана на ней. Сам ноутбук о метриках FID не вычисляет. KID упоминается в репозитории только по названию — в заключительном обсуждении ноутбука о GAN (ячейка 35), рядом с IS и FID.
Расстояние Фреше в признаках, названное там FID, вычисляется в домашнем задании 1 из того же репозитория (нумерация ячеек та же), причём вместо Inception используется энкодер автоэнкодера, обученного на CIFAR-10 (часть об автоэнкодере описана в заметке об автоэнкодерах). В ноутбуке нет сохранённых выходов, а ячейки для решений пусты, поэтому он документирует только процедуру.
- Ячейки 35–38: формула FID и
get_representations, которая сопоставляет каждому классу валидационной выборки список из 1000 выходов энкодера. - Ячейка 39:
calculate_fid(repr1, repr2, eps=1e-6), которую пишет студент; значениеepsпо умолчанию играет роль , добавляемого к ковариациям выше. - Ячейки 40–41: матрица FID между классами и её тепловая карта. Проверки: все элементы больше , и . Матрица вычисляется целиком, хотя симметрия сократила бы работу вдвое, а диагональ известна.
- Ячейка 42: FID между двумя классами любого другого набора данных (например, кошками и собаками) с тем же энкодером, обученным на CIFAR.
Дальше#
IS, FID и KID оценивают набор изображений целиком. Иногда нужно расстояние между двумя отдельными изображениями, согласованное с человеческим восприятием, например чтобы сравнить сгенерированное или восстановленное изображение с эталоном или обучить сеть с перцептивной функцией потерь. Такое расстояние даёт LPIPS.
Литература#
- M. Heusel, H. Ramsauer, T. Unterthiner, B. Nessler, S. Hochreiter. GANs trained by a two time-scale update rule converge to a local Nash equilibrium. NeurIPS, 2017. Вводит FID: раздел Experiments, абзац «Performance Measure» (обоснование через максимум энтропии и формула (6)); абзац «Model Selection and Evaluation» (последний слой пулинга как кодирующий слой, статистики настоящих изображений по всей обучающей выборке, 50 000 сгенерированных изображений). Код:
fid.pyв репозитории TTUR. - D. C. Dowson, B. V. Landau. The Fréchet distance between multivariate normal distributions. Journal of Multivariate Analysis, 12(3), pp. 450–455, 1982. Замкнутая формула для расстояния Фреше () между двумя гауссианами.
- M. Fréchet. Sur la distance de deux lois de probabilité. Comptes rendus hebdomadaires des séances de l’Académie des sciences, Paris, 244, pp. 689–692, 1957. Том оцифрован в коллекции Comptes rendus на Gallica (1957, том 244, первая часть).
- T. M. Cover, J. A. Thomas. Elements of Information Theory, 2nd ed. Wiley, 2006. Теорема 8.6.5: при заданной ковариации гауссиана максимизирует дифференциальную энтропию.
- G. Peyré, M. Cuturi. Computational optimal transport. Foundations and Trends in Machine Learning, 11(5–6), 2019. Предложение 2.3: — расстояние.
- C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens, Z. Wojna. Rethinking the Inception architecture for computer vision. CVPR, 2016.
- M. J. Chong, D. Forsyth. Effectively unbiased FID and Inception Score and where to find them. CVPR, 2020. §3.1 и рисунок 2: смещение зависит от генератора; §3.2: экстраполяция к .
- G. Parmar, R. Zhang, J.-Y. Zhu. On aliased resizing and surprising subtleties in GAN evaluation. CVPR, 2022. §3.2 (изменение размера), §3.3 (квантование и сжатие).
- S. Jayasumana, S. Ramalingam, A. Veit, D. Glasner, A. Chakrabarti, S. Kumar. Rethinking FID: Towards a better evaluation metric for image generation. CVPR, 2024. §3.2–3.3: предположение о нормальности и причины, по которым оно не выполняется.
- T. Kynkäänniemi, T. Karras, M. Aittala, T. Aila, J. Lehtinen. The role of ImageNet classes in Fréchet Inception Distance. ICLR, 2023. §1: FID смешивает качество и вариативность; §2 и рисунок 4: к чему FID чувствителен на изображениях FFHQ; §3, таблицы 1–2: повторная выборка, подгоняющая статистики классов ImageNet, снижает FID.
- M. S. M. Sajjadi, O. Bachem, M. Lucic, O. Bousquet, S. Gelly. Assessing generative models via precision and recall. NeurIPS, 2018.
- T. Miyato, M. Koyama. cGANs with projection discriminator. ICLR, 2018. §5.1: intra-FID.
- M. Bińkowski, D. J. Sutherland, M. Arbel, A. Gretton. Demystifying MMD GANs. ICLR, 2018. §4: Kernel Inception Distance, его кубическое ядро и несмещённая оценка, рисунок 1 (смещение оценки FID на CIFAR-10), сноска 12 (вычислительная стоимость) и признаки LeNet для MNIST; §5: KID, усреднённый по 100 подмножествам из 1000 изображений; приложение D.3: несмещённой оценки FID не существует.
- A. Gretton, K. M. Borgwardt, M. J. Rasch, B. Schölkopf, A. Smola. A kernel two-sample test. JMLR, 13, pp. 723–773, 2012. Лемма 6: квадрат MMD и его несмещённая оценка.
- HSE-LAMBDA, репозиторий курса Deep Generative Models:
metrics.ipynb,GANs.ipynbи01_hw_AE-and-FID.ipynb.