Identity Mapping
딥러닝의 항등 매핑을 살펴보세요. 스킵 연결이 기울기 소실을 방지해 Ultralytics YOLO26과 같은 신경망의 성능을 높이는 방법을 알아보세요.
수학 및 선형대수학에서 항등 사상 또는 항등 행렬은 입력으로 사용된 값과 정확히 동일한 값을 반환하는 함수입니다. 인공지능 (AI) 및 딥러닝의 맥락에서 항등 매핑은 비선형 변환 없이 입력 데이터를 합성곱 신경망 (CNN)의 후속 레이어에 직접 전달하는 데 사용되는 특정 아키텍처 기법을 의미합니다. 이 개념은 2015년 잔차 네트워크 (ResNet)의 등장으로 널리 알려졌으며, 이는 심층 컴퓨터 비전 (CV) 모델의 구조와 학습 방식을 혁신했습니다.
항등 매핑의 작동 방식#
심층 신경망은 흔히 기울기 소실 문제를 겪습니다. 역전파 중 네트워크 가중치를 업데이트하는 데 사용되는 오차 신호는 레이어를 거슬러 이동하면서 기하급수적으로 작아져 초기 레이어가 효과적으로 학습하지 못하게 됩니다. 항등 매핑은 "스킵 연결" 또는 "바로 가기 연결"을 만들어 이 문제를 해결합니다.
순차적으로 연결된 레이어가 참조 대상 없이 완전히 새로운 매핑을 학습하도록 강제하는 대신, 잔차 함수를 학습하도록 설계합니다. 수학적으로 블록의 입력이 x라면 레이어는 변환 F(x)를 학습합니다. 항등 매핑은 원래 입력 x를 해당 변환의 출력에 직접 더하여 최종 출력 F(x) + x를 만듭니다. 따라서 네트워크가 매우 깊더라도 기울기가 모델 백본을 통해 직접 막힘없이 흐를 수 있습니다. Google DeepMind와 OpenAI 같은 저명한 AI 연구 기관은 대규모 파운데이션 모델의 학습을 안정화하기 위해 이러한 아키텍처상 바로 가기를 자주 활용합니다.
항등 매핑과 항등성 보존 비교#
항등 매핑과 이름이 비슷한 항등성 보존을 구분하는 것이 중요합니다.
항등 매핑은 머신러닝 (ML) 학습 흐름을 최적화하도록 설계된 신경망의 구조적 코딩 기능인 반면, 항등성 보존은 별개의 컴퓨터 비전 작업입니다. 항등성 보존은 객체 추적에서 서로 다른 비디오 프레임에 걸쳐 특정 인물이나 객체의 시각적 일관성을 유지하거나, 생성형 AI 워크플로에서 생성된 이미지 전반에 걸쳐 이를 유지하는 데 초점을 맞춥니다.
실제 적용 사례#
항등 매핑은 오늘날 프로덕션에서 사용되는 정확도가 높은 여러 모델의 기반이 되는 핵심 구성 요소입니다.
- 고급 객체 탐지: 최신 Ultralytics YOLO26을 포함한 최신 실시간 아키텍처는 특징 추출 레이어 내에 항등 맵을 포함하는 고급 잔차 블록을 활용합니다. 이를 통해 네트워크 깊이가 증가해도 성능 저하 없이 자율 주행과 같은 복잡한 환경에서 빠르고 정밀하게 탐지할 수 있습니다.
- 이미지 분류 모델: arXiv 및 IEEE Xplore 디지털 라이브러리와 같은 학술 저장소에 광범위하게 문서화된 최첨단 비전 아키텍처는 수백 개의 레이어를 가진 모델을 성공적으로 학습하기 위해 항등 매핑에 의존합니다. TensorFlow와 같은 고수준 프레임워크는 이러한 바로 가기를 사용하여 대규모 데이터셋에서 매우 복잡한 계층적 특징을 추출합니다.
PyTorch에서 항등 매핑 구현하기#
커스텀 신경망을 구축할 때 PyTorch와 같은 딥러닝 프레임워크는 이러한 바로 가기를 손쉽게 구현할 수 있는 기본 도구를 제공합니다. PyTorch nn.Identity 모듈을 명시적으로 사용하거나 nn.Module의 forward 패스에서 수학적 덧셈을 적용하면 됩니다.
다음 코드 조각은 항등 맵을 사용하는 기본 잔차 블록을 보여 줍니다. 데이터셋 관리와 모델 학습에 클라우드 기반 Ultralytics Platform을 사용하는 개발자는 이러한 고도로 최적화된 아키텍처 구조의 이점을 내부적으로 자동으로 누릴 수 있습니다.
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)








