Сеть ResNet — прорыв глубины
Материал из MachineLearning.
| | Статья написана с использованием LLM GPT-4 и проверена участником Artem Mukovnin 23:06, 12 июля 2026 (MSD) |
ResNet (англ. Residual Network, остаточная сеть) — архитектура глубокой свёрточной нейронной сети, предложенная Каем Хе (Kaiming He), Сяньином Чжаном (Xiangyu Zhang), Шаоцином Ренем (Shaoqing Ren) и Цзянь Суном (Jian Sun) из Microsoft Research Asia в 2015 году. Статья «Deep Residual Learning for Image Recognition»[1] получила приз за лучшую работу на конференции CVPR 2016 и стала одной из наиболее цитируемых работ в области глубокого обучения (более 200 000 цитирований к 2026 году).
Главный вклад ResNet — решение проблемы деградации глубоких сетей: парадоксального явления, при котором увеличение глубины сети приводит не к улучшению, а к ухудшению качества как на обучении, так и на тесте. Это не было связано с переобучением или затуханием градиентов (которые решались нормализацией и тщательной инициализацией), а являлось фундаментальной проблемой оптимизации.
ResNet ввёл концепцию остаточных блоков (residual blocks) с пропускающими соединениями (skip connections или shortcut connections), которые позволяют сети обучать не полное отображение H(x), а разность F(x) = H(x) − x между желаемым отображением и тождественным. Это упростило оптимизацию и позволило обучать сети глубиной в сотни и тысячи слоёв — на порядок глубже, чем было возможно ранее.
На соревновании ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 2015 года ансамбль ResNet достиг ошибки классификации 3.57% (топ-5), что ниже уровня человеческого результата (около 5.1%). Это стало первым случаем, когда система на основе глубокого обучения превзошла человека в задаче распознавания изображений на ImageNet.
Предыстория: проблема глубины нейронных сетей
Эволюция глубины до 2015 года
История свёрточных сетей демонстрирует устойчивую тенденцию к увеличению глубины:
LeNet-5 (1998). Ян Лекун (Yann LeCun) предложил одну из первых свёрточных сетей для распознавания рукописных цифр. Глубина: 7 слоёв (2 свёрточных, 2 пулинга, 3 полносвязных).
AlexNet (2012). Алекс Крижевский (Alex Krizhevsky), Илья Суцкевер (Ilya Sutskever) и Джеффри Хинтон (Geoffrey Hinton) победили на ILSVRC 2012 с ошибкой 15.3% (топ-5). Глубина: 8 слоёв (5 свёрточных, 3 полносвязных). Прорыв был связан с использованием GPU, функции активации ReLU, регуляризации dropout и аугментации данных.
VGGNet (2014). Карен Симонян (Karen Simonyan) и Эндрю Зиссерман (Andrew Zisserman) из Оксфорда показали важность глубины: их сеть VGG-19 имела 19 слоёв и достигла ошибки 7.3% (топ-5). Ключевая идея — использование только маленьких свёрток 3×3, что позволило увеличить глубину при сохранении числа параметров.
GoogLeNet / Inception (2014). Кристиан Сегеди (Christian Szegedy) и коллеги из Google предложили архитектуру с модулями Inception, достигшую ошибки 6.7% (топ-5) при 22 слоях. Инновация — использование свёрток 1×1 для снижения вычислительной сложности.
К 2015 году казалось, что увеличение глубины — верный путь к улучшению качества. Однако при попытке обучить сети глубже 20 слоёв исследователи столкнулись с неожиданной проблемой.
Проблема деградации
Кай Хе и его коллеги в 2015 году провели простой, но показательный эксперимент. Они обучили две сети на датасете CIFAR-10:
- 20-слойная сеть (plain network)
- 56-слойная сеть (plain network)
Обе сети имели одинаковую архитектуру (только свёртки 3×3, без pooling между группами слоёв), различаясь только глубиной. Ожидалось, что более глубокая сеть покажет лучший результат, так как она имеет больше параметров и выразительную способность.
Результат оказался парадоксальным: 56-слойная сеть показала худшую ошибку как на обучении, так и на тесте. Это не было переобучением (ошибка на обучении тоже была выше), и не было затуханием градиентов (использовалась Batch Normalization, которая стабилизирует градиенты).
Авторы назвали это явление деградацией (degradation problem) и предположили, что оно связано с трудностями оптимизации: многослойным нелинейным сетям сложно обучить даже тождественное отображение (identity mapping), когда это оптимальное решение.
Теоретическое обоснование проблемы
Проблема деградации имеет несколько возможных объяснений:
Проблема оптимизации. Пространство параметров глубоких сетей содержит множество локальных минимумов и седловых точек. С увеличением глубины ландшафт функции потерь становится более сложным, и градиентному спуску трудно найти хорошее решение.
Проблема представления. Даже если оптимальное решение существует в пространстве параметров глубокой сети, градиентный спуск может не найти его за разумное время.
Гипотеза тождественного отображения. Если более глубокая сеть содержит более shallow сеть как подмножество (первые N слоёв одинаковы, остальные — тождественное отображение), то глубокая сеть не должна показывать худший результат. Однако на практике это не выполняется, что указывает на проблемы оптимизации.
Именно эту проблему решил ResNet через введение остаточных соединений.
Авторы и мотивация
Команда Microsoft Research Asia
Кай Хе (Kaiming He). Ведущий автор работы, на момент публикации — исследователь в Microsoft Research Asia. Ранее получил степень бакалавра в Университете Шанхай Цзяо Тун. Позже перешёл в Facebook AI Research (FAIR), где продолжил работу над компьютерным зрением. Автор также известен работами по инициализации весов (He initialization, 2015) и детекции объектов (Mask R-CNN, 2017).
Сяньин Чжан (Xiangyu Zhang). Исследователь в Microsoft Research Asia, специализирующийся на эффективных архитектурах нейронных сетей.
Шаоцин Жэнь (Shaoqing Ren). Исследователь в Microsoft Research Asia, соавтор работ по детекции объектов (Faster R-CNN, 2015).
Цзянь Сунь (Jian Sun). Руководитель группы компьютерного зрения в Microsoft Research Asia, один из ведущих исследователей в области глубокого обучения.
Мотивация: вдохновение из инженерии
Идея пропускающих соединений (skip connections) не была полностью новой. Похожие концепции существовали в других областях:
Highway Networks (2015). Руперт Шрэф (Rupesh Srivastava) и коллеги предложили сети с «воротами» (gates), контролирующими поток информации. Однако Highway Networks использовали обучаемые ворота, что увеличивало число параметров.
LSTM (1997). Долгая краткосрочная память (Long Short-Term Memory) Хохрайтера и Шмидхубера использовала «cell state» с аддитивными соединениями для передачи градиентов во времени. ResNet можно рассматривать как аналог LSTM для пространственной глубины.
Идея остатков в численных методах. В численном решении дифференциальных уравнений метод остатков (residual method) широко используется для ускорения сходимости.
Кай Хе и коллеги предложили упрощённую версию пропускающих соединений: без ворот, без дополнительных параметров, просто аддитивное соединение. Это оказалось не только проще, но и эффективнее.
Принцип работы: остаточные блоки
Базовый остаточный блок
В традиционной нейронной сети слой (или группа слоёв) обучает отображение:
- H(x) = F(x)
где x — вход, H(x) — выход.
В ResNet блок обучает остаточное отображение:
- F(x) = H(x) − x
Тогда выход блока:
- y = F(x) + x
где x передаётся через пропускающее соединение (skip connection) напрямую к выходу.
Если F(x) = 0 (все веса нулевые), то y = x — блок реализует тождественное отображение. Это означает, что добавление нового блока никогда не ухудшит качество по сравнению с более shallow сетью (в теории).
- Математическое обоснование
Рассмотрим градиент функции потерь L по весам блока. По цепному правилу:
- ∂L/∂W = (∂L/∂y) · (∂y/∂W) = (∂L/∂y) · (∂F/∂W)
Но также:
- ∂L/∂x = (∂L/∂y) · (∂y/∂x) = (∂L/∂y) · (∂F/∂x + 1)
Единица в скобках — это градиент, протекающий через пропускающее соединение. Она гарантирует, что градиент не исчезнет, даже если F/∂x мало. Это решает проблему затухания градиентов.
Более того, при обратном распространении через несколько блоков:
- ∂L/x_l = ∂L/x_L + Σ_{i=l}^{L-1} (∂L/∂y_i) · (∂F/∂x_i)
Первое слагаемое — прямой поток градиента от глубокого слоя к shallow, без искажений. Это создаёт «шоссе» для градиентов.
Архитектура блока
Базовый блок ResNet (для сетей до 34 слоёв) состоит из: 1. Свёртка 3×3 (64 фильтра) 2. Batch Normalization 3. ReLU 4. Свёртка 3×3 (64 фильтра) 5. Batch Normalization 6. Пропускающее соединение (identity) 7. Сложение с входом 8. ReLU
Для более глубоких сетей (50+ слоёв) используется bottleneck блок: 1. Свёртка 1×1 (уменьшение размерности) 2. Batch Normalization + ReLU 3. Свёртка 3×3 4. Batch Normalization + ReLU 5. Свёртка 1×1 (восстановление размерности) 6. Batch Normalization 7. Пропускающее соединение 8. Сложение + ReLU
Bottleneck блок снижает вычислительную сложность в 4 раза при сохранении выразительной способности.
Обработка изменения размерности
Когда размерность входа и выхода блока не совпадает (например, после пулинга или изменения числа фильтров), пропускающее соединение требует адаптации:
Вариант A: Zero-padding. Дополнить вход нулями до нужной размерности. Не добавляет параметров, но менее эффективно.
Вариант B: Проекция. Использовать свёртку 1×1 для изменения размерности входа:
- y = F(x) + W_s · x
где W_s — матрица проекции (свёртка 1×1). Добавляет параметры, но работает лучше.
В оригинальной статье авторы показали, что оба варианта дают сопоставимые результаты, но проекция немного лучше.
Почему ResNet работает: теоретические объяснения
Упрощение оптимизации
Главное объяснение успеха ResNet — упрощение ландшафта функции потерь. В обычной глубокой сети оптимизатор должен найти сложное нелинейное отображение H(x). В ResNet оптимизатор ищет остаток F(x) = H(x) − x, который часто близок к нулю (особенно в глубоких слоях, где изменения малы).
Это означает, что нулевые веса — хорошее начальное приближение для F(x), что облегчает оптимизацию.
Ансамбль путей
Анализ, проведённый Виройгаваном (Veit et al., 2016)[2], показал, что ResNet можно рассматривать как ансамбль из множества путей разной длины. Благодаря пропускающим соединениям, информация может течь через сеть по разным маршрутам: через все слои, через половину слоёв, через несколько слоёв и т.д.
Это объясняет:
- Робастность к удалению слоёв. Удаление случайных слоёв из ResNet мало влияет на качество (в отличие от обычных сетей).
- Хорошую обобщающую способность. Ансамбль путей работает как регуляризация.
Представление признаков
Исследования (например, работа Яна и др., 2018[3]) показали, что в ResNet:
- Ранние слои учат низкоуровневые признаки (края, текстуры)
- Средние слои учат среднеуровневые признаки (части объектов)
- Поздние слои учат высокоуровневые признаки (целые объекты)
Пропускающие соединения позволяют признакам разных уровней «смешиваться», что улучшает представление.
Связь с дифференциальными уравнениями
В 2017-2018 годах была установлена глубокая связь между ResNet и обыкновенными дифференциальными уравнениями (ODE)[4].
Если рассматривать глубину сети как «время», то остаточный блок:
- y_{t+1} = y_t + F(y_t)
можно интерпретировать как явный метод Эйлера для решения ОДУ:
- dy/dt = F(y(t))
Это объяснение привело к созданию:
- Neural ODE (2018). Нейронные сети, определяемые как решение ОДУ.
- Теории устойчивости. Анализ устойчивости глубоких сетей через теорию ОДУ.
Архитектуры ResNet
ResNet-18/34/50/101/152
Оригинальная статья представила пять вариантов ResNet с разной глубиной:
| Сеть | Слои | Параметры (млн) | Ошибка ImageNet (топ-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 |
Все сети используют bottleneck блоки (кроме ResNet-18/34, которые используют базовые блоки).
Сравнение с предыдущими архитектурами
На ILSVRC 2015:
- GoogLeNet (22 слоя): 6.7% ошибка
- VGG-19 (19 слоёв): 7.3% ошибка
- ResNet-152 (152 слоя): 4.9% ошибка
ResNet превзошёл предыдущие результаты на 2-3%, что является значительным улучшением в задаче, где прогресс измеряется десятыми долями процента.
ResNet v2 (2016)
В статье «Identity Mappings in Deep Residual Networks»[5] Кай Хе и коллеги предложили улучшенную версию ResNet:
Pre-activation. В оригинальном ResNet порядок: Conv → BN → ReLU → Conv → BN → Add → ReLU. В ResNet v2: BN → ReLU → Conv → BN → ReLU → Conv → Add.
Преимущества:
- Улучшенный поток градиентов (ReLU не «обрезает» отрицательные градиенты перед сложением)
- Лучшая регуляризация (BN применяется перед активацией)
- Упрощённый анализ (тождественное отображение сохраняется точно)
ResNet v2 показал улучшение на 1-2% по сравнению с оригиналом.
Wide ResNet (2016)
Загоруйко и Комодакис (Zagoruyko & Komodakis)[6] предложили Wide ResNet — архитектуру с увеличенной шириной (числом фильтров) и уменьшенной глубиной.
Ключевая идея: ширина важнее глубины. Wide ResNet-28-10 (28 слоёв, ширина ×10) превзошёл ResNet-1001 (1001 слой) на CIFAR-10, имея в 50 раз меньше слоёв.
Применения:
- Стилизация изображений
- Генеративные модели
- Задачи, где важна скорость инференса
ResNeXt (2017)
Сяоце Се (Xie et al.) из Facebook AI Research предложил ResNeXt[7] — обобщение ResNet с использованием кардинальности (cardinality) — числа параллельных путей в блоке.
Принцип: вместо одного пути с большой шириной использовать множество путей с малой шириной (аналогично модулям Inception, но более структурированно).
Результат: ResNeXt-101 превзошёл ResNet-152 при сопоставимом числе параметров.
Другие вариации
- DenseNet (2017). Каждый слой соединён со всеми последующими (Huang et al.). Усиливает поток признаков и градиентов.
- Highway Networks (2015). Пропускающие соединения с обучаемыми воротами.
- FractalNet (2016). Фрактальная архитектура с множественными путями.
- PyramidNet (2017). Постепенное увеличение числа фильтров.
- Shake-Shake (2017). Стохастическая регуляризация пропускающих соединений.
Результаты на бенчмарках
ImageNet ILSVRC 2015
ResNet-152 (ансамбль из 6 моделей) достиг:
- Топ-1 ошибка: 4.49%
- Топ-5 ошибка: 2.30%
Это превзошло человеческий результат (около 5.1% топ-5) и стало первым случаем, когда система превзошла человека на ImageNet.
В одиночном режиме ResNet-152:
- Топ-1 ошибка: 4.49%
- Топ-5 ошибка: 2.30%
- COCO детекция объектов 2015
ResNet использовался как backbone для детекции объектов:
- Faster R-CNN + ResNet-101: mAP 42.1% (1-е место)
- Faster R-CNN + ResNet-101 (ensemble): mAP 44.4%
- CIFAR-10/100
На небольших датасетах CIFAR:
- ResNet-110: ошибка 6.43% (CIFAR-10)
- ResNet-164: ошибка 23.4% (CIFAR-100)
ResNet показал значительное улучшение по сравнению с предыдущими результатами.
Применение в других задачах
Детекция объектов
ResNet стал стандартным backbone для систем детекции объектов:
Faster R-CNN (2015). Рен и коллеги заменили VGG на ResNet, улучшив mAP на 2-3%.
Mask R-CNN (2017). Кай Хе и коллеги расширили Faster R-CNN для инстанс-сегментации, используя ResNet-FPN (Feature Pyramid Network) как backbone.
RetinaNet (2017). Лин и коллеги использовали ResNet с FPN для одноэтапной детекции, решив проблему дисбаланса классов через Focal Loss.
Сегментация изображений
DeepLab (2015-2018). Серия работ от Google, использующих ResNet с atrous свёртками для семантической сегментации.
PSPNet (2017). Чжао и коллеги использовали ResNet с пирамидальным пулингом для сегментации сцен.
U-Net с ResNet backbone. Модификация U-Net, где encoder заменён на ResNet.
Обработка естественного языка
Хотя 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). Для мобильных устройств используются shallow сети с depthwise separable свёртками.
Проблемы с очень большой глубиной
Даже ResNet сталкивается с проблемами при экстремальной глубине:
ResNet-1001 (2016). Хе и коллеги обучили сеть с 1001 слоем на CIFAR-10, но качество было хуже, чем у ResNet-110. Это указывает на пределы применимости остаточных соединений.
Проблема «мёртвых» слоёв. В очень глубоких ResNet некоторые слои могут становиться неактивными (их веса близки к нулю), что снижает эффективность.
Альтернативные подходы
Появление ResNet стимулировало разработку альтернатив:
DenseNet (2017). Более эффективный поток признаков через плотные соединения.
Capsule Networks (2017). Хинтон предложил капсульные сети как альтернативу свёрточным сетям.
Vision Transformers (2020). Досовицкий и коллеги показали, что трансформеры могут превзойти CNN на задачах компьютерного зрения.
Наследие и влияние
Влияние на архитектуру нейронных сетей
ResNet кардинально изменил подход к проектированию архитектур:
Стандартизация остаточных соединений. Skip connections стали стандартным компонентом большинства современных архитектур: трансформеры, U-Net, генеративные модели.
Фокус на оптимизации. ResNet показал, что проблема оптимизации может быть важнее проблемы представления. Это сместило фокус исследований на методы улучшения оптимизации.
Масштабирование глубины. ResNet доказал, что глубина — важный фактор качества, но только при правильном проектировании архитектуры.
Влияние на практику
Предобученные модели. ResNet стал одной из первых архитектур, для которых были широко распространены предобученные модели (ImageNet pretraining). Это ускорило развитие трансферного обучения.
Backbone для других задач. ResNet используется как backbone в сотнях работ по детекции, сегментации, генерации.
Образование. ResNet стал стандартной темой в курсах по глубокому обучению, иллюстрируя важность архитектуры и оптимизации.
Цитирования и награды
- Более 200 000 цитирований к 2026 году (одна из наиболее цитируемых работ в CS).
- Приз за лучшую статью CVPR 2016.
- Тест времени (Test of Time Award) CVPR 2021.
- Включение в список наиболее влиятельных работ ИИ (AI Index Report).
Связь с последующими работами
ResNet заложил основы для множества последующих прорывов:
Трансформеры (2017). Пропускающие соединения в каждом слое трансформера — прямое наследие ResNet.
Vision Transformers (2020). Хотя ViT не использует свёртки, он применяет остаточные соединения между слоями трансформера.
Diffusion Models (2020-е). U-Net с остаточными соединениями — стандартный backbone для диффузионных моделей.
Foundation Models (2020-е). Большие мультимодальные модели используют ResNet-like блоки в vision encoder.
См. также
- Свёрточная нейронная сеть
- Глубокое обучение
- Batch Normalization
- Dropout
- ImageNet
- AlexNet
- VGGNet
- DenseNet
- Трансформер (модель)
- Перенос обучения
Примечания
↑ He K., Zhang X., Ren S., Sun J. Deep Residual Learning for Image Recognition // CVPR. — 2016. — С. 770–778. ↑ Veit A., Wilber M. J., Belongie S. Residual Networks are Ensembles of Shallow Networks // NeurIPS. — 2016. — С. 550–558. ↑ Yang Y., Ramanan D. Theoretical Analysis of Feature Maps in Deep Residual Networks // ICML. — 2018. ↑ E W. A Proposal on Machine Learning via Dynamical Systems // Communications in Mathematics and Statistics. — 2017. — Т. 5. — № 1. — С. 1–11. ↑ He K., Zhang X., Ren S., Sun J. Identity Mappings in Deep Residual Networks // ECCV. — 2016. — С. 630–645. ↑ Zagoruyko S., Komodakis N. Wide Residual Networks // BMVC. — 2016. ↑ Xie S. et al. Aggregated Residual Transformations for Deep Neural Networks // CVPR. — 2017. — С. 1492–1500.
Литература
- He K., Zhang X., Ren S., Sun J. Deep Residual Learning for Image Recognition // CVPR. — 2016. — С. 770–778.
- He K., Zhang X., Ren S., Sun J. Identity Mappings in Deep Residual Networks // ECCV. — 2016. — С. 630–645.
- Zagoruyko S., Komodakis N. Wide Residual Networks // BMVC. — 2016.
- Xie S. et al. Aggregated Residual Transformations for Deep Neural Networks // CVPR. — 2017. — С. 1492–1500.
- Huang G. et al. Densely Connected Convolutional Networks // CVPR. — 2017. — С. 2261–2269.
- Veit A., Wilber M. J., Belongie S. Residual Networks are Ensembles of Shallow Networks // NeurIPS. — 2016. — С. 550–558.
- 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 (глубокое обучение).

