Ultralytics YOLO27: Đăng ký vào danh sách chờ.
Cấp phép YOLO
Quay lại Bảng thuật ngữ Ultralytics

Residual Networks (ResNet)

Mạng residual (ResNet) cộng đầu vào của mỗi block với đầu ra thông qua kết nối tắt để có thể huấn luyện các mạng rất sâu. Bài viết đề cập đến block, biến thể và mã nguồn.

Mạng residual (ResNet) là một mạng neural tích chập (CNN) sâu được xây dựng từ các residual block, trong đó một kết nối tắt cộng đầu vào của mỗi block với đầu ra của block đó. Do vậy, mỗi block chỉ học phần hiệu chỉnh cho đầu vào, giúp huấn luyện ổn định các mạng có 50, 152 hoặc hơn 1.000 lớp. Kaiming He, Xiangyu Zhang, Shaoqing Ren và Jian Sun thuộc Microsoft Research đã giới thiệu ResNet trong bài báo năm 2015 Học sâu phần dư để nhận dạng hình ảnh; một ensemble các mạng residual đã thắng tác vụ phân loại ILSVRC 2015 với tỷ lệ lỗi top-5 là 3.57% trên ImageNet. Kể từ đó, kết nối residual đã trở thành thành phần tiêu chuẩn trong hầu hết kiến trúc sâu, bao gồm transformer và bộ phát hiện đối tượng thời gian thực.

Vấn đề suy giảm#

Trước ResNet, việc thêm lớp vào một chuỗi convolution thuần cuối cùng khiến kết quả kém đi. Các tác giả ResNet cho thấy mạng thuần 56 lớp có lỗi huấn luyện cao hơn mạng 20 lớp, do đó không thể giải thích mức giảm này bằng overfitting. Mạng sâu hơn có thể khớp với mạng nông bằng cách đặt các lớp bổ sung thành ánh xạ đồng nhất, nhưng gradient descent không tìm ra nghiệm đó. Các tác giả gọi đây là vấn đề suy giảm. Vấn đề gradient biến mất phần lớn đã được giải quyết bằng khởi tạo trọng số đã chuẩn hóa và batch normalization, vì vậy mạng thuần sâu vẫn hội tụ, nhưng chỉ đến các nghiệm kém hơn.

Cách residual block hoạt động#

Residual block tính y = F(x) + x, trong đó x là đầu vào của block còn F là một chuỗi nhỏ các lớp, thường gồm hai hoặc ba convolution cùng batch normalization và ReLU. Nếu ánh xạ tốt nhất cho block gần với ánh xạ đồng nhất, các lớp chỉ cần đưa F về gần 0, dễ hơn nhiều so với học ánh xạ đồng nhất từ đầu. Kết nối tắt cũng tạo cho gradient một đường truyền ngược trực tiếp qua từng block. Kết nối tắt đồng nhất không thêm tham số và hầu như không tốn thêm phép tính. Khi block thay đổi số kênh hoặc giảm kích thước với stride bằng 2, x không còn khớp với hình dạng của F(x), vì vậy convolution 1×1 chiếu kết nối tắt sang hình dạng mới.

ResNet-18 và ResNet-34 xếp chồng các block cơ bản gồm hai convolution. ResNet-50, ResNet-101 và ResNet-152 sử dụng bottleneck block gồm ba convolution: convolution 1×1 giảm số kênh, convolution 3×3 xử lý chúng, rồi convolution 1×1 thứ hai khôi phục số kênh, giúp mô hình sâu có chi phí hợp lý. ResNet-50 có khoảng 25.6 triệu tham số. Bài báo gốc cũng huấn luyện một mạng 1.202 lớp trên CIFAR-10 để đạt lỗi huấn luyện dưới 0.1%, dù lỗi kiểm thử 7.93% kém hơn mức 6.43% của mạng 110 lớp; các tác giả cho rằng khoảng cách này là do overfitting trên tập dữ liệu nhỏ.

Các biến thể ResNet#

  • Pre-activation ResNet: Trong nghiên cứu tiếp theo năm 2016 của cùng nhóm tác giả, batch normalization và ReLU được chuyển lên trước mỗi convolution, để đường kết nối tắt chỉ còn là ánh xạ đồng nhất; nghiên cứu cũng huấn luyện một mạng 1.001 lớp trên CIFAR-10.
  • ResNeXt: Chia mỗi bottleneck thành nhiều nhánh song song có chiều rộng thấp, gọi là cardinality, giúp tăng độ chính xác với cùng chi phí tính toán.
  • Wide ResNet: Sử dụng ít block hơn nhưng rộng hơn, cho thấy chiều rộng có thể thay thế một phần chiều sâu.
  • ResNet hiện đại hóa: ConvNeXt (2022) cập nhật thiết kế ResNet bằng kernel lớn hơn, layer normalization và activation GELU để cạnh tranh với vision transformer.

Sử dụng ResNet đã huấn luyện trước#

ResNet đã huấn luyện trước vẫn thường được dùng làm baseline và backbone cho transfer learning. Các model ResNet của torchvision đi kèm trọng số ImageNet và quy trình tiền xử lý tương ứng, vì vậy chỉ cần vài dòng để phân loại ảnh:

import urllib.request

import torch
from torchvision.io import decode_image
from torchvision.models import ResNet50_Weights, resnet50

# Load ResNet-50 with ImageNet weights and its matching preprocessing
weights = ResNet50_Weights.DEFAULT
model = resnet50(weights=weights).eval()
preprocess = weights.transforms()

# Download and decode a sample image
data = urllib.request.urlopen("https://ultralytics.com/images/bus.jpg").read()
image = decode_image(torch.frombuffer(bytearray(data), dtype=torch.uint8))

# Classify the image and report the most likely ImageNet class
with torch.no_grad():
    probs = model(preprocess(image).unsqueeze(0)).softmax(dim=1)
score, index = probs.max(dim=1)
print(f"{weights.meta['categories'][index.item()]}: {score.item():.2f}")

Lệnh này in ra minibus: 0.25, lớp gần nhất trong 1.000 lớp ImageNet với chiếc xe buýt thành phố trong ảnh. Với tác vụ tùy chỉnh, thay lớp fully connected cuối cùng và fine-tune trên nhãn mới cho phép tái sử dụng các đặc trưng mà những tầng residual đã học từ ImageNet.

  • Mạng thuần như VGG: VGG xếp chồng convolution 3×3 không có kết nối tắt và tối đa có 19 lớp trọng số. ResNet-152 sâu gấp tám lần nhưng có độ phức tạp thấp hơn VGG-19.
  • Highway network: Được phát triển đồng thời với ResNet, các mạng này bổ sung cổng có thể học để đóng kết nối tắt. Kết nối tắt đồng nhất của ResNet không bao giờ bị đóng và không thêm tham số.
  • DenseNet: Nối đầu ra của tất cả các lớp trước đó trong một block thay vì cộng một kết nối tắt; cách này tái sử dụng đặc trưng nhưng làm số kênh tăng dần.
  • U-Net: Các kết nối skip của U-Net chuyển feature map của encoder sang decoder rồi nối chúng tại đó, liên kết các tầng cách xa nhau thay vì bao quanh từng block riêng lẻ.
  • Vision transformer (ViT): Thay convolution bằng self-attention nhưng vẫn giữ kết nối residual quanh từng phân lớp attention và feed-forward, như mọi transformer khác.

Kết nối residual trong các model hiện đại#

Ý tưởng residual tồn tại lâu hơn các kiến trúc ResNet cụ thể. Mỗi lớp của một mô hình ngôn ngữ lớn (LLM) đưa các đầu ra attention và feed-forward của lớp đó trở lại luồng residual đang được tích lũy, và hầu hết bộ phát hiện CNN xây dựng backbone từ các khối residual. Trong YOLO26, các khối C3k2 được tạo từ các mô-đun bottleneck trả về x + F(x) bất cứ khi nào số kênh đầu vào và đầu ra khớp nhau, và gói Ultralytics cũng bao gồm các cấu hình RT-DETR của Baidu với backbone ResNet-50 và ResNet-101. Bài báo về ResNet đã giành Giải thưởng Bài báo xuất sắc nhất tại CVPR 2016, và một phân tích đăng trên Nature năm 2025 xếp bài báo này là bài báo được trích dẫn nhiều nhất trong thế kỷ XXI.

Khám phá các giải pháp

Thị giác máy tính trong thể thao

Thị giác máy tính trong thể thao

Khám phá cách Ultralytics YOLO thúc đẩy thị giác máy tính trong thể thao với khả năng theo dõi cầu thủ và bóng, phân tích hiệu suất, cung cấp thông tin chuyên sâu cho huấn luyện và hỗ trợ phục hồi cho vận động viên.
Tìm hiểu thêm
Thị giác máy tính cho ảnh hàng không

Thị giác máy tính cho ảnh hàng không

Chuyển hình ảnh từ drone và ảnh hàng không thành thông tin chuyên sâu theo thời gian thực cho nông nghiệp, nuôi trồng thủy sản, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Ứng dụng computer vision trong ngành hàng không vũ trụ với Ultralytics YOLO cho kiểm tra máy bay, phát hiện dị vật trên đường băng (FOD), vận hành mặt đất tại sân bay và phát hiện lỗi vật liệu composite.
Tìm hiểu thêm
Computer vision trong lĩnh vực an ninh

Computer vision trong lĩnh vực an ninh

Bảo vệ mọi địa điểm bằng model Ultralytics YOLO. Vision AI hỗ trợ giám sát vành đai, phát hiện mối đe dọa, nhận dạng biển số và an toàn nơi làm việc.
Tìm hiểu thêm
Computer vision trong robotics

Computer vision trong robotics

Tăng cường năng lực cho máy móc thông minh bằng model Ultralytics YOLO. Vision AI trong lĩnh vực robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh giản hoạt động logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho hàng theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại hoạt động bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng chờ và phân tích khách hàng thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong chăm sóc sức khỏe

Thị giác máy tính trong chăm sóc sức khỏe

Xây dựng các giải pháp chăm sóc sức khỏe với model Ultralytics YOLO. Vision AI trong chăm sóc sức khỏe hỗ trợ xử lý hình ảnh y tế nhanh hơn, chẩn đoán thông minh hơn và theo dõi bệnh nhân.
Tìm hiểu thêm
Thị giác máy tính trong sản xuất

Thị giác máy tính trong sản xuất

Tối ưu hóa sản xuất bằng các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Thị giác máy tính trong ngành ô tô

Thị giác máy tính trong ngành ô tô

Ứng dụng thị giác máy tính trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn giao thông, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong nông nghiệp

Thị giác máy tính trong nông nghiệp

Ứng dụng AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Hỗ trợ giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để nâng cao năng suất một cách thông minh hơn.
Tìm hiểu thêm

Hãy cùng nhau kiến tạo tương lai của AI!

Bắt đầu hành trình hướng đến tương lai của machine learning