Identity Mapping
Khám phá identity mapping trong deep learning. Tìm hiểu cách skip connections ngăn chặn vanishing gradients để hỗ trợ các neural networks như Ultralytics YOLO26.
Trong mathematics và đại số tuyến tính, ánh xạ đồng nhất hoặc identity matrix là một hàm trả về chính xác giá trị đã được sử dụng làm đầu vào của nó. Trong ngữ cảnh của artificial intelligence (AI) và deep learning, ánh xạ đồng nhất đề cập đến một kỹ thuật kiến trúc cụ thể được sử dụng để truyền dữ liệu đầu vào trực tiếp đến các lớp tiếp theo của convolutional neural network (CNN) mà không có bất kỳ phép biến đổi phi tuyến tính nào. Khái niệm này đã trở nên cực kỳ phổ biến nhờ sự ra đời của Residual Networks (ResNet) vào năm 2015, điều đã cách mạng hóa cách các mô hình computer vision (CV) sâu được cấu trúc và huấn luyện.
Cách hoạt động của Identity Mapping#
Các mạng nơ-ron sâu thường gặp phải vấn đề vanishing gradient. Trong quá trình lan truyền ngược, các tín hiệu lỗi được sử dụng để cập nhật trọng số mạng trở nên nhỏ hơn theo cấp số nhân khi chúng di chuyển ngược qua các lớp, ngăn cản các lớp đầu tiên học tập hiệu quả. Ánh xạ đồng nhất giải quyết vấn đề này bằng cách tạo ra các "kết nối bỏ qua" (skip connections) hoặc "kết nối tắt" (shortcut connections).
Thay vì ép buộc các lớp tuần tự phải học một ánh xạ hoàn toàn mới và chưa được tham chiếu, chúng được thiết kế để học một hàm phần dư. Về mặt toán học, nếu đầu vào cho một khối là x, lớp sẽ học một phép biến đổi F(x). Ánh xạ đồng nhất cộng trực tiếp đầu vào ban đầu x vào đầu ra của phép biến đổi đó, tạo ra đầu ra cuối cùng F(x) + x. Điều này đảm bảo rằng ngay cả trong các mạng cực kỳ sâu, các gradient vẫn có thể chảy không bị cản trở trực tiếp qua model backbone. Các tổ chức nghiên cứu AI uy tín như Google DeepMind và OpenAI thường xuyên tận dụng các phím tắt kiến trúc này để ổn định quá trình huấn luyện trong các mô hình nền tảng lớn.
Identity Mapping so với Identity Preservation#
Việc phân biệt ánh xạ đồng nhất với khái niệm có tên tương tự identity preservation là điều rất quan trọng.
Mặc dù ánh xạ đồng nhất là một tính năng mã hóa cấu trúc của mạng nơ-ron được thiết kế để tối ưu hóa luồng huấn luyện machine learning (ML), bảo toàn danh tính lại là một computer vision task riêng biệt. Bảo toàn danh tính tập trung vào việc duy trì tính nhất quán trực quan của một người hoặc đối tượng cụ thể trên các khung hình video khác nhau trong theo dõi đối tượng hoặc trên các hình ảnh được tạo ra trong quy trình làm việc AI tạo sinh.
Các ứng dụng trong thực tế#
Identity mapping đóng vai trò là khối xây dựng nền tảng cho nhiều mô hình có độ chính xác cao được sử dụng trong sản xuất hiện nay:
- Advanced Object Detection: Các kiến trúc thời gian thực hiện đại, bao gồm Ultralytics YOLO26 mới nhất, tận dụng các khối phần dư nâng cao chứa các bản đồ đồng nhất trong các lớp trích xuất đặc trưng của chúng. Điều này cho phép chúng thực hiện việc phát hiện tốc độ cao, chính xác trong các môi trường phức tạp như autonomous driving mà không làm giảm hiệu suất khi độ sâu mạng tăng lên.
- Image Classification Models: Các kiến trúc thị giác tiên tiến, được tài liệu hóa rộng rãi trong các kho lưu trữ học thuật như arXiv và IEEE Xplore Digital Library, dựa vào các ánh xạ đồng nhất để huấn luyện thành công các mô hình có hàng trăm lớp. Các framework cấp cao như TensorFlow sử dụng các phím tắt này để trích xuất các đặc trưng phân cấp cực kỳ phức tạp từ các tập dữ liệu lớn.
Triển khai Identity Mapping trong PyTorch#
Khi xây dựng các mạng nơ-ron tùy chỉnh, các framework deep learning như PyTorch cung cấp các công cụ gốc để triển khai các phím tắt này một cách dễ dàng. Bạn có thể sử dụng rõ ràng mô-đun PyTorch nn.Identity hoặc đơn giản là áp dụng phép cộng toán học trong luồng chuyển tiếp nn.Module của mình.
Đoạn mã sau đây minh họa một khối phần dư cơ bản sử dụng ánh xạ đồng nhất. Lưu ý rằng các nhà phát triển sử dụng Ultralytics Platform dựa على đám mây để quản lý tập dữ liệu và huấn luyện mô hình sẽ tự động hưởng lợi từ các cấu trúc kiến trúc được tối ưu hóa cao này ở bên dưới.
import torch.nn as nn
class ResidualBlock(nn.Module):
def __init__(self, channels):
super().__init__()
# A simple convolutional layer for feature extraction
self.conv = nn.Conv2d(channels, channels, kernel_size=3, padding=1)
# Explicit identity mapping module
self.identity = nn.Identity()
def forward(self, x):
# The block output is the sum of the learned features and the identity map
return self.conv(x) + self.identity(x)





