Identity Mapping
Изучи отображение тождественности в глубоком обучении. Узнай, как пропускные соединения предотвращают затухание градиентов и помогают создавать нейронные сети, такие как Ultralytics YOLO26.
В математике и линейной алгебре тождественное отображение или единичная матрица — это функция, которая возвращает то же самое значение, что и на входе. В контексте искусственного интеллекта (AI) и глубокого обучения тождественное отображение — это особый архитектурный прием, позволяющий передавать входные данные напрямую в последующие слои сверточной нейронной сети (CNN) без нелинейных преобразований. Широкую известность этот подход получил после появления остаточных сетей (ResNet) в 2015 году. Они произвели революцию в построении и обучении моделей компьютерного зрения (CV).
Как работает тождественное отображение#
Глубокие нейронные сети часто сталкиваются с проблемой затухающего градиента. При обратном распространении ошибки сигналы, используемые для обновления весов сети, экспоненциально уменьшаются по мере прохождения через слои в обратном направлении, из-за чего ранние слои не могут эффективно обучаться. Тождественное отображение решает эту проблему с помощью «пропускающих» или «коротких» связей.
Вместо того чтобы заставлять последовательные слои обучаться совершенно новой функции отображения, для которой нет исходного ориентира, их проектируют так, чтобы они обучались остаточной функции. Математически, если на вход блока подается x, слой обучает преобразование F(x). Тождественное отображение добавляет исходное значение x напрямую к результату этого преобразования, поэтому итоговый результат равен F(x) + x. Благодаря этому градиенты могут беспрепятственно проходить напрямую через основную часть модели, даже если сеть очень глубокая. Известные исследовательские организации в области ИИ, такие как Google DeepMind и OpenAI, часто используют такие архитектурные сокращения, чтобы стабилизировать обучение масштабных базовых моделей.
Тождественное отображение и сохранение идентичности#
Важно отличать тождественное отображение от похожего по названию понятия — сохранения идентичности.
Тождественное отображение — это структурный элемент нейронной сети, который помогает оптимизировать процесс обучения моделей машинного обучения (ML), тогда как сохранение идентичности — отдельная задача компьютерного зрения. Сохранение идентичности направлено на поддержание визуальной согласованности конкретного человека или объекта в разных кадрах видео при отслеживании объектов либо на разных сгенерированных изображениях в процессах генеративного ИИ.
Примеры применения в реальных условиях#
Тождественное отображение служит основой многих высокоточных моделей, используемых сегодня в production:
- Продвинутое обнаружение объектов: современные архитектуры реального времени, включая новейшую модель Ultralytics YOLO26, используют продвинутые остаточные блоки с тождественными отображениями в слоях извлечения признаков. Благодаря этому они обеспечивают быстрое и точное обнаружение в сложных условиях, например при автономном вождении, без снижения производительности по мере увеличения глубины сети.
- Модели классификации изображений: передовые архитектуры компьютерного зрения, подробно описанные в научных репозиториях, таких как arXiv и цифровая библиотека IEEE Xplore, используют тождественные отображения для успешного обучения моделей с сотнями слоев. Высокоуровневые фреймворки, такие как TensorFlow, используют эти короткие связи для извлечения сложных иерархических признаков из огромных наборов данных.
Реализация тождественного отображения в PyTorch#
При создании собственных нейронных сетей фреймворки глубокого обучения, такие как PyTorch, предоставляют встроенные средства для простой реализации таких коротких связей. Ты можешь явно использовать модуль PyTorch nn.Identity или просто выполнить сложение в прямом проходе nn.Module.
Следующий фрагмент кода показывает простой остаточный блок с тождественным отображением. Разработчики, которые используют облачную платформу Ultralytics для управления наборами данных и обучения моделей, автоматически получают преимущества этих высокооптимизированных архитектурных структур, реализованных внутри системы.
import torch.nn as nn
class ResidualBlock(nn.Module):
def __init__(self, channels):
super().__init__()
# Простой сверточный слой для извлечения признаков
self.conv = nn.Conv2d(channels, channels, kernel_size=3, padding=1)
# Явный модуль тождественного отображения
self.identity = nn.Identity()
def forward(self, x):
# Результат блока — сумма обученных признаков и тождественного отображения
return self.conv(x) + self.identity(x)








