Що пояснює приклад того, чому нормалізацію партії потрібно робити з обережністю?


11

Я читав документ про нормалізацію партії [1], і в ній був один розділ, де йдеться про приклад, намагаючись показати, чому нормалізацію потрібно робити обережно. Я, чесно кажучи, не можу зрозуміти, як працює приклад, і мені справді дуже цікаво зрозуміти, що вони створюють папір, наскільки я можу. Спочатку дозвольте це процитувати тут:

Наприклад, розглянемо шар із входом u, який додає вивчену зміщення b, і нормалізує результат, віднісши середнє значення активації, обчислене над навчальними даними: де - це набір значень над навчальним набором, а . Якщо крок спуску градієнта ігнорує залежність від , то він оновиться , де . Тоді . Таким чином, поєднання оновлення доx^=xE[x]x=u+b,X={x1...N}xE[x]=i=1NxiE[x]bbb+Δ>bΔblx^u+(b+Δb)E[u+(b+Δb)]=u+bE[u+b]b і подальша зміна нормалізації призвела до не зміни на виході шару, а отже, до втрат.

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

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


Я думаю, що більшість моїх плутанин можуть бути помітними, тому я уточню.

По-перше, я думаю, що одне із речей, що мене дуже бентежить, - це те, що означає для авторів наявність підрозділу в мережі та що таке активація. Зазвичай я думаю про активацію як:

x(l)=a(l)=θ(z(l))=θ(w(l),x(l1)+b(l))

де - це неочищені вектори функцій з першого вхідного шару.x(0)=a(0)=x

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

нормалізує результат шляхом віднімання середнього значення активації, обчисленої за навчальними даними: деx^=xE[x]x=u+b

Я думаю, що вони намагаються сказати, що замість використання активацій як обчислених прямим проходом, виконується певна «нормалізація», віднімаючи середню активацію :x(l)=a(l)

x¯l=a¯l=1Ni=1Na¯l=1Ni=1Nx¯l

а потім передає це алгоритму зворотного поширення. Або принаймні те, що було б для мене сенсом.

Що стосується цього, я думаю, що те, що вони називають , можливо, ? Це те, що я б здогадався, тому що вони називають це "вхідним" і мають рівняння (я думаю, вони використовують блок ідентичності / лінійної активації для своєї нейронної мережі? Можливо).ux(l)x=u+b

Щоб ще більше заплутати мене, вони визначають як щось пропорційне частковій похідній, але часткова похідна обчислюється щодо , що здається мені справді химерним. Зазвичай часткові похідні при використанні градієнтного спуску відносяться до параметрів мережі. У випадку компенсації я б подумав:Δbx^

Δb(l)lb(l)

має більше сенсу, ніж приймати похідне відносно нормалізованих активацій. Я намагався зрозуміти , чому вони взяти похідну по , і я подумав , що вони мали в вид дельт , коли вони писали , так як зазвичай це єдина частина алгоритму зворотної опори, яка має похідну відносно попередньої активації, оскільки рівняння дельти:x^lx^

δj(l)=Lzj(l)

Ще одна річ, яка мене бентежить:

Тоді .u+(b+Δb)E[u+(b+Δb)]=u+bE[u+b]

вони насправді не кажуть, що вони намагаються обчислити у наведеному вище рівнянні, але я б сказав, що вони намагаються обчислити оновлену нормалізовану активацію (для першого шару?) після того, як буде оновлено до ? Не впевнений, чи купую їх точку, бо я вважаю, що правильне рівняння повинно було бути:bb+Δb

x^=θ(u+(b+Δb))E[θ(u+(b+Δb))]

що не скасовує зміна параметра . Однак я не знаю, що вони роблять, тому я просто здогадуюсь. Що саме таке рівняння, яке вони написали?Δbb

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


[1]: Ioffe S. and Szegedy C. (2015),
"Нормалізація партії: прискорення глибокої мережевої підготовки шляхом зменшення внутрішнього коваріатного зсуву",
Матеріали 32-ї міжнародної конференції з машинного навчання , Лілль, Франція, 2015.
Журнал машинного навчання. Дослідження: W&CP том 37


Я думаю, що нотаційний характер цього абзацу зрозумілий зараз, але повідомлення, яке його намагаються передати, і його мета менш зрозумілі.
Чарлі Паркер

Відповіді:


3

Я думаю, вся суть цього абзацу полягає в тому, що якщо крок спуску градієнта ігнорує залежність від , оновлення терміна зміщення b не призведе до зміни результатуE[x]b , як заявлено в реченні перед ним,

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

Тому вони зробили крок градієнтного спуску обізнаним про нормалізацію у своєму методі.


Щодо вас питань

Що стосується цього, я думаю, що те, що вони називають , можливо, ?ux(l)

Як стверджується в їхньому першому реченні, - введення шару. Що на самому ділі , здається, не має значення, так як вони ілюструють тільки ефект в прикладі.uub

Я б подумав, що має більше сенсу, ніж брати похідну щодо нормалізованих активацій.Δblb

Ми знаємо , оскільки ми ігноруємо залежність від , у нас є так .x^=xE[x]=u+bE[x]E[x]b

lb=lx^x^b=lx^,
Δblx^

u+(b+Δb)E[u+(b+Δb)]=u+bE[u+b] вони насправді не говорять, що намагаються обчислити у наведеному вище рівнянні, але Я б сказав, що вони намагаються обчислити оновлену нормалізовану активацію (для першого шару?) Після того, як буде оновлено до ?bb+Δb

Це обчислення після оновлюється до , щоб показати , що якщо крок градієнтного спуску ігнорує залежність на , оновлюючи термін зміщення б не приведе до зміни в вихід.x^bb+ΔbE[x]b


Може бути корисним ознайомитися з деякими реалізаціями пакетної нормалізації з відкритим кодом, наприклад, у Lasagne та Keras .

Є ще одне питання, яке може здатися пов’язаним: навіщо брати градієнт моментів (середній і дисперсійний) при використанні пакетної нормалізації в нейронній мережі?


тому я гадаю, що їхня суть полягає в тому, що їм потрібно зробити оновлення GD про нормалізацію, щоб збитки змінювалися під час оновлення зміщення? Або яка головна мета цього пункту?
Чарлі Паркер

@CharlieParker так, я думаю, що так, щоб показати, що є причина зробити GD оновленням відомо про нормалізацію (IMO).
dontloo

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