Чому небезпечно ініціалізувати ваги нулями? Чи є простий приклад, який це демонструє?
Чому небезпечно ініціалізувати ваги нулями? Чи є простий приклад, який це демонструє?
Відповіді:
редагувати дивіться коментар альфи нижче. Я не фахівець з нейронних мереж, тому я віддам його.
Моє розуміння відрізняється від інших відповідей, які були розміщені тут.
Я майже впевнений, що розмноження передбачає додавання до існуючих ваг, а не множення. Сума, яку ви додаєте, визначається правилом delta . Зверніть увагу, що wij не відображається в правій частині рівняння.
Я розумію, що є принаймні дві вагомі причини не встановлювати початкові ваги на нуль:
По-перше, нейронні мережі мають тенденцію застрявати в локальних мінімумах, тому корисно надати їм багато різних вихідних значень. Ви не можете цього зробити, якщо всі починаються з нуля.
По-друге, якщо нейрони починаються з однакових ваг, то всі нейрони будуть слідувати одному і тому ж градієнту і завжди будуть робити те саме, що один з одним.
Якщо ви думали про ваги як пріорі, як у байєсівській мережі, то ви виключили будь-яку можливість того, що ці входи могли вплинути на систему. Ще одне пояснення полягає в тому, що зворотне розповсюдження ідентифікує набір ваг, що мінімізує різницю зваженого квадрата між цільовим та спостережуваним значеннями (E). Тоді як можна було орієнтувати будь-який алгоритм спуску градієнта з точки зору визначення напрямку системи? Ви розміщуєте себе в точці сідла простору параметрів.
Під час кожної ітерації алгоритму зворотного розповсюдження ви будете оновлювати ваги шляхом множення наявної ваги на дельту, визначену зворотним розповсюдженням. Якщо початкове значення ваги дорівнює 0, помноження його на будь-яке значення для дельти не змінить вагу, що означає, що кожна ітерація не впливає на ваги, які ви намагаєтесь оптимізувати.
Відповідь на це не зовсім "Місцеві мінімуми / максими".
Якщо у вас більше 1 прихованого шару і кожна вага становить 0, незалежно від того, наскільки велика / мала зміна ваги_і не призведе до зміни результату.
Це тому, що дельта Weight_i буде поглинена наступним прихованим шаром.
Коли немає змін у виході, немає градієнта і, отже, немає напрямку.
Це має ті самі риси, що й у "Місцевих мінімумів" / "Максима", але насправді через "0", що технічно відрізняється
Основна проблема з ініціалізацією всіх ваг до нуля математично призводить до того, що або значення нейронів дорівнюють нулю (для багатошарових), або дельта буде нульовою. В одному з коментарів @alfa у вищезазначених відповідях уже натякається, що добуток ваг і дельти повинен дорівнювати нулю. Це по суті означало б, що для схилу градієнта це знаходиться на вершині пагорба прямо на його вершині, і він не в змозі порушити симетрію. Випадковість порушить цю симетрію і можна було б досягти локального мінімуму. Навіть якби ми трохи збурили вагу (-ла), ми б на шляху. Довідка: Навчання з даних Лекція 10.
Це погана ідея через 2 причини:
Якщо у вас активація сигмоподібної форми, або що-небудь де тоді це призведе до переміщення ваг «разом», обмежуючи потужність зворотного розповсюдження для пошуку всього простору, щоб знайти оптимальні ваги, які знижують втрати / витрати.
Якщо у вас є або активація ReLu, або що завгодно тоді всі виходи будуть дорівнювати 0, а градієнти для ваг завжди будуть 0. Отже, ви взагалі не будете навчатися.
Покажемо це (для простоти я припускаю кінцевий вихідний шар 1 нейрона):
Передача вперед : Якщо всі ваги дорівнюють 0, то вхід для 2-го шару буде однаковим для всіх вузлів. Виходи вузлів будуть однаковими, хоча вони будуть помножені на наступний набір ваг, який буде дорівнює 0, і таким чином входи для наступного шару будуть нульовими і т. Д. І т. Д. Отже, всі входи (крім першого шару, який приймає фактичні входи) буде 0, і всі виходи будуть однаковими (0,5 для активації сигмоїдів і 0 для та активація ReLu).
Поширення на зворотному рівні : Давайте розглянемо лише останній шар. Остаточний збиток () залежить від кінцевого виходу мережі (, де L позначає кінцевий шар), що залежить від кінцевого введення перед активацією (), що залежить від ваги кінцевого шару (). Тепер ми хочемо знайти:
Точку 2 можна показати з того, що буде дорівнює нулю. Отже, ваше вектор буде заповнений нулями, і навчання не може бути досягнуто.