EfficientNet là gì? Tổng quan nhanh
Tìm hiểu cách EfficientNet sử dụng mở rộng quy mô kết hợp, các khối MBConv và cơ chế squeeze-and-excitation để cân bằng độ chính xác và hiệu quả trên các biến thể từ B0 đến B7.
Abirami Vina11 phút đọc
Năm 2019, các nhà nghiên cứu tại Google AI giới thiệu EfficientNet, một model thị giác máy tính tiên tiến hàng đầu được xây dựng để nhận diện đối tượng và mẫu trong hình ảnh. Model này chủ yếu được thiết kế cho tác vụ phân loại hình ảnh, tức là gán hình ảnh vào một trong các danh mục được xác định trước. Tuy nhiên, ngày nay, EfficientNet còn được dùng làm 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à học chuyển giao.
Trước EfficientNet, các model machine learning và AI thị giác thường cố cải thiện accuracy bằng cách thêm nhiều layer hơn hoặc tăng kích thước của các layer đó. Layer là các bước trong model mạng nơ-ron (một loại model deep learning lấy cảm hứng từ bộ não con người), xử lý dữ liệu để học các mẫu và cải thiện accuracy.
Những thay đổi này tạo ra sự đánh đổi, khiến các model AI truyền thống lớn hơn và chậm hơn, trong khi mức tăng accuracy thường không đáng kể so với lượng sức mạnh tính toán tăng thêm đáng kể mà chúng đòi hỏi.
EfficientNet áp dụng một cách tiếp cận khác. Model tăng đồng thời độ sâu (số lớp), độ rộng (số đơn vị trong mỗi lớp) và độ phân giải ảnh (mức độ chi tiết của ảnh đầu vào) theo cách cân bằng. Phương pháp này được gọi là mở rộng hợp nhất. Kết quả là một model nhỏ hơn và nhanh hơn, có thể hoạt động tốt hơn các model cũ như ResNet hoặc DenseNet.
Ngày nay, các model thị giác máy tính mới hơn như Ultralytics YOLO11 và model kế nhiệm là Ultralytics YOLO26 có độ chính xác, tốc độ và hiệu quả cao hơn. Dù vậy, EfficientNet vẫn là một cột mốc quan trọng có ả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 EfficientNet trong năm phút, bao gồm cách model hoạt động, điểm độc đáo và lý do model vẫn quan trọng trong lĩnh vực thị giác máy tính.
EfficientNet là gì?#
Trước khi EfficientNet được thiết kế, hầu hết model nhận diện ảnh đều cải thiện accuracy bằng cách điều chỉnh các layer hoặc tăng kích thước ảnh đầu vào để thu nhận thêm chi tiết. Những chiến lược này cải thiện kết quả nhưng cũng khiến model nặng hơn và đòi hỏi nhiều tài nguyên hơn. Điều đó có nghĩa là chúng cần thêm bộ nhớ và phần cứng tốt hơn.
Thay vì thay đổi từng layer riêng lẻ, EfficientNet điều chỉnh đồng thời độ sâu, độ rộng và độ phân giải ảnh bằng phương pháp gọi là compound scaling. Cách tiếp cận này cho phép model mở rộng hiệu quả mà không làm quá tải bất kỳ khía cạnh nào.
Kiến trúc EfficientNet xử lý ảnh qua một chuỗi block, mỗi block được tạo thành từ các module nhỏ hơn. Số lượng module trong mỗi block tùy thuộc vào kích thước model.

Hình 1. Các khối cấu thành 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 module nhiều lần hơn. Thiết kế linh hoạt này cho phép EfficientNet mang lại accuracy và hiệu quả cao trong nhiều ứng dụng, từ thiết bị di động đến các hệ thống quy mô lớn.
Cách 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 ảnh của model nhưng vẫn giữ chúng cân bằng. Nhờ vậy, có thể sử dụng sức mạnh tính toán hiệu quả. Dòng model bắt đầu với model nền nhỏ hơn có tên EfficientNet-B0, làm cơ sở cho tất cả các phiên bản khác.
Từ B0, các model được mở rộng thành những biến thể lớn hơn mang tên EfficientNet-B1 đến EfficientNet-B7. Ở mỗi bước, mạng có thêm layer, tăng số lượng channel (các unit dùng để xử lý) và xử lý ảnh đầu vào có độ phân giải cao hơn. Mức độ mở rộng ở mỗi bước được xác định bởi một tham số gọi là hệ số compound, đảm bảo độ sâu, độ rộng và độ phân giải tăng theo tỷ lệ cố định thay vì độc lập với nhau.

Hình 2. Compound scaling tăng độ rộng, độ sâu và độ phân giải ảnh của model. (Nguồn)
Kiến trúc EfficientNet#
Tiếp theo, hãy cùng tìm hiểu kiến trúc của EfficientNet.
Kiến trúc này được xây dựng dựa trên MobileNetV2, một model thị giác máy tính gọn nhẹ được tối ưu cho thiết bị di động và thiết bị nhúng. Thành phần cốt lõi là block tích chập nút cổ chai đảo ngược trên thiết bị di động (MBConv), một layer đặc biệt xử lý dữ liệu ảnh như phép tích chập tiêu chuẩn nhưng với ít phép tính hơn. Block này giúp 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 độ mạnh của các kênh khác nhau trong mạng. Module tăng cường các kênh thiết yếu và giảm độ mạnh của những kênh khác. Nhờ đó, mạng tập trung vào các đặc trưng quan trọng nhất trong hình ảnh và 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), nhờ đó nhận diện mẫu trong hình ảnh tốt hơn các phương pháp cũ.
Ngoài ra, model sử dụng DropConnect, trong đó một số kết nối bên trong mạng được tắ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 ngẫu nhiên hóa nhằm ngăn model ghi nhớ dữ liệu huấn luyện thay vì khái quát hóa) giảm overfitting bằng cách buộc mạng học các biểu diễn đặc trưng vững chắc hơn (các mẫu mạnh hơn, có tính khái quát hơn trong dữ liệu) và chuyển giao tốt hơn sang 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 EfficientNet#
Giờ đây khi đã hiểu rõ hơn cách các model EfficientNet hoạt động, hãy cùng thảo luận về những biến thể model khác nhau.
Các model EfficientNet có quy mô từ B0 đến B7, bắt đầu với B0 làm model nền cân bằng tốc độ và accuracy. Mỗi phiên bản tăng độ sâu, độ rộng và độ phân giải ảnh, qua đó cải thiện accuracy. Tuy nhiên, các phiên bản này cũng đòi hỏi nhiều sức mạnh tính toán hơn, từ B1 và B2 cho đến B6 và B7 có hiệu năng cao.
Các model EfficientNet-B3 và EfficientNet-B4 cân bằng tốt khi xử lý ảnh lớn, cò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. Phiên bản kế nhiệm, EfficientNetV2, huấn luyện nhanh hơn và sử dụng tham số hiệu quả hơn.
Ứng dụng của EfficientNet#
EfficientNet có thể tạo ra kết quả chính xác trong khi sử dụng ít bộ nhớ và sức mạnh xử lý hơn nhiều model khác. Nhờ vậy, model 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ọi người sử dụng hằng ngày.
Phân tích ảnh y tế#
Ảnh y tế, chẳng hạn như ảnh CT phổi, thường chứa những chi tiết tinh tế rất quan trọng để chẩn đoán chính xác. Model AI có thể hỗ trợ phân tích những ảnh này để phát hiện các mẫu mà con người khó nhận ra. Một biến thể EfficientNet được điều chỉnh cho mục đích này là MONAI (Medical Open Network for AI) EfficientNet, được thiết kế chuyên biệt cho phân tích ảnh y tế.
Dựa trên kiến trúc EfficientNet, các nhà nghiên cứu cũng phát triển Lung-EffNet, một model phân loại ảnh chụp CT phổi để phát hiện khối u. Model có thể phân loại ảnh chụp thành lành tính, ác tính hoặc bình thường, với độ chính xác được báo cáo là trên 99% trong các thử nghiệm.

Hình 4. Phân loại hình ảnh khối u bằng Lung-EffNet. (Nguồn)
Phát hiện đối tượng thời gian thực#
Phát hiện đối tượng là quá trình tìm đối tượng trong ảnh và xác định vị trí của chúng. Đây là thành phần then chốt của các ứng dụng như hệ thống an ninh, xe tự hành và drone.
EfficientNet trở nên quan trọng trong lĩnh vực này vì cung cấp một phương pháp trích xuất đặc trưng từ ảnh rất hiệu quả. Cách mở rộng độ sâu, độ rộng và độ phân giải của model cho thấy model có thể đạt accuracy cao mà không quá nặng hoặc chậm. Đây là lý do nhiều hệ thống phát hiện, như EfficientDet, sử dụng EfficientNet làm backbone.
Các model mới hơn, chẳng hạn Ultralytics YOLO11, cũng hướng đến mục tiêu kết hợp tốc độ với accuracy. Xu hướng phát triển model hiệu quả này chịu ảnh hưởng lớn từ các ý tưởng trong những 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 khi sử dụng EfficientNet trong các dự án thị giác máy tính:
- Accuracy cao với ít tham số hơn: EfficientNet có thể đạt accuracy tương đương hoặc cao hơn các model cũ như ResNet hoặc DenseNet. Tuy nhiên, model sử dụng ít tham số hơn, nhờ đó huấn luyện nhanh hơn và triển khai dễ dàng hơn.
- Họ model có khả năng mở rộng: Với các phiên bản từ B0 đến B7, bạn có thể chọn phiên bản phù hợp với phần cứng và yêu cầu về độ chuẩn xác mà không cần thay đổi mạng nền.
- Phù hợp với học chuyển giao: EfficientNet có thể mang lại hiệu năng đáng tin cậy cho học chuyển giao, tức là quá trình huấn luyện lại một model đã được huấn luyện trước cho tác vụ tùy chỉnh. Model có thể đóng vai trò backbone cho nhiều tác vụ thị giác máy tính. Model cũng đạt kết quả tốt khi được tinh chỉnh. Ví dụ, EfficientNet đạt độ chính xác tiên tiến nhất trên CIFAR-100, một tập dữ liệu phân loại hình ảnh được sử dụng rộng rãi, với số tham số ít hơn đáng kể so với các model trước đó.
Mặc dù EfficientNet có nhiều lợi ích, dưới đây là một số hạn chế cần lưu ý:
- Đòi hỏi nhiều bộ nhớ hơn: Các phiên bản như EfficientNet-B6 và EfficientNet-B7 đòi hỏi nhiều bộ nhớ GPU.
- Cấu hình scaling được tinh chỉnh cho ImageNet: Các thiết lập scaling được thiết kế cho dataset ImageNet, vì vậy hiệu năng có thể giảm trên các dataset rất khác biệt nếu không tinh chỉnh. Điều này đặc biệt đúng với dataset nhỏ, vì kiến trúc và scaling của EfficientNet được thiết kế cho dataset lớn và đa dạng như ImageNet, vốn cung cấp đủ dữ liệu để phù hợp với độ sâu và độ rộng của model.
- Chậm hơn trên một số phần cứng: EfficientNet sử dụng các layer gọi là MBConv, được thiết kế để hoạt động hiệu quả trên phần cứng hiện đại. Trên GPU hoặc CPU cũ, các layer này có thể chạy chậm hơn.
Điểm chính cần ghi nhớ#
EfficientNet đã thay đổi cách phát triển các model thị giác máy tính bằng cách cân bằng độ sâu, độ rộng và độ phân giải ảnh. Đây 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, model giữ một vị trí đáng kể trong lịch sử thị giác máy tính.
Tham gia cộng đồng và repository GitHub của chúng tôi để khám phá thêm về AI. Truy cập các trang giải pháp của chúng tôi để đọc về AI trong y tế và thị giác máy tính trong ngành ô tô. Khám phá các tùy chọn cấp phép của chúng tôi và bắt đầu xây dựng ứng dụng thị giác máy tính ngay hôm nay!
Được viết bởi
Bình luận
Đặt câu hỏi, chia sẻ kết quả hoặc giúp đỡ người khác.










