Як працює фокус із перемаралізацією для VAE і чому він важливий?


57

Як працює трюк репараметеризації для варіативних автокодер (VAE)? Чи є інтуїтивне і просте пояснення без спрощення основної математики? І навіщо нам потрібен «трюк»?


5
Одна частина відповіді полягає в тому, щоб помітити, що всі нормальні розподіли є просто масштабованими та перекладеними версіями Normal (1, 0). Щоб зробити з Normal (mu, sigma), ви можете зробити з Normal (1, 0), помножити на sigma (масштаб), і додати mu (перекласти).
чернець

@monk: це повинно було бути нормальним (0,1) замість (1,0) праворуч, інакше множення та зміщення повністю пішло б на сінну дріт!
Ріка

@Breeze Ha! Так, звичайно, дякую.
чернець

Відповіді:


57

Ознайомившись з слайдами майстерні NIPS 2015 Kingma , я зрозумів, що нам потрібен трюк з перемаралізацією для того, щоб розповсюджуватися через випадковий вузол.

Інтуїтивно, у первісному вигляді, VAE вибірки з випадкового вузла який наближений параметричною моделлю q ( z ϕ , x ) справжнього заднього. Backprop не може протікати через випадковий вузол.zq(zϕ,x)

Введення нового параметра дозволяє нам перемежувати z таким чином, що дозволяє заднім потокам протікати через детерміновані вузли.ϵz

оригінальну та рематеризовану форму


3
Чому детермінований зараз праворуч? z
приведення в життя

2
Це не так, але це не "джерело випадковості" - цю роль взяв на себе . ϵ
Quant_dev

Зауважте, що цей метод пропонувався кілька разів до 2014 року: blog.shakirm.com/2015/10/…
Quant_dev

2
Так просто, так інтуїтивно! Чудова відповідь!
Сергій

2
На жаль, це не так. Оригінальна форма все ще може бути зворотна, проте з більшою дисперсією. Деталі можна знайти в моєму дописі .
JP Чжан

56

Припустимо, у нас є нормальний розподіл , параметризований θ , а саме q θ ( x ) = N ( θ , 1 ) . Ми хочемо вирішити нижченаведену задачу min θqθqθ(x)=N(θ,1) Це, звичайно, досить нерозумна проблема, і оптимальний θ очевидний. Однак тут ми просто хочемо розібратися, як трюк репараметрізації допомагає обчислити градієнт цієї мети E q [ x 2 ] .

minθEq[x2]
θEq[x2]

Один із способів обчислити полягає в наступному θ E q [ x 2 ] = θq θ ( x ) x 2 d x = x 2 θ q θ ( x ) q θ ( х )θEq[x2]

θEq[x2]=θqθ(x)x2dx=x2θqθ(x)qθ(x)qθ(x)dx=qθ(x)θlogqθ(x)x2dx=Eq[x2θlogqθ(x)]

Для нашого прикладу, де , цей метод дає θ E q [ x 2 ] = E q [ x 2 ( x - θ ) ]qθ(x)=N(θ,1)

θEq[x2]=Eq[x2(xθ)]

Трюк перепараметризації - це спосіб переписати очікування так, що розподіл, щодо якого ми приймаємо градієнт, не залежить від параметра . Для цього нам потрібно зробити стохастичний елемент у q незалежним від θ . Отже, запишемо x як x = θ + ϵ ,θqθx Тоді ми можемо записати E q [ x 2 ] = E p [ ( θ + ϵ ) 2 ], де p - розподіл ϵ , тобто N ( 0 , 1 ) . Тепер ми можемо записати похідну від E q [ x 2 ] наступним чином θ E q [ x 2 ] =

x=θ+ϵ,ϵN(0,1)
Eq[x2]=Ep[(θ+ϵ)2]
pϵN(0,1)Eq[x2]
θEq[x2]=θEp[(θ+ϵ)2]=Ep[2(θ+ϵ)]

Ось я написав зошит IPython, який розглядає дисперсію цих двох способів обчислення градієнтів. http://nbviewer.jupyter.org/github/gokererdogan/Notebooks/blob/master/Reparameterization%20Trick.ipynb


4
Яка «очевидна» тета для першого рівняння?
gwg

2
це 0. Один із способів бачити це - зазначити, що E [x ^ 2] = E [x] ^ 2 + Var (x), що в даному випадку тета ^ 2 + 1. Тож theta = 0 мінімізує цю мету.
гокер

Отже, це повністю залежить від проблеми? Скажімо, min_ \ theta E_q [| x | ^ (1/4)] це може бути зовсім інакше?
Енн ван Россум

Від чого залежить проблема? Оптимальна тета? Якщо так, так, це, безумовно, залежить від проблеми.
гокер

θEq[x2]=Eq[x2(xθ)qθ(x)]θEq[x2]=Eq[x2(xθ)]

17

Розумний приклад математики "хитрості репараметеризації" наведено у відповіді Гокера, але певна мотивація може бути корисною. (У мене немає дозволів коментувати цю відповідь; тому ось окрема відповідь.)

Gθ

Gθ=θExqθ[]

Exqθ[Gθest(x)]

Gθest(x)=1qθ(x)θqθ(x)=θlog(qθ(x))

xqθGθestGθθ

GθestGθ

Gθxxqθ(x)1qθ(x)xGθqθGθestxqθθ, що може бути далеко не оптимальним (наприклад, довільно вибране початкове значення). Це трохи нагадує історію п'яного, який шукає свої ключі біля вуличного світла (бо саме там він може бачити / пробувати), а не біля місця, де він їх скинув.

xϵpθGθp

Gθ=θEϵp[J(θ,ϵ)]=Eϵp[θJ(θ,ϵ)]
J(θ,ϵ)

θJ(θ,ϵ)pϵpθp

θJ(θ,ϵ)GθGθϵppϵJ

Я сподіваюся, що це допомагає.


"Коефіцієнт 1 / qθ (x) збільшує вашу оцінку для врахування цього, але якщо ви ніколи не побачите такого значення x, масштабування не допоможе." Чи можете ви пояснити більше?
czxttkl

qθxxGθest(x)1/qθ

10

Дозвольте мені пояснити спочатку, навіщо нам потрібен трюк перепараметризації в VAE.

VAE має кодер і декодер. Дешифратор випадковим чином відбирає з справжнього заднього Z ~ q (z∣ϕ, x) . Щоб реалізувати кодер і декодер як нейронну мережу, вам потрібно здійснити зворотний зв'язок шляхом випадкової вибірки, і це проблема, тому що бекпропогація не може протікати через випадковий вузол; щоб подолати цю перешкоду, ми використовуємо хитрість репараметризації.

Тепер давайте хитрість. Оскільки наша задня частина зазвичай розподілена, ми можемо порівняти її з іншим нормальним розподілом. Ми наближаємо Z з нормально розподіленим ε .

введіть тут опис зображення

Але наскільки це актуально?

Тепер замість того, щоб говорити, що Z відбирається з q (z∣ϕ, x) , ми можемо сказати, що Z - функція, яка приймає параметр (ε, (µ, L)), і ці µ, L надходять із верхньої нейронної мережі (кодер) . Тому, хоча зворотне поширення, нам потрібно лише часткові похідні wrt µ, L і ε , не має значення для отримання похідних.

введіть тут опис зображення


Найкраще відео, щоб зрозуміти цю концепцію. Я рекомендую переглянути повне відео для кращого розуміння, але якщо ви хочете зрозуміти лише хитрість репараметрізації, тоді дивіться з 8 хвилин. youtube.com/channel/UCNIkB2IeJ-6AmZv7bQ1oBYg
Шерлок

9

Я вважав, що пояснення, знайдені в курсі Stanford CS228 щодо імовірнісних графічних моделей, було дуже хорошим. Його можна знайти тут: https://ermongroup.github.io/cs228-notes/extras/vae/

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

ϕEzq(z|x)[f(x,z)]

Якщо ви знайомі з оцінками функцій балів (я вважаю, що РЕЙНФОРС - це лише особливий випадок), ви помітите, що це значною мірою проблема, яку вони вирішують. Однак оцінювач функції балів відрізняється великою дисперсією, що призводить до труднощів у навчанні моделей значної частини часу.

qϕ(z|x)

ϵp(ϵ)gϕ(ϵ,x)qϕ

Як приклад, давайте скористаємося дуже простим q, з якого ми робимо вибірку.

zqμ,σ=N(μ,σ)
q
z=gμ,σ(ϵ)=μ+ϵσ
ϵN(0,1)

p(ϵ)

ϕEzq(z|x)[f(x,z)]=Eϵp(ϵ)[ϕf(x,g(ϵ,x))]

Це має меншу дисперсію з імо, нетривіальних причин. Ознайомтесь з частиною D додатка тут, щоб отримати пояснення: https://arxiv.org/pdf/1401.4082.pdf


Привіт, чи знаєте ви, чому в реалізації вони ділять std на 2? (тобто std = torch.exp (z_var / 2)) у репараметрізації?
Ріка

4

У нас є наша імовірнісна модель. І хочу відновити параметри моделі. Ми зводимо наше завдання до оптимізації варіативної нижньої межі (VLB). Для цього ми повинні мати можливість скласти дві речі:

  • обчислити VLB
  • отримати градієнт VLB

Автори пропонують використовувати Монте-Карло Оцінювач для обох. Насправді вони вводять цей трюк, щоб отримати більш точний оцінювач градієнтів Монте-Карло з VLB.

Це просто вдосконалення чисельного методу.


2

Трюк репараметеризації значно зменшує дисперсію оцінки МС для градієнта. Отже, це техніка зменшення дисперсії :

ϕEq(z(i)x(i);ϕ)[logp(x(i)z(i),w)]

ϕEq(z(i)x(i);ϕ)[logp(x(i)z(i),w)]=Eq(z(i)x(i);ϕ)[logp(x(i)z(i),w)ϕlogqϕ(z)]
p(x(i)z(i),w)logp(x(i)z(i),w)дуже велика і саме значення негативне. Таким чином, ми мали б велику дисперсію.

z(i)=g(ϵ(i),x(i),ϕ)

ϕEq(z(i)x(i);ϕ)[logp(x(i)z(i),w)]=Ep(ϵ(i))[ϕlogp(x(i)g(ϵ(i),x(i),ϕ),w)]

p(ϵ(i))p(ϵ(i))ϕ

z(i)z(i)=g(ϵ(i),x(i),ϕ)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.