Теория информации
KL-дивергенция
Не расстояние, а цена неверной модели — и почему она неотрицательна
Определение и что оно значит
Три прочтения одного числа, и каждое пригодится:
- лишние биты. Сколько в среднем вы переплачиваете, кодируя данные из кодом, построенным под . Это разложение из прошлого урока;
- ожидание логарифма
. Тот же объект , что в уроке 180 блока 3; - насколько данные различают гипотезы. Если велика, одного наблюдения почти хватает, чтобы отличить от ; если мала — потребуется много.
Почему
Вывод короткий, и стоит его проделать — он объясняет, откуда неотрицательность берётся. Неравенство Йенсена для выпуклой говорит . Возьмём , она выпукла:
Равенство в неравенстве Йенсена достигается только когда аргумент постоянен почти наверное, то есть ; вместе с нормировкой это даёт . Отсюда и «равенство тогда и только тогда».
Это же неравенство даёт всё остальное в блоке:
| утверждение | как получается |
|---|---|
| из | |
| это совместного от произведения | |
| зазор равен |
То есть одно неравенство Йенсена держит весь блок. Если запоминать здесь одну вещь, то эту.
Не расстояние
Слово «дивергенция» вместо «расстояния» выбрано не из скромности. KL нарушает два из трёх свойств метрики:
- не симметрична: ;
- не удовлетворяет неравенству треугольника;
- неотрицательность и «нуль только при совпадении» — выполняются.
Подвигайте ползунки и сравните две KL в виджете. Они почти всегда различаются, а при обнулении веса одна уходит в бесконечность, тогда как другая остаётся конечной.
распределение p
распределение q
- H(p)
- 1.2955 бит
- H(p, q)
- 1.585 бит
- KL(p‖q)
- 0.2895 бит
- KL(q‖p)
- 0.347 бит
- H(q)
- 1.585 бит
Если хочется настоящей метрики, она есть: дивергенция Йенсена–Шеннона
симметрична, ограничена одним битом, а её корень — настоящая метрика. Усреднённое покрывает носители обоих, поэтому JS никогда не бесконечна — свойство, за которое её и взяли в оригинальный GAN.
Что делать с бесконечностью
Обнуление в там, где положительна, — не редкий вырожденный случай, а повседневная проблема. Три стандартных ответа:
- сглаживание: подмешать равномерного, ;
- параметризация без нулей: softmax, гауссиана с носителем на всей прямой;
- другая дивергенция: JS, полное вариационное расстояние или Вассерштейн, которые конечны при непересекающихся носителях.
Последний пункт — исторически важный. Ранние GAN’ы оптимизировали JS, и при непересекающихся носителях генератора и данных её градиент обращался в нуль: дивергенция равна своему максимуму, но не подсказывает, куда двигаться. Вассерштейновское расстояние это исправило, потому что оно учитывает, насколько далеко носители друг от друга, а не только то, что они не пересекаются.
Где встречается
Стоит увидеть, что это одна величина в разных костюмах:
| место | что за KL |
|---|---|
| кросс-энтропийный лосс | плюс константа |
| L2-регуляризация | posterior до prior, если смотреть байесовски |
| VAE | — второй член ELBO |
| дистилляция | от ученика до учителя |
| PPO | -ограничение на шаг политики |
| RLHF | -штраф к исходной модели |
| взаимная информация | совместного от произведения маргинальных |
Семь строк, одна формула. И в каждом случае выбор направления — какое распределение стоит слева — определяет поведение метода, а не только знак. Об этом следующий урок.
Источники
- Cover, Thomas — Elements of Information Theory, гл. 2.6–2.8 — KL, неравенство Йенсена, неравенство информации
- MacKay — Information Theory, Inference, and Learning Algorithms, гл. 2.6 — Относительная энтропия
Проверки
0 из 2Почему KL не расстояние
Отметьте все верные утверждения о KL-дивергенции.
Четыре дивергенции на одной паре
Даны ненормированные веса
p_weightsиq_weights. Нормируйте оба и верните[kl_pq, kl_qp, js, tv]в битах:kl_pq= , слагаемые с пропускаются;kl_qp— то же с переставленными аргументами;js= , где ;tv= — полное вариационное расстояние.
Если какое-то из двух направлений KL не определено (есть с , — или наоборот, для обратного направления), верните для этого направления
-1.0. Наjsиtvэто не влияет: они определены всегда, и в этом весь смысл задачи.Загрузка редактора…
Ctrl/⌘ + Enter