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 toán học và đại số tuyến tính, identity map 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. Trong bối cảnh trí tuệ nhân tạo (AI) và học sâu (deep learning), identity mapping đề cập đến một kỹ thuật kiến trúc cụ thể được sử dụng để chuyển dữ liệu đầu vào trực tiếp đến các lớp tiếp theo của mạng thần kinh tích chập (CNN) mà không cần bất kỳ biến đổi phi tuyến tính nào. Khái niệm này đã trở nên phổ biến nhờ việc giới thiệu Residual Networks (ResNet) vào năm 2015, vốn đã cách mạng hóa cách các mô hình thị giác máy tính (CV) chuyên sâu được cấu trúc và huấn luyện.
Link to this sectionCách hoạt động của Identity Mapping#
Các mạng thần kinh sâu thường gặp vấn đề vanishing gradient. Trong quá trình lan truyền ngược (backpropagation), các tín hiệu lỗi 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 truyền ngược qua các lớp, ngăn cản các lớp ban đầu học tập hiệu quả. Identity mapping giải quyết vấn đề này bằng cách tạo ra các "skip connections" hoặc "shortcut connections".
Thay vì buộc các lớp tuần tự phải học một ánh xạ hoàn toàn mới và không tham chiếu, chúng được thiết kế để học một hàm thặng dư (residual function). Về mặt toán học, nếu đầu vào của một khối là x, lớp đó sẽ học một biến đổi F(x). Identity mapping cộng trực tiếp đầu vào gốc x vào đầu ra của biến đổi đó, dẫn đến đầu ra cuối cùng là F(x) + x. Điều này đảm bảo rằng ngay cả trong các mạng cực sâu, các gradient vẫn có thể truyền đi 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 tận dụng các lối tắt kiến trúc này để ổn định việc huấn luyện trong các mô hình nền tảng khổng lồ.
Link to this sectionIdentity Mapping so với Identity Preservation#
Việc phân biệt identity mapping với khái niệm có tên tương tự là identity preservation là rất quan trọng.
Trong khi identity mapping là một tính năng mã hóa cấu trúc của mạng thần kinh được thiết kế để tối ưu hóa luồng huấn luyện machine learning (ML), thì identity preservation lại là một tác vụ thị giác máy tính riêng biệt. Identity preservation tập trung vào việc duy trì tính nhất quán về hình ảnh của một người hoặc vật thể cụ thể qua các khung hình video khác nhau trong theo dõi đối tượng hoặc qua các hình ảnh được tạo ra trong các quy trình AI tạo sinh (generative AI).
Link to this sectionCá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:
- Phát hiện đối tượng nâng cao: Các kiến trúc thời gian thực hiện đại, bao gồm YOLO26 mới nhất của Ultralytics, sử dụng các khối residual tiên tiến chứa các identity map 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 phát hiện tốc độ cao, chính xác trong các môi trường phức tạp như xe tự lái mà không làm giảm hiệu suất khi độ sâu của mạng tăng lên.
- Mô hình phân loại hình ảnh: Các kiến trúc thị giác hiện đại, đượ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à Thư viện số IEEE Xplore, dựa vào các identity mapping để 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 lối 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 khổng lồ.
Link to this sectionTriển khai Identity Mapping trong PyTorch#
Khi xây dựng các mạng thần kinh tùy chỉnh, các framework học sâu như PyTorch cung cấp các công cụ gốc để triển khai các lối tắt này một cách dễ dàng. Bạn có thể sử dụng rõ ràng module PyTorch nn.Identity hoặc chỉ cần áp dụng phép cộng toán học trong phương thức forward pass của nn.Module của bạn.
Đoạn mã sau đây minh họa một khối residual cơ bản sử dụng identity map. Lưu ý rằng các nhà phát triển sử dụng Ultralytics Platform dựa trên đám mây để quản lý tập dữ liệu và huấn luyện mô hình sẽ tự động được hưởng lợi từ các cấu trúc kiến trúc được tối ưu hóa cao này.
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)





