К.Л. Потеря с единицей Гаусса


10

Я внедрял VAE и заметил в Интернете две разные реализации упрощенной однофакторной гауссовой дивергенции KL. Исходная дивергенция, здесь, выглядит следующим образом: Если мы предположим, что наша единица является т.е. и \ sigma_2 = 1 , это упрощается до KL_ {loss} = - \ log (\ sigma_1) + \ frac {\ sigma_1 ^ 2 + \ mu_1 ^ 2} {2} - \ frac {1} {2} KL_ {loss} = - \ frac {1} {2} (2 \ log (\ sigma_1) - \ sigma_1 ^ 2 - \ mu_1 ^ 2 + 1) И вот тут-то и лежит мое замешательство. Хотя я обнаружил несколько неясных репозиториев github с вышеуказанной реализацией, чаще всего я использую:

KLloss=log(σ2σ1)+σ12+(μ1μ2)22σ2212
μ2=0σ2=1
KLloss=log(σ1)+σ12+μ12212
KLloss=12(2log(σ1)σ12μ12+1)

=12(log(σ1)σ1μ12+1)
Например, в официальном руководстве по автоэнкодеру Keras . Тогда мой вопрос: что мне не хватает между этими двумя? Основным отличием является уменьшение коэффициента 2 в логарифмическом выражении, а не возведение в квадрат дисперсии. Аналитически я использовал последний с успехом, для чего это стоит. Заранее благодарю за любую помощь!

Ответы:


7

Обратите внимание, что, заменив на в последнем уравнении, вы восстановите предыдущее (то есть ). Это наводит меня на мысль, что в первом случае кодер используется для прогнозирования дисперсии, а во втором - для прогнозирования стандартного отклонения.σ1σ12log(σ1)σ12log(σ1)σ12

Обе формулировки эквивалентны, и цель неизменна.


Я не думаю, что это может быть так, что они эквивалентны. Да, они оба свернуты, когда для ноля и единицы . Однако в исходном уравнении (с дисперсией) штраф за перемещение от единицы намного больше, чем во втором уравнении (на основе стандартного отклонения). Штраф за изменения в одинаков для обоих, и ошибка восстановления будет одинаковой, поэтому использование второй версии резко меняет относительную важность отклонений от единицы. Что мне не хватает? μσσμσ
TheBamf

0

Я считаю, что ответ проще. В VAE люди обычно используют многомерное нормальное распределение, которое имеет ковариационную матрицу вместо дисперсии . Это выглядит запутанно в части кода, но имеет желаемую форму.Σσ2

Здесь вы можете найти вывод дивергенции KL для многомерных нормальных распределений: Получение потерь на расходимость KL для VAE

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.