RBM - цікавий звір. Щоб відповісти на ваше запитання і надітись на них моєю пам’яттю, я вийду RBM і поговорять через виведення. Ви згадали, що ви плутаєте ймовірність, тому моє виведення буде з точки зору спроби максимально збільшити ймовірність. Тож почнемо.
RBM містять два різних набори нейронів, видимих і прихованих, я позначу їх і h відповідно. Враховуючи конкретну конфігурацію v і h , ми відображаємо її простір ймовірностей.vhvh
p(v,h)=e−E(v,h)Z
Є ще кілька речей, які слід визначити. Сурогатну функцію, яку ми використовуємо для відображення конкретної конфігурації в просторі ймовірностей, називають енергетичною функцією . Z константа нормирующий множник , щоб гарантувати , що ми на самому ділі карту на імовірнісному просторі. Тепер давайте перейдемо до того, що ми насправді шукаємо; ймовірність набору видимих нейронів, іншими словами, ймовірність наших даних.
Z = ∑ v ∈ V ∑ h ∈ H e - E ( v , h ) p ( v )E(v,h)Z
Z=∑v∈V∑h∈He−E(v,h)
p(v)=∑h∈Hp(v,h)=∑h∈He−E(v,h)∑v∈V∑h∈He−E(v,h)
Хоча в цьому рівнянні багато термінів, воно просто зводиться до написання правильних рівнянь ймовірності. Будемо сподіватися, що до сих пір, це допомогло вам зрозуміти , чому нам потрібна функція енергії , щоб обчислити вірогідність того , чи то , що робиться частіше ненормованого ймовірності . Ненормалізована ймовірність використовується тому, що обчислювати функцію розділення Z дуже дорого.p(v)∗ZZ
Тепер перейдемо до фактичної фази навчання КЗП. Для максимальної імовірності для кожної точки даних нам потрібно зробити крок градієнта, щоб зробити . Для отримання градієнтних виразів потрібні деякі математичні акробатики. Перше, що ми робимо - це взяти журнал p ( v ) . З цього моменту ми будемо працювати в просторі ймовірностей журналу, щоб зробити математику здійсненною.p(v)=1p(v)
Візьмемо градієнт відносно параметри в p ( v )
log(p(v))=log[∑h∈He−E(v,h)]−log[∑v∈V∑h∈He−E(v,h)]
p(v)
∂log(p(v))∂θ=−1∑h′∈He−E(v,h′)∑h′∈He−E(v,h′)∂E(v,h′)∂θ+1∑v′∈V∑h′∈He−E(v′,h′)∑v′∈V∑h′∈He−E(v′,h′)∂E(v,h)∂θ
Тепер я зробив це на папері і записав півфінальне рівняння, щоб не витрачати багато місця на цьому сайті. Я рекомендую вам вивести ці рівняння самостійно. Зараз я напишу деякі рівняння, які допоможуть продовжити наше виведення. Зауважимо, що: , p ( v ) = ∑ h ∈ H p ( v , h ) і що p ( h | v ) =Zp(v,h)=e−E(v,h′)p(v)=∑h∈Hp(v,h)p(h|v)=p(v,h)p(h)
∂log(p(v))∂θ∂log(p(v))∂θ=−1p(v)∑h′∈Hp(v,h′)∂E(v,h′)∂θ+∑v′∈V∑h′∈Hp(v′,h′)∂E(v′,h′)∂θ=−∑h′∈Hp(h′|v)∂E(v,h′)∂θ+∑v′∈V∑h′∈Hp(v′,h′)∂E(v′,h′)∂θ
І ось ми дістали, ми отримали максимальну оцінку ймовірності для УЗМ, якщо ви хочете, ви можете написати два останні терміни, очікуючи відповідних термінів (умовна та спільна ймовірність).
Примітки про енергетичну функцію та стохастичність нейронів.
Як ви бачите вище в моєму виведенні, я визначив визначення функції енергії досить невиразним. Причиною цього є те, що багато різних версій МПУ реалізують різні енергетичні функції. Той, що Хінтон описує у лекції, зв'язаній вище, і показаний @ Laurens-Meeus, є:
E(v,h)=−aTv−bTh−vTWh.
Можливо, буде простіше міркувати про вищезазначені градієнтні форми через форму очікування.
∂log(p(v))∂θ=−Ep(h′|v)∂E(v,h′)∂θ+Ep(v′,h′)∂E(v′,h′)∂θ
Очікування першого терміну насправді легко підрахувати, і це був геній, що стоїть за УЗМ. Обмежуючи зв'язок, умовне очікування просто перетворюється в прямому напрямку поширення ШПМ із зафіксованими видимими одиницями. Це так звана фаза неспання в машинах Больцмана. Зараз обчислити другий термін набагато складніше, і зазвичай для цього використовують методи Монте-Карло. Запис градієнта через середній пробіг Монте-Карло:
∂log(p(v))∂θ≈−⟨∂E(v,h′)∂θ⟩p(h′|v)+⟨∂E(v′,h′)∂θ⟩p(v′,h′)
Обчислити перший термін не складно, як зазначено вище, тому Монте-Карло робиться над другим терміном. Методи Монте-Карло використовують випадкові послідовні вибірки розподілу, щоб обчислити очікування (суму чи інтеграл). Тепер цей випадковий вибірковий вибір у класичних УЗМ визначається як встановлення одиниці або 0, або 1, виходячи зі своєї ймовірності стохастично, іншими словами, отримують випадкове рівномірне число, якщо воно менше, ніж ймовірність нейронів, встановила його 1, якщо воно більше, ніж встановити його на 0.