Neural Architecture Search (NAS)
Tìm hiểu cách Neural Architecture Search (NAS) tự động hóa việc thiết kế deep learning model. Khám phá các cơ chế cốt lõi và các model được tối ưu như Ultralytics YOLO26.
Tìm kiếm kiến trúc neural (NAS) là một kỹ thuật tiên tiến trong lĩnh vực Học máy tự động (AutoML), tự động hóa quá trình thiết kế mạng neural nhân tạo. Theo phương pháp truyền thống, việc xây dựng các kiến trúc học sâu (DL) hiệu năng cao đòi hỏi nhiều chuyên môn, trực giác và thời gian thử nghiệm sai sót. NAS thay thế quy trình thủ công này bằng các chiến lược thuật toán, có hệ thống khám phá một phạm vi rộng lớn các cấu trúc liên kết mạng để tìm ra cấu trúc tối ưu cho một tác vụ cụ thể. Bằng cách thử nghiệm nhiều tổ hợp lớp và phép toán khác nhau, NAS có thể xác định các kiến trúc vượt trội đáng kể so với model do con người thiết kế về độ chính xác, hiệu quả tính toán hoặc tốc độ suy luận.
Các cơ chế cốt lõi của NAS#
Quá trình tìm ra một kiến trúc ưu việt thường bao gồm ba khía cạnh nền tảng tương tác với nhau để tìm ra mạng neural (NN) tốt nhất:
-
Không gian tìm kiếm: Đây là tập hợp tất cả các kiến trúc khả dĩ mà thuật toán có thể khám phá. Nó giống như một thư viện các khối xây dựng, chẳng hạn như các bộ lọc tích chập, các lớp pooling và nhiều hàm kích hoạt khác nhau. Không gian tìm kiếm được định nghĩa tốt sẽ giới hạn độ phức tạp để đảm bảo quá trình tìm kiếm vẫn khả thi về mặt tính toán, đồng thời cho phép đủ linh hoạt để đổi mới.
-
Chiến lược tìm kiếm: Thay vì kiểm tra mọi khả năng (brute force), NAS sử dụng các thuật toán thông minh để điều hướng không gian tìm kiếm một cách hiệu quả. Các phương pháp phổ biến bao gồm học tăng cường, trong đó một agent học cách tạo ra các kiến trúc tốt hơn theo thời gian, và thuật toán tiến hóa, trong đó các model có hiệu năng cao nhất được đột biến và kết hợp để tạo ra các ứng viên ưu việt hơn.
-
Chiến lược ước tính hiệu năng: Việc huấn luyện từng mạng ứng viên từ đầu là quá chậm. Để tăng tốc, NAS sử dụng các kỹ thuật ước tính—chẳng hạn như huấn luyện với ít epoch hơn, sử dụng các tập dữ liệu proxy có độ phân giải thấp hơn hoặc áp dụng chia sẻ trọng số—để nhanh chóng xếp hạng tiềm năng của một kiến trúc ứng viên.
Các ứng dụng trong thực tế#
NAS đã trở nên thiết yếu trong những ngành có các ràng buộc nghiêm ngặt về phần cứng hoặc yêu cầu cao về hiệu năng, thúc đẩy các giới hạn của thị giác máy tính (CV) và các lĩnh vực AI khác.
- Điện toán biên hiệu quả: Triển khai AI trên thiết bị di động đòi hỏi các model vừa nhẹ vừa nhanh. NAS được sử dụng rộng rãi để tìm ra các kiến trúc như MobileNetV3 và EfficientNet, giúp giảm thiểu độ trễ suy luận trong khi vẫn duy trì độ chính xác cao. Đây là yếu tố thiết yếu đối với các ứng dụng AI biên, chẳng hạn như phân tích video theo thời gian thực trên camera thông minh hoặc drone tự hành.
- Chẩn đoán hình ảnh y khoa: Trong phân tích ảnh y khoa, độ chính xác là yếu tố tối quan trọng. NAS có thể tùy chỉnh mạng để phát hiện các bất thường tinh vi trong ảnh X-quang hoặc ảnh MRI, thường tìm ra những đường dẫn trích xuất đặc trưng mới mà các kỹ sư con người có thể bỏ sót. Điều này tạo ra các công cụ đáng tin cậy hơn để xác định những tình trạng như u não hoặc gãy xương với độ nhạy cao hơn.
NAS và các khái niệm liên quan#
Để hiểu vai trò cụ thể của NAS, việc phân biệt NAS với các kỹ thuật tối ưu hóa tương tự sẽ rất hữu ích:
- NAS và tinh chỉnh siêu tham số: Mặc dù cả hai đều liên quan đến tối ưu hóa, tinh chỉnh siêu tham số tập trung vào việc điều chỉnh các thiết lập cấu hình (chẳng hạn như tốc độ học hoặc kích thước batch) cho một kiến trúc cố định. Ngược lại, NAS thay đổi cấu trúc nền tảng của chính model, chẳng hạn như số lượng lớp hoặc cách các neuron được kết nối.
- NAS và học chuyển giao: Học chuyển giao sử dụng một model hiện có đã được huấn luyện trước và điều chỉnh các trọng số của model đó cho một tác vụ mới. NAS tạo kiến trúc model từ đầu (hoặc tìm kiếm một backbone tốt hơn) trước khi bắt đầu huấn luyện.
Sử dụng các model có nguồn gốc từ NAS#
Mặc dù chạy một quy trình tìm kiếm NAS hoàn chỉnh đòi hỏi tài nguyên điện toán GPU đáng kể, các developer vẫn có thể dễ dàng sử dụng những model được tạo bằng NAS. Ví dụ, kiến trúc YOLO-NAS được tìm ra bằng các nguyên tắc tìm kiếm này để tối ưu hóa cho các tác vụ phát hiện đối tượng.
Ví dụ Python sau đây minh họa cách tải và sử dụng một model NAS đã được tìm kiếm trước bằng package ultralytics:
from ultralytics import NAS
# Load a pre-trained YOLO-NAS model (architecture found via NAS)
# 'yolo_nas_s.pt' refers to the small version of the model
model = NAS("yolo_nas_s.pt")
# Run inference on an image to detect objects
# This utilizes the optimized architecture for fast detection
results = model("https://ultralytics.com/images/bus.jpg")
# Print the top detected class
print(f"Detected: {results[0].names[int(results[0].boxes.cls[0])]}")Đối với những người muốn huấn luyện các model tiên tiến nhất mà không phải xử lý sự phức tạp của NAS, Ultralytics YOLO26 cung cấp một kiến trúc được tối ưu hóa cao ngay từ đầu, tích hợp những tiến bộ mới nhất trong nghiên cứu. Bạn có thể dễ dàng quản lý tập dữ liệu, quá trình huấn luyện và triển khai các model này bằng Ultralytics Platform, giúp đơn giản hóa toàn bộ vòng đời MLOps.









