Теория информации
Прямая и обратная KL
Одна формула, два направления — и два совершенно разных поведения при обучении
Два направления
Пусть — то, что есть (данные, истинный posterior), а — то, чем мы приближаем, и проще: например, одна гауссиана. Тогда «подогнать под » можно двумя способами, и они дают разные ответы.
Разница целиком в том, по какому распределению берётся ожидание, и из этого следует всё остальное.
Логика штрафов
Посмотрите, где каждая дивергенция становится большой.
Отсюда названия:
| прямая | обратная | |
|---|---|---|
| поведение | mass-covering, «покрывающая» | mode-seeking, «выбирающая моду» |
| боится | пропустить массу | попасть туда, где пусто |
| результат на бимодальном | размазывается между модами | садится на одну моду |
| требует | сэмплы из (данные) | вычислять в точке |
Последняя строка объясняет, кто где используется, и это не вопрос вкуса.
Числа
Возьмём — две узкие моды — и будем приближать её одной гауссианой . Оптимумы найдены сеточным поиском:
| что минимизируем | значение | ||
|---|---|---|---|
| прямую | ната | ||
| обратную | ната |
Прямая KL встала посередине между модами, накрыв обе — в точке, где у плотность минимальна. Обратная выбрала правую моду и воспроизвела её ширину почти точно ( против истинных ).
Два перекрёстных числа показывают, насколько это не мелочь:
- прямая KL на решении обратной (, ) равна — против в своём оптимуме. Пропуск моды для неё катастрофа;
- обратная KL на решении прямой (, ) равна — против . Хуже втрое, но не катастрофа.
И красивая деталь: оптимум обратной KL равен . Не совпадение — покрыла одну моду из двух, то есть ровно половину массы , а цена «не знать про половину» и есть .
Два независимых подтверждения
Оптимум прямой KL в гауссовском семействе можно получить без всякого поиска. Раскроем:
Остаётся максимизировать — то есть сделать MLE гауссианы по «выборке», распределённой как . Ответ известен из блока 3: совпадение первых двух моментов.
то есть — а сетка дала при шаге . Совпадает.
Минимизация прямой KL в экспоненциальном семействе — это в точности сопоставление моментов. Тот же факт, что делал softmax параметризацией категориального в блоке 3, здесь объясняет, почему прямая KL «размазывает»: она согласует средние, а не форму.
Кто что использует
Различие полностью практическое.
Обратная KL — вариационный вывод и VAE. В ожидание берётся по , из которого мы умеем сэмплировать по построению. Прямую KL здесь считать нельзя: сэмплов из истинного posterior у нас нет — за ними мы и пришли. Отсюда известное свойство: VAE недооценивает дисперсию posterior и склонен к смазанным реконструкциям. Это не баг реализации, а поведение выбранного направления.
Прямая KL — обучение с учителем. Кросс-энтропийный лосс — это . Ожидание по данным, которых у нас как раз много. Соответственно модель наказывается за нулевую вероятность на наблюдённом примере — и это именно то, чего мы хотим от классификатора.
Обе — RLHF и PPO. Там KL-штраф удерживает политику около исходной модели, и направление выбирают из тех же соображений: считать надо то, из чего умеешь сэмплировать.
| метод | направление | почему так |
|---|---|---|
| обучение с учителем | прямая | есть сэмплы из данных |
| VAE, вариационный вывод | обратная | есть сэмплы только из |
| дистилляция | обычно прямая | учитель даёт всё распределение |
| GAN | ни та, ни другая (JS, Вассерштейн) | носители не пересекаются |
Между двумя крайностями есть непрерывное семейство — -дивергенции, где прямая и обратная KL суть предельные случаи и . На практике почти всегда берут край, но полезно знать, что выбор не бинарный.
Источники
- Bishop — Pattern Recognition and Machine Learning, гл. 10.1 — Прямая и обратная KL, вариационное приближение
- Minka — Divergence Measures and Message Passing — Семейство альфа-дивергенций и поведение крайних случаев
Проверки
0 из 2Какое направление где
Отметьте все верные утверждения о прямой и обратной , где — цель, а — приближение.
Какого кандидата выберет каждое направление
Дано целевое распределение
p_weightsи список кандидатовcandidates— все ненормированные. Нормируйте всё и верните[forward_index, reverse_index, forward_value, reverse_value]:forward_index— индекс кандидата, минимизирующего ;reverse_index— индекс кандидата, минимизирующего ;forward_value,reverse_value— сами минимумы, в битах.
Индексы верните как числа с плавающей точкой. Направление, в котором знаменатель обнуляется там, где числитель положителен, считайте бесконечным — такой кандидат просто не может выиграть. При равных значениях берите меньший индекс.
Обратите внимание, что один и тот же кандидат почти никогда не выигрывает в обоих направлениях — в этом и смысл задачи.
Загрузка редактора…
Ctrl/⌘ + Enter