Residual Networks (ResNet)
Изучи возможности остаточных сетей (ResNet). Узнай, как пропускающие соединения решают проблему исчезновения градиентов и обеспечивают глубокое обучение для компьютерного зрения.
Остаточные сети, широко известные как ResNet, — это особый тип архитектуры искусственной нейронной сети (ANN), разработанный для обучения чрезвычайно глубоких сетей. Представленная исследователями Microsoft в 2015 году, ResNet решила критическую проблему глубокого обучения, известную как проблема исчезающего градиента. В традиционных сетях добавление большего числа слоёв часто приводило к насыщению или снижению производительности, поскольку сигнал, необходимый для обновления весов модели, затухал по мере обратного распространения через слои. В ResNet появились «пропускающие соединения» (или остаточные соединения), которые позволяют данным обходить один или несколько слоёв и напрямую передаваться на последующие этапы обработки. Эта инновация доказала, что более глубокие сети можно эффективно обучать, что привело к значительным прорывам в области компьютерного зрения (CV) и сделало её фундаментальной концепцией современных архитектур.
Основная концепция: остаточное обучение#
Определяющая особенность ResNet — «остаточный блок». В стандартной свёрточной нейронной сети (CNN) каждый слой пытается выучить прямое отображение входных данных в выходные. По мере углубления сети обучение такого прямого отображения становится всё сложнее.
ResNet меняет этот подход, по-другому формулируя цель обучения. Вместо того чтобы ожидать, что каждая группа слоёв выучит всё исходное отображение, остаточный блок заставляет слои учить «остаток» — то есть разницу между входными данными и требуемым выходом. Затем исходные входные данные снова добавляются к выученному остатку через пропускающее соединение. Такая структурная модификация означает, что если оптимальным является тождественное отображение (передача входных данных без изменений), сеть может легко научиться сводить остатки к нулю. Благодаря этому модели глубокого обучения (DL) значительно проще оптимизировать, что позволяет масштабировать их от десятков до сотен и даже тысяч слоёв.
Основные варианты архитектуры#
С момента появления ResNet несколько её вариантов стали стандартными ориентирами в сообществе AI.
- ResNet-50: 50-слойная версия с архитектурой «узкого места». В ней используются свёртки 1x1 для уменьшения, а затем восстановления размерности, благодаря чему сеть эффективно использует вычислительные ресурсы, сохраняя высокую точность.
- ResNet-101 и ResNet-152: более глубокие варианты со 101 и 152 слоями соответственно. Их часто используют, когда вычислительные ресурсы позволяют работать с более сложной моделью для выявления более детализированных карт признаков.
- ResNeXt: развитие ResNet, в котором добавлено измерение «кардинальности»: остаточный блок разделяется на несколько параллельных путей, что повышает эффективность и производительность.
Практические применения#
Надёжность архитектур ResNet сделала их предпочтительным выбором для широкого спектра задач компьютерного зрения.
- Анализ медицинских изображений: В здравоохранении крайне важно выявлять малозаметные аномалии на изображениях высокого разрешения. Модели на основе ResNet часто применяются для обнаружения таких состояний, как выявление опухолей на медицинских изображениях, где глубина сети помогает различать тонкие закономерности в данных MRI или CT.
- Автономные транспортные средства: Беспилотным автомобилям необходимо надёжно извлекать признаки из видеопотока с камер, чтобы распознавать пешеходов, дорожные знаки и препятствия. ResNet часто служит базовой сетью для систем обнаружения объектов в приложениях AI в автомобильной отрасли, предоставляя насыщенные визуальные признаки, необходимые для безопасной навигации.
ResNet и другие архитектуры#
Чтобы понять особенности применения ResNet, полезно отличать её от других популярных архитектур.
- ResNet и VGG: Сети VGG (группы визуальной геометрии) также являются глубокими CNN, но не имеют остаточных соединений. Поэтому их значительно сложнее обучать на глубинах, сопоставимых с ResNet, и обычно они требуют больше вычислительных ресурсов из-за больших полносвязных слоёв.
- ResNet и Inception: Сети Inception ориентированы на ширину и используют фильтры разных размеров в одном слое для извлечения признаков в различных масштабах. ResNet ориентирована на глубину. Современные архитектуры, такие как Inception-ResNet, объединяют оба подхода.
- ResNet и Vision Transformer (ViT): В то время как ViT используют механизмы самообслуживания для глобальной обработки изображений, ResNet опираются на локальные свёртки. Однако ResNet остаются сильным базовым решением и часто работают быстрее на небольших наборах данных или при выполнении инференса в реальном времени.
Пример реализации#
Современные библиотеки глубокого обучения, такие как PyTorch, упрощают доступ к предварительно обученным моделям ResNet. Эти модели незаменимы для переноса обучения, при котором модель, обученная на большом наборе данных, таком как ImageNet, дообучается для конкретной задачи.
Следующий фрагмент кода на Python показывает, как загрузить предварительно обученную модель ResNet-50 с помощью torchvision (части экосистемы PyTorch) и выполнить простой прямой проход. Хотя пользователи платформы Ultralytics часто могут выбирать YOLO26 для обнаружения объектов, понимание базовых концепций, таких как ResNet, крайне важно для продвинутой кастомизации.
import torch
import torchvision.models as models
# Load a pre-trained ResNet-50 model
resnet50 = models.resnet50(weights=models.ResNet50_Weights.DEFAULT)
resnet50.eval() # Set model to evaluation mode
# Create a dummy input tensor (batch_size, channels, height, width)
input_tensor = torch.randn(1, 3, 224, 224)
# Perform a forward pass to get predictions
with torch.no_grad():
output = resnet50(input_tensor)
print(f"Output shape: {output.shape}") # Expect [1, 1000] for ImageNet classesЗначение для современного AI#
Хотя более новые архитектуры, такие как YOLO26, используют высокооптимизированные структуры для максимальной скорости и точности, принципы остаточного обучения остаются повсеместно распространёнными. Концепция пропускающих соединений теперь является стандартным компонентом многих продвинутых сетей, включая Transformer, используемые в обработке естественного языка (NLP), и новейшие модели обнаружения объектов. Благодаря более свободной передаче информации через сеть ResNet проложила путь к глубоким и сложным моделям, на которых основан современный искусственный интеллект.









