глоссарий

Затухание градиента

Затухание градиента

Затухание градиента — это явление в обучении глубоких нейросетей, когда сигнал об ошибке, распространяясь от последних слоёв к первым, становится настолько слабым, что ранние слои практически перестают учиться. Термин критически важен, потому что именно из-за него долгое время не удавалось обучать сети с большим числом слоёв — а значит, и решать сложные задачи вроде распознавания речи или изображений. Без понимания этой проблемы нельзя осознанно строить современные архитектуры.

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

Классический пример — распознавание рукописных цифр в старой сети с тремя десятками скрытых слоёв. Если веса инициализированы слишком малыми, то первые слои, отвечающие за выделение простых линий и изгибов, остаются фактически неизменными после сотен эпох обучения, тогда как последние слои адаптируются. В итоге сеть выдаёт случайные догадки, а точность не растёт. Именно для борьбы с затуханием были придуманы ReLU, нормализация и остаточные блоки, которые позволяют градиенту «перепрыгивать» через слои.

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