Residual Networks (ResNet)
Khám phá sức mạnh của Residual Network (ResNet). Tìm hiểu cách skip connection giải quyết vấn đề vanishing gradient để hỗ trợ deep learning cho computer vision.
Mạng residual, thường được biết đến với tên gọi ResNet, là một dạng kiến trúc mạng nơ-ron nhân tạo (ANN) cụ thể được thiết kế để cho phép huấn luyện các mạng cực kỳ sâu. Được các nhà nghiên cứu tại Microsoft giới thiệu vào năm 2015, ResNet đã giải quyết một nút thắt quan trọng trong deep learning được gọi là vấn đề tiêu biến gradient. Trong các mạng truyền thống, việc xếp chồng thêm nhiều lớp thường dẫn đến hiện tượng bão hòa hoặc suy giảm hiệu năng vì tín hiệu cần thiết để cập nhật trọng số model sẽ dần biến mất khi lan truyền ngược qua các lớp. ResNet giới thiệu "kết nối bỏ qua" (hay kết nối residual), cho phép dữ liệu bỏ qua một hoặc nhiều lớp và truyền trực tiếp đến các giai đoạn xử lý tiếp theo. Đổi mới này đã chứng minh rằng có thể huấn luyện hiệu quả các mạng sâu hơn, tạo ra những bước đột phá đáng kể trong thị giác máy tính (CV) và trở thành một khái niệm nền tảng cho các kiến trúc hiện đại.
Khái niệm cốt lõi: Học residual#
Đặc điểm định nghĩa của ResNet là "residual block". Trong một mạng nơ-ron tích chập (CNN) tiêu chuẩn, mỗi lớp cố gắng học một ánh xạ trực tiếp từ đầu vào đến đầu ra. Khi mạng trở nên sâu hơn, việc học ánh xạ trực tiếp này ngày càng khó khăn.
ResNet thay đổi cách tiếp cận này bằng cách xây dựng mục tiêu học theo một cách khác. Thay vì kỳ vọng mỗi chồng lớp học toàn bộ ánh xạ nền tảng, residual block buộc các lớp học phần "residual"—hay phần chênh lệch—giữa đầu vào và đầu ra mong muốn. Sau đó, đầu vào ban đầu được cộng trở lại vào residual đã học thông qua một kết nối bỏ qua. Thay đổi về cấu trúc này cho thấy rằng nếu ánh xạ đồng nhất (truyền đầu vào không thay đổi) là tối ưu, mạng có thể dễ dàng học cách đưa các residual về 0. Điều này giúp các model deep learning (DL) dễ tối ưu hơn nhiều, cho phép chúng mở rộng từ hàng chục lên hàng trăm hoặc thậm chí hàng nghìn lớp.
Các biến thể kiến trúc chính#
Kể từ khi ra đời, một số biến thể của ResNet đã trở thành các benchmark tiêu chuẩn trong cộng đồng AI.
- ResNet-50: Phiên bản 50 lớp sử dụng thiết kế "bottleneck". Thiết kế này sử dụng các phép tích chập 1x1 để giảm rồi khôi phục số chiều, giúp mạng đạt hiệu quả tính toán cao trong khi vẫn duy trì độ chính xác cao.
- ResNet-101 và ResNet-152: Các biến thể sâu hơn với lần lượt 101 và 152 lớp. Những biến thể này thường được sử dụng khi tài nguyên tính toán cho phép mức độ phức tạp cao hơn để nắm bắt các feature map tinh vi hơn.
- ResNeXt: Một bước tiến hóa của ResNet, giới thiệu thêm một chiều "cardinality", chia residual block thành nhiều nhánh song song, từ đó cải thiện hiệu quả và hiệu năng.
Các ứng dụng trong thực tế#
Độ mạnh mẽ của các kiến trúc ResNet đã khiến chúng trở thành lựa chọn hàng đầu cho nhiều tác vụ thị giác.
- Phân tích ảnh y khoa: Trong lĩnh vực chăm sóc sức khỏe, việc xác định các bất thường nhỏ trong ảnh quét độ phân giải cao là rất quan trọng. Các model dựa trên ResNet thường được sử dụng để phát hiện những tình trạng như phát hiện khối u trong ảnh y khoa, trong đó độ sâu của mạng giúp phân biệt các mẫu chi tiết trong dữ liệu MRI hoặc CT.
- Xe tự hành: Xe tự lái cần trích xuất feature đáng tin cậy từ luồng camera để xác định người đi bộ, biển báo và chướng ngại vật. ResNet thường đóng vai trò backbone cho các hệ thống phát hiện đối tượng trong các ứng dụng AI trong ngành ô tô, cung cấp các feature thị giác phong phú cần thiết cho việc điều hướng an toàn.
ResNet so với các kiến trúc khác#
Việc phân biệt ResNet với các kiến trúc phổ biến khác sẽ giúp làm rõ tính hữu dụng riêng của nó.
- ResNet so với VGG: Các mạng VGG (Nhóm Hình học Thị giác) cũng là các CNN sâu nhưng không có kết nối residual. Do đó, chúng khó huấn luyện hơn nhiều ở độ sâu tương đương ResNet và nhìn chung tốn nhiều tài nguyên tính toán hơn do có các lớp fully connected lớn.
- ResNet so với Inception: Các mạng Inception tập trung vào chiều rộng, sử dụng các filter có nhiều kích thước trong cùng một lớp để nắm bắt feature ở các tỷ lệ khác nhau. ResNet tập trung vào chiều sâu. Các kiến trúc hiện đại như Inception-ResNet kết hợp cả hai khái niệm.
- ResNet so với Transformer thị giác (ViT): Trong khi ViT sử dụng các cơ chế self-attention để xử lý hình ảnh trên phạm vi toàn cục, ResNet dựa vào các phép tích chập cục bộ. Tuy nhiên, ResNet vẫn là một baseline mạnh và thường nhanh hơn đối với các tập dữ liệu nhỏ hơn hoặc suy luận theo thời gian thực.
Ví dụ triển khai#
Các thư viện deep learning hiện đại như PyTorch giúp việc truy cập các model ResNet được huấn luyện trước trở nên đơn giản. Những model này rất hữu ích cho transfer learning, trong đó một model được huấn luyện trên tập dữ liệu lớn như ImageNet được fine-tune cho một tác vụ cụ thể.
Đoạn mã Python sau đây minh họa cách tải model ResNet-50 được huấn luyện trước bằng torchvision (một phần của hệ sinh thái PyTorch) và thực hiện một forward pass đơn giản. Mặc dù người dùng Ultralytics Platform thường có thể sử dụng YOLO26 cho tác vụ phát hiện, việc hiểu các khái niệm backbone nền tảng như ResNet là rất quan trọng để tùy chỉnh nâng cao.
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 classesTầm quan trọng trong AI hiện đại#
Mặc dù các kiến trúc mới hơn như YOLO26 sử dụng các cấu trúc được tối ưu hóa cao để đạt tốc độ và độ chính xác tối đa, các nguyên lý của việc học residual vẫn hiện diện rộng khắp. Khái niệm kết nối bỏ qua hiện là một thành phần tiêu chuẩn trong nhiều mạng nâng cao, bao gồm các Transformer được sử dụng trong xử lý ngôn ngữ tự nhiên (NLP) và các model phát hiện đối tượng mới nhất. Bằng cách cho phép thông tin truyền qua mạng tự do hơn, ResNet đã mở đường cho các model sâu và phức tạp cung cấp sức mạnh cho AI ngày nay.









