Не було б ініціалізацією ваги до 0 кращою ідеєю? Таким чином ваги зможуть швидше знайти свої значення (позитивні чи негативні)?
Як порушення симетрії змушує її швидше вчитися?
Якщо ініціалізувати всі ваги до нуля, то всі нейрони всіх шарів виконують однаковий розрахунок, даючи однаковий вихід і там, роблячи всю глибоку сітку марною . Якщо ваги дорівнюють нулю, складність всієї глибокої сітки буде такою ж, як у одного нейрона і прогнози були б не кращі, ніж випадкові.
Вузли, які знаходяться поруч у прихованому шарі, підключеному до одних і тих же входів, повинні мати різні ваги для алгоритму навчання для оновлення ваг.
Зробивши ваги як ненульові (але близькі до 0, як 0,1 тощо), алгоритм вивчить ваги в наступних ітераціях і не буде застрявати. Таким чином відбувається порушення симетрії.
- Чи є якась інша основна філософія, яка стоїть за рандомізацією ваг, крім сподівання, що вони будуть близькими до своїх оптимальних значень при ініціалізації?
Алгоритми стохастичної оптимізації, такі як стохастичний градієнт спуску, використовують випадковість у виборі початкової точки пошуку та прогресу пошуку.
Прогресування пошуку або вивчення нейронної мережі відоме як конвергенція. Виявлення неоптимального рішення або локальної оптими призводить до передчасного зближення.
Замість того, щоб покладатися на одну локальну оптиму, якщо ви кілька разів запускаєте свій алгоритм з різними випадковими вагами, є найкраща можливість знайти глобальну оптиму, не зациклюючись на локальній оптимі.
Після 2015 року, завдяки прогресу в дослідженні машинного навчання, He-et et al Initializatio n вводиться для заміни випадкової ініціалізації
w=np.random.randn(layer_size[l],layer_size[l-1])*np.sqrt(2/layer_size[l-1])
Ваги все ще випадкові, але різняться за діапазоном залежно від розміру попереднього шару нейронів.
Підсумовуючи, нам допомагають ненульові випадкові ваги
- Вийдіть з місцевої оптими
- Порушення симетрії
- Досягніть глобальної оптими в подальших ітераціях