Содержание курса 17 / 33

17 / 33 · Оценка качества

Inception Score

Оценка сгенерированных изображений с помощью предобученного классификатора — уверенные предсказания для каждого изображения и разнообразные в целом — и почему две энтропии объединяются в среднюю KL-дивергенцию.

На этой странице 9

У GAN нет правдоподобия, нижняя оценка правдоподобия у VAE сопровождается размытыми сэмплами, а оценка W1W_1, которую даёт критик WGAN, зависит от самого критика, поэтому ни одна из функций потерь, используемых при обучении, не позволяет ранжировать готовые генераторы. Нам нужны метрики, которые вычисляются по самим изображениям. Эта заметка и две следующие посвящены трём стандартным метрикам. Inception Score (IS) и Fréchet Inception Distance (FID) оценивают набор сгенерированных изображений; LPIPS — перцептивное расстояние между парами изображений, которое используется как функция потерь и для измерения разнообразия сэмплов. Inception Score (Salimans et al., 2016) использует только сгенерированные изображения, предобученный классификатор, а также энтропию и KL-дивергенцию (KL divergence) из заметки Энтропия, кросс-энтропия и KL-дивергенция.

Обозначения. xx — сгенерированное изображение, а y∈{1,…,n}y \in \{1, \dots, n\} — один из nn классов классификатора. p(y∣x)p(y \mid x) — выход softmax классификатора для изображения xx, а Ex\mathbb E_x — математическое ожидание по изображениям, которые выдаёт генератор. Логарифмы натуральные, если основание не указано.

Что измеряет Inception Score#

Inception Score поощряет сразу два свойства:

  • Разнообразие. Изображения бывают самых разных видов, например много разных пород собак, а не одна и та же порода снова и снова.
  • Отчётливость. Каждое изображение отчётливо похоже на что-то: классификатор может уверенно сказать, что на нём изображено.

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

Алгоритм#

  1. Берём много сгенерированных изображений x1,…,xNx_1, \dots, x_N.
  2. Пропускаем их через предобученный классификатор, обычно Inception v3, обученный на ImageNet (Szegedy et al., 2016). Сеть состоит из модулей Inception (Inception modules) и заканчивается softmax, так что для каждого изображения мы получаем распределение по классам p(y∣x)p(y \mid x).
  3. Вычисляем по этим выходам две энтропии.
    • H(p(y∣x))H(p(y \mid x)) должна быть низкой: классификатор делает уверенное предсказание, то есть изображение отчётливо похоже на определённый класс. Этот член входит в метрику со знаком минус.
    • H(p(y))H(p(y)) должна быть высокой: изображения разнообразны, поэтому в среднем классы распределены почти равномерно.
Рисунок

Вычисление Inception Score

Схема вычисления Inception ScoreСгенерированные изображения от x1 до xN поступают в сеть Inception v3, предобученную на ImageNet, которая состоит из модулей Inception и заканчивается softmax. Для каждого изображения сеть выдаёт распределение по классам p от y при условии x; у каждого из трёх примеров острый пик на своём классе, что означает низкую условную энтропию и уверенные предсказания. Их усреднение даёт маргинальное распределение p от y, которое плоское, что означает высокую энтропию и разнообразные изображения. От математического ожидания KL-дивергенции между каждым p от y при условии x и p от y берётся экспонента, что даёт Inception Score.сэмплыгенератораx₁, …, xNInception v3softmaxмодули Inceptionпредобучена наImageNet, замороженапо одному выходу на изображениеp(y | x₁)p(y | x₂)p(y | xN)⋮среднеепо сэмпламp(y)маргинальноеострый пик: низкая H(p(y | x))«уверенность»высокая H(p(y))плоское: «разнообразие»𝔼x DKL(p(y | x) ‖ p(y))expISСхема вычисления Inception ScoreСгенерированные изображения от x1 до xN поступают в сеть Inception v3, предобученную на ImageNet, которая состоит из модулей Inception и заканчивается softmax. Для каждого изображения сеть выдаёт распределение по классам p от y при условии x; у каждого из трёх примеров острый пик на своём классе, что означает низкую условную энтропию и уверенные предсказания. Их усреднение даёт маргинальное распределение p от y, которое плоское, что означает высокую энтропию и разнообразные изображения. От математического ожидания KL-дивергенции между каждым p от y при условии x и p от y берётся экспонента, что даёт Inception Score.сэмплы генератораx₁, …, xNInception v3softmaxмодулиInceptionпредобучена на ImageNet, замороженаp(y | x₁)p(y | x₂)p(y | xN)…пик: низкая H(p(y | x)), «уверенность»среднееp(y)плоское: высокая H(p(y)), «разнообразие»𝔼x DKL(p(y | x) ‖ p(y))expIS
Каждое сгенерированное изображение проходит через замороженный классификатор, обученный на ImageNet; его выход softmax p(y | x) должен иметь острый пик (уверенность). Усреднение этих выходов по всем изображениям даёт маргинальное распределение p(y), которое должно быть плоским (разнообразие). Метрика сравнивает каждое p(y | x) с p(y) с помощью KL-дивергенции.

Условная энтропия отдельного изображения#

H(p(y∣x))=−∑yp(y∣x) log⁡p(y∣x).H(p(y \mid x)) = -\sum_{y} p(y \mid x)\,\log p(y \mid x) .

Распределение p(y∣x)p(y \mid x) с острым пиком (вероятность одного класса близка к 1) имеет энтропию, близкую к 00. У плоского распределения энтропия максимальна и равна log⁡n\log n.

Маргинальная энтропия#

Маргинальное распределение классов — это выход классификатора, усреднённый по сгенерированным изображениям:

p(y)=Ex[p(y∣x)],p(y) = \mathbb E_x\big[p(y \mid x)\big],

а его энтропия равна

H(p(y))=−∑yp(y)log⁡p(y).H(p(y)) = -\sum_{y} p(y)\log p(y).

Почему маргинальное распределение — это среднее выходов. Пусть X∼PgX \sim P_g — случайное сгенерированное изображение, где PgP_g — распределение сэмплов генератора, и пусть YY — класс, который приписывает ему классификатор: при условии X=xX = x величина YY имеет распределение p(y∣x)p(y \mid x).

Шаг 1. По определению p(y)=P(Y=y)p(y) = P(Y = y).

Шаг 2. Обусловим по изображению (формула полной вероятности):

p(y)=EX∼Pg[P(Y=y∣X)].p(y) = \mathbb E_{X \sim P_g}\big[P(Y = y \mid X)\big].

Если бы изображения принимали конечное число значений, это была бы привычная сумма ∑xP(Y=y∣X=x) Pg(X=x)\sum_x P(Y = y \mid X = x)\,P_g(X = x). Для генератора x=G(z)x = G(z) это Ez[P(Y=y∣X=G(z))]\mathbb E_z\big[P(Y = y \mid X = G(z))\big], среднее по шуму (Salimans et al., 2016, §4). Плотность PgP_g не нужна, нужны только сэмплы. Это важно, потому что генератор GAN — неявная модель (implicit): из него можно сэмплировать, но нельзя вычислить плотность.

Шаг 3. Условная вероятность — это выход классификатора, P(Y=y∣X=x)=p(y∣x)P(Y = y \mid X = x) = p(y \mid x), поэтому

p(y)=Ex[p(y∣x)].p(y) = \mathbb E_x\big[p(y \mid x)\big].

На практике математическое ожидание эмпирическое: распределение XX равномерно на NN взятых сэмплах, поэтому каждое изображение получает вес 1/N1/N и

p(y)≈1N∑i=1Np(y∣xi).p(y) \approx \frac1N \sum_{i=1}^{N} p(y \mid x_i).

От двух энтропий к одной KL-дивергенции#

Мы хотим, чтобы маргинальная энтропия была большой, а средняя условная энтропия — маленькой, поэтому рассмотрим их разность. Оказывается, это средняя KL-дивергенция: H(p(y))−ExH(p(y∣x))=ExDKL(p(y∣x) ∥ p(y))H(p(y)) - \mathbb E_x H(p(y \mid x)) = \mathbb E_x D_{\mathrm{KL}}(p(y \mid x)\,\|\,p(y)). Пять шагов ниже доказывают это, а за ними следует довод о линейности, на который опирается шаг 2. Кто предпочитает сначала числа, может проверить тождество на примере с тремя классами и вернуться к доказательству позже.

1. Раскроем обе энтропии.

H(p(y))−Ex[H(p(y∣x))]=(−∑yp(y)log⁡p(y))−Ex[−∑yp(y∣x)log⁡p(y∣x)]=−∑yp(y)log⁡p(y)+Ex[∑yp(y∣x)log⁡p(y∣x)].\begin{aligned} &H(p(y)) - \mathbb E_x\big[H(p(y \mid x))\big] \\ &\quad= \Big(-\sum_y p(y)\log p(y)\Big) \\ &\qquad - \mathbb E_x\Big[-\sum_y p(y \mid x)\log p(y \mid x)\Big] \\ &\quad= -\sum_y p(y)\log p(y) \\ &\qquad + \mathbb E_x\Big[\sum_y p(y \mid x)\log p(y \mid x)\Big]. \end{aligned}

2. Заменим p(y)p(y) на Ex[p(y∣x)]\mathbb E_x[p(y \mid x)] в весе первой суммы. Величина p(y)p(y) под логарифмом остаётся как есть. Множитель log⁡p(y)\log p(y) не зависит от xx, поэтому его можно внести под математическое ожидание, а сумму по yy можно поменять местами с Ex\mathbb E_x (см. ниже):

=−∑yEx[p(y∣x)]log⁡p(y)+Ex[∑yp(y∣x)log⁡p(y∣x)]=Ex[∑yp(y∣x)log⁡p(y∣x)]−Ex[∑yp(y∣x)log⁡p(y)].\begin{aligned} &= -\sum_y \mathbb E_x\big[p(y \mid x)\big]\log p(y) \\ &\qquad + \mathbb E_x\Big[\sum_y p(y \mid x)\log p(y \mid x)\Big] \\ &= \mathbb E_x\Big[\sum_y p(y \mid x)\log p(y \mid x)\Big] \\ &\qquad - \mathbb E_x\Big[\sum_y p(y \mid x)\log p(y)\Big]. \end{aligned}

3. Вынесем общее математическое ожидание.

=Ex[∑yp(y∣x)(log⁡p(y∣x)−log⁡p(y))].= \mathbb E_x\Big[\sum_y p(y \mid x)\big(\log p(y \mid x) - \log p(y)\big)\Big].

4. Объединим логарифмы.

=Ex[∑yp(y∣x)log⁡p(y∣x)p(y)].= \mathbb E_x\Big[\sum_y p(y \mid x)\log\frac{p(y \mid x)}{p(y)}\Big].

5. Выделим KL-дивергенцию. Внутренняя сумма равна DKL(p(y∣x) ∥ p(y))D_{\mathrm{KL}}(p(y \mid x)\,\|\,p(y)), поэтому

H(p(y))−Ex[H(p(y∣x))]=Ex[DKL(p(y∣x) ∥ p(y))].\begin{aligned} &H(p(y)) - \mathbb E_x\big[H(p(y \mid x))\big] \\ &\quad= \mathbb E_x\Big[D_{\mathrm{KL}}\big(p(y \mid x)\,\|\,p(y)\big)\Big]. \end{aligned}

Левая часть — это энтропия YY минус её условная энтропия при заданном XX, то есть взаимная информация (mutual information) I(X;Y)I(X; Y) между сгенерированным изображением и предсказанным для него классом. Значит, log⁡IS=I(X;Y)\log \mathrm{IS} = I(X; Y): логарифм метрики измеряет, сколько информации о своей метке несёт сгенерированное изображение (Barratt and Sharma, 2018, §3.3, формулы 2–3 и приложение A).

Почему сумму и математическое ожидание можно поменять местами. Ex[⋅]\mathbb E_x[\cdot] — линейный оператор, а ∑y\sum_y — конечная дискретная сумма по классам. Для любого линейного оператора и конечной суммы

∑yEx[fy(x)]=Ex[∑yfy(x)],\sum_y \mathbb E_x\big[f_y(x)\big] = \mathbb E_x\Big[\sum_y f_y(x)\Big],

где yy — класс, а xx — изображение. Это линейность математического ожидания: математическое ожидание суммы равно сумме математических ожиданий. На шаге 2 она применяется при fy(x)=p(y∣x)log⁡p(y)f_y(x) = p(y \mid x)\log p(y).

Рисунок

Что измеряет каждый член тождества

Тождество Inception Score с пояснениямиТождество: H от p от y минус математическое ожидание по x от H от p от y при условии x равно математическому ожиданию по x от KL-дивергенции p от y при условии x относительно p от y. Стрелка подписывает первый член как разнообразие, которое мы хотим сделать высоким: оно высокое, когда сгенерированные классы распределены равномерно, и не больше log n. Стрелка подписывает второй член как неопределённость, которую мы хотим сделать низкой: она низкая, когда каждое изображение явно относится к одному классу, и не меньше 0. Стрелка подписывает правую часть как то, насколько предсказание для каждого изображения далеко от среднего предсказания; экспонента от неё даёт IS в пределах от 1 до n.H(p(y))−𝔼x[H(p(y | x))]=𝔼x[DKL(p(y | x) ‖ p(y))]разнообразие (хотим высокое)высокое, когда классывстречаются равномерно; не больше log nнеопределённость (хотим низкую)низкая, когда каждое изображениеявно одного класса; не меньше 0насколько предсказания дляизображений далеки от среднегоexp(·)1 ≤ IS ≤ nТождество Inception Score с пояснениямиТождество: H от p от y минус математическое ожидание по x от H от p от y при условии x равно математическому ожиданию по x от KL-дивергенции p от y при условии x относительно p от y. Первый член — разнообразие, которое мы хотим сделать высоким: оно высокое, когда сгенерированные классы распределены равномерно, и не больше log n. Второй член — неопределённость, которую мы хотим сделать низкой: она низкая, когда каждое изображение явно относится к одному классу, и не меньше 0. Правая часть измеряет, насколько предсказание для каждого изображения далеко от среднего предсказания; экспонента от неё даёт IS в пределах от 1 до n.разнообразие классовхотим высокое, ≤ log n;велико при равных доляхнеопределённостьхотим низкую, ≥ 0;мала при явном классеH(p(y))−𝔼x[H(p(y | x))]=𝔼x[DKL(p(y | x) ‖ p(y))]насколько предсказания дляизображений далеки от среднегоexp(·)1 ≤ IS ≤ n
Две энтропии — это две цели метрики: высокая маргинальная энтропия (разнообразие) и низкая условная энтропия (каждое изображение отчётливо похоже на что-то). Их разность — средняя KL-дивергенция, от которой Inception Score берёт экспоненту.

Форма через KL даёт второе прочтение метрики. Мы сравниваем распределение по классам для каждого изображения с усреднённым (маргинальным). Если предсказанное для изображения распределение по классам отличается от среднего, то и его предсказание отличается от предсказаний для остальных изображений. Дивергенция велика, когда p(y∣x)p(y \mid x) имеет острый пик на классе, на котором маргинальное распределение не сосредоточено.

Формула метрики#

Inception Score — это экспонента от этой средней дивергенции:

IS=exp⁡(Ex[DKL(p(y∣x) ∥ p(y))])≈exp⁡(1N∑i=1NDKL(p(y∣xi) ∥ p(y))).\begin{aligned} \mathrm{IS} &= \exp\Big(\mathbb E_x\Big[D_{\mathrm{KL}}\big(p(y \mid x)\,\|\,p(y)\big)\Big]\Big) \\ &\approx \exp\Big(\frac1N\sum_{i=1}^{N} D_{\mathrm{KL}}\big(p(y \mid x_i)\,\|\,p(y)\big)\Big). \end{aligned}

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

Дивергенция всегда конечна. KL-дивергенция DKL(p(y∣x) ∥ p(y))D_{\mathrm{KL}}(p(y \mid x)\,\|\,p(y)) конечна, только если p(y)>0p(y) > 0 везде, где p(y∣x)>0p(y \mid x) > 0, а здесь это выполнено всегда: p(y)p(y) — среднее p(y∣xi)p(y \mid x_i), поэтому оно положительно для каждого класса, которому хоть одно изображение даёт положительную вероятность. В арифметике с плавающей точкой выход softmax всё же может обратиться ровно в 0, и тогда код должен применять соглашение 0log⁡0=00 \log 0 = 0, а не вычислять это выражение.

В коде оценка занимает несколько строк. Если собрать выходы классификатора в массив формы (N,n)(N, n), она воспроизводит разобранный пример ниже (2.022.02 для генератора A, 1.521.52 для D). Функция rel_entr из SciPy вычисляет alog⁡(a/b)a \log(a/b) с соглашением 0log⁡0=00 \log 0 = 0, так что точные нули не дают NaN. Это крошечная оценка для иллюстрации, а не эталонная реализация: опубликованные значения фиксируют ещё веса сети, предобработку изображений, число сэмплов и разбиение на части.

import numpy as np
from scipy.special import rel_entr

def inception_score(probs):
    # probs[i] — это p(y | x_i), форма (N, n)
    assert np.allclose(probs.sum(axis=1), 1)  # строки — распределения
    p_y = probs.mean(axis=0)  # маргинальное p(y)
    # D_KL(p(y | x_i) || p(y)) для каждого i, с 0 log 0 = 0
    kl = rel_entr(probs, p_y).sum(axis=1)
    return np.exp(kl.mean())

A = np.array([[0.9, 0.05, 0.05],
              [0.05, 0.9, 0.05],
              [0.05, 0.05, 0.9]])
print(inception_score(A))  # 2.022...

Основание логарифма и диапазон значений#

Основание логарифма может быть любым, если возведение в степень ему соответствует. С log⁡e\log_e метрика использует exp⁡(⋅)\exp(\cdot), с log⁡2\log_2 — 2(⋅)2^{(\cdot)}. Оба варианта дают одно и то же значение: значение KL в битах равно значению в натах (nats), делённому на ln⁡2\ln 2, а 2a/ln⁡2=ea2^{a/\ln 2} = e^{a}.

Диапазон значений метрики следует из трёх фактов, доказанных в заметке Энтропия, кросс-энтропия и KL-дивергенция:

  • DKL≥0D_{\mathrm{KL}} \ge 0 (почему KL неотрицательна), поэтому Ex[DKL]≥0\mathbb E_x[D_{\mathrm{KL}}] \ge 0.
  • Энтропии дискретных распределений неотрицательны, H(p(y∣x))≥0H(p(y \mid x)) \ge 0. По доказанному тождеству Ex[DKL]=H(p(y))−Ex[H(p(y∣x))]≤H(p(y))\mathbb E_x[D_{\mathrm{KL}}] = H(p(y)) - \mathbb E_x[H(p(y \mid x))] \le H(p(y)).
  • Маргинальная энтропия не превосходит log⁡n\log n, причём равенство достигается, только когда p(y)p(y) равномерно (неравенство Гиббса относительно равномерного распределения).

Вместе получаем

0≤Ex[DKL]≤H(p(y))≤log⁡n⟹1≤IS≤n.\begin{gathered} 0 \le \mathbb E_x\big[D_{\mathrm{KL}}\big] \le H(p(y)) \le \log n \\ \Longrightarrow\quad 1 \le \mathrm{IS} \le n . \end{gathered}

На языке взаимной информации это 0≤I(X;Y)≤H(Y)≤log⁡n0 \le I(X; Y) \le H(Y) \le \log n (Barratt and Sharma, 2018, §3.3 и приложение B). Максимум показателя экспоненты равен ln⁡n\ln n в натах и log⁡2n\log_2 n в битах.

IS=1\mathrm{IS} = 1 ровно тогда, когда (почти) каждое изображение получает одно и то же распределение по классам, потому что KL-дивергенция равна нулю, только когда два её аргумента совпадают. Это общее распределение может иметь острый пик (коллапс мод, mode collapse) или быть плоским (ни одно изображение не распознаётся). Для IS=n\mathrm{IS} = n нужно, чтобы все H(p(y∣x))=0H(p(y \mid x)) = 0, а маргинальное распределение было равномерным, то есть нужны предсказания в виде one-hot-векторов, равномерно распределённые по всем nn классам. Softmax никогда не выдаёт точный one-hot-вектор, поэтому метрика лишь приближается к nn. Для Inception v3 на ImageNet n=1000n = 1000.

Разобранный пример с тремя классами#

Возьмём классификатор с n=3n = 3 классами (бигль, корги, хаски) и по три сгенерированных изображения на генератор. Столбцы таблицы — выходы для отдельных изображений p(y∣xi)p(y \mid x_i) при i=1,2,3i = 1, 2, 3, маргинальное распределение p(y)p(y), его энтропия H(p(y))H(p(y)), средняя условная энтропия ExH(p(y∣x))\mathbb E_x H(p(y \mid x)), средняя дивергенция ExDKL\mathbb E_x D_{\mathrm{KL}} и значение метрики. Энтропии и дивергенции измеряются в натах; метрика безразмерна.

ГенераторВыходы для изображенийМаргинальное распределениеМаргинальная энтропияСредняя условная энтропияСредняя KLIS
A: уверенный, разнообразный(0.9,0.05,0.05),(0.9, 0.05, 0.05), (0.05,0.9,0.05),(0.05, 0.9, 0.05), (0.05,0.05,0.9)(0.05, 0.05, 0.9)(13,13,13)(\frac13, \frac13, \frac13)1.0991.0990.3940.3940.7040.7042.022.02
B: коллапс мод(0.9,0.05,0.05)(0.9, 0.05, 0.05) три раза(0.9,0.05,0.05)(0.9, 0.05, 0.05)0.3940.3940.3940.394001.001.00
C: неуверенный(13,13,13)(\frac13, \frac13, \frac13) три раза(13,13,13)(\frac13, \frac13, \frac13)1.0991.0991.0991.099001.001.00
D: частичный коллапс(0.9,0.05,0.05)(0.9, 0.05, 0.05) дважды, (0.05,0.9,0.05)(0.05, 0.9, 0.05)(0.617,0.333,0.05)(0.617, 0.333, 0.05)0.8140.8140.3940.3940.4200.4201.521.52

Для генератора A у каждого изображения

H(p(y∣x))=−(0.9ln⁡0.9+2⋅0.05ln⁡0.05)≈0.0948+0.2996=0.394 ната,\begin{aligned} H(p(y \mid x)) &= -\big(0.9\ln 0.9 + 2\cdot 0.05\ln 0.05\big) \\ &\approx 0.0948 + 0.2996 \\ &= 0.394 \text{ ната}, \end{aligned}

а маргинальное распределение равномерно, поэтому H(p(y))=ln⁡3≈1.099H(p(y)) = \ln 3 \approx 1.099. Разность равна 0.7040.704, и IS=e0.704≈2.02\mathrm{IS} = e^{0.704} \approx 2.02. Поскольку маргинальное распределение равномерно, дивергенция каждого изображения равна DKL(p(y∣xi) ∥ p(y))=ln⁡3−H(p(y∣xi))=0.704D_{\mathrm{KL}}(p(y \mid x_i)\,\|\,p(y)) = \ln 3 - H(p(y \mid x_i)) = 0.704, поэтому среднее этих дивергенций совпадает с разностью энтропий. В общем случае совпадать обязано только среднее. В D три дивергенции равны 0.2450.245, 0.2450.245 и 0.7680.768 ната, и только их среднее, 0.4200.420, равно 0.814−0.3940.814 - 0.394.

Генераторы B и C оба получают минимальное значение 11, но по противоположным причинам. B уверен, но всегда рисует бигля, поэтому пик у p(y)p(y) такой же острый, как у каждого p(y∣x)p(y \mid x). C «разнообразен» в среднем, но ни одно отдельное изображение ни на что не похоже. Генератор D теряет класс хаски и оказывается посередине. С идеальными one-hot-предсказаниями, равномерно распределёнными по классам, метрика достигла бы своего максимума n=3n = 3.

Рисунок

Три класса, четыре генератора

Inception Score для четырёх игрушечных генераторовГенератор A выдаёт три изображения, каждое из которых с вероятностью 0.9 отнесено к своему классу; маргинальное распределение равномерно, средняя KL-дивергенция равна 0.70 ната, а IS равен 2.02. Генератор B выдаёт три изображения, и все они с вероятностью 0.9 отнесены к биглю; маргинальное распределение совпадает с распределением для каждого изображения, KL равна 0, а IS равен 1. Генератор C выдаёт изображения с равномерными вероятностями классов; маргинальное распределение тоже равномерно, KL равна 0, а IS равен 1. Генератор D выдаёт двух биглей и одного корги, каждого с вероятностью 0.9, и никогда не выдаёт хаски; маргинальное распределение равно 0.62, 0.33, 0.05, средняя KL равна 0.42, а IS равен 1.52.p(y | x₁)p(y | x₂)p(y | x₃)p(y)метрикаA · уверенный и разнообразныйбкхH = 0.39бкхH = 0.39бкхH = 0.39среднеебкхH = 1.10средняя DKL = 0.70IS = 2.02B · уверенный, коллапс модбкхH = 0.39бкхH = 0.39бкхH = 0.39среднеебкхH = 0.39средняя DKL = 0.00IS = 1.00C · неуверенный, разнообразный в среднембкхH = 1.10бкхH = 1.10бкхH = 1.10среднеебкхH = 1.10средняя DKL = 0.00IS = 1.00D · частичный коллапс (без хаски)бкхH = 0.39бкхH = 0.39бкхH = 0.39среднеебкхH = 0.81средняя DKL = 0.42IS = 1.52Inception Score для четырёх игрушечных генераторовГенератор A выдаёт три изображения, каждое из которых с вероятностью 0.9 отнесено к своему классу; маргинальное распределение равномерно, средняя KL-дивергенция равна 0.70 ната, а IS равен 2.02. Генератор B выдаёт три изображения, и все они с вероятностью 0.9 отнесены к биглю; маргинальное распределение совпадает с распределением для каждого изображения, KL равна 0, а IS равен 1. Генератор C выдаёт изображения с равномерными вероятностями классов; маргинальное распределение тоже равномерно, KL равна 0, а IS равен 1. Генератор D выдаёт двух биглей и одного корги, каждого с вероятностью 0.9, и никогда не выдаёт хаски; маргинальное распределение равно 0.62, 0.33, 0.05, средняя KL равна 0.42, а IS равен 1.52.A · уверенный и разнообразныйp(y | x₁)бкхH = 0.39p(y | x₂)бкхH = 0.39p(y | x₃)бкхH = 0.39среднеебкхp(y)H = 1.10средняя DKL = 0.70IS = 2.02B · уверенный, коллапс модp(y | x₁)бкхH = 0.39p(y | x₂)бкхH = 0.39p(y | x₃)бкхH = 0.39среднеебкхp(y)H = 0.39средняя DKL = 0.00IS = 1.00C · неуверенный, разнообразный в среднемp(y | x₁)бкхH = 1.10p(y | x₂)бкхH = 1.10p(y | x₃)бкхH = 1.10среднеебкхp(y)H = 1.10средняя DKL = 0.00IS = 1.00D · частичный коллапс (без хаски)p(y | x₁)бкхH = 0.39p(y | x₂)бкхH = 0.39p(y | x₃)бкхH = 0.39среднеебкхp(y)H = 0.81средняя DKL = 0.42IS = 1.52
Синие столбцы — выходы классификатора p(y | x) для трёх сгенерированных изображений; зелёные столбцы — их среднее p(y). У генератора A выходы для отдельных изображений имеют острый пик, а маргинальное распределение плоское, и значение метрики у него самое высокое; B (коллапс мод) и C (нераспознаваемые изображения) оба получают минимальное значение 1; D, который никогда не рисует хаски, оказывается посередине. Энтропии H измеряются в натах; б, к, х — бигль, корги, хаски.

Ограничения#

У метрики есть хорошо известные слепые пятна (Barratt and Sharma, 2018; номера разделов ниже относятся к этой статье):

  • Она никогда не смотрит на реальные данные. Генератор, который выдаёт по одному идеальному изображению на класс, получает максимальное значение, игнорируя всё остальное в распределении данных, в том числе разнообразие внутри класса. Генератор, который запоминает обучающие изображения, получает такое же значение, как сами данные (§4.2.3), а распределение данных вовсе не обязано максимизировать метрику: в одномерном примере с двумя перекрывающимися классами несколько других распределений получают более высокое значение, чем истинное (§4).
  • Её можно обмануть. Оптимизация метрики, напрямую или косвенно через выбор модели (ранняя остановка, подбор гиперпараметров или поиск архитектуры), уводит в сторону состязательных примеров (adversarial examples). Слегка возмущённые сэмплы WGAN достигают IS≈900\mathrm{IS} \approx 900 из возможных 1000, хотя ничуть не больше похожи на естественные изображения (§4.2.2, рисунок 1).
  • Она зависит от классификатора. Метрика привязана к 1000 классам ImageNet и к конкретной сети и реализации. Версии Inception v3 для Keras и Torch с почти одинаковой долей правильных ответов (accuracy) дают значения, которые различаются на 3.5% на валидационных изображениях ImageNet и на 11.5% на изображениях CIFAR-10 (§4.1.1). Исходный код и вовсе использует версию сети с 1008 выходами вместо 1000 (сноска 2). Для данных вне домена ImageNet классы не имеют смысла (§4.2.1).
  • Она зависит от размера выборки и протокола. Обычный протокол использует 50 000 изображений, разбитых на 10 групп по 5000, и сообщает среднее и стандартное отклонение значений по группам. Маргинальное p(y)p(y) оценивается отдельно для каждой группы, и значение меняется с числом групп, поэтому значения, вычисленные по-разному, несравнимы (§3.4, §4.1.2).

Ноутбук#

Ноутбук о метриках из репозитория HSE-LAMBDA Deep Generative Models (закреплённый коммит; ячейки нумеруются с 1, считая все ячейки подряд, в том числе текстовые) вводит IS в ячейках 2–4: назначение метрики, две иллюстрации (уверенные и разнообразные предсказания), эмпирические формулы p(y)≈1N∑ip(y∣xi)p(y) \approx \frac1N\sum_i p(y \mid x_i) и IS≈exp⁡(1N∑iDKL)\mathrm{IS} \approx \exp\big(\frac1N\sum_i D_{\mathrm{KL}}\big), замечание о том, что метрика зависит от классификатора и на неё может влиять несовпадение доменов, и интерпретацию, при которой распределение по классам для каждого сэмпла сравнивается с усреднённым. Ячейка 6 сводит IS, FID и LPIPS в одну сравнительную таблицу. Ноутбук не вычисляет IS; его практическая часть посвящена LPIPS.

Дальше#

IS оценивает сгенерированные изображения сами по себе. Fréchet Inception Distance использует ту же сеть, но сравнивает сгенерированные изображения с настоящими.

Литература#