глоссарий

Xavier initialization

Xavier initialization

Xavier initialization — это способ задания начальных значений весов в нейросети, который помогает ей стабильно учиться с первого шага. Его ключевая идея: дисперсия сигналов на выходе каждого слоя должна оставаться такой же, как на входе. Если веса задать слишком большими, числа при проходе через слои будут взрываться в бесконечность; если слишком маленькими — затухать до нуля. Оба случая парализуют обучение.

Почему это критично? В глубоких сетях сигнал проходит через десятки и сотни слоёв. Подбирать подходящий разброс весов вручную невозможно, а стандартное случайное распределение почти всегда приводит к тому, что градиенты исчезают или переполняются. Сеть перестаёт обучаться, потому что обратная связь не доходит до первых слоёв. Инициализация Ксавье решает эту проблему заранее.

Интуитивно это работает так: представьте, что каждый нейрон — это маленький «рупор», который принимает сигнал и передаёт его дальше. Если много рупоров настроены слишком громко или слишком тихо, общий шум исказится. Чтобы этого избежать, метод Xavier подбирает разброс весов с учётом количества нейронов на входе и выходе слоя. Формула использует знаменитое нормальное распределение, но с хитростью: дисперсию делят на половину числа связей. Так каждый нейрон получает достаточно «громкости», чтобы сигнал не затухал, но не настолько, чтобы сеть захлебнулась в случайных всплесках.

Прикладной пример: представьте нейросеть, распознающую рукописные цифры. Без правильной инициализации первые слои могут вообще не научиться видеть изгибы и линии. С Xavier они сразу получают сигнал в здоровом диапазоне, и сеть начинает различать паттерны уже с первых эпох обучения. Метод особенно хорош для сетей с симметричными активациями, например, с гиперболическим тангенсом.

Вывод короткий: Xavier initialization — это не магия, а аккуратная страховка от хаоса на старте обучения. Она не гарантирует идеальную точность, но спасает от типичной ошибки, когда сеть просто не может сдвинуться с места.