Инициализация весов нейронной сети
Материал из MachineLearning.
| | Статья написана с использованием LLM Claude Sonnet 5 и проверена участником Daria Makeeva 03:25, 17 июля 2026 (MSD) |
|
Инициализация весов нейронной сети (англ. weight initialization) — процедура задания начальных значений обучаемых параметров нейронной сети перед запуском обучения градиентными методами. Выбор способа инициализации критически влияет на скорость и устойчивость обучения, поскольку определяет масштаб сигналов и градиентов, распространяющихся через слои сети на самых первых итерациях обратного распространения ошибки[1].
Проблема симметрии
Нейронную сеть нельзя инициализировать так, чтобы все веса, ведущие к нейронам одного слоя, были одинаковыми — в том числе равными нулю. Причина в симметрии: если два нейрона одного слоя получают на входе одинаковый сигнал и имеют одинаковые веса, то на прямом проходе они вычисляют идентичное значение, а на обратном проходе получают идентичный градиент по своим весам. В результате после любого числа шагов градиентного спуска эти нейроны остаются полностью идентичными друг другу, то есть фактически ведут себя как один нейрон, а не как несколько независимых[1].
Эта симметрия делает избыточными все дополнительные нейроны слоя: сеть с сотнями одинаково инициализированных нейронов в скрытом слое по своей выразительной силе не превосходит сеть с одним таким нейроном, поскольку все копии обучаются синхронно. Случайная инициализация нарушает эту симметрию с самого начала, давая каждому нейрону свою, отличную от остальных, начальную точку в пространстве параметров, из которой градиентный спуск может увести его в собственном направлении.
Проблема выбора масштаба случайной инициализации
Случайности недостаточно — важен и масштаб (дисперсия) случайных значений. Если веса инициализированы слишком малыми числами, то при прохождении через много слоёв дисперсия сигнала на прямом проходе экспоненциально убывает, и на выходе глубоких слоёв активации становятся близкими к нулю или к линейному участку функции активации; при обратном проходе аналогично затухает и градиент — это архитектурная разновидность проблемы затухающего градиента (vanishing gradient problem), возникающая уже на этапе инициализации, ещё до применения других техник, таких как нормализация активаций или остаточные связи[1].
Если же веса инициализированы слишком большими числами, происходит симметричный эффект — взрывающийся градиент (exploding gradient problem): дисперсия сигнала и градиента экспоненциально растёт при прохождении через слои, значения активаций и градиентов становятся аномально большими, а обучение становится численно неустойчивым. Удачно выбранная инициализация ослабляет обе эти проблемы на архитектурном уровне, стабилизируя дисперсию сигнала на разумном уровне уже в начале обучения[1].
Инициализация Ксавье (Glorot)
Рассмотрим полносвязный слой с входами, вычисляющий предактивацию
, где входы
независимы, имеют нулевое среднее и дисперсию
, а веса
независимы от входов, имеют нулевое среднее и дисперсию
. Тогда дисперсия предактивации равна:
Чтобы дисперсия сигнала не менялась при переходе от слоя к слою (), необходимо потребовать
. Аналогичное рассуждение для обратного прохода градиента через слой с
выходами даёт условие сохранения дисперсии градиента
. Поскольку оба условия обычно несовместимы одновременно (при
), Ксавье Глоро и Йошуа Бенджио предложили компромиссную оценку — среднее гармоническое двух величин:
что на практике реализуется как выбор весов из равномерного распределения на отрезке или из нормального распределения с указанной дисперсией[1]. Вывод предполагает симметричную функцию активации с производной, близкой к единице в окрестности нуля, — это условие приблизительно выполняется для гиперболического тангенса (tanh) и, в меньшей степени, для сигмоиды, для которых инициализация Ксавье была изначально разработана[1].
Инициализация Хе (He)
Функция активации ReLU (rectified linear unit), , нарушает предположение, использованное при выводе инициализации Ксавье: ReLU обнуляет отрицательную половину распределения предактивации, из-за чего дисперсия сигнала после прохождения через активацию вдвое меньше дисперсии самой предактивации. Каймин Хэ, Сянъюй Чжан, Шаоцин Рен и Цзянь Сунь показали, что для сети с ReLU-активациями условие сохранения дисперсии сигнала на прямом проходе принимает вид:
где множитель отражает потерю половины дисперсии из-за обнуления отрицательных значений. Чтобы дисперсия не менялась от слоя к слою, требуется:
Такая инициализация — обычно нормальное распределение с нулевым средним и указанной дисперсией — получила название инициализации Хе и была разработана специально для сетей с активациями ReLU и её вариантами, где инициализация Ксавье систематически недооценивает необходимый масштаб весов и приводит к постепенному затуханию дисперсии сигнала при увеличении глубины сети[1].
| Схема | Целевая активация | Формула дисперсии |
|---|---|---|
| Ксавье / Глорот | sigmoid, tanh | |
| Хе | ReLU и варианты | |
История
Инициализация Ксавье была предложена Ксавье Глоро и Йошуа Бенджио в 2010 году в статье, посвящённой анализу причин, по которым глубокие сети прямого распространения с сигмоидными и tanh-активациями трудно обучались стандартными методами того времени; авторы экспериментально и теоретически показали, что распространённая на тот момент практика инициализации весов небольшими случайными числами без учёта размера слоя приводила к насыщению активаций и замедлению обучения в глубоких сетях[1]. Инициализация Хе была предложена Каймином Хэ и соавторами в 2015 году в контексте задачи распознавания изображений на наборе данных ImageNet, где применение всё более глубоких свёрточных сетей с ReLU-активациями требовало инициализации, специально учитывающей особенности этой функции активации; авторы показали, что использование инициализации Хе вместо инициализации Ксавье позволяет успешно обучать существенно более глубокие свёрточные сети (порядка 30 слоёв) «с нуля», без предварительного обучения на меньшей сети[1].
Другие практические подходы
Помимо инициализации Ксавье и Хе, в литературе предложен ряд альтернативных схем инициализации весов. Ортогональная инициализация (orthogonal initialization), проанализированная Эндрю Сэксом, Джеймсом Макклелландом и Сурьей Гангули в 2013 году, использует случайные ортогональные матрицы вместо матриц с независимыми элементами; авторы показали, что такая инициализация обеспечивает не зависящую от глубины скорость обучения в глубоких линейных сетях и способствует более точному сохранению сигнала и градиента даже в глубоких нелинейных сетях при работе в специальном режиме, называемом «границей хаоса» (edge of chaos)[1].
LSUV (layer-sequential unit-variance initialization), предложенная Дмитрием Мишкиным и Йиржи Матасом в 2015 году, комбинирует ортогональную инициализацию с последующей эмпирической нормализацией: веса каждого слоя сначала задаются случайной ортонормированной матрицей, а затем масштабируются так, чтобы дисперсия выхода этого слоя на реальном мини-батче данных была равна единице, причём эта процедура выполняется последовательно от первого слоя к последнему. Авторы показали, что LSUV позволяет обучать очень глубокие сети со скоростью, не хуже специализированных архитектурных решений, таких как Highway Networks, без изменения самой архитектуры сети[1].
Отдельную группу составляют схемы инициализации, разработанные специально с учётом наличия остаточных связей. Так, Хунъи Чжан, Янн Дофин и Тенгью Ма предложили метод Fixup, в котором веса последних слоёв каждого остаточного блока масштабируются (уменьшаются относительно стандартной инициализации в зависимости от общего числа блоков в сети), так что на старте обучения каждый блок вносит лишь малый вклад, близкий к тождественному отображению, а суммарная дисперсия сигнала при накоплении по всем блокам не взрывается и не затухает; авторы показали, что такая инициализация позволяет обучать остаточные сети глубиной до 10000 слоёв стабильно и без использования нормализации активаций[1].
Современный статус
Для очень глубоких сетей и архитектур на основе остаточных связей значение точной формулы инициализации несколько снизилось по сравнению с серединой 2010-х годов, поскольку такие техники, как батч-нормализация и сами остаточные связи, дополнительно стабилизируют распространение сигнала независимо от начальной дисперсии весов и отчасти компенсируют неточности инициализации[1]. Тем не менее в современных архитектурах трансформеров (Transformer) вопрос масштаба начальной инициализации весов остаётся практически значимым: например, Хунъюй Ван и соавторы предложили схему DeepNorm с теоретически выведенной инициализацией, учитывающей число слоёв сети, что позволило устойчиво обучать трансформеры глубиной до 1000 слоёв — на порядок глубже, чем было практически достижимо ранее[1]. В большинстве современных библиотек глубокого обучения инициализация Хе (или её вариант, адаптированный к конкретной функции активации) остаётся практическим стандартом по умолчанию для сетей с ReLU-подобными активациями, тогда как инициализация Ксавье продолжает использоваться для слоёв с сигмоидными и tanh-активациями, а также в рекуррентных сетях.
См. также
- Проблема затухающего градиента
- Остаточные связи
- Обратное распространение ошибки
- Свёрточная нейронная сеть
- Батч-нормализация
Примечания
Литература
- Glorot X., Bengio Y. Understanding the difficulty of training deep feedforward neural networks // Proceedings of the 13th International Conference on Artificial Intelligence and Statistics (AISTATS). — 2010. — Т. 9. — С. 249–256.
- He K., Zhang X., Ren S., Sun J. Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification // Proceedings of the IEEE International Conference on Computer Vision (ICCV). — 2015. — С. 1026–1034.
- Saxe A.M., McClelland J.L., Ganguli S. Exact solutions to the nonlinear dynamics of learning in deep linear neural networks // arXiv preprint. — 2013. — № arXiv:1312.6120.
- Mishkin D., Matas J. All you need is a good init // Proceedings of the International Conference on Learning Representations (ICLR). — 2016. — № arXiv:1511.06422.
- Zhang H., Dauphin Y.N., Ma T. Fixup Initialization: Residual Learning Without Normalization // Proceedings of the International Conference on Learning Representations (ICLR). — 2019. — № arXiv:1901.09321.
- Wang H., Ma S., Dong L., Huang S., Zhang D., Wei F. DeepNet: Scaling Transformers to 1,000 Layers // arXiv preprint. — 2022. — № arXiv:2203.00555.
- Nielsen M. Neural Networks and Deep Learning // Determination Press. — 2015.

