От неожиданности к энтропии, кросс-энтропии и расхождению Кульбака–Лейблера; почему кросс-энтропия служит функцией потерь моделей, основанных на правдоподобии; симметричная дивергенция Йенсена–Шеннона.
Предыдущая заметка закончилась конкретной задачей: подогнать обучаемое распределение Q к целевому распределению P. Для этого нужно число, которое измеряет, насколько Q далеко от P. Стандартный первый выбор — расхождение Кульбака–Лейблера (Kullback–Leibler divergence):
DKL(P∥Q)=x∈X∑P(x)logQ(x)P(x).
Что означает эта формула? В этой заметке мы строим её с нуля: неожиданность → энтропия → кросс-энтропия → KL. Попутно станет ясно, почему кросс-энтропия служит функцией потерь классификаторов и языковых моделей. Промежуточные величины — энтропия и кросс-энтропия:
H(P)=−x∈X∑P(x)logP(x),H(P,Q)=−x∈X∑P(x)logQ(x).
Обозначения.P — реальное распределение (данных, целевое), Q — предполагаемое распределение (модели). H(P) — энтропия X∼P, которую иногда записывают и как H(X). Для непрерывных распределений строчные p и q обозначают плотности, а суммы становятся интегралами; что меняется для плотностей, сказано в конце раздела о KL. log2 даёт биты, ln — наты (nats); просто log означает любое из двух, если всюду используется одно основание.
Построение ниже следует интуитивному пути, которым идёт объяснение энтропии в StatQuest Джоша Стармера (Starmer, 2021); строгое изложение — в Cover and Thomas (2006), глава 2.
Возьмём два поля, на каждом по десять значков. На поле A 5 ноликов и 5 крестиков, на поле B — 9 ноликов и 1 крестик. Вытянем один значок наугад. На каком поле вытянуть X неожиданнее?
Рисунок
На каком поле вытянуть X неожиданнее?
На обоих полях по десять значков. На поле B крестик редок (1 из 10), поэтому вытянуть его неожиданнее, а само поле в целом более предсказуемо: его энтропия, средняя неожиданность, которую мы определим в следующем разделе, ниже, чем у сбалансированного поля A.
Будем неформально понимать неожиданность (surprise) как ощущение, что чего-то не должно было случиться. Вероятности вытянуть каждый значок равны
A:P(O)=21,P(X)=21,B:P(O)=109,P(X)=101.
Крестик явно неожиданнее на поле B, значит, неожиданность должна расти, когда вероятность падает.
Первая попытка: 1/p. Чтобы сравнить 21 и 101, перевернём дроби: 1/P(X) равно 2 на поле A и 10 на поле B. Такая мера правильно упорядочивает поля, а как функция p она убывает.
Проблема. Возьмём нечестную монету, которая всегда падает орлом (H, heads): HHHHHHHHHH. Два её исхода дают
P(H)=1P(T)=0:P(H)1=11=1,:P(T)1=01.
Орёл вообще не должен нас удивлять, поэтому первое значение должно быть равно 0. Второе даже не является числом.
Эта неопределённость нам не мешает: исход с вероятностью 0 никогда не происходит, так что его неожиданность никогда не понадобится. Так мы получаем определение неожиданности, которую также называют собственной информацией (self-information):
s(x)=logP(x)1=−logP(x).
Она равна 0 при P(x)=1 и неограниченно растёт при P(x)→0.
Рисунок
У достоверного исхода неожиданность должна быть нулевой
Первая попытка, 1/P(x), правильно упорядочивает редкие исходы, но при P(x) = 1 всё ещё равна 1. Логарифм переносит эту точку в ноль. Неожиданность −log₂ P(x) измеряется в битах, у 1/P(x) единицы измерения нет. Две отмеченные точки — вероятности 0.1 и 0.9 из примера с несимметричной монетой ниже.
Полная неожиданность последовательности равна сумме неожиданностей отдельных бросков. Именно это даёт логарифм: он превращает произведение вероятностей в сумму. Никакая другая непрерывная функция этого не делает. Пусть s(pq)=s(p)+s(q) для всех p,q∈(0,1], и положим g(t)=s(e−t) при t≥0. Тогда g(t+u)=g(t)+g(u), а единственные непрерывные решения этого уравнения линейны, g(t)=ct. Следовательно, s(p)=clogp1. Требование, чтобы редкие исходы были неожиданными, даёт c>0, а выбор c — это выбор основания. Поэтому логарифмы появляются во всех информационных мерах; соответствующий результат о единственности для самой энтропии доказал Шеннон (Shannon, 1948, теорема 2).
Для независимых бросков вероятность последовательности H, H, T — произведение. Её логарифм распадается в сумму, поэтому полная неожиданность равна сумме неожиданностей отдельных бросков: почти вся она приходится на единственную редкую решку.
Разделив на 100, получаем неожиданность на один бросок:
0.9⋅0.152+0.1⋅3.322≈0.469бита.
Это неожиданность, которую мы ожидаем в среднем при каждом броске монеты. Каждая вероятность умножается на свою неожиданность, а это в точности математическое ожидание: если S=s(X) — неожиданность случайного исхода X∼P, то E[S]=∑xP(x)s(x). Ожидаемая неожиданность — это энтропия:
H(P)=x∑P(x)logP(x)1=−x∑P(x)logP(x),
величина, которую ввёл Клод Шеннон в 1948 году (Shannon, 1948).
Исходы с P(x)=0 никогда не происходят, поэтому их слагаемые исключаются из суммы. Иначе говоря, мы пользуемся соглашением 0⋅log01=0, которое совпадает с пределом plogp1 при p→0 (Cover and Thomas, 2006, §2.1). Поэтому у нечестной монеты, которая всегда падает орлом, энтропия равна 1⋅log1=0: в ней нет никакой неожиданности.
У поля B в точности то же распределение, что у несимметричной монеты, поэтому и энтропия у него та же. Сбалансированное поле менее предсказуемо: большая энтропия означает большую неопределённость. Для двух исходов энтропия ни одного распределения не превышает 1 бита, и достигает этого значения только равномерное; это следует из неравенства Гиббса в следующем разделе.
Кросс-энтропия: неожиданность при неверном представлении#
Возьмём монету, которую наша модель считает честной, Q=(0.5,0.5), а в реальности она нечестная, P=(0.99,0.01). Мы видим десять орлов подряд:
Вероятность 10 орлов
Неожиданность (наты)
Модель Q
0.510≈0.001
ln0.5−10≈6.93
Реальность P
0.9910≈0.90
ln0.99−10≈0.10
Рисунок
Десять орлов: неожиданно для модели, обычно в реальности
Мы считаем монету честной, а она нечестная. У десяти орлов подряд вероятность около 0.001 по нашему представлению (6.93 ната неожиданности) и около 0.90 в реальности (0.10 ната). Разница — это неожиданность, которую порождает неверная модель, а не данные. Логарифмы натуральные.
Исход был обычным. Наша неожиданность вызвана тем, что мы верим в ошибочную модель.
Кросс-энтропия (cross-entropy) H(P,Q) — это средняя неожиданность, когда реальное распределение равно P, а мы верим в Q:
Обе панели — распределения на одних и тех же дискретных исходах x. Исходы порождает реальное P, а неожиданность измеряется по предполагаемому Q. Отмеченный исход x₀ часто встречается при P (высокий красный столбик, P(x₀) = 0.12), но почти невозможен при Q (Q(x₀) ≈ 9.0·10⁻⁵, столбик слишком мал, чтобы его увидеть), поэтому каждое его появление обходится в большую неожиданность, ln 1/Q(x₀) ≈ 9.3 ната. Формы распределений условны.
Модель верна. Если Q=P, кросс-энтропия сводится к энтропии: H(P,P)=H(P).
Всегда (неравенство Гиббса, Gibbs’ inequality):
H(P,Q)≥H(P),
причём равенство достигается только при Q=P (Cover and Thomas, 2006, теорема 2.6.3). Вера в неверное распределение может только увеличить среднюю неожиданность. Доказательство займёт одну строку, когда у разности H(P,Q)−H(P) появится имя; оно приведено в следующем разделе.
Одно следствие закрывает вопрос, оставшийся открытым в примере с полями. Пусть Q равномерно на ∣X∣ исходах. Тогда logQ(x)1=log∣X∣ для каждого x, так что H(P,Q)=log∣X∣, и неравенство Гиббса даёт H(P)≤log∣X∣, причём равенство достигается только для равномерного P (Cover and Thomas, 2006, теорема 2.6.4). Для двух исходов эта граница равна log22=1 биту.
Асимметрия. В общем случае H(P,Q)=H(Q,P). Оставим P нечестной монетой, а Q — честной, и возьмём один бросок и натуральные логарифмы. Первый аргумент — всегда то распределение, которое порождает исходы. Сначала при вере в честную монету и нечестной реальности, затем при вере в нечестную монету и честной реальности:
В каждой сумме веса — фактические вероятности, а под логарифмами стоят предполагаемые. Вера в то, что честная монета нечестная, наказывается гораздо сильнее: решка тогда выпадает в половине случаев, и модель, считающая монету нечестной, сильно удивляется каждой из них.
Кросс-энтропия смешивает два источника неожиданности: неожиданность, которую реальное распределение даёт в любом случае, и дополнительную неожиданность, вызванную неверной моделью. Чтобы выделить вторую, вычтем энтропию реального распределения:
KL-дивергенция (Kullback and Leibler, 1951) — это дополнительная неожиданность от того, что моделью служит Q, а не P. Вычитание требует, чтобы оба слагаемых были конечны; сумма справа — общее определение. Её слагаемые подчиняются тем же соглашениям, что и раньше. Слагаемое с P(x)=0 даёт 0. Слагаемое с P(x)>0, но Q(x)=0 равно P(x)log0P(x)=+∞, и тогда DKL(P∥Q) тоже бесконечна. Поэтому KL конечна, только если Q даёт положительную вероятность каждому исходу, которому её даёт P, то есть если P абсолютно непрерывно относительно Q (Cover and Thomas, 2006, §2.3). Следующая заметка показывает, что это условие означает при обучении.
Итак, KL неотрицательна и равна нулю только при Q=P. Она не симметрична и не удовлетворяет неравенству треугольника (Cover and Thomas, 2006, §2.3; пример приведён ниже), поэтому это дивергенция, а не расстояние. Для двух монет, в натах и с четырьмя знаками после точки, чтобы части сходились,
Каждая полоса — средняя неожиданность на один бросок при неверном представлении. Красная часть — неожиданность, которую реальная монета даёт сама по себе (её энтропия); жёлто-оранжевая часть — дополнительная неожиданность, вызванная неверной моделью, то есть KL-дивергенция. Если поменять местами представление и реальность, меняются обе части. Значения в натах, с четырьмя знаками после точки, чтобы части сходились.
Два поля из начала заметки дают каждому значку положительную вероятность, поэтому KL-дивергенция между ними конечна в обоих направлениях, а её значение зависит от направления:
Проверим: H(B,A)=HB+DKL(B∥A)=0.469+0.531=1 бит. Если измерять неожиданность по равномерному полю A, каждый вытянутый значок обходится ровно в один бит, каким бы ни было настоящее поле.
Рисунок
Сравнение двух полей с помощью KL
Два поля из начала заметки как распределения на {O, X}; нолики, как и раньше, синие, крестики красные. Энтропии равны 1 биту и 0.469 бита; KL-дивергенция между ними равна 0.737 бита в одну сторону и 0.531 бита в другую. Оба поля дают каждому исходу положительную вероятность, поэтому оба направления конечны. Каждая стрелка идёт от распределения, которое считается истинным (первый аргумент), к распределению, которое считается моделью.
Те же распределения показывают, что KL нарушает неравенство треугольника. Отождествим O с орлом, а X с решкой и сравним поле A с нечестной монетой P=(0.99,0.01) — один раз напрямую и один раз через поле B. Напрямую DKL(A∥P)≈2.329 бита. Через поле B получаем DKL(A∥B)+DKL(B∥P)≈0.737+0.208=0.945 бита, то есть меньше.
Изменение параметров модели не может изменить энтропию данных, поэтому H(P) при оптимизации — константа.
Её значение нам тоже не нужно. Для многомерных данных, например изображений, оценить H(P) по сэмплам — само по себе трудная задача.
Поэтому минимизация KL по θ и минимизация кросс-энтропии имеют одно и то же решение, а кросс-энтропия — та часть, которую можно оценить по сэмплам. Именно поэтому классификаторы и языковые модели обучают с кросс-энтропийной функцией потерь. Там то же рассуждение применяется к условному распределению метки (или следующего токена) при заданном входе. Целевое распределение P(⋅∣x) тогда — истинное условное распределение метки, которого мы напрямую не видим. Каждый обучающий пример даёт одну наблюдённую метку, one-hot-вектор, и средний отрицательный логарифм правдоподобия наблюдённых меток — выборочная оценка условной кросс-энтропии ExH(P(⋅∣x),Q(⋅∣x)). Мягкие целевые значения, например сглаживание меток (label smoothing) или вероятности модели-учителя, заменяют one-hot-вектор другой оценкой P(⋅∣x).
По сэмплам x1,…,xN из P кросс-энтропия оценивается средним отрицательным логарифмом правдоподобия:
Его минимизация — это метод максимального правдоподобия (maximum-likelihood estimation). Для дискретных исходов средний отрицательный логарифм правдоподобия в точности равен кросс-энтропии H(P^,Qθ) между эмпирическим распределением P^ сэмплов (вероятность 1/N в каждой точке xi) и моделью, так что максимальное правдоподобие минимизирует DKL(P^∥Qθ) (Goodfellow, Bengio and Courville, 2016, §5.5). С ростом N среднее по закону больших чисел сходится к H(P,Qθ), а она отличается от DKL(P∥Qθ) только на константу H(P). Поэтому «минимизировать DKL(P∥Qθ)», «минимизировать H(P,Qθ)» и «максимизировать правдоподобие» — три названия одной и той же цели обучения: точно — для эмпирического распределения, а в пределе большого числа сэмплов — для самого P.
Следующие семейства генеративных моделей различаются в основном тем, как они справляются с тем, что logQθ(x) трудно вычислить: VAE оценивают его снизу, нормализующие потоки (normalizing flows) вычисляют точно, GAN вообще обходятся без него, а диффузионные модели снова оценивают его снизу, но с фиксированным процессом зашумления вместо обучаемого энкодера.
Дивергенция Йенсена–Шеннона (Jensen–Shannon divergence; Lin, 1991) строится из того же элемента, но она симметрична и ограничена. Она сравнивает оба распределения с их смесью M=21(P+Q):
DJS(P∥Q)=21DKL(P∥M)+21DKL(Q∥M).
Поскольку M(x)>0 везде, где P(x)>0 или Q(x)>0, оба слагаемых всегда конечны. Оба неотрицательны, поэтому DJS≥0, причём равенство достигается только при P=M=Q. Для верхней границы заметим, что P(x)≤P(x)+Q(x)=2M(x). Значит, в каждом слагаемом DKL(P∥M) выполнено logM(x)P(x)≤log2, так что DKL(P∥M)≤log2, причём равенство достигается, только если P(x)=2M(x), то есть Q(x)=0, везде, где P(x)>0. То же верно для второго слагаемого. Следовательно,
0≤DJS(P∥Q)≤ln2ната=1бит,
и максимум достигается ровно тогда, когда P и Q не перекрываются. Для двух монет DJS≈0.193 ната (0.279 бита).
JS понадобится дважды. В следующей заметке это одна из функций потерь, которые сравниваются на целевом распределении с двумя модами. В заметке о GAN оказывается, что исходная целевая функция GAN при оптимальном дискриминаторе равна 2DJS(P∥Q)−2ln2, где P — распределение данных, а Q — распределение генератора (Goodfellow et al., 2014). Насыщение JS на уровне ln2 для неперекрывающихся распределений, в свою очередь, объясняет, почему обучение GAN может застревать (Arjovsky and Bottou, 2017).
Теперь у нас есть число, которое говорит, насколько модель Q далека от данных P, и мы знаем, что минимизация DKL(P∥Qθ) — это максимальное правдоподобие. Следующая заметка применяет это к гауссовской модели из предыдущей заметки. Она обучает гауссиану Q, минимизируя выборочную оценку 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: единственность формулы энтропии.
T. M. Cover, J. A. Thomas. Elements of Information Theory, 2nd ed. Wiley, 2006. §2.1 (энтропия, соглашение 0log0=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.