ResNet (Residual Network) là một trong những kiến trúc mạng nơ-ron sâu (Deep Neural Network) nổi tiếng và được sử dụng rộng rãi trong lĩnh vực học sâu (Deep Learning), đặc biệt là trong các bài toán liên quan đến xử lý ảnh. ResNet được giới thiệu lần đầu tiên vào năm 2015 bởi nhóm nghiên cứu của Microsoft Research, do Kaiming He và các cộng sự phát triển, và đã giành chiến thắng trong cuộc thi ILSVRC (ImageNet Large Scale Visual Recognition Challenge) cùng năm.
Vấn đề của các mạng nơ-ron sâu
Trước khi ResNet ra đời, việc huấn luyện các mạng nơ-ron sâu với hàng trăm hoặc thậm chí hàng ngàn lớp gặp nhiều khó khăn do hiện tượng vanishing gradient và exploding gradient. Khi mạng càng sâu, gradient (độ dốc) sẽ bị suy giảm hoặc tăng quá mức, làm cho quá trình cập nhật trọng số không hiệu quả, dẫn đến mạng không học được.
Điều này dẫn đến một nghịch lý: mặc dù lý thuyết cho thấy mạng sâu hơn sẽ có khả năng biểu diễn tốt hơn, nhưng thực tế, mạng nông hơn lại có hiệu suất tốt hơn trong một số trường hợp.
Ý tưởng chính của ResNet
ResNet giải quyết vấn đề trên bằng cách giới thiệu khái niệm Residual Learning (học phần dư). Thay vì học trực tiếp ánh xạ giữa đầu vào và đầu ra, ResNet học phần chênh lệch (residual) giữa đầu vào và đầu ra. Cụ thể hơn, mạng ResNet sử dụng các kết nối tắt (skip connections) hoặc kết nối ngắn hạn để bỏ qua một số lớp trong mạng.
Kiến trúc Residual Block
Một Residual Block cơ bản bao gồm:
- Đầu vào ban đầu của một tầng (layer) sẽ được truyền qua một số lớp xử lý (ví dụ: lớp tích chập, lớp chuẩn hóa, hàm kích hoạt).
- Sau khi qua các lớp xử lý này, đầu ra của nó sẽ được cộng trực tiếp với đầu vào thông qua một skip connection.
- Phương trình mô tả quá trình học phần dư có thể được biểu diễn như sau:
y=F(x,{Wi})+x
- Trong đó:
- x là đầu vào.
- F(x,{Wi}) là phần ánh xạ được học từ các lớp bên trong Residual Block.
- y là đầu ra của khối residual.
- Wi là các trọng số của các lớp tích chập.
Việc thêm kết nối tắt giúp bảo toàn được thông tin quan trọng của đầu vào trong suốt quá trình lan truyền ngược gradient, từ đó giảm thiểu vấn đề mất mát gradient.
Các phiên bản của ResNet
ResNet có nhiều phiên bản khác nhau tùy theo độ sâu của mạng, được ký hiệu bằng số lượng lớp, chẳng hạn như ResNet-18, ResNet-34, ResNet-50, ResNet-101, và ResNet-152. Các phiên bản này khác nhau chủ yếu ở số lượng Residual Blocks và số lớp trong mỗi block.
- ResNet-18 và ResNet-34: sử dụng các khối đơn giản hơn với 2 lớp tích chập trong mỗi block.
- ResNet-50, ResNet-101, và ResNet-152: sử dụng các bottleneck block, trong đó mỗi block có 3 lớp tích chập.
Ứng dụng của ResNet
ResNet đã có những thành tựu đáng kể trong nhiều lĩnh vực, đặc biệt là:
- Xử lý ảnh: Nhiệm vụ nhận diện đối tượng, phân loại ảnh, phân đoạn ảnh.
- Xử lý video: Phân tích video, theo dõi đối tượng.
- Y học: Chẩn đoán bệnh từ hình ảnh y tế như ảnh X-ray, MRI.
Tầm quan trọng của ResNet
- Tăng cường độ sâu mạng: Nhờ kiến trúc residual, ResNet cho phép xây dựng các mạng nơ-ron rất sâu, ví dụ như ResNet-152 với 152 lớp, mà vẫn đảm bảo hiệu quả học tập cao.
- Hiệu suất tốt: ResNet không chỉ đạt được kết quả ấn tượng trong các cuộc thi, mà còn trở thành kiến trúc nền tảng trong nhiều bài toán thực tế liên quan đến học sâu.
- Khả năng tổng quát: Kiến trúc residual có thể được áp dụng không chỉ cho các bài toán về hình ảnh mà còn mở rộng sang các lĩnh vực khác như xử lý ngôn ngữ tự nhiên, học tăng cường, và các mô hình khác.
Kết luận
ResNet đã mở ra một kỷ nguyên mới trong việc phát triển các mạng nơ-ron sâu, vượt qua các hạn chế trước đó liên quan đến việc huấn luyện mạng có độ sâu lớn. Nhờ vào việc sử dụng các kết nối tắt và học phần dư, ResNet đã trở thành một trong những kiến trúc mạng nơ-ron phổ biến nhất và tiếp tục được sử dụng trong nhiều ứng dụng học sâu hiện nay.