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

03 / 33 · Основы

Энтропия, кросс-энтропия и KL-дивергенция

От неожиданности к энтропии, кросс-энтропии и расхождению Кульбака–Лейблера; почему кросс-энтропия служит функцией потерь моделей, основанных на правдоподобии; симметричная дивергенция Йенсена–Шеннона.

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

Предыдущая заметка закончилась конкретной задачей: подогнать обучаемое распределение QQ к целевому распределению PP. Для этого нужно число, которое измеряет, насколько QQ далеко от PP. Стандартный первый выбор — расхождение Кульбака–Лейблера (Kullback–Leibler divergence):

DKL(P ∥ Q)=∑x∈XP(x) log⁡P(x)Q(x).D_{\mathrm{KL}}(P \,\|\, Q) = \sum_{x \in \mathcal X} P(x)\,\log\frac{P(x)}{Q(x)} .

Что означает эта формула? В этой заметке мы строим её с нуля: неожиданность → энтропия → кросс-энтропия → KL. Попутно станет ясно, почему кросс-энтропия служит функцией потерь классификаторов и языковых моделей. Промежуточные величины — энтропия и кросс-энтропия:

H(P)=−∑x∈XP(x)log⁡P(x),H(P,Q)=−∑x∈XP(x)log⁡Q(x).\begin{gathered} H(P) = -\sum_{x\in\mathcal X} P(x)\log P(x), \\ H(P, Q) = -\sum_{x\in\mathcal X} P(x)\log Q(x). \end{gathered}

Обозначения. PP — реальное распределение (данных, целевое), QQ — предполагаемое распределение (модели). H(P)H(P) — энтропия X∼PX \sim P, которую иногда записывают и как H(X)H(X). Для непрерывных распределений строчные pp и qq обозначают плотности, а суммы становятся интегралами; что меняется для плотностей, сказано в конце раздела о KL. log⁡2\log_2 даёт биты, ln⁡\ln — наты (nats); просто log⁡\log означает любое из двух, если всюду используется одно основание.

Неожиданность#

Построение ниже следует интуитивному пути, которым идёт объяснение энтропии в StatQuest Джоша Стармера (Starmer, 2021); строгое изложение — в Cover and Thomas (2006), глава 2.

Возьмём два поля, на каждом по десять значков. На поле A 5 ноликов и 5 крестиков, на поле B — 9 ноликов и 1 крестик. Вытянем один значок наугад. На каком поле вытянуть X неожиданнее?

Рисунок

На каком поле вытянуть X неожиданнее?

Два поля с ноликами и крестикамиНа поле A пять ноликов и пять крестиков, поэтому P(O) = P(X) = 1/2; вытянутый X несёт 1 бит неожиданности, а энтропия равна 1 биту. На поле B девять ноликов и один крестик, поэтому P(O) = 9/10 и P(X) = 1/10; вытянутый X несёт 3.32 бита неожиданности, а энтропия равна 0.469 бита.илиПоле A#O = 5#X = 5P(O) = 5/10, P(X) = 5/10неожиданность X: 1 битэнтропия H = 1 битПоле B#O = 9#X = 1P(O) = 9/10, P(X) = 1/10неожиданность X: 3.32 битаэнтропия H = 0.469 битаредкий X: большая неожиданностьДва поля с ноликами и крестикамиНа поле A пять ноликов и пять крестиков, поэтому P(O) = P(X) = 1/2; вытянутый X несёт 1 бит неожиданности, а энтропия равна 1 биту. На поле B девять ноликов и один крестик, поэтому P(O) = 9/10 и P(X) = 1/10; вытянутый X несёт 3.32 бита неожиданности, а энтропия равна 0.469 бита.Поле A#O = 5#X = 5P(O) = 5/10, P(X) = 5/10неожиданность X: 1 битэнтропия H = 1 битПоле B#O = 9#X = 1P(O) = 9/10, P(X) = 1/10неожиданность X: 3.32 битаэнтропия H = 0.469 битаредкий X: большая неожиданность
На обоих полях по десять значков. На поле B крестик редок (1 из 10), поэтому вытянуть его неожиданнее, а само поле в целом более предсказуемо: его энтропия, средняя неожиданность, которую мы определим в следующем разделе, ниже, чем у сбалансированного поля A.

Будем неформально понимать неожиданность (surprise) как ощущение, что чего-то не должно было случиться. Вероятности вытянуть каждый значок равны

A:P(O)=12,    P(X)=12,B:P(O)=910,    P(X)=110.\begin{gathered} \text{A:}\quad P(\text{O}) = \tfrac12,\;\; P(\text{X}) = \tfrac12, \\ \text{B:}\quad P(\text{O}) = \tfrac{9}{10},\;\; P(\text{X}) = \tfrac{1}{10}. \end{gathered}

Крестик явно неожиданнее на поле B, значит, неожиданность должна расти, когда вероятность падает.

Первая попытка: 1/p1/p. Чтобы сравнить 12\tfrac12 и 110\tfrac1{10}, перевернём дроби: 1/P(X)1/P(\text{X}) равно 22 на поле A и 1010 на поле B. Такая мера правильно упорядочивает поля, а как функция pp она убывает.

Проблема. Возьмём нечестную монету, которая всегда падает орлом (H, heads): HHHHHHHHHH. Два её исхода дают

P(H)=1:1P(H)=11=1,P(T)=0:1P(T)=10.\begin{aligned} P(H) = 1 &: \quad \frac{1}{P(H)} = \frac11 = 1, \\[4pt] P(T) = 0 &: \quad \frac{1}{P(T)} = \frac10 . \end{aligned}

Орёл вообще не должен нас удивлять, поэтому первое значение должно быть равно 00. Второе даже не является числом.

Исправление: возьмём логарифм.

log⁡1P(H)=log⁡1=0,log⁡1P(T)=log⁡1−log⁡0не определено.\begin{aligned} \log\frac{1}{P(H)} &= \log 1 = 0, \\ \log\frac{1}{P(T)} &= \log 1 - \log 0 \quad\text{не определено}. \end{aligned}

Эта неопределённость нам не мешает: исход с вероятностью 00 никогда не происходит, так что его неожиданность никогда не понадобится. Так мы получаем определение неожиданности, которую также называют собственной информацией (self-information):

s(x)=log⁡1P(x)=−log⁡P(x).s(x) = \log\frac{1}{P(x)} = -\log P(x).

Она равна 00 при P(x)=1P(x) = 1 и неограниченно растёт при P(x)→0P(x) \to 0.

Рисунок

У достоверного исхода неожиданность должна быть нулевой

Неожиданность как функция вероятностиДве убывающие кривые на отрезке вероятностей от 0 до 1. Пунктирная кривая 1 / P(x) заканчивается на высоте 1 при P(x) = 1. Сплошная кривая минус логарифм по основанию 2 от P(x) заканчивается в нуле, отмеченном как отсутствие неожиданности. Точки отмечают вероятность 0.9 с неожиданностью 0.152 бита и вероятность 0.1 с неожиданностью 3.322 бита.01234500.10.50.91P(x)неожиданность1 / P(x)−log₂ P(x)P = 0.1: 3.322 битаP = 0.9: 0.152 битанет неожиданности при P(x) = 11/P = 1Неожиданность как функция вероятностиДве убывающие кривые на отрезке вероятностей от 0 до 1. Пунктирная кривая 1 / P(x) заканчивается на высоте 1 при P(x) = 1. Сплошная кривая минус логарифм по основанию 2 от P(x) заканчивается в нуле, отмеченном как отсутствие неожиданности. Точки отмечают вероятность 0.9 с неожиданностью 0.152 бита и вероятность 0.1 с неожиданностью 3.322 бита.01234500.10.50.91P(x)неожиданность1 / P(x)−log₂ P(x)P = 0.1: 3.322 бита; P = 0.9: 0.152 битанет неожиданностипри P(x) = 11/P = 1
Первая попытка, 1/P(x), правильно упорядочивает редкие исходы, но при P(x) = 1 всё ещё равна 1. Логарифм переносит эту точку в ноль. Неожиданность −log₂ P(x) измеряется в битах, у 1/P(x) единицы измерения нет. Две отмеченные точки — вероятности 0.1 и 0.9 из примера с несимметричной монетой ниже.

Несимметричная монета#

Пусть P(H)=0.9P(H) = 0.9 и P(T)=0.1P(T) = 0.1, где T (tails) — решка. Тогда

log⁡210.9≈0.152,log⁡210.1≈3.322.\log_2\frac{1}{0.9} \approx 0.152, \qquad \log_2\frac{1}{0.1} \approx 3.322 .

Решка выпадает гораздо реже орла, поэтому её неожиданность гораздо больше.

ОрёлРешка
Вероятность P(x)P(x)0.90.90.10.1
Неожиданность log⁡21P(x)\log_2 \frac{1}{P(x)}0.1520.1523.3223.322

Неожиданность аддитивна#

Теперь подбросим монету три раза и увидим H H T. Броски независимы, поэтому вероятность последовательности равна 0.9×0.9×0.10.9 \times 0.9 \times 0.1, и

s(HHT)=log⁡210.9⋅0.9⋅0.1=−log⁡20.9−log⁡20.9−log⁡20.1≈0.152+0.152+3.322=3.626 бита.\begin{aligned} s(\text{HHT}) &= \log_2\frac{1}{0.9\cdot 0.9\cdot 0.1} \\ &= -\log_2 0.9 - \log_2 0.9 - \log_2 0.1 \\ &\approx 0.152 + 0.152 + 3.322 \\ &= 3.626 \text{ бита}. \end{aligned}

Полная неожиданность последовательности равна сумме неожиданностей отдельных бросков. Именно это даёт логарифм: он превращает произведение вероятностей в сумму. Никакая другая непрерывная функция этого не делает. Пусть s(pq)=s(p)+s(q)s(pq) = s(p) + s(q) для всех p,q∈(0,1]p, q \in (0, 1], и положим g(t)=s(e−t)g(t) = s(e^{-t}) при t≥0t \ge 0. Тогда g(t+u)=g(t)+g(u)g(t + u) = g(t) + g(u), а единственные непрерывные решения этого уравнения линейны, g(t)=ctg(t) = ct. Следовательно, s(p)=clog⁡1ps(p) = c\log\frac1p. Требование, чтобы редкие исходы были неожиданными, даёт c>0c > 0, а выбор cc — это выбор основания. Поэтому логарифмы появляются во всех информационных мерах; соответствующий результат о единственности для самой энтропии доказал Шеннон (Shannon, 1948, теорема 2).

Рисунок

Вероятности перемножаются, неожиданности складываются

Неожиданность последовательности орёл, орёл, решкаТри блока: орёл с вероятностью 0.9, орёл с вероятностью 0.9, решка с вероятностью 0.1. Вероятность последовательности равна 0.9 на 0.9 на 0.1, то есть 0.081. Неожиданности равны 0.152, 0.152 и 3.322 бита, в сумме 3.626 бита, что равно логарифму по основанию 2 от 1 / 0.081. Составная полоса показывает, что почти всю сумму даёт бросок с решкой.P(H, H, T) = 0.9 × 0.9 × 0.1 = 0.081HP(H) = 0.9log₂(1/0.9)0.152HP(H) = 0.9log₂(1/0.9)0.152TP(T) = 0.1log₂(1/0.1)3.322++решка: 3.322 битасумма = 3.626 бита = log₂(1/0.081)Неожиданность последовательности орёл, орёл, решкаТри блока: орёл с вероятностью 0.9, орёл с вероятностью 0.9, решка с вероятностью 0.1. Вероятность последовательности равна 0.9 на 0.9 на 0.1, то есть 0.081. Неожиданности равны 0.152, 0.152 и 3.322 бита, в сумме 3.626 бита, что равно логарифму по основанию 2 от 1 / 0.081. Составная полоса показывает, что почти всю сумму даёт бросок с решкой.P(H, H, T) = 0.9 × 0.9 × 0.1 = 0.081HP(H) = 0.9log₂(1/0.9)0.152HP(H) = 0.9log₂(1/0.9)0.152TP(T) = 0.1log₂(1/0.1)3.322++решка: 3.322 битасумма = 3.626 бита = log₂(1/0.081)
Для независимых бросков вероятность последовательности H, H, T — произведение. Её логарифм распадается в сумму, поэтому полная неожиданность равна сумме неожиданностей отдельных бросков: почти вся она приходится на единственную редкую решку.

Энтропия: ожидаемая неожиданность#

Теперь оценим полную неожиданность после 100 бросков. Мы ожидаем около 9090 орлов и 1010 решек:

(0.9⋅100)⏟число H⋅0.152⏟неожиданность H+  (0.1⋅100)⋅3.322  ≈  46.9 бита.\begin{aligned} &\underbrace{(0.9\cdot 100)}_{\text{число H}}\cdot \underbrace{0.152}_{\text{неожиданность H}} \\ &\quad +\; (0.1\cdot 100)\cdot 3.322 \;\approx\; 46.9 \text{ бита}. \end{aligned}

Разделив на 100, получаем неожиданность на один бросок:

0.9⋅0.152+0.1⋅3.322≈0.469 бита.0.9 \cdot 0.152 + 0.1 \cdot 3.322 \approx 0.469 \text{ бита}.

Это неожиданность, которую мы ожидаем в среднем при каждом броске монеты. Каждая вероятность умножается на свою неожиданность, а это в точности математическое ожидание: если S=s(X)S = s(X) — неожиданность случайного исхода X∼PX \sim P, то E[S]=∑xP(x) s(x)\mathbb E[S] = \sum_x P(x)\,s(x). Ожидаемая неожиданность — это энтропия:

H(P)=∑xP(x)log⁡1P(x)=−∑xP(x)log⁡P(x),\begin{aligned} H(P) &= \sum_x P(x)\log\frac{1}{P(x)} \\ &= -\sum_x P(x)\log P(x), \end{aligned}

величина, которую ввёл Клод Шеннон в 1948 году (Shannon, 1948).

Исходы с P(x)=0P(x) = 0 никогда не происходят, поэтому их слагаемые исключаются из суммы. Иначе говоря, мы пользуемся соглашением 0⋅log⁡10=00 \cdot \log\frac10 = 0, которое совпадает с пределом plog⁡1pp\log\frac1p при p→0p \to 0 (Cover and Thomas, 2006, §2.1). Поэтому у нечестной монеты, которая всегда падает орлом, энтропия равна 1⋅log⁡1=01 \cdot \log 1 = 0: в ней нет никакой неожиданности.

Снова о полях#

HA=12log⁡22+12log⁡22=1 бит,HB=910log⁡2109+110log⁡210≈0.469 бита.\begin{aligned} H_A &= \tfrac12\log_2 2 + \tfrac12\log_2 2 = 1 \text{ бит}, \\ H_B &= \tfrac{9}{10}\log_2\frac{10}{9} + \tfrac{1}{10}\log_2 10 \approx 0.469 \text{ бита}. \end{aligned}

У поля B в точности то же распределение, что у несимметричной монеты, поэтому и энтропия у него та же. Сбалансированное поле менее предсказуемо: большая энтропия означает большую неопределённость. Для двух исходов энтропия ни одного распределения не превышает 1 бита, и достигает этого значения только равномерное; это следует из неравенства Гиббса в следующем разделе.

Кросс-энтропия: неожиданность при неверном представлении#

Возьмём монету, которую наша модель считает честной, Q=(0.5, 0.5),{Q = (0.5,\,0.5)}, а в реальности она нечестная, P=(0.99, 0.01).{P = (0.99,\,0.01)}. Мы видим десять орлов подряд:

Вероятность 10 орловНеожиданность (наты)
Модель QQ0.510≈0.0010.5^{10} \approx 0.001ln⁡0.5−10≈6.93\ln 0.5^{-10} \approx 6.93
Реальность PP0.9910≈0.900.99^{10} \approx 0.90ln⁡0.99−10≈0.10\ln 0.99^{-10} \approx 0.10
Рисунок

Десять орлов: неожиданно для модели, обычно в реальности

Предполагаемая честная монета и реальная нечестнаяСверху: модель Q даёт орлу вероятность 0.5 и решке 0.5; вероятность десяти орлов по Q равна 0.5 в степени 10, около 0.001, а неожиданность — минус натуральный логарифм этого числа, около 6.93 ната. Снизу: реальность P даёт орлу 0.99 и решке 0.01; вероятность десяти орлов по P равна 0.99 в степени 10, около 0.904, а неожиданность — около 0.10 ната. Красная подпись говорит, что неожиданность вызвана верой в ошибочную модель.выпало:HHHHHHHHHHМодель Q (наше представление)0.5H0.5TQ(10 орлов) = 0.5¹⁰ ≈ 0.001неожиданность = −ln 0.5¹⁰ ≈ 6.93 натаРеальность P0.99H0.01TP(10 орлов) = 0.99¹⁰ ≈ 0.904неожиданность = −ln 0.99¹⁰ ≈ 0.10 натанеожиданность из-за верыв ошибочную модельПредполагаемая честная монета и реальная нечестнаяСверху: модель Q даёт орлу вероятность 0.5 и решке 0.5; вероятность десяти орлов по Q равна 0.5 в степени 10, около 0.001, а неожиданность — минус натуральный логарифм этого числа, около 6.93 ната. Снизу: реальность P даёт орлу 0.99 и решке 0.01; вероятность десяти орлов по P равна 0.99 в степени 10, около 0.904, а неожиданность — около 0.10 ната. Красная подпись говорит, что неожиданность вызвана верой в ошибочную модель.выпало:HHHHHHHHHHМодель Q (наше представление)0.5H0.5TQ(10 орлов) = 0.5¹⁰ ≈ 0.001s = −ln 0.5¹⁰ ≈6.93 натаРеальность P0.99H0.01TP(10 орлов) = 0.99¹⁰ ≈ 0.904s = −ln 0.99¹⁰ ≈0.10 натанеожиданностьиз-за верыв ошибочную модель
Мы считаем монету честной, а она нечестная. У десяти орлов подряд вероятность около 0.001 по нашему представлению (6.93 ната неожиданности) и около 0.90 в реальности (0.10 ната). Разница — это неожиданность, которую порождает неверная модель, а не данные. Логарифмы натуральные.

Исход был обычным. Наша неожиданность вызвана тем, что мы верим в ошибочную модель.

Кросс-энтропия (cross-entropy) H(P,Q)H(P, Q) — это средняя неожиданность, когда реальное распределение равно PP, а мы верим в QQ:

H(P,Q)=∑x∈XP(x)⏟как часто xвстречается  log⁡1Q(x)⏟насколько насэто удивляетH(P, Q) = \sum_{x\in\mathcal X} \underbrace{P(x)}_{\substack{\text{как часто } x \\ \text{встречается}}}\; \underbrace{\log\frac{1}{Q(x)}}_{\substack{\text{насколько нас} \\ \text{это удивляет}}}
Рисунок

Как читать формулу кросс-энтропии

Реальное распределение P, предполагаемое распределение Q и формула кросс-энтропииДве столбчатые диаграммы на одних и тех же 18 дискретных исходах. Слева или сверху: реальное распределение P, высокое слева и убывающее с горбами. Справа или снизу: предполагаемое распределение Q, которое растёт, достигает пика в середине, проседает и даёт второй горб. Второй исход, x0, отмечен: P(x0) = 0.12 велико, Q(x0) около 9.0·10⁻⁵, почти ноль. Ниже формула: H(P, Q) равно сумме по x произведений P(x) на логарифм 1 / Q(x). Одна стрелка поясняет, что P(x) — это то, как часто встречается x; другая — что логарифм 1 / Q(x) показывает, насколько нас удивляет его появление.P (реальное)xx₀P(x₀)Q (предполагаемое)xx₀Q(x₀) ≈ 0H(P, Q) =∑xP(x)log1Q(x)как часто встречается xнасколько нас это удивляетв точке x₀: P(x₀) = 0.12, Q(x₀) ≈ 9.0·10⁻⁵, поэтому ln 1/Q(x₀) ≈ 9.3 натаРеальное распределение P, предполагаемое распределение Q и формула кросс-энтропииДве столбчатые диаграммы на одних и тех же 18 дискретных исходах. Слева или сверху: реальное распределение P, высокое слева и убывающее с горбами. Справа или снизу: предполагаемое распределение Q, которое растёт, достигает пика в середине, проседает и даёт второй горб. Второй исход, x0, отмечен: P(x0) = 0.12 велико, Q(x0) около 9.0·10⁻⁵, почти ноль. Ниже формула: H(P, Q) равно сумме по x произведений P(x) на логарифм 1 / Q(x). Одна стрелка поясняет, что P(x) — это то, как часто встречается x; другая — что логарифм 1 / Q(x) показывает, насколько нас удивляет его появление.P (реальное)xx₀P(x₀)Q (предполагаемое)xx₀Q(x₀) ≈ 0H(P, Q) =∑xP(x)log1Q(x)как часто встречается xнасколько нас это удивляетв точке x₀: ln 1/Q(x₀) ≈ 9.3 ната
Обе панели — распределения на одних и тех же дискретных исходах x. Исходы порождает реальное P, а неожиданность измеряется по предполагаемому Q. Отмеченный исход x₀ часто встречается при P (высокий красный столбик, P(x₀) = 0.12), но почти невозможен при Q (Q(x₀) ≈ 9.0·10⁻⁵, столбик слишком мал, чтобы его увидеть), поэтому каждое его появление обходится в большую неожиданность, ln 1/Q(x₀) ≈ 9.3 ната. Формы распределений условны.

Модель верна. Если Q=PQ = P, кросс-энтропия сводится к энтропии: H(P,P)=H(P)H(P, P) = H(P).

Всегда (неравенство Гиббса, Gibbs’ inequality):

H(P,Q)  ≥  H(P),H(P, Q) \;\ge\; H(P),

причём равенство достигается только при Q=PQ = P (Cover and Thomas, 2006, теорема 2.6.3). Вера в неверное распределение может только увеличить среднюю неожиданность. Доказательство займёт одну строку, когда у разности H(P,Q)−H(P)H(P, Q) - H(P) появится имя; оно приведено в следующем разделе.

Одно следствие закрывает вопрос, оставшийся открытым в примере с полями. Пусть QQ равномерно на ∣X∣|\mathcal X| исходах. Тогда log⁡1Q(x)=log⁡∣X∣\log\frac{1}{Q(x)} = \log|\mathcal X| для каждого xx, так что H(P,Q)=log⁡∣X∣H(P, Q) = \log|\mathcal X|, и неравенство Гиббса даёт H(P)≤log⁡∣X∣H(P) \le \log|\mathcal X|, причём равенство достигается только для равномерного PP (Cover and Thomas, 2006, теорема 2.6.4). Для двух исходов эта граница равна log⁡22=1\log_2 2 = 1 биту.

Асимметрия. В общем случае H(P,Q)≠H(Q,P)H(P, Q) \ne H(Q, P). Оставим PP нечестной монетой, а QQ — честной, и возьмём один бросок и натуральные логарифмы. Первый аргумент — всегда то распределение, которое порождает исходы. Сначала при вере в честную монету и нечестной реальности, затем при вере в нечестную монету и честной реальности:

H(P,Q)=0.99ln⁡2+0.01ln⁡2=ln⁡2≈0.69,H(Q,P)=0.5ln⁡10.99+0.5ln⁡10.01≈2.31.\begin{aligned} H(P, Q) &= 0.99\ln 2 + 0.01\ln 2 \\ &= \ln 2 \approx 0.69, \\ H(Q, P) &= 0.5\ln\frac{1}{0.99} + 0.5\ln\frac{1}{0.01} \\ &\approx 2.31 . \end{aligned}

В каждой сумме веса — фактические вероятности, а под логарифмами стоят предполагаемые. Вера в то, что честная монета нечестная, наказывается гораздо сильнее: решка тогда выпадает в половине случаев, и модель, считающая монету нечестной, сильно удивляется каждой из них.

Расхождение Кульбака–Лейблера#

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

H(P,Q)−H(P)=∑xP(x)log⁡1Q(x)−∑xP(x)log⁡1P(x)=∑x∈XP(x)log⁡P(x)Q(x)=DKL(P ∥ Q).\begin{aligned} H(P, Q) - H(P) &= \sum_x P(x)\log\frac{1}{Q(x)} \\ &\quad - \sum_x P(x)\log\frac{1}{P(x)} \\ &= \sum_{x\in\mathcal X} P(x)\log\frac{P(x)}{Q(x)} \\ &= D_{\mathrm{KL}}(P \,\|\, Q). \end{aligned}

KL-дивергенция (Kullback and Leibler, 1951) — это дополнительная неожиданность от того, что моделью служит QQ, а не PP. Вычитание требует, чтобы оба слагаемых были конечны; сумма справа — общее определение. Её слагаемые подчиняются тем же соглашениям, что и раньше. Слагаемое с P(x)=0P(x) = 0 даёт 00. Слагаемое с P(x)>0P(x) > 0, но Q(x)=0Q(x) = 0 равно P(x)log⁡P(x)0=+∞P(x)\log\frac{P(x)}{0} = +\infty, и тогда DKL(P ∥ Q)D_{\mathrm{KL}}(P\,\|\,Q) тоже бесконечна. Поэтому KL конечна, только если QQ даёт положительную вероятность каждому исходу, которому её даёт PP, то есть если PP абсолютно непрерывно относительно QQ (Cover and Thomas, 2006, §2.3). Следующая заметка показывает, что это условие означает при обучении.

Итак, KL неотрицательна и равна нулю только при Q=PQ = P. Она не симметрична и не удовлетворяет неравенству треугольника (Cover and Thomas, 2006, §2.3; пример приведён ниже), поэтому это дивергенция, а не расстояние. Для двух монет, в натах и с четырьмя знаками после точки, чтобы части сходились,

DKL(P ∥ Q)≈0.6931−0.0560=0.6371,DKL(Q ∥ P)≈2.3076−0.6931=1.6145.\begin{aligned} D_{\mathrm{KL}}(P\,\|\,Q) &\approx 0.6931 - 0.0560 = 0.6371, \\ D_{\mathrm{KL}}(Q\,\|\,P) &\approx 2.3076 - 0.6931 = 1.6145 . \end{aligned}
Рисунок

Кросс-энтропия = энтропия + KL-дивергенция

Кросс-энтропия, разложенная на энтропию и KL-дивергенциюВерхняя полоса: монету считают честной, а она нечестная, 0.99 против 0.01. Кросс-энтропия H(P, Q) = 0.6931 ната складывается из энтропии H(P) = 0.0560 ната и KL(P‖Q) = 0.6371 ната. Нижняя полоса: монету считают нечестной, а она честная. Кросс-энтропия H(Q, P) = 2.3076 ната складывается из энтропии H(Q) = 0.6931 ната и KL(Q‖P) = 1.6145 ната.Считаем честной, а она нечестная:H(P, Q) = 0.6931H(P) = 0.0560KL(P‖Q) = 0.6371Считаем нечестной, а она честная:H(Q, P) = 2.3076H(Q) = 0.6931KL(Q‖P) = 1.614500.511.522.5нат на бросокэнтропияKL: добавка из-за неверной моделиКросс-энтропия, разложенная на энтропию и KL-дивергенциюВерхняя полоса: монету считают честной, а она нечестная, 0.99 против 0.01. Кросс-энтропия H(P, Q) = 0.6931 ната складывается из энтропии H(P) = 0.0560 ната и KL(P‖Q) = 0.6371 ната. Нижняя полоса: монету считают нечестной, а она честная. Кросс-энтропия H(Q, P) = 2.3076 ната складывается из энтропии H(Q) = 0.6931 ната и KL(Q‖P) = 1.6145 ната.Считаем честной, а она нечестная:H(P, Q) = 0.6931H(P) = 0.0560KL(P‖Q) = 0.6371Считаем нечестной, а она честная:H(Q, P) = 2.3076H(Q) = 0.6931KL(Q‖P) = 1.614500.511.522.5нат на бросокэнтропияKL: добавка из-заневерной модели
Каждая полоса — средняя неожиданность на один бросок при неверном представлении. Красная часть — неожиданность, которую реальная монета даёт сама по себе (её энтропия); жёлто-оранжевая часть — дополнительная неожиданность, вызванная неверной моделью, то есть KL-дивергенция. Если поменять местами представление и реальность, меняются обе части. Значения в натах, с четырьмя знаками после точки, чтобы части сходились.

Два поля из начала заметки дают каждому значку положительную вероятность, поэтому KL-дивергенция между ними конечна в обоих направлениях, а её значение зависит от направления:

DKL(A ∥ B)=12log⁡21/29/10+12log⁡21/21/10≈0.737 бита,DKL(B ∥ A)=910log⁡29/101/2+110log⁡21/101/2≈0.531 бита.\begin{aligned} D_{\mathrm{KL}}(A\,\|\,B) &= \tfrac12\log_2\frac{1/2}{9/10} + \tfrac12\log_2\frac{1/2}{1/10} \\ &\approx 0.737 \text{ бита},\\ D_{\mathrm{KL}}(B\,\|\,A) &= \tfrac{9}{10}\log_2\frac{9/10}{1/2} + \tfrac{1}{10}\log_2\frac{1/10}{1/2} \\ &\approx 0.531 \text{ бита}. \end{aligned}

Проверим: H(B,A)=HB+DKL(B ∥ A)=0.469+0.531=1H(B, A) = H_B + D_{\mathrm{KL}}(B\,\|\,A) = 0.469 + 0.531 = 1 бит. Если измерять неожиданность по равномерному полю A, каждый вытянутый значок обходится ровно в один бит, каким бы ни было настоящее поле.

Рисунок

Сравнение двух полей с помощью KL

KL между сбалансированным и перекошенным полямиДве столбчатые диаграммы, O синим и X красным. На поле A столбики высотой одна вторая для O и для X, энтропия 1 бит. На поле B столбики 9/10 для O и 1/10 для X, энтропия 0.469 бита. Изогнутая стрелка от A к B подписана KL(A‖B) = 0.737 бита; изогнутая стрелка обратно от B к A подписана KL(B‖A) = 0.531 бита.Поле A1/2O1/2XH = 1 битПоле B9/10O1/10XH = 0.469 битаKL(A‖B) = 0.737KL(B‖A) = 0.531в битах; несимметричнаKL между сбалансированным и перекошенным полямиДве столбчатые диаграммы, O синим и X красным. На поле A столбики высотой одна вторая для O и для X, энтропия 1 бит. На поле B столбики 9/10 для O и 1/10 для X, энтропия 0.469 бита. Изогнутая стрелка от A к B подписана KL(A‖B) = 0.737 бита; изогнутая стрелка обратно от B к A подписана KL(B‖A) = 0.531 бита.Поле A1/2O1/2XH = 1 битПоле B9/10O1/10XH = 0.469 битаKL(A‖B) = 0.737KL(B‖A) = 0.531в битах;несимметрична
Два поля из начала заметки как распределения на {O, X}; нолики, как и раньше, синие, крестики красные. Энтропии равны 1 биту и 0.469 бита; KL-дивергенция между ними равна 0.737 бита в одну сторону и 0.531 бита в другую. Оба поля дают каждому исходу положительную вероятность, поэтому оба направления конечны. Каждая стрелка идёт от распределения, которое считается истинным (первый аргумент), к распределению, которое считается моделью.

Те же распределения показывают, что KL нарушает неравенство треугольника. Отождествим O с орлом, а X с решкой и сравним поле A с нечестной монетой P=(0.99,0.01)P = (0.99, 0.01) — один раз напрямую и один раз через поле B. Напрямую DKL(A ∥ P)≈2.329D_{\mathrm{KL}}(A\,\|\,P) \approx 2.329 бита. Через поле B получаем DKL(A ∥ B)+DKL(B ∥ P)≈0.737+0.208=0.945D_{\mathrm{KL}}(A\,\|\,B) + D_{\mathrm{KL}}(B\,\|\,P) \approx 0.737 + 0.208 = 0.945 бита, то есть меньше.

Почему мы минимизируем именно кросс-энтропию#

Для истинного распределения данных PP и модели QθQ_\theta:

DKL(P ∥ Qθ)⏟минимизируем по θ=H(P,Qθ)⏟минимизируем по θ−H(P)⏟константа: энтропияданных\underbrace{D_{\mathrm{KL}}(P \,\|\, Q_\theta)}_{\text{минимизируем по } \theta} = \underbrace{H(P, Q_\theta)}_{\text{минимизируем по } \theta} - \underbrace{H(P)}_{\substack{\text{константа: энтропия} \\ \text{данных}}}
  • Изменение параметров модели не может изменить энтропию данных, поэтому H(P)H(P) при оптимизации — константа.
  • Её значение нам тоже не нужно. Для многомерных данных, например изображений, оценить H(P)H(P) по сэмплам — само по себе трудная задача.
  • Поэтому минимизация KL по θ\theta и минимизация кросс-энтропии имеют одно и то же решение, а кросс-энтропия — та часть, которую можно оценить по сэмплам. Именно поэтому классификаторы и языковые модели обучают с кросс-энтропийной функцией потерь. Там то же рассуждение применяется к условному распределению метки (или следующего токена) при заданном входе. Целевое распределение P(⋅∣x)P(\cdot \mid x) тогда — истинное условное распределение метки, которого мы напрямую не видим. Каждый обучающий пример даёт одну наблюдённую метку, one-hot-вектор, и средний отрицательный логарифм правдоподобия наблюдённых меток — выборочная оценка условной кросс-энтропии Ex H(P(⋅∣x),Q(⋅∣x))\mathbb E_x\, H\big(P(\cdot \mid x), Q(\cdot \mid x)\big). Мягкие целевые значения, например сглаживание меток (label smoothing) или вероятности модели-учителя, заменяют one-hot-вектор другой оценкой P(⋅∣x)P(\cdot \mid x).

По сэмплам x1,…,xNx_1, \dots, x_N из PP кросс-энтропия оценивается средним отрицательным логарифмом правдоподобия:

H(P,Qθ)=Ex∼P[−log⁡Qθ(x)]≈−1N∑i=1Nlog⁡Qθ(xi).\begin{aligned} H(P, Q_\theta) &= \mathbb E_{x\sim P}\big[-\log Q_\theta(x)\big] \\ &\approx -\frac1N\sum_{i=1}^N \log Q_\theta(x_i). \end{aligned}

Его минимизация — это метод максимального правдоподобия (maximum-likelihood estimation). Для дискретных исходов средний отрицательный логарифм правдоподобия в точности равен кросс-энтропии H(P^,Qθ)H(\hat P, Q_\theta) между эмпирическим распределением P^\hat P сэмплов (вероятность 1/N1/N в каждой точке xix_i) и моделью, так что максимальное правдоподобие минимизирует DKL(P^ ∥ Qθ)D_{\mathrm{KL}}(\hat P\,\|\,Q_\theta) (Goodfellow, Bengio and Courville, 2016, §5.5). С ростом NN среднее по закону больших чисел сходится к H(P,Qθ)H(P, Q_\theta), а она отличается от DKL(P ∥ Qθ)D_{\mathrm{KL}}(P\,\|\,Q_\theta) только на константу H(P)H(P). Поэтому «минимизировать DKL(P ∥ Qθ)D_{\mathrm{KL}}(P\,\|\,Q_\theta)», «минимизировать H(P,Qθ)H(P, Q_\theta)» и «максимизировать правдоподобие» — три названия одной и той же цели обучения: точно — для эмпирического распределения, а в пределе большого числа сэмплов — для самого PP.

Следующие семейства генеративных моделей различаются в основном тем, как они справляются с тем, что log⁡Qθ(x)\log Q_\theta(x) трудно вычислить: VAE оценивают его снизу, нормализующие потоки (normalizing flows) вычисляют точно, GAN вообще обходятся без него, а диффузионные модели снова оценивают его снизу, но с фиксированным процессом зашумления вместо обучаемого энкодера.

Дивергенция Йенсена–Шеннона#

Дивергенция Йенсена–Шеннона (Jensen–Shannon divergence; Lin, 1991) строится из того же элемента, но она симметрична и ограничена. Она сравнивает оба распределения с их смесью M=12(P+Q)M = \tfrac12(P + Q):

DJS(P ∥ Q)=12DKL(P ∥ M)+12DKL(Q ∥ M).\begin{aligned} D_{\mathrm{JS}}(P \,\|\, Q) &= \tfrac12 D_{\mathrm{KL}}(P \,\|\, M) \\ &\quad + \tfrac12 D_{\mathrm{KL}}(Q \,\|\, M). \end{aligned}

Поскольку M(x)>0M(x) > 0 везде, где P(x)>0P(x) > 0 или Q(x)>0Q(x) > 0, оба слагаемых всегда конечны. Оба неотрицательны, поэтому DJS≥0D_{\mathrm{JS}} \ge 0, причём равенство достигается только при P=M=QP = M = Q. Для верхней границы заметим, что P(x)≤P(x)+Q(x)=2M(x)P(x) \le P(x) + Q(x) = 2M(x). Значит, в каждом слагаемом DKL(P ∥ M)D_{\mathrm{KL}}(P\,\|\,M) выполнено log⁡P(x)M(x)≤log⁡2\log\frac{P(x)}{M(x)} \le \log 2, так что DKL(P ∥ M)≤log⁡2D_{\mathrm{KL}}(P\,\|\,M) \le \log 2, причём равенство достигается, только если P(x)=2M(x)P(x) = 2M(x), то есть Q(x)=0Q(x) = 0, везде, где P(x)>0P(x) > 0. То же верно для второго слагаемого. Следовательно,

0  ≤  DJS(P ∥ Q)  ≤  ln⁡2 ната=1 бит,0 \;\le\; D_{\mathrm{JS}}(P \,\|\, Q) \;\le\; \ln 2 \text{ ната} = 1 \text{ бит},

и максимум достигается ровно тогда, когда PP и QQ не перекрываются. Для двух монет DJS≈0.193D_{\mathrm{JS}} \approx 0.193 ната (0.2790.279 бита).

JS понадобится дважды. В следующей заметке это одна из функций потерь, которые сравниваются на целевом распределении с двумя модами. В заметке о GAN оказывается, что исходная целевая функция GAN при оптимальном дискриминаторе равна 2 DJS(P ∥ Q)−2ln⁡22\,D_{\mathrm{JS}}(P\,\|\,Q) - 2\ln 2, где PP — распределение данных, а QQ — распределение генератора (Goodfellow et al., 2014). Насыщение JS на уровне ln⁡2\ln 2 для неперекрывающихся распределений, в свою очередь, объясняет, почему обучение GAN может застревать (Arjovsky and Bottou, 2017).

Дальше#

Теперь у нас есть число, которое говорит, насколько модель QQ далека от данных PP, и мы знаем, что минимизация DKL(P ∥ Qθ)D_{\mathrm{KL}}(P\,\|\,Q_\theta) — это максимальное правдоподобие. Следующая заметка применяет это к гауссовской модели из предыдущей заметки. Она обучает гауссиану QQ, минимизируя выборочную оценку KL, выясняет, какие допущения стоят за формулой: общий носитель (common support) и направление, — и сравнивает, что делают прямая KL, обратная KL (forward / reverse KL) и JS, когда одна гауссиана должна описать две моды. Раздел Ноутбук в ней описывает код, в котором KL и JS оцениваются по сэмплам.

Литература#

  • C. E. Shannon. A Mathematical Theory of Communication. Bell System Technical Journal, 27(3), 379–423 and 27(4), 623–656, 1948. Теорема 2: единственность формулы энтропии.
  • S. Kullback, R. A. Leibler. On Information and Sufficiency. Annals of Mathematical Statistics, 22(1), 1951.
  • J. Lin. Divergence measures based on the Shannon entropy. IEEE Transactions on Information Theory, 37(1), 1991.
  • T. M. Cover, J. A. Thomas. Elements of Information Theory, 2nd ed. Wiley, 2006. §2.1 (энтропия, соглашение 0log⁡0=00\log 0 = 0), §2.3 (относительная энтропия), теоремы 2.6.3 (информационное неравенство) и 2.6.4 (максимум энтропии); §8.1 и §8.5–8.6 (дифференциальная энтропия и относительная энтропия для плотностей).
  • I. Goodfellow, Y. Bengio, A. Courville. Deep Learning. MIT Press, 2016. §3.13 (теория информации) и §5.5 (максимальное правдоподобие и кросс-энтропия).
  • I. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. Warde-Farley, S. Ozair, A. Courville, Y. Bengio. Generative adversarial nets. NeurIPS, 2014.
  • M. Arjovsky, L. Bottou. Towards principled methods for training generative adversarial networks. ICLR, 2017.
  • J. Starmer. Entropy (for data science) Clearly Explained!!! StatQuest, YouTube, 2021. Путь к энтропии через неожиданность, которым мы шли выше.