Методи ініціалізації ваги в нейронних мережах Саурабх Ядав До науки про дані
Саурабх Ядав
9 листопада 2018 · 5 хв читання
Побудова навіть простої нейронної мережі може бути заплутаним завданням, і тому її налаштування для отримання кращого результату надзвичайно нудне. Але першим кроком, який враховується під час побудови нейронної мережі, є ініціалізація параметрів; якщо це зробити правильно, то оптимізація буде досягнута за найменший час, інакше зближення до мінімумів за допомогою градієнтного спуску буде неможливим.

Ця стаття написана з припущенням, що читач вже знайомий з поняттям нейронної мережі, вагою, ухилом, функціями активації, поширенням вперед та назад тощо.
Основні позначення
Розглянемо нейронну мережу L-рівня, яка має L-1 прихованих шарів та по 1 вхідному та вихідному шарах. Параметри (ваги та ухили) для шару l представлені у вигляді
У цій статті ми розглянемо деякі основні практики використання та деякі вдосконалені методи, які необхідно використовувати для досягнення кращого результату. Нижче наведено кілька методів, які зазвичай практикуються для ініціалізації параметрів:
- Нульова ініціалізація
- Випадкова ініціалізація
Нульова ініціалізація:
У загальній практиці зсуви ініціалізуються 0, а ваги ініціалізуються випадковими числами, що робити, якщо ваги ініціалізуються 0?
Для того, щоб зрозуміти, давайте розглянемо, що ми застосували функцію активації сигмовидної форми для вихідного рівня.
Якщо всі ваги ініціалізовані 0, похідна щодо функції втрат однакова для кожного w у W [l], отже, всі ваги мають однакове значення в наступних ітераціях. Це робить приховані одиниці симетричними і триває для всіх n ітерацій, тобто встановлення ваг на 0 не робить його кращим, ніж лінійна модель. Важливо пам’ятати, що упередження не мають жодного ефекту при ініціалізації з 0.
давайте розглянемо нейронну мережу лише з трьома прихованими шарами з функцією активації ReLu у прихованих шарах та сигмовидною для вихідного шару.
Використовуючи вищезазначену нейронну мережу на наборі даних «робити кола» із sklearn.datasets, отриманий результат був таким:
для 15000 ітерацій, втрата = 0,6931471805599453, точність = 50%