ResNet

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

Перейти к: навигация, поиск
Статья объединена из версий, написанных с использованием LLM Claude Sonnet 5 и GPT-4, проверена участниками Daria Makeeva и Artem Mukovnin 21:47, 29 июля 2026 (MSD).


Содержание

Остаточные связи (англ. residual connections, также skip connections — пропускающие связи) — архитектурный приём в глубоких нейронных сетях, при котором вход блока слоёв добавляется напрямую к его выходу, минуя нелинейное преобразование внутри блока. Приём был предложен в архитектуре ResNet (Residual Network) Каймином Хэ (Kaiming He), Сянъюй Чжаном (Xiangyu Zhang), Шаоцином Реном (Shaoqing Ren) и Цзянем Суном (Jian Sun) из Microsoft Research Asia в 2015 году и позволил впервые успешно обучать сети глубиной в сотни и тысячи слоёв[1]. Статья получила приз за лучшую работу CVPR 2016, награду Test of Time Award CVPR 2021 и набрала более 200 000 цитирований к 2026 году, став одной из наиболее цитируемых работ в области глубокого обучения[1]. На конкурсе ILSVRC 2015 ансамбль ResNet достиг ошибки классификации 3,57% (топ-5), что ниже человеческого результата (около 5,1%), — первый случай, когда система глубокого обучения превзошла человека в распознавании изображений на ImageNet[1].

Предыстория: эволюция глубины сетей

История свёрточных сетей до 2015 года демонстрировала устойчивую тенденцию к увеличению глубины. LeNet-5 (1998, Ян Лекун) — одна из первых свёрточных сетей для распознавания цифр, глубиной 7 слоёв. AlexNet (2012, Крижевский, Суцкевер, Хинтон) победила на ILSVRC 2012 с ошибкой 15,3% при 8 слоях, благодаря использованию GPU, функции активации ReLU, dropout-регуляризации и аугментации данных. VGGNet (2014, Симонян и Зиссерман) показала важность глубины: VGG-19 при 19 слоях достигла ошибки 7,3%, используя только маленькие свёртки 3×3. GoogLeNet/Inception (2014, Сегеди и др.) при 22 слоях с модулями Inception и свёртками 1×1 достигла ошибки 6,7%[1].

К 2015 году казалось, что увеличение глубины — верный путь к улучшению качества, однако при попытке обучить сети глубже 20 слоёв исследователи столкнулись с неожиданной проблемой.

Проблема деградации

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

Кай Хе и коллеги провели показательный эксперимент, обучив на CIFAR-10 обычную 20-слойную и обычную 56-слойную сеть с одинаковой архитектурой (только свёртки 3×3, без pooling между группами слоёв), различающиеся только глубиной. 56-слойная сеть показала худшую ошибку и на обучении, и на тесте, хотя ожидалось обратное[1]. Это не было переобучением (ошибка на обучении тоже была выше) и не сводилось к затуханию градиентов, поскольку применялась Batch Normalization. Авторы назвали это явление деградацией (degradation problem): проблема заключалась не в переобучении, а в самой оптимизации, которая не могла найти даже тождественное отображение через нелинейные слои с ограниченным числом итераций стохастического градиентного спуска — оптимизатору проще «дообучить» отклонение от уже известного хорошего решения, чем построить тождественное отображение с нуля через нелинейное преобразование[1].

Возможные теоретические объяснения проблемы включают сложность ландшафта функции потерь с ростом глубины (множество локальных минимумов и седловых точек) и трудность нахождения оптимального решения градиентным спуском за разумное время, даже если оно формально представимо в пространстве параметров сети.

Авторы и мотивация

Кай Хе — ведущий автор работы, на момент публикации исследователь Microsoft Research Asia, ранее получил степень бакалавра в Университете Шанхай Цзяо Тун; позже перешёл в Facebook AI Research, где работал над Mask R-CNN (2017) и предложил метод инициализации весов (He initialization, 2015). Сянъюй Чжан специализировался на эффективных архитектурах нейронных сетей. Шаоцин Рен — соавтор Faster R-CNN (2015). Цзянь Сунь руководил группой компьютерного зрения в Microsoft Research Asia.

Идея пропускающих соединений не была полностью новой: похожие концепции существовали в Highway Networks (см. ниже), в LSTM (Хохрайтер и Шмидхубер, 1997) с аддитивным «cell state» для передачи градиентов во времени — ResNet можно рассматривать как аналог LSTM для пространственной глубины, — а также в методе остатков (residual method), широко используемом в численном решении дифференциальных уравнений для ускорения сходимости. Авторы ResNet предложили упрощённую версию пропускающих соединений: без ворот, без дополнительных параметров, просто аддитивное соединение, что оказалось не только проще, но и эффективнее аналогов.

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

Пусть x — вход блока слоёв, а F(x, W) — нелинейное преобразование с параметрами W. Остаточный блок вычисляет выход как:

y = F(x, W) + x

Слои обучаются приближать не всё отображение H(x), а лишь остаток F(x, W) = H(x) - x. Если оптимальным решением является тождественное отображение, оптимизатору достаточно занулить веса W[1].

Несовпадающие размерности

Если размерности входа и выхода блока не совпадают (например, после пулинга или изменения числа фильтров), тождественный путь заменяется линейной проекцией W_s (свёртка 1×1 с соответствующим шагом):

y = F(x, W) + W_s x

Альтернативный вариант — дополнение входа нулями (zero-padding), не добавляющее параметров. В оригинальной статье оба варианта дали сопоставимые результаты, но проекция оказалась немного лучше[1].

Базовый и bottleneck-блок

Базовый блок (для сетей до 34 слоёв): Conv3×3 → BN → ReLU → Conv3×3 → BN → сложение с входом → ReLU. Для более глубоких сетей (50 и более слоёв) используется bottleneck-блок: Conv1×1 (уменьшение размерности) → BN+ReLU → Conv3×3 → BN+ReLU → Conv1×1 (восстановление размерности) → BN → сложение → ReLU. Bottleneck-блок снижает вычислительную сложность в 4 раза при сохранении выразительной способности[1].

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

Дифференцируя выход блока y = F(x, W) + x по входу:

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

где I — единичная матрица. Единица в этом выражении гарантирует, что градиент не исчезнет, даже если \partial F/\partial x мало. При последовательном применении цепного правила через L остаточных блоков градиент включает слагаемое, проходящее через все блоки без умножения на потенциально малые якобианы \partial F_l / \partial x_l[1]. Это гарантирует, что градиент не обязан затухать даже при очень большом числе блоков, в отличие от обычной сети прямого распространения, где градиент по входу первого слоя равен произведению всех промежуточных якобианов и экспоненциально затухает при типичной норме якобианов меньше единицы[1]. Именно это свойство авторы называют ключевой причиной, по которой сети с сотнями и тысячами остаточных блоков успешно обучаются стандартным градиентным методом, тогда как их безостаточные аналоги той же глубины не обучаются вовсе.

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

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

Архитектура ResNet заняла первое место на ILSVRC 2015; статья была опубликована в трудах CVPR 2016[1]. Оригинальная работа представила пять вариантов разной глубины:

Сеть Слои Параметры (млн) Ошибка ImageNet top-5 (%)
ResNet-18 18 11,7 10,0
ResNet-34 34 21,8 8,3
ResNet-50 50 25,6 6,2
ResNet-101 101 44,5 5,5
ResNet-152 152 60,2 4,9

Наиболее глубокая протестированная модель — 152-слойная ResNet — достигла ошибки top-5 4,49% на валидационной выборке, а ансамбль моделей — 3,57% на тестовой выборке, впервые превзойдя оценённый человеческий уровень (около 5,1%)[1]. Для сравнения, на ILSVRC 2015 GoogLeNet (22 слоя) показал ошибку 6,7%, VGG-19 (19 слоёв) — 7,3%, тогда как ResNet-152 (152 слоя) — 4,9%[1].

Авторы также успешно обучили сеть глубиной 1202 слоя на CIFAR-10, продемонстрировав, что остаточные связи впервые сделали практически осуществимым обучение сетей такой глубины стандартным градиентным методом без специальных ухищрений[1]. При этом отдельный эксперимент с ResNet-1001 показал качество хуже, чем у ResNet-110, что указывает на пределы применимости остаточных соединений при экстремальной глубине. На задаче детекции объектов COCO 2015 связка Faster R-CNN с ResNet-101 заняла первое место с mAP 42,1% (44,4% в ансамбле)[1]. На CIFAR-10/100 ResNet-110 показал ошибку 6,43%, ResNet-164 — 23,4% на CIFAR-100.

Интерпретация как ансамбля путей

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

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

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

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

Pre-activation ResNet (Хэ и др., 2016) переставляет порядок операций на BN → ReLU → Conv → BN → ReLU → Conv → Add (вместо Conv → BN → ReLU → Conv → BN → Add → ReLU), делая путь тождественного отображения полностью «чистым», без дополнительной нелинейности на магистральном пути, что облегчает распространение сигнала через произвольно удалённые блоки. Это улучшило результаты на сетях глубиной до 1001 слоя на CIFAR-10 и 200 слоёв на ImageNet, дав прирост качества на 1–2%[1].

Wide ResNet (Загоруйко, Комодакис, 2016) показал, что ширина важнее глубины: Wide ResNet-28-10 превзошёл ResNet-1001 на CIFAR-10, имея в 50 раз меньше слоёв[1]. ResNeXt (Се и др., 2017, Facebook AI Research) ввёл «кардинальность» — число параллельных агрегируемых преобразований внутри блока (аналогично модулям Inception, но более структурированно); ResNeXt-101 превзошёл ResNet-152 при сопоставимом числе параметров[1]. Другие вариации включают FractalNet (2016, фрактальная архитектура с множественными путями), PyramidNet (2017, постепенное увеличение числа фильтров) и Shake-Shake (2017, стохастическая регуляризация пропускающих соединений).

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

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

Применение в других задачах

Детекция объектов. ResNet стал стандартным backbone: Faster R-CNN (замена VGG на ResNet улучшила mAP на 2–3%), Mask R-CNN (2017, инстанс-сегментация с ResNet-FPN), RetinaNet (2017, одноэтапная детекция с Focal Loss)[1].

Сегментация изображений. DeepLab (2015–2018, atrous-свёртки с ResNet backbone), PSPNet (2017, пирамидальный пулинг), U-Net с ResNet-энкодером.

Обработка естественного языка. Идея остаточных соединений применима и к NLP: трансформеры (Васвани и др., 2017) используют пропускающие соединения в каждом слое между подслоями attention и FFN; ByteNet (2016) применил остаточные соединения к свёрточным сетям для NLP.

Другие области. Медицинская визуализация (диагностика по рентгену, МРТ, КТ), автономное вождение, сверхразрешение (SRResNet), генеративные модели (ResNet в генераторах и дискриминаторах GAN).

Критика и ограничения

Несмотря на эффективность, ResNet имеет недостатки: ResNet-152 содержит 60 миллионов параметров, что требует значительных ресурсов для обучения и инференса; глубокие ResNet требуют много FLOPs, ограничивая применение на мобильных устройствах; пропускающие соединения требуют хранения активаций всех слоёв для обратного распространения, увеличивая потребление памяти.

Исследования показали, что для многих задач избыточная глубина не нужна: Wide ResNet (2016) показал, что увеличение ширины эффективнее увеличения глубины; EfficientNet (2019) продемонстрировал, что сбалансированное масштабирование глубины, ширины и разрешения эффективнее масштабирования только глубины; MobileNet (2017–2019) использует неглубокие сети с depthwise separable свёртками для мобильных устройств.

Даже ResNet сталкивается с проблемами при экстремальной глубине: ResNet-1001 показал качество хуже ResNet-110 на CIFAR-10, а в очень глубоких ResNet некоторые слои могут становиться «мёртвыми» (их веса близки к нулю), снижая эффективность архитектуры.

Наследие и влияние

ResNet кардинально изменил подход к проектированию архитектур: skip connections стали стандартным компонентом большинства современных архитектур — трансформеров, U-Net, генеративных и диффузионных моделей. ResNet показал, что проблема оптимизации может быть важнее проблемы представления, сместив фокус исследований на методы улучшения оптимизации, и доказал, что глубина — важный фактор качества, но только при правильном проектировании архитектуры.

ResNet стал одной из первых архитектур, для которых были широко распространены предобученные на ImageNet модели, что ускорило развитие трансферного обучения, и заложил основы для последующих прорывов: пропускающие соединения в каждом слое трансформера — прямое наследие ResNet; Vision Transformers (2020) применяют остаточные связи между слоями, несмотря на отсутствие свёрток; U-Net с остаточными связями — стандартный backbone для диффузионных моделей; большие мультимодальные foundation-модели используют ResNet-подобные блоки в vision encoder.

См. также

Примечания

Литература

  • 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 // Proceedings of the European Conference on Computer Vision (ECCV). — 2016. — № arXiv:1603.05027. — С. 630–645.
  • 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 (NeurIPS). — 2016. — Т. 29. — № arXiv:1605.06431. — С. 550–558.
  • 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. — С. 1492–1500.
  • 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. — С. 2261–2269.
  • 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.
  • Goodfellow I., Bengio Y., Courville A. Deep Learning. — MIT Press, 2016. — ISBN 978-0-262-03561-3 — Глава 9 (свёрточные сети).
  • Russell S., Norvig P. Artificial Intelligence: A Modern Approach. — 4th ed. — Pearson, 2020. — ISBN 978-0-13-461099-3 — Глава 21 (глубокое обучение).
Личные инструменты