EfficientNet là gì? Tổng quan nhanh
Tìm hiểu kiến trúc EfficientNet & sự kỳ diệu của compound scaling! Khám phá EfficientNet B0-B7 để đạt hiệu suất phân loại hình ảnh và segmentation hàng đầu.

Vào năm 2019, các nhà nghiên cứu tại Google AI đã giới thiệu EfficientNet, một mô hình computer vision tiên tiến được xây dựng để nhận diện các đối tượng và mẫu trong hình ảnh. Nó được thiết kế chủ yếu cho tác vụ phân loại hình ảnh, bao gồm việc gán một hình ảnh vào một trong số các danh mục được xác định trước. Tuy nhiên, ngày nay, EfficientNet cũng đóng vai trò là một backbone cho các tác vụ phức tạp hơn như phát hiện đối tượng, phân đoạn và transfer learning.
Trước khi có EfficientNet, các model machine learning và vision AI thường cố gắng cải thiện độ chính xác bằng cách thêm nhiều lớp hơn hoặc tăng kích thước của các lớp đó. Các lớp chính là những bước trong một model neural network (một loại model deep learning lấy cảm hứng từ não người) giúp xử lý dữ liệu để học các mẫu hình và cải thiện độ chính xác.
Những thay đổi này đã tạo ra một sự đánh đổi, làm cho các model AI truyền thống trở nên cồng kềnh và chậm chạp hơn, trong khi độ chính xác tăng thêm thường không đáng kể so với mức tăng đáng kể về công suất tính toán cần thiết.
EfficientNet đã áp dụng một cách tiếp cận khác. Nó tăng độ sâu (số lượng lớp), chiều rộng (số lượng đơn vị trong mỗi lớp) và độ phân giải hình ảnh (mức độ chi tiết của hình ảnh đầu vào) cùng nhau một cách cân bằng. Phương pháp này, được gọi là compound scaling, sử dụng một cách đáng tin cậy tất cả khả năng xử lý có sẵn. Kết quả cuối cùng là một mô hình nhỏ hơn và nhanh hơn, có thể hoạt động tốt hơn các mô hình cũ như ResNet hoặc DenseNet.
Ngày nay, các mô hình computer vision mới hơn như Ultralytics YOLO11 mang lại độ chính xác, tốc độ và hiệu suất cao hơn. Dù vậy, EfficientNet vẫn là một cột mốc quan trọng đã gây ảnh hưởng đến thiết kế của nhiều kiến trúc tiên tiến.
Trong bài viết này, chúng ta sẽ tìm hiểu về EfficientNet trong vòng năm phút, bao gồm cách thức hoạt động, điều gì làm cho nó trở nên độc đáo và tại sao nó vẫn quan trọng trong lĩnh vực computer vision. Hãy cùng bắt đầu!
EfficientNet là gì?#
Trước khi EfficientNet được thiết kế, hầu hết các model nhận diện hình ảnh cải thiện độ chính xác bằng cách điều chỉnh các lớp hoặc tăng kích thước hình ảnh đầu vào để nắm bắt nhiều chi tiết hơn. Mặc dù các chiến lược này cải thiện kết quả, chúng cũng làm cho các model trở nên nặng nề và đòi hỏi khắt khe hơn. Điều này có nghĩa là chúng cần nhiều bộ nhớ hơn và phần cứng mạnh hơn.
Thay vì thay đổi từng lớp riêng lẻ, EfficientNet thực hiện scale độ sâu, độ rộng và độ phân giải hình ảnh cùng nhau bằng cách sử dụng phương pháp gọi là compound scaling. Cách tiếp cận này cho phép model phát triển hiệu quả mà không làm quá tải bất kỳ khía cạnh đơn lẻ nào.
Kiến trúc EfficientNet xử lý hình ảnh thông qua một loạt các khối, mỗi khối được xây dựng từ các module nhỏ hơn. Số lượng module trong mỗi khối phụ thuộc vào kích thước của model.

Hình 1. Các khối xây dựng của EfficientNet. (Nguồn)
Các phiên bản nhỏ hơn sử dụng ít module hơn, trong khi các phiên bản lớn hơn lặp lại các module thường xuyên hơn. Thiết kế linh hoạt này cho phép EfficientNet mang lại độ chính xác và hiệu quả cao trên phạm vi ứng dụng rộng lớn, từ thiết bị di động đến các hệ thống quy mô lớn.
Cách thức hoạt động của compound scaling#
Phương pháp compound scaling mở rộng độ sâu, độ rộng và độ phân giải hình ảnh của một model nhưng vẫn giữ chúng ở trạng thái cân bằng. Điều này giúp tận dụng công suất tính toán một cách hiệu quả. Chuỗi bắt đầu với một model cơ sở nhỏ hơn gọi là EfficientNet-B0, đóng vai trò là nền tảng cho tất cả các phiên bản khác.
Từ B0, các model được scale lên các biến thể lớn hơn có tên từ EfficientNet-B1 đến EfficientNet-B7. Với mỗi bước, mạng lưới nhận thêm các lớp, tăng số lượng kênh (các đơn vị được sử dụng để xử lý) và xử lý các hình ảnh đầu vào có độ phân giải cao hơn. Mức độ tăng trưởng ở mỗi bước được xác định bởi một tham số gọi là compound coefficient, đảm bảo rằng độ sâu, độ rộng và độ phân giải tăng theo các tỷ lệ cố định thay vì một cách độc lập.

Hình 2. Compound scaling làm tăng chiều rộng, độ sâu và độ phân giải hình ảnh của mô hình. (Nguồn)
Kiến trúc EfficientNet#
Tiếp theo, hãy cùng xem xét kiến trúc của EfficientNet.
Nó được xây dựng dựa trên MobileNetV2, một model computer vision gọn nhẹ được tối ưu hóa cho các thiết bị di động và nhúng. Cốt lõi của nó là khối Mobile Inverted Bottleneck Convolution (MBConv), một lớp đặc biệt giúp xử lý dữ liệu hình ảnh giống như tích chập chuẩn nhưng với ít tính toán hơn. Khối này làm cho model vừa nhanh vừa tiết kiệm bộ nhớ hơn.
Bên trong mỗi khối MBConv là một module squeeze-and-excitation (SE). Module này điều chỉnh cường độ của các kênh khác nhau trong mạng. Nó tăng cường độ của các kênh cần thiết và giảm cường độ của các kênh khác. Module này giúp mạng tập trung vào các tính năng quan trọng nhất trong hình ảnh, trong khi bỏ qua phần còn lại. Model EfficientNet cũng sử dụng hàm kích hoạt Swish (một hàm toán học giúp mạng học các mẫu hình), giúp nó phát hiện các mẫu hình trong hình ảnh tốt hơn so với các phương pháp cũ.
Ngoài ra, nó còn sử dụng DropConnect, trong đó một số kết nối bên trong mạng bị ngắt ngẫu nhiên trong quá trình huấn luyện. Phương pháp chính quy hóa ngẫu nhiên này (một kỹ thuật tạo ngẫu nhiên để ngăn model ghi nhớ dữ liệu huấn luyện thay vì khái quát hóa) giúp giảm overfitting bằng cách buộc mạng học các biểu diễn tính năng mạnh mẽ hơn (các mẫu hình mạnh mẽ, tổng quát hơn trong dữ liệu) giúp truyền đạt tốt hơn đến các dữ liệu chưa từng thấy.

Hình 3. Kiến trúc của EfficientNet-B0 (Nguồn)
Tổng quan ngắn gọn về các biến thể model của EfficientNet#
Bây giờ chúng ta đã hiểu rõ hơn về cách hoạt động của các model EfficientNet, hãy cùng thảo luận về các biến thể model khác nhau.
Các model EfficientNet scale từ B0 đến B7, với B0 là cơ sở giúp cân bằng tốc độ và độ chính xác. Mỗi phiên bản đều tăng độ sâu, độ rộng và độ phân giải hình ảnh, giúp cải thiện độ chính xác. Tuy nhiên, chúng cũng đòi hỏi nhiều công suất tính toán hơn, từ các bản B1 và B2 cho đến các bản hiệu suất cao B6 và B7.
Trong khi các model EfficientNet-B3 và EfficientNet-B4 đạt được sự cân bằng cho các hình ảnh lớn hơn, B5 thường được chọn cho các bộ dữ liệu phức tạp đòi hỏi độ chính xác cao. Ngoài các model này, model mới nhất, EfficientNet V2, có thể cải thiện tốc độ huấn luyện, xử lý các bộ dữ liệu nhỏ tốt hơn và được tối ưu hóa cho phần cứng hiện đại.
Các ứng dụng của EfficientNet#
EfficientNet có thể tạo ra các kết quả chính xác trong khi sử dụng ít bộ nhớ và công suất xử lý hơn so với nhiều model khác. Điều này làm cho nó hữu ích trong nhiều lĩnh vực, từ nghiên cứu khoa học đến các sản phẩm mà mọi người sử dụng hàng ngày.
Phân tích hình ảnh y tế#
Hình ảnh y tế, chẳng hạn như chụp CT phổi, thường chứa các chi tiết tinh vi rất quan trọng để chẩn đoán chính xác. Các mô hình AI có thể hỗ trợ phân tích những hình ảnh này để phát hiện ra các mẫu mà con người có thể khó nhận ra. Một phiên bản thích ứng của EfficientNet cho mục đích này là MONAI (Medical Open Network for AI) EfficientNet, được thiết kế đặc biệt cho medical image analysis.
Dựa trên kiến trúc của EfficientNet, các nhà nghiên cứu cũng đã phát triển Lung-EffNet, một mô hình phân loại ảnh chụp CT phổi để phát hiện khối u. Nó có thể phân loại khối u thành lành tính, ác tính hoặc bình thường, đạt độ chính xác được báo cáo là trên 99% trong các thiết lập thử nghiệm.

Hình 4. Phân loại hình ảnh các khối u sử dụng Lung-EffNet. (Nguồn)
Object detection theo thời gian thực#
Object detection là quá trình tìm kiếm các đối tượng trong một hình ảnh và xác định vị trí của chúng. Đây là một phần quan trọng của các ứng dụng như hệ thống an ninh, xe tự lái và máyドローン.
EfficientNet trở nên quan trọng trong lĩnh vực này vì nó cung cấp một cách rất hiệu quả để trích xuất các đặc trưng từ hình ảnh. Phương pháp scaling độ sâu, chiều rộng và độ phân giải của nó cho thấy các mô hình có thể đạt độ chính xác cao mà không quá cồng kềnh hay chậm chạp. Đây là lý do tại sao nhiều hệ thống phát hiện, như EfficientDet, sử dụng EfficientNet làm backbone của chúng.
Các model mới hơn, như Ultralytics YOLO11, chia sẻ chung mục tiêu là kết hợp tốc độ với độ chính xác. Xu hướng hướng tới các model hiệu quả này đã chịu ảnh hưởng mạnh mẽ bởi các ý tưởng từ các kiến trúc như EfficientNet.
Ưu và nhược điểm của EfficientNet#
Dưới đây là một số lợi ích của việc sử dụng EfficientNet trong các dự án computer vision:
- Độ chính xác cao với ít tham số hơn: EfficientNet có thể mang lại độ chính xác tương đương hoặc tốt hơn so với các model cũ như ResNet hoặc DenseNet. Tuy nhiên, nó sử dụng ít tham số hơn, giúp việc huấn luyện nhanh hơn và triển khai dễ dàng hơn.
- Họ model có khả năng scale: Từ B0 đến B7, bạn có thể chọn phiên bản phù hợp với yêu cầu về phần cứng và độ chính xác của mình mà không cần thay đổi mạng cơ sở.
- Tốt cho transfer learning: EfficientNet có thể mang lại hiệu suất mô hình đáng tin cậy cho transfer learning, là quá trình huấn luyện lại một mô hình đã được huấn luyện trước cho một tác vụ tùy chỉnh. Nó có thể hoạt động như một backbone cho nhiều loại tác vụ computer vision khác nhau. Nó cũng cho thấy kết quả mạnh mẽ khi được fine-tune. Ví dụ, nó đã đạt được độ chính xác tiên tiến trên CIFAR-100, một tập dữ liệu image classification được sử dụng rộng rãi, với số lượng tham số ít hơn đáng kể so với các mô hình trước đó.
Mặc dù có nhiều lợi ích liên quan đến việc sử dụng EfficientNet, dưới đây là một số hạn chế của EfficientNet cần lưu ý:
- Yêu cầu nhiều bộ nhớ hơn: Các phiên bản như EfficientNet-B6 và EfficientNet-B7 yêu cầu rất nhiều bộ nhớ GPU.
- Scaling được tinh chỉnh cho ImageNet: Các thiết lập scaling được thiết kế cho tập dữ liệu ImageNet, vì vậy hiệu suất có thể giảm trên các tập dữ liệu rất khác biệt nếu không fine-tuning. Điều này đặc biệt đúng đối với các tập dữ liệu nhỏ, vì kiến trúc và quá trình scaling của EfficientNet được thiết kế cho một tập dữ liệu lớn và đa dạng như ImageNet, cung cấp đủ dữ liệu để chứng minh cho độ sâu và chiều rộng của nó.
- Chậm hơn trên một số phần cứng: EfficientNet sử dụng các lớp gọi là MBConv được thiết kế để đạt hiệu quả trên phần cứng hiện đại. Trên các GPU hoặc CPU cũ hơn, các lớp này có thể chạy chậm hơn.
Các điểm chính cần lưu ý#
EfficientNet đã thay đổi cách các model computer vision phát triển bằng cách giữ cân bằng giữa độ sâu, độ rộng và độ phân giải hình ảnh. Nó vẫn là một model quan trọng và cũng đã ảnh hưởng đến các kiến trúc mới hơn. Đặc biệt, nó giữ một vị trí ý nghĩa trong lịch sử của computer vision.
Tham gia community và GitHub repository của chúng tôi để khám phá thêm về AI. Hãy xem các trang giải pháp của chúng tôi để đọc về AI in healthcare và computer vision in automotive. Khám phá các tùy chọn our licensing của chúng tôi và bắt đầu xây dựng với computer vision ngay hôm nay!






