Остаточные связи

Материал из MachineLearning.

Перейти к: навигация, поиск
Статья написана с использованием LLM Claude Sonnet 5 и проверена участником Daria Makeeva 02:25, 17 июля 2026 (MSD)


Содержание

Остаточные связи (англ. residual connections, также skip connections — пропускающие связи) — архитектурный приём в глубоких нейронных сетях, при котором вход некоторого блока слоёв добавляется напрямую к его выходу, минуя нелинейное преобразование внутри блока. Приём был предложен в архитектуре ResNet (Residual Network) Каймином Хэ, Сянъюй Чжаном, Шаоцином Реном и Цзянем Суном в 2015 году и позволил впервые успешно обучать сети глубиной в сотни и тысячи слоёв[1].

Проблема деградации при увеличении глубины

Интуитивно кажется, что более глубокая сеть должна обучаться не хуже, чем её более неглубокий аналог: если добавленные слои настроить так, чтобы они реализовывали тождественное преобразование (то есть просто пропускали вход без изменений), итоговое качество не должно ухудшиться. Формально это означает, что пространство функций, представимых глубокой сетью, включает в себя пространство функций более неглубокой сети как подмножество — глубокая сеть теоретически способна выучить как минимум то же самое отображение, просто занулив вклад дополнительных слоёв.

Однако на практике при обучении обычных (не остаточных) сетей прямого распространения наблюдалась обратная картина: при увеличении глубины сверх некоторого порога точность на обучающей выборке начинала не улучшаться, а деградировать — то есть проблема заключалась не в переобучении, а в самой оптимизации, которая не могла найти даже тождественное отображение через нелинейные слои с ограниченным числом итераций стохастического градиентного спуска[1]. Иными словами, тождественное преобразование, хотя и представимо глубокой сетью в принципе, оказывается на практике трудно достижимым результатом обучения через стек нелинейных слоёв — оптимизатору проще «дообучить» отклонение от уже известного хорошего решения (тождественного отображения), чем построить это отображение с нуля через сложную нелинейную функцию.

Формальное определение остаточного блока

Пусть x — вход некоторого блока слоёв, а F(x, W) — нелинейное преобразование, реализуемое несколькими слоями этого блока с параметрами W (например, две свёртки с активацией ReLU между ними). Вместо того чтобы требовать от блока напрямую приближать желаемое отображение H(x), остаточный блок вычисляет выход как сумму нелинейного преобразования и тождественного пути:

y = F(x, W) + x

Таким образом, слои внутри блока обучаются приближать не всё отображение H(x) целиком, а лишь остаток (residual) F(x, W) = H(x) - x — разницу между желаемым выходом и входом. Если оптимальным решением для данного блока действительно является тождественное отображение, оптимизатору достаточно занулить веса W, что оказывается значительно проще, чем подобрать веса нелинейного преобразования, точно воспроизводящие тождественную функцию[1].

Случай несовпадающих размерностей

Прямое сложение F(x, W) + x возможно только тогда, когда размерности входа x и выхода F(x, W) совпадают. Если внутри блока происходит изменение числа каналов или пространственного разрешения (например, при переходе между стадиями сети с уменьшением размера карты признаков), тождественный путь заменяется линейной проекцией с обучаемой матрицей весов W_s, приводящей размерность входа к размерности выхода блока перед суммированием:

y = F(x, W) + W_s x

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

Связь с проблемой затухающего градиента

Наличие остаточной связи напрямую облегчает распространение градиента при обратном распространении ошибки и тесно связано с проблемой затухающего градиента (vanishing gradient problem). Продифференцировав выход блока y = F(x, W) + x по входу x, получаем:

\frac{\partial y}{\partial x} = \frac{\partial F(x, W)}{\partial x} + I

где I — единичная матрица. При последовательном применении цепного правила через L остаточных блоков градиент функции потерь по входу первого блока принимает вид:

\frac{\partial \mathcal{L}}{\partial x_1} = \frac{\partial \mathcal{L}}{\partial x_L}\prod_{l=1}^{L-1}\left(I + \frac{\partial F_l}{\partial x_l}\right)

Раскрывая это произведение, легко видеть, что среди слагаемых обязательно присутствует член \frac{\partial \mathcal{L}}{\partial x_L} \cdot I — то есть исходный градиент проходит через все L блоков без единого умножения на потенциально малые множители \partial F_l / \partial x_l[1]. В отличие от обычной сети прямого распространения, где градиент по входу первого слоя равен произведению всех промежуточных якобианов и экспоненциально затухает, если типичная норма якобианов меньше единицы, в остаточной сети такой прямой («магистральный») путь гарантирует, что градиент не обязан затухать даже при очень большом числе блоков[1]. Именно это свойство авторы называют ключевой причиной, по которой сети с сотнями и тысячами остаточных блоков успешно обучаются стандартным градиентным методом, тогда как их безостаточные аналоги той же глубины не обучаются вовсе.

История и практические результаты

Концептуальным предшественником ResNet были Highway Networks, предложенные Рупешем Кумаром Шриваставой, Клаусом Греффом и Юргеном Шмидхубером в 2015 году. В этой архитектуре также вводился прямой путь передачи сигнала между слоями, но, в отличие от последующего ResNet, путь регулировался обучаемым гейтом (transform gate) — выход блока вычислялся как взвешенная комбинация нелинейного преобразования и тождественного пути с весами, зависящими от входа: y = F(x, W)\cdot T(x) + x\cdot(1-T(x)), где T(x) — обучаемая гейтирующая функция. Highway Networks позволили обучать сети из сотен слоёв методом стохастического градиентного спуска, однако ключевое отличие от ResNet — необходимость обучать дополнительные параметры гейта, тогда как в ResNet тождественный путь фиксирован и не требует дополнительных параметров[1].

Архитектура ResNet была представлена Каймином Хэ, Сянъюй Чжаном, Шаоцином Реном и Цзянем Суном (Microsoft Research) и заняла первое место на конкурсе ILSVRC 2015 (ImageNet Large Scale Visual Recognition Challenge); соответствующая статья была опубликована в трудах конференции CVPR в 2016 году[1]. Наиболее глубокая протестированная модель — 152-слойная ResNet — достигла ошибки top-5 4,49% на валидационной выборке ImageNet, а ансамбль моделей — 3,57% на тестовой выборке, что впервые превзошло оценённый человеческий уровень ошибки (около 5,1%) на этом наборе данных[1]. Авторы также успешно обучили сеть глубиной 1202 слоя на наборе данных CIFAR-10, продемонстрировав, что остаточные связи впервые сделали практически осуществимым обучение сетей такой глубины стандартным градиентным методом без специальных ухищрений[1].

Интерпретация ResNet как ансамбля путей разной длины

Андреас Вайт, Майкл Уилбер и Серж Белонджи в 2016 году предложили альтернативную интерпретацию остаточных сетей: поскольку каждый остаточный блок допускает как прохождение сигнала через нелинейное преобразование, так и через тождественный путь, сеть из L блоков можно эквивалентно представить как явную совокупность из 2^L путей разной длины — от одного (только тождественные переходы) до L (через все нелинейные преобразования). Авторы показали, что эти пути ведут себя подобно ансамблю относительно неглубоких сетей: они относительно слабо зависят друг от друга, удаление отдельных блоков после обучения слабо влияет на итоговую точность (в отличие от сетей без остаточных связей, таких как VGG), а основной вклад в градиент при обучении вносят именно короткие пути — например, в сети из 110 слоёв большая часть градиента приходится на пути глубиной всего 10–34 слоя. Это наблюдение объясняет, почему остаточные сети избегают проблемы затухающего градиента: обучение эффективно опирается на короткие пути, способные переносить градиент, а не на весь путь максимальной глубины[1].

Плотные связи (DenseNet)

Дальнейшим развитием идеи пропускающих связей стала архитектура DenseNet (Densely Connected Convolutional Network), предложенная Гао Хуаном и соавторами в 2017 году. В отличие от ResNet, где выход блока суммируется со входом, в DenseNet выход каждого слоя внутри плотного блока (dense block) объединяется (конкатенируется) с выходами всех предыдущих слоёв этого блока, так что каждый слой получает на вход объединение карт признаков всех предшествующих слоёв. Такая схема усиливает распространение сигнала и градиента ещё сильнее, чем простое суммирование, за счёт явного сохранения всех промежуточных представлений, и позволяет достигать сопоставимой с ResNet точности при существенно меньшем числе параметров[1].

Предактивационные остаточные блоки

В 2016 году те же авторы опубликовали продолжение работы, в котором проанализировали, как именно расположение операций (свёртка, нормализация, активация) внутри остаточного блока влияет на распространение сигнала. Они предложили предактивационный вариант блока (pre-activation ResNet), в котором нормализация и функция активации применяются перед свёрткой, а не после неё, что делает путь тождественного отображения полностью «чистым» (без дополнительной нелинейности на магистральном пути) и облегчает как прямое, так и обратное распространение сигнала через произвольно удалённые блоки. Этот вариант позволил улучшить результаты на сетях глубиной до 1001 слоя на CIFAR-10 и 200 слоёв на ImageNet[1]. Дальнейшими вариациями базовой остаточной архитектуры стали Wide ResNet (Загорюйко и Комодакис, 2016), увеличивающая ширину, а не глубину остаточных блоков, и ResNeXt (Се и соавторы, 2017), вводящая дополнительное измерение «кардинальности» — числа параллельных агрегируемых преобразований внутри блока[1][1].

Связь с непрерывной глубиной

Формула остаточного блока y = x + F(x, W) формально совпадает с шагом явного метода Эйлера для дифференциального уравнения с единичным шагом по времени. Эта наблюдение легло в основу переосмысления остаточных сетей как дискретизации непрерывной динамической системы и привело к разработке нейронных дифференциальных уравнений (neural differential equations, в частности Neural ODE), где число дискретных остаточных блоков заменяется на решение обыкновенного дифференциального уравнения с адаптивным числом шагов интегрирования[1].

См. также

Примечания

Литература

  • He K., Zhang X., Ren S., Sun J. Deep Residual Learning for Image Recognition // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). — 2016. — С. 770–778.
  • He K., Zhang X., Ren S., Sun J. Identity Mappings in Deep Residual Networks // arXiv preprint. — 2016. — № arXiv:1603.05027.
  • Srivastava R.K., Greff K., Schmidhuber J. Highway Networks // arXiv preprint. — 2015. — № arXiv:1505.00387.
  • Veit A., Wilber M., Belongie S. Residual Networks Behave Like Ensembles of Relatively Shallow Networks // Advances in Neural Information Processing Systems (NIPS). — 2016. — Т. 29. — № arXiv:1605.06431.
  • Zagoruyko S., Komodakis N. Wide Residual Networks // Proceedings of the British Machine Vision Conference (BMVC). — 2016. — С. 87.1–87.12.
  • Xie S., Girshick R., Dollár P., Tu Z., He K. Aggregated Residual Transformations for Deep Neural Networks // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). — 2017. — № arXiv:1611.05431.
  • Huang G., Liu Z., van der Maaten L., Weinberger K.Q. Densely Connected Convolutional Networks // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). — 2017. — С. 4700–4708.
  • Chen R.T.Q., Rubanova Y., Bettencourt J., Duvenaud D.K. Neural Ordinary Differential Equations // Advances in Neural Information Processing Systems (NeurIPS). — 2018. — Т. 31. — № arXiv:1806.07366.
Личные инструменты