Бути швидшим чи нижчим - відносний термін, і його слід розуміти в контексті того, з чим його порівнюють. Отже, щоб зрозуміти це, спершу слід розглянути, як працює градієнтне спускання з іншими типами функції активації.
Приклад налаштування
Розглянемо MLP с н приховані шари розміром один.
z1=W1х +б1
а1= f(z1)
...
zн=Wнаn - 1+бн
у= f(zн)
де - функція активації.f
Тан і сигмоїд - зникаючий градієнт
Нехай є Tanh або активації функції сигмовидної. Похідне цих функцій обмежене від -1 до 1, або формально для будь-якого .ff'( x ) ∈ ( - 1 , 1 )х
Це спричиняє дуже важливу проблему в глибокому навчанні, відому як "проблема градієнта, що зникає". Розглянемо похідну wrt . За правилом ланцюга маємо
уW1
dfdW1=dfdWndWndWn−1...dW2dW1
і для будь-якого зауважте, що
0<i<n
dXidXi−1=f′(Wi−1ai−2+bi−1)×ai−2∈(−1,1)
(Перший доданок знаходиться між оскільки обмежений, як обговорювалося раніше, а також знаходиться між як скорочення вхідного значення.)(−1,1)f′ai−2(−1,1)
Отже - це в основному добуток безлічі термінів, кожен з яких знаходиться між (0, 1). Чим більший (глибше мережа), тим більше цього терміна нам потрібно помножити, і в результаті стає експоненціально меншим. Через цю експоненціальну залежність градієнт швидко стає таким малим, що ми можемо ефективно вважати його нульовим. Наслідком нульових градієнтів є те, що навчання взагалі не може відбутися, оскільки наше правило оновлення для спуску градієнта засноване на цьому градієнті.dfdW1ndfdW1
RELU і Мертвий Нейрон
Relu придуманий для вирішення проблеми, що втрачає градієнт, тому що його похідна завжди дорівнює 1, коли тому коли RELU, ми маємо:
ai>0f
dXidXi−1=ai−2
dfdW1=a1a2a3...an−1
Це все добре і добре, коли але все розпадається щоразу, коли , на цей раз градієнт не тільки близький до нуля, це чистий нуль. Як тільки нейрон дістається туди, взагалі немає шансу повернутися. Ось чому це відоме як проблема "Мертвого Нейрона"x>0x<0
Leaky RELU та ELU
Leaky RELU та ELU - це природний розвиток після RELU. Вони схожі на RELU як таку похідну, рівну 1, коли але уникали "мертвого нейрона", уникаючи нульових похідних, коли .x>0x<1
Я цитую оригінальний папір для різниці між ними.
Хоча LReLU і PReLU мають і негативні значення, вони також не забезпечують надійний стан дезактивації. ELU насичують негативне значення з меншими входами і, таким чином, зменшують зміну та інформацію вперед.
Інтуїтивне пояснення виглядає наступним чином. В ELU, коли x стає досить малим, градієнт стає дійсно малим і насиченим (так само відбувається і для Tanh та Sigmoid). Невеликий градієнт означає, що алгоритм навчання може зосередитись на налаштуванні інших ваг, не турбуючись про інтерактивність із насиченими нейронами.
Розглянемо многочлен 2 ступеня, який можна представити як гладку поверхню в 3-денному просторі. Щоб знайти локальний мінімум, алгоритм спуску градієнта повинен буде враховувати крутизну в напрямку x і y. Якщо градієнт одночасно негативний у напрямку x та y, то незрозуміло, який спосіб краще. Тож розумно вибрати шлях десь посередині. Але що робити, якщо ми вже знаємо, що все плоско (нульові градієнти) у напрямку x, тоді стає безмозговим рухатися за напрямком y. Або, інакше кажучи, пошукового простору стає значно менше.
спеціальна примітка
У процесі глибокого вивчення існує багато претензій без достатнього емпіричного доказу або глибокого розуміння, щоб його підтвердити. У випадку ELU, хоча це може бути правдою, що це призводить до більш швидкого зближення для деяких наборів даних, також може бути правдою, що він змушує алгоритм навчання затримуватися на локальному максимумі для іншого набору даних. Ми просто ще недостатньо знаємо.