DenseNet: Tối đa hóa dòng chảy thông tin
DenseNet và cơ chế Dense Block giúp tái sử dụng tính năng và giảm số lượng tham số.
Đăng: 19 tháng 12, 2025
Deep LearningDenseNetCV
DenseNet (Densely Connected Convolutional Networks) - Tận dụng triệt để mọi thông tin
DenseNet tiếp cận vấn đề kết nối trong mạng sâu theo một hướng cực đoan hơn ResNet: kết nối tất cả các lớp với nhau.
Vấn đề trước đó
Ở các mạng sâu, thông tin từ lớp đầu tiên (ví dụ: cạnh, bo góc) thường bị "quên" khi đi đến lớp cuối cùng. ResNet đã sửa bằng cách cộng lại, nhưng vẫn có thể có mất mát.
Sức mạnh của DenseNet
1. Kết nối dày đặc (Dense Connectivity)
Trong một Dense Block, đầu vào của một lớp bao gồm feature-maps của tất cả các lớp trước đó.
- Lớp 1 nối với Lớp 2, 3, 4...
- Tất cả kết nối với tất cả!
$$x_l = H_l([x_0, x_1, ..., x_{l-1}])$$
Khác với ResNet dùng phép cộng (summation), DenseNet dùng phép nối (concatenation).
2. Tại sao lại mạnh?
- Feature Reuse (Tái sử dụng đặc trưng): Không cần học lại những gì đã biết. Cái gì lớp trước học rồi thì lớp sau dùng luôn.
- Hiệu quả tham số: Do tái sử dụng tốt, DenseNet thường nhẹ hơn ResNet cùng độ sâu vì các lớp của nó rất mỏng (ít filter).
- Dòng chảy gradient cực mạnh: Vì mỗi lớp đều có đường nối trực tiếp đến hàm loss, việc huấn luyện cực kỳ hiệu quả.
Tuy nhiên, DenseNet tiêu tốn nhiều bộ nhớ hơn trong quá trình huấn luyện do việc nối các feature-maps tạo ra các tensor lớn.