як зважити втрати KLD проти втрат при реконструкції у варіаційному автокодері

майже у всіх прикладах коду, які я бачив для VAE, функції втрат визначаються наступним чином (це код тензор-потоку, але я бачив подібні для theano, torch тощо. Це також для convnet, але це також не надто актуально, просто впливає на осі суми беруться):

Однак числовий діапазон kl_loss і rec_loss дуже залежить від прихованого затемнення простору та розміру вхідної функції (наприклад, роздільна здатність пікселів) відповідно. Чи було б розумно замінити зменшення_суми на зменшення_значення, щоб отримати на z-dim KLD і на піксель (або функцію) LSE або BCE? Що ще важливіше, як ми зважуємо приховану втрату з втратою на реконструкцію під час підсумовування остаточної втрати? Це просто спроби та помилки? чи існує якась теорія (або принаймні емпіричне правило) для цього? Я ніде не міг знайти інформацію про це (включаючи оригінальний документ).

Проблема, з якою я стикаюся, полягає в тому, що якщо баланс між розмірами моєї вхідної функції (x) та розмірами прихованого простору (z) не є "оптимальним", або мої реконструкції дуже хороші, але вивчений прихований простір неструктурований (якщо x розміри дуже висока, і помилка реконструкції домінує над KLD), або навпаки (реконструкції погані, але вивчений прихований простір добре структурований, якщо KLD домінує).

Мені доводиться нормалізувати втрати при реконструкції (ділення на розмір вхідної функції) і KLD (ділення на розміри z), а потім вручну зважувати термін KLD з довільним коефіцієнтом ваги (Нормалізація така, що я можу використовувати той самий або аналогічна вага незалежно від розмірів x або z). Емпірично я знайшов близько 0,1, щоб забезпечити хороший баланс між реконструкцією та структурованим прихованим простором, який мені здається "солодкою плямою". Я шукаю попередню роботу в цій галузі.

За запитом, математичне позначення вище (з акцентом на втрати L2 для помилки реконструкції)

де $ J $ - розмірність прихованого вектора $ z $ (і відповідне середнє значення $ \ mu $ та дисперсія $ \ sigma ^ 2 $), $ K $ - розмірність вхідних ознак, $ M $ - міні-партія розмір, верхній індекс $ (i) $ позначає $ i $ -ю точку даних, а $ \ mathcal ^ $ - втрата для $ m $ -го міні-пакета.

4 відповіді 4

Для тих, хто спотикається на цій посаді, також шукає відповіді, ця тема у Twitter додала багато дуже корисного розуміння.

обговорює моє точне питання з кількома експериментами. Цікаво, що, здається, їх $ \ beta_ $ (що схоже на мою нормалізовану вагу KLD) також зосереджений приблизно на 0,1, при цьому більш високі значення дають більш структурований прихований простір за рахунок гіршої реконструкції, а нижчі значення дають кращу реконструкцію з менш структурованою прихованою простору (хоча їх основна увага приділяється вивченню розплутаних уявлень).

та відповідне читання (де обговорюються подібні питання)

Я хотів би додати ще одну статтю, що стосується цього питання (я не можу коментувати через мою низьку репутацію на даний момент).

У підрозділі 3.1 статті автори зазначили, що вони не змогли навчити пряму реалізацію VAE, яка однаково зважувала ймовірність та розбіжність KL. У їхньому випадку втрата KL була небажано зменшена до нуля, хоча, як очікувалося, вона мала невелике значення. Щоб подолати це, вони запропонували використовувати "відпал витрат KL", який повільно збільшував ваговий коефіцієнт терміну розбіжності KL (синя крива) з 0 до 1.

машинне

Це обхідне рішення також застосовується в Ladder VAE.

Bowman, S.R., Vilnis, L., Vinyals, O., Dai, A.M., Jozefowicz, R. and Bengio, S., 2015. Генерування речень із неперервного простору. препринт arXiv arXiv: 1511.06349.

Оновлення від 6 грудня 2020 року: Я зробив допис у блозі, щоб детально пояснити це.

Нарешті мені вдається з'ясувати причину зважування розбіжності KL у VAE. Це більше стосується нормованої константи розподілу, змодельованої цільовою змінною. Тут я збираюся представити деякі розподіли вихідних даних, які ми часто використовуємо. Більша частина позначень буде слідувати книзі "Розпізнавання зразків та машинне навчання".

  1. Лінійна регресія (необмежена регресія): (розділ 3.1.1 на сторінці 140) - Це пояснює дивергенцію зважування KL при використанні втрат MSE

Цільовою змінною $ t $ вважається сумою детермінованої функції $ y (\ mathbf, \ mathbf) $ та гауссовим шумом: \ begin t = y (\ mathbf, \ mathbf) + \ epsilon, \ qquad \ epsilon \ sim \ mathcal \ left (\ epsilon | 0, \ color ^ \ right) \ end Таким чином цільова змінна змодельована як випадкова змінна Гауса з вірогідністю журналу, заданою як: \ begin p (t | \ mathbf, \ mathbf, \ color) = \ mathcal \ left (t | y (\ mathbf, \ mathbf), \ color ^ \ right) \ end Враховуючи це припущення, вірогідність журналу в точках даних $ \ _, t _ \> _ ^ $ is: \ begin \ ln p (\ mathbf | \ mathbf, \ mathbf, \ color) = \ frac \ ln \ frac> - \ color E _ (\ mathbf), \ end where: \ begin E _ (\ mathbf) = \ frac \ sum_ ^ [t_ - y (\ mathbf, \ mathbf)] ^. \ end Ми часто оптимізуємо лише $ E _ (\ mathbf) $, а не всю вірогідність журналу $ \ ln p (\ mathbf | \ mathbf, \ mathbf, \ beta) $, в результаті чого точність $ \ color $ ігнорується. Це може бути добре для звичайної регресії, коли збиток складається лише з негативної логарифмічної вірогідності (NLL) $ - \ ln p (\ mathbf | \ mathbf, \ mathbf, \ beta) $, і прогнозування буде середнім значенням цільова змінна $ t $ .

Однак втрати в VAE складаються з NLL (або втрати при реконструкції) та регуляризації (KL втрати). Отже, якщо ваговий коефіцієнт терміну MSE (або, $ E _ (\ mathbf) $ в даному випадку) дорівнює 1, нам потрібно зважити розбіжність KL з коефіцієнтом $ \ beta_ = 1/\ color $, щоб бути математично правильним. На практиці люди часто знаходять хороше значення точності $ \ beta_ $ за допомогою налаштування гіперпараметрів. Іншим підходом є вивчення $ \ color $, розглядаючи його як вивчуваний параметр, який отримується шляхом мінімізації всієї функції втрат VAE.

  1. Логістична регресія - Це пояснює випадок двійкової перехресної ентропії, що використовується для чорно-білих зображень

Розглянемо випадок двійкової класифікації. Основна істина - або 0, або 1, а цільова змінна $ t = p (y = 1 | \ mathbf) $ передбачається слідувати розподілу Бернуллі: \ begin p (t | \ mathbf, \ mathbf) = \ mathcal(t | y (\ mathbf, \ mathbf)) = \ ліворуч [y (\ mathbf, \ mathbf) \ праворуч] ^ \ ліворуч [1 - у (\ mathbf, \ mathbf) \ праворуч) ^. \ end Отже, NLL у цьому випадку визначається так: \ begin - \ ln p (t | \ mathbf, \ mathbf) = - \ left [t \ ln y (\ mathbf, \ mathbf) + (1 - t) \ ln (1 - y (\ mathbf, \ mathbf)) \ праворуч], \ end, що є двійковою перехресною ентропією. (Можна класифікувати багатокласову класифікацію до softmax, використовуючи категоріальний розподіл, що призводить до втрати перехресної ентропії.)

Для набору даних MNIST (або чорно-білих зображень) кожен піксель дорівнює 0 або 1, і тому ми можемо використовувати двійкові перехресні ентропійні втрати як втрати на реконструкцію у VAE, щоб передбачити ймовірність того, що значення пікселя дорівнює 1 Оскільки середнє значення розподілу Бернуллі дорівнює $ y (\ mathbf, \ mathbf) $, ми часто використовуємо $ y (\ mathbf, \ mathbf) $ як інтенсивність пікселів для побудови реконструйованих зображень.

Зауважте, що, використовуючи двійкові перехресні ентропійні втрати у VAE для чорно-білих зображень, нам не потрібно зважувати термін розбіжності KL, що спостерігалося у багатьох реалізаціях.

  1. Обмежена регресія (наприклад, регресія в [0, 1]) - Це пояснює випадок зважування розбіжності KL при використанні двійкових перехресних ентропійних втрат для кольорових зображень

Як пояснюється в логістичній регресії, підтримка (або мітка) розподілу Бернуллі становить $ \ $, а не $ [0, 1] $, але на практиці вона все ще використовується для реконструкції кольорових зображень, що вимагає підтримки в $ [0, 1] $, або $ \ $ .

Оскільки наш інтерес полягає у підтримці в $ [0, 1] $, ми могли б знайти якийсь безперервний розподіл, який має підтримку в $ [0, 1] $ для моделювання нашого прогнозу. Один простий - це бета-розподіл. У цьому випадку нашим прогнозом будуть 2 параметри $ \ alpha $ і $ \ beta $. Здається складним?

На щастя, нещодавно була запропонована безперервна версія розподілу Бернуллі, так що ми все ще можемо використовувати двійкові перехресні ентропійні втрати для прогнозування інтенсивності пікселя з деякими мінімальними змінами. Будь ласка, зверніться до статті "Безперервний розподіл Бернуллі: виправлення поширеної помилки у VAE" або на сторінці Вікіпедії, щоб отримати докладнішу інформацію про розподіл.

Згідно з припущенням безперервного розподілу Бернуллі, вірогідність журналу може бути виражена як: \ begin \ ln p (t | \ mathbf, \ mathbf) = \ mathcal (t | y (\ mathbf, \ mathbf)) = C ( y (\ mathbf, \ mathbf)) (y (\ mathbf, \ mathbf)) ^ (1 - y (\ mathbf, \ mathbf)) ^, \ кінець, де $ C (y (\ mathbf, \ mathbf)) $ - нормована константа.

Отже, при роботі з VAE, що включає двійкові перехресні ентропійні втрати, замість налаштування вагового коефіцієнта терміна KL - що може бути математично неправильним, ми просто додаємо $ - \ ln C (y (\ mathbf, \ mathbf)) $ у втрату, а потім оптимізуйте.