Як працює трюк репараметеризації для варіативних автокодер (VAE)? Чи є інтуїтивне і просте пояснення без спрощення основної математики? І навіщо нам потрібен «трюк»?
Як працює трюк репараметеризації для варіативних автокодер (VAE)? Чи є інтуїтивне і просте пояснення без спрощення основної математики? І навіщо нам потрібен «трюк»?
Відповіді:
Ознайомившись з слайдами майстерні NIPS 2015 Kingma , я зрозумів, що нам потрібен трюк з перемаралізацією для того, щоб розповсюджуватися через випадковий вузол.
Інтуїтивно, у первісному вигляді, VAE вибірки з випадкового вузла який наближений параметричною моделлю q ( z ∣ ϕ , x ) справжнього заднього. Backprop не може протікати через випадковий вузол.
Введення нового параметра дозволяє нам перемежувати z таким чином, що дозволяє заднім потокам протікати через детерміновані вузли.
Припустимо, у нас є нормальний розподіл , параметризований θ , а саме q θ ( x ) = N ( θ , 1 ) . Ми хочемо вирішити нижченаведену задачу min θ Це, звичайно, досить нерозумна проблема, і оптимальний θ очевидний. Однак тут ми просто хочемо розібратися, як трюк репараметрізації допомагає обчислити градієнт цієї мети E q [ x 2 ] .
Один із способів обчислити полягає в наступному ∇ θ E q [ x 2 ] = ∇ θ ∫ q θ ( x ) x 2 d x = ∫ x 2 ∇ θ q θ ( x ) q θ ( х )
Для нашого прикладу, де , цей метод дає ∇ θ E q [ x 2 ] = E q [ x 2 ( x - θ ) ]
Трюк перепараметризації - це спосіб переписати очікування так, що розподіл, щодо якого ми приймаємо градієнт, не залежить від параметра . Для цього нам потрібно зробити стохастичний елемент у q незалежним від θ . Отже, запишемо x як x = θ + ϵ , Тоді ми можемо записати E q [ x 2 ] = E p [ ( θ + ϵ ) 2 ], де p - розподіл ϵ , тобто N ( 0 , 1 ) . Тепер ми можемо записати похідну від E q [ x 2 ] наступним чином ∇ θ E q [ x 2 ] =
Ось я написав зошит IPython, який розглядає дисперсію цих двох способів обчислення градієнтів. http://nbviewer.jupyter.org/github/gokererdogan/Notebooks/blob/master/Reparameterization%20Trick.ipynb
Розумний приклад математики "хитрості репараметеризації" наведено у відповіді Гокера, але певна мотивація може бути корисною. (У мене немає дозволів коментувати цю відповідь; тому ось окрема відповідь.)
, що може бути далеко не оптимальним (наприклад, довільно вибране початкове значення). Це трохи нагадує історію п'яного, який шукає свої ключі біля вуличного світла (бо саме там він може бачити / пробувати), а не біля місця, де він їх скинув.
Я сподіваюся, що це допомагає.
Дозвольте мені пояснити спочатку, навіщо нам потрібен трюк перепараметризації в VAE.
VAE має кодер і декодер. Дешифратор випадковим чином відбирає з справжнього заднього Z ~ q (z∣ϕ, x) . Щоб реалізувати кодер і декодер як нейронну мережу, вам потрібно здійснити зворотний зв'язок шляхом випадкової вибірки, і це проблема, тому що бекпропогація не може протікати через випадковий вузол; щоб подолати цю перешкоду, ми використовуємо хитрість репараметризації.
Тепер давайте хитрість. Оскільки наша задня частина зазвичай розподілена, ми можемо порівняти її з іншим нормальним розподілом. Ми наближаємо Z з нормально розподіленим ε .
Але наскільки це актуально?
Тепер замість того, щоб говорити, що Z відбирається з q (z∣ϕ, x) , ми можемо сказати, що Z - функція, яка приймає параметр (ε, (µ, L)), і ці µ, L надходять із верхньої нейронної мережі (кодер) . Тому, хоча зворотне поширення, нам потрібно лише часткові похідні wrt µ, L і ε , не має значення для отримання похідних.
Я вважав, що пояснення, знайдені в курсі Stanford CS228 щодо імовірнісних графічних моделей, було дуже хорошим. Його можна знайти тут: https://ermongroup.github.io/cs228-notes/extras/vae/
Я підсумував / скопіював тут важливі частини для зручності / власного розуміння (хоча настійно рекомендую просто перевірити оригінальне посилання).
Якщо ви знайомі з оцінками функцій балів (я вважаю, що РЕЙНФОРС - це лише особливий випадок), ви помітите, що це значною мірою проблема, яку вони вирішують. Однак оцінювач функції балів відрізняється великою дисперсією, що призводить до труднощів у навчанні моделей значної частини часу.
Як приклад, давайте скористаємося дуже простим q, з якого ми робимо вибірку.
Це має меншу дисперсію з імо, нетривіальних причин. Ознайомтесь з частиною D додатка тут, щоб отримати пояснення: https://arxiv.org/pdf/1401.4082.pdf
У нас є наша імовірнісна модель. І хочу відновити параметри моделі. Ми зводимо наше завдання до оптимізації варіативної нижньої межі (VLB). Для цього ми повинні мати можливість скласти дві речі:
Автори пропонують використовувати Монте-Карло Оцінювач для обох. Насправді вони вводять цей трюк, щоб отримати більш точний оцінювач градієнтів Монте-Карло з VLB.
Це просто вдосконалення чисельного методу.
Трюк репараметеризації значно зменшує дисперсію оцінки МС для градієнта. Отже, це техніка зменшення дисперсії :