Инициализация весов нейронной сети

Материал из 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)

Рассмотрим полносвязный слой с n_{in} входами, вычисляющий предактивацию y = \sum_{i=1}^{n_{in}} w_i x_i, где входы x_i независимы, имеют нулевое среднее и дисперсию \mathrm{Var}(x_i), а веса w_i независимы от входов, имеют нулевое среднее и дисперсию \mathrm{Var}(w). Тогда дисперсия предактивации равна:

\mathrm{Var}(y) = n_{in} \cdot \mathrm{Var}(w) \cdot \mathrm{Var}(x)

Чтобы дисперсия сигнала не менялась при переходе от слоя к слою (\mathrm{Var}(y) = \mathrm{Var}(x)), необходимо потребовать \mathrm{Var}(w) = 1/n_{in}. Аналогичное рассуждение для обратного прохода градиента через слой с n_{out} выходами даёт условие сохранения дисперсии градиента \mathrm{Var}(w) = 1/n_{out}. Поскольку оба условия обычно несовместимы одновременно (при n_{in} \neq n_{out}), Ксавье Глоро и Йошуа Бенджио предложили компромиссную оценку — среднее гармоническое двух величин:

\mathrm{Var}(w) = \frac{2}{n_{in} + n_{out}}

что на практике реализуется как выбор весов из равномерного распределения на отрезке \left[-\sqrt{\frac{6}{n_{in}+n_{out}}},\ \sqrt{\frac{6}{n_{in}+n_{out}}}\right] или из нормального распределения с указанной дисперсией[1]. Вывод предполагает симметричную функцию активации с производной, близкой к единице в окрестности нуля, — это условие приблизительно выполняется для гиперболического тангенса (tanh) и, в меньшей степени, для сигмоиды, для которых инициализация Ксавье была изначально разработана[1].

Инициализация Хе (He)

Функция активации ReLU (rectified linear unit), f(y) = \max(0, y), нарушает предположение, использованное при выводе инициализации Ксавье: ReLU обнуляет отрицательную половину распределения предактивации, из-за чего дисперсия сигнала после прохождения через активацию вдвое меньше дисперсии самой предактивации. Каймин Хэ, Сянъюй Чжан, Шаоцин Рен и Цзянь Сунь показали, что для сети с ReLU-активациями условие сохранения дисперсии сигнала на прямом проходе принимает вид:

\mathrm{Var}(y_l) = \frac{1}{2} n_{in} \cdot \mathrm{Var}(w_l) \cdot \mathrm{Var}(y_{l-1})

где множитель 1/2 отражает потерю половины дисперсии из-за обнуления отрицательных значений. Чтобы дисперсия не менялась от слоя к слою, требуется:

\mathrm{Var}(w) = \frac{2}{n_{in}}

Такая инициализация — обычно нормальное распределение с нулевым средним и указанной дисперсией — получила название инициализации Хе и была разработана специально для сетей с активациями ReLU и её вариантами, где инициализация Ксавье систематически недооценивает необходимый масштаб весов и приводит к постепенному затуханию дисперсии сигнала при увеличении глубины сети[1].

Формулы дисперсии весов для основных схем инициализации
Схема Целевая активация Формула дисперсии \mathrm{Var}(w)
Ксавье / Глорот sigmoid, tanh 2/(n_{in}+n_{out})
Хе ReLU и варианты 2/n_{in}

История

Инициализация Ксавье была предложена Ксавье Глоро и Йошуа Бенджио в 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.
Личные инструменты