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


20

Чому зворотне розповсюдження не працює, коли ви ініціалізуєте всю вагу одного і того ж значення (скажімо, 0,5), але працює добре, коли задаються випадкові числа?

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

Відповіді:


26

Порушення симетрії.

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

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


Тож початкові ваги NN не визначають лише швидкість, з якою він тренується, але також можуть бути причиною навчання чи не навчання?
користувач1724140

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

Хіба це не так, оскільки різні входи все ще можуть порушити симетрію. дивіться: open.wolframcloud.com/env/…
користувач3180

12

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

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

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

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

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