Яка проблема "вмираючої ReLU" в нейронних мережах?


119

Посилаючись на примітки курсу Стенфорда про конволюційні нейронні мережі для візуального розпізнавання , в пункті сказано:

"На жаль, підрозділи ReLU можуть бути крихкими під час тренування і можуть" померти ". Наприклад, великий градієнт, що протікає через нейрон ReLU, може призвести до того, що ваги оновлюються таким чином, що нейрон ніколи більше не активується на будь-якій точці даних. Якщо це У такому разі градієнт, що протікає через пристрій, назавжди буде нульовим. Тобто, підрозділи ReLU можуть безповоротно загинути під час тренування, оскільки вони можуть вибити з колектора даних. Наприклад, ви можете виявити, що цілих 40 % вашої мережі можуть бути "мертвими" (тобто нейрони, які ніколи не активуються протягом усього навчального набору даних), якщо рівень навчання встановлений занадто високим. При правильному встановленні рівня навчання це проблема рідше ".

Що означає тут загибель нейронів?

Підкажіть, будь ласка, інтуїтивне пояснення більш простими словами.


2
Чи може хтось знайти посилання на якусь наукову статтю про "мертві нейрони"? Оскільки це перший результат у спробах google, було б чудово, якби це питання було відредаговано з посиланням.
Марек Жидек

чи можемо ми запобігти упередженню шляхом регуляризації для вирішення цієї проблеми?
Лень

3
Чуваки Мені вдалося пожвавити мертві нейрони релу, даючи нові випадкові (нормально розподілені) значення у кожну епоху для ваг <= 0. Я використовую цей метод лише разом із зависанням ваг на різній глибині, оскільки навчання продовжує вищі епохи (я ' м не впевнений, чи це ми називаємо фазовим переходом) Тепер можна використовувати більш високі темпи навчання, що дає кращу загальну точність (лише тестується при лінійній регресії). Це реально просто здійснити.
болі

1
@boli, чи можете ви поділитися своєю реалізацією тут?
ана

Відповіді:


121

"Мертвий" ReLU завжди видає те саме значення (нуль, як це відбувається, але це не важливо) для будь-якого введення. Можливо, до цього можна дійти, вивчивши великий негативний термін зміщення його ваг.

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

Як тільки ReLU опиниться в такому стані, він навряд чи відновиться, оскільки градієнт функції при 0 також дорівнює 0, тому вивчення градієнтного спуску не змінить ваги. "Leaky" ReLU з малим позитивним градієнтом для негативних входів ( y=0.01xколи x <0 скажуть) - це одна спроба вирішити цю проблему і дати шанс відновитись.

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


7
Хороший коментар, а також варто згадати експоненціальні лінійні одиниці (ELU), які можуть допомогти краще вирішити цю проблему: arxiv.org/abs/1511.07289
padura

14
@alex: Оскільки упередженість дуже важлива для точності. Позбутися упередженості - це те саме, що сказати, що всі площини рішення повинні пройти через походження - за кількома винятками, це поганий вибір. Насправді позбавлення від упереджених термінів в нейронній мережі або пов'язаних з ними моделях (наприклад, лінійна регресія або логістична регресія) зазвичай означатиме, що ваша модель буде страждати від упередженості! Це один з небагатьох способів, коли ви можете створити модель, яка одночасно є і непридатною, і нарядною,,,
Ніл Слейтер

1
@ Алекс: Я думаю, що звичайно додавати невеликі позитивні ухили до ReLU. Я не знаю, чи допомагає це з "вмираючою проблемою ReLU" - це, ймовірно, не змінить значення градієнта чисельно дуже сильно (оскільки градієнт становить 1 або 0 для ReLU, і саме тоді, коли це 1, він може перевернути, a малий початковий ухил, мабуть, має дуже незначну зміну) Здебільшого я думаю, що це лише хитрість додати невеликий прирік до початкового навчання - але це може допомогти, покращившись та швидше знизивши градієнти.
Ніл Слейтер

1
@max: Ви не бракуєте частини моєї відповіді "для будь-якого введення". Немає градієнт не тектиме до кожної ваги , пов'язаного з «мертвим» нейроном в прямоточною мережі, тому що всі шляхи до цих ваг будуть вирізати - немає альтернативних шляхів для градієнта протікає в підмножина ваг живлять , що блок рел. Ви можете переглянути ReLU, наприклад, в CNN або поділивши ваги, і в цьому випадку всі місця на карті об’єктів повинні мати нуль відразу. Однак я вважаю, що це ще один екземпляр "для будь-якого введення".
Ніл Слейтер

1
@anu: за схилом по градієнту. Великий позитивний градієнт, викликаний великим значенням помилки, в свою чергу може призвести до того, що один крок терміна зміщення буде достатньо великим, що він "вбиває" нейрон, так що він досягає стану (для ваг і ухилів), який майбутні вводить щоб функція ReLU ніколи не піднімалася вище 0.
Ніл Слейтер

102

Давайте розглянемо, як виглядає ReLU (випрямлений лінійний блок):

xn

zn=i=0kwiain
wiainxnReLU=max(0,zn)

Припускаючи дуже просту міру помилок

error=ReLUy

errorzn=δn={1zn00zn<0
wj
error=errorwj=errorzn×znwj=δn×ajn={ajnzn00zn<0

=xn

xnx

zn<0

ReLU=max(0.1x,x)введіть тут опис зображення


Ви не забули термін зміщення у формулі для введення в випрямляч?
Том Хейл

Я думаю, що я слідував позначенням деяких підручників, які припускають, що a_0 = 1 для всіх шарів, а w_0 - це зміщення. Упередження не важливо, тому краще все-таки пропустити його
MohamedEzz

@MohamedEzz, я не зрозумів вашу точку What if, for the input 𝑥𝑛, the current weights put the ReLU on the left flat side while it optimally should be on the right side for this particular input ?, якщо вхід негативний, градієнт буде 0? що оптимально для цього випадку? чи можете ви допомогти в розумінні цього?
ану

1
Під оптимальним я мав на увазі, що якщо для мережі краще прогнозувати цей вхід, потрібно буде відрегулювати ваги, щоб ReLU давав позитивне значення, воно не зможе зробити це регулювання через градієнт 0, який він має на плоскій стороні.
MohamedEzz

Дивовижна відповідь. Спасибі
Девід Рефаелі

13

Нейрони ReLU виводять нуль і мають нульові похідні для всіх негативних входів. Отже, якщо ваги у вашій мережі завжди призводять до негативних входів у нейрон ReLU, цей нейрон фактично не сприяє навчанню мережі. Математично внесок градієнта у оновлення ваги, що надходять від цього нейрона, завжди дорівнює нулю (докладні відомості див. У Математичному додатку).

L(W)LLWL

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

Активації в MLP ReLU з різними стратегіями ініціалізації

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

Математичний додаток

Lxj(i)jif(s)=max(0,s)sj(i)(i+1)i(i+1)

Lwjk(i)=Lxk(i+1)xk(i+1)wjk(i).

Перший термін праворуч можна обчислити рекурсивно. Другий член праворуч - це єдине місце, яке безпосередньо пов'язане з вагою і його можна розділити наwjk(i)

xk(i+1)wjk(i)=f(sj(i))sj(i)sj(i)wjk(i)=f(sj(i))xj(i).

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


чудове пояснення !, ви можете, будь ласка, допомогти мені зрозуміти, Therefore, if your inputs are on roughly the same scale, a large step in the direction of the gradient can leave you with weights that give similar inputs which can end up being negative.як ваги стають негативними, якщо вхід нормалізується?
ану

@anu Оновлення ваги , тому якщо ви зробите великий крок, тобто в цьому випадку вибираєте велике , а якщо є позитивним, то ви можете бачити, що може стати негативний. Це особливо погано, якщо ми поновлюємо ухил як велике негативне значення. λ d w wwλdwλdww
Джонсон

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

Оскільки зміщення не змінюється входом: , тому, якщо дуже негативне, може залишатися негативним для всіх значень . b z xz=wx+bbzx
Джонсон

5

Якщо бути більш конкретним у мові, тоді як локальний градієнт ReLU (що на ) примножує градієнт, який повертається назад через зворотне розповсюдження, результатом оновленого градієнта може бути велике від’ємне число (якщо градієнт, який тече - спина - велике від’ємне число).1

Такі великі негативні оновлені градієнти створюють великий негативний коли швидкість навчання відносно велика, отже, буде пригнічувати оновлення, що відбуватимуться в цьому нейроні, оскільки майже неможливо встановити велике додатне число, щоб компенсувати велике від’ємне число, принесене цим ». зламаний " .w iwiwi


4

"Помирає ReLU" відноситься до нейрона, який виводить 0 для ваших даних у навчальному наборі. Це відбувається тому, що сума вагових входів * в нейроні (також званої активацією ) стає <= 0 для всіх моделей введення. Це призводить до того, що ReLU виводить 0. Оскільки похідне від ReLU в цьому випадку дорівнює 0, оновлення ваги не проводиться, і нейрон застрягає при виході 0.

Що слід зазначити:

  1. Вмирання ReLU не означає, що вихід нейрона також залишатиметься нульовим у тестовий час. Залежно від різниці розподілу, це може бути, а може і не бути.
  2. Вмираючий РеЛУ не є постійним мертвим. Якщо ви додасте нові дані тренувань або використовуєте попередньо підготовлену модель для нового тренування, ці нейрони можуть відбити!
  3. Технічно вмираючий ReLU не повинен виводити 0 для ВСІХ навчальних даних. Може статися, що він видає ненульовий показник для деяких даних, але кількість епох недостатньо для значного переміщення ваг.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.