Небезпека встановлення всіх початкових ваг до нуля в Backpropagation


30

Чому небезпечно ініціалізувати ваги нулями? Чи є простий приклад, який це демонструє?


Здається, що класична мережа XOR 2-1 - хороший приклад, але я би оцінив деякі теоретичні міркування.
user8078

1
Взагалі загальна відповідь, яка може бути або не може бути застосована тут, полягає в тому, що коли нові ваги є кратними старими вагами, то нульові ваги не можуть бути змінені. Це фатально для навчання.
Нік Кокс

Є вже хороші відповіді, чому не ініціалізувати ваги до нуля. Наступне посилання висвітлює "як слід вибрати початкові ваги?" staff.itee.uq.edu.au/janetw/cmc/chapters/BackProp/index2.html Сподіваюся, що це допоможе іншим читачам.
doer_uvc

@NickCox ваги тут кратні наступному шару ваг, а останній шар не є кратним жодному іншому вагу - тому це тут не застосовується.
Девід Рефаелі

Відповіді:


21

редагувати дивіться коментар альфи нижче. Я не фахівець з нейронних мереж, тому я віддам його.

Моє розуміння відрізняється від інших відповідей, які були розміщені тут.

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

Я розумію, що є принаймні дві вагомі причини не встановлювати початкові ваги на нуль:

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

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


6
"Сума, яку ви додаєте, визначається правилом дельти. Зауважте, що wij не відображається в правій частині рівняння." - Це справедливо лише для нейронних мереж без прихованих шарів! Але ви згадали ще два моменти, які є хорошими аргументами проти ініціалізації ANN з однаковою вагою.
альфа

1
Я думаю, що це головним чином друга причина - наприклад, у базовій повністю пов'язаній мережі, що передає подачу, якщо кожен шар ініціалізується з однаковими вагами, то, як ви пропонуєте, всі вузли йдуть тим самим шляхом і є зайвими. Моє враження, що більшість мереж з більш ніж декількома функціями не будуть боротися з локальними мінімумами. Крім того, сама випадкова ініціалізація не заважає мережі застрягнути, але багаторазове використання різних випадкових ініціалізацій підкаже вам, чи мала конкретна ітерація локальну проблему мінімумів (я думаю, це малося на увазі, але не явно).
Тахлор

друга причина помилкова? open.wolframcloud.com/env/…
користувач3180

різні входи порушують симетрію ваги
user3180

Ви додаєте похідні, а похідні - це множення, яке використовується за допомогою ланцюгового правила.
Девід Рефаелі

7

Якщо ви думали про ваги як пріорі, як у байєсівській мережі, то ви виключили будь-яку можливість того, що ці входи могли вплинути на систему. Ще одне пояснення полягає в тому, що зворотне розповсюдження ідентифікує набір ваг, що мінімізує різницю зваженого квадрата між цільовим та спостережуваним значеннями (E). Тоді як можна було орієнтувати будь-який алгоритм спуску градієнта з точки зору визначення напрямку системи? Ви розміщуєте себе в точці сідла простору параметрів.


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

Я думаю, що це хороша відповідь, чому будь-яку конкретну вагу не слід ініціалізувати на 0. Але дельти, ймовірно, все ще будуть поширюватися назад - ваги у вихідному шарі не залежать від ваг, тому у нас тут будуть ненульові ваги після першого оновлення. Після наступного оновлення ці ненульові ваги будуть використовуватися з дельтою для регулювання ваг попереднього шару тощо. Я думаю, що більша проблема при ініціалізації мережі з усіма 0 - це однакова вага, яка у вашій базовій повністю пов'язаній мережі, що передає канал, еквівалентна наявності 1 вузла на рівні шару.
Тахлор

6

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


2
> Ви будете оновлювати ваги, помноживши існуючу вагу на значення, визначене зворотним розповсюдженням - я не думаю, що це не просто множення.
користувач8078

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

"Значення, визначене зворотним розповсюдженням", є дельтою (див., Наприклад, оригінальний документ "Навчання уявлень шляхом помилок, що розповсюджуються назад", рівняння 7). Відповідь погано сформульована, але не зовсім помилкова.
альфа

1
Це просто неправильна відповідь. Ваги будуть змінюватися, але вони будуть змінюватися разом. Це погано, тому що всі приховані одиниці будуть однаковими протягом тренінгу, і навчання не може відбуватися.
Амін Саммара

Я думаю, це залежить від функції активації. Якщо ви виберете тан, тоді кінцевий вихід буде 0, а значить, кінцевий вага буде 0, а також всі інші ваги. Але якщо ви виберете логіт, кінцевий вихід буде а значить, кінцевий градієнт ваг не буде 0, і в кінцевому підсумку всі інші ваги також не становлять 0.θ(0)=0,5
Девід Рефаелі,

2

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


1

Відповідь на це не зовсім "Місцеві мінімуми / максими".

Якщо у вас більше 1 прихованого шару і кожна вага становить 0, незалежно від того, наскільки велика / мала зміна ваги_і не призведе до зміни результату.

Це тому, що дельта Weight_i буде поглинена наступним прихованим шаром.

Коли немає змін у виході, немає градієнта і, отже, немає напрямку.

Це має ті самі риси, що й у "Місцевих мінімумів" / "Максима", але насправді через "0", що технічно відрізняється


0

Основна проблема з ініціалізацією всіх ваг до нуля математично призводить до того, що або значення нейронів дорівнюють нулю (для багатошарових), або дельта буде нульовою. В одному з коментарів @alfa у вищезазначених відповідях уже натякається, що добуток ваг і дельти повинен дорівнювати нулю. Це по суті означало б, що для схилу градієнта це знаходиться на вершині пагорба прямо на його вершині, і він не в змозі порушити симетрію. Випадковість порушить цю симетрію і можна було б досягти локального мінімуму. Навіть якби ми трохи збурили вагу (-ла), ми б на шляху. Довідка: Навчання з даних Лекція 10.


0

Це погана ідея через 2 причини:

  1. Якщо у вас активація сигмоподібної форми, або що-небудь де г(0)0 тоді це призведе до переміщення ваг «разом», обмежуючи потужність зворотного розповсюдження для пошуку всього простору, щоб знайти оптимальні ваги, які знижують втрати / витрати.

  2. Якщо у вас є тан або активація ReLu, або що завгодно г(0)=0 тоді всі виходи будуть дорівнювати 0, а градієнти для ваг завжди будуть 0. Отже, ви взагалі не будете навчатися.

Покажемо це (для простоти я припускаю кінцевий вихідний шар 1 нейрона):

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

Поширення на зворотному рівні : Давайте розглянемо лише останній шар. Остаточний збиток (L) залежить від кінцевого виходу мережі (аL, де L позначає кінцевий шар), що залежить від кінцевого введення перед активацією (zL=WLаL-1), що залежить від ваги кінцевого шару (WL). Тепер ми хочемо знайти:

гWL: =LWL=LаLаLzLzLWL
Lа є похідною функції витрат, аzє похідною функції активації. Незалежно від того, що їх (Lааz) значення - zW просто дорівнює результатам попереднього шару, тобто до аL-1, але оскільки вони всі однакові, ви отримуєте це остаточний результат гWL- вектор з рівним елементом. Тож, коли ви оновитеWL=WL-αгWLвоно рухатиметься в тому ж напрямку. І те саме стосується попередніх шарів.

Точку 2 можна показати з того, що аL-1буде дорівнює нулю. Отже, вашегWL вектор буде заповнений нулями, і навчання не може бути досягнуто.

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