Tìm hiểu cách Adam Bộ tối ưu hóa hỗ trợ đào tạo mạng nơ-ron hiệu quả với tốc độ học tập thích ứng, động lượng và ứng dụng thực tế trong AI.
Adam (Ước lượng Mô men Thích nghi) là một thuật toán tối ưu hóa tinh vi và được sử dụng rộng rãi, được thiết kế để cập nhật các tham số của mạng nơ-ron trong quá trình huấn luyện. Bằng cách kết hợp các đặc tính tốt nhất của hai phần mở rộng phổ biến khác của SGD (Stochastic Gradient Descent) —cụ thể là Thuật toán Gradient Thích nghi (AdaGrad) và Truyền bá Bình phương Trung bình (RMSProp)— Adam Tính toán tốc độ học thích ứng cho từng tham số riêng lẻ. Khả năng này cho phép xử lý hiệu quả các gradient thưa thớt trên các bài toán nhiễu, khiến nó trở thành lựa chọn mặc định để đào tạo các kiến trúc học sâu (DL) phức tạp, bao gồm cả các mô hình YOLO11 mới nhất.
Cơ chế cốt lõi đằng sau Adam bao gồm việc tính toán mô men thứ nhất và thứ hai của gradient để điều chỉnh tốc độ học cho từng trọng số trong mạng nơ-ron . Bạn có thể coi "mô men thứ nhất" là động lượng, giúp quá trình tối ưu hóa di chuyển đúng hướng, tương tự như một quả bóng nặng lăn xuống dốc. "Mô men thứ hai" theo dõi phương sai không tâm, từ đó điều chỉnh kích thước bước dựa trên độ lớn lịch sử của gradient.
Trong quá trình truyền ngược , thuật toán tính toán độ dốc của hàm mất mát theo trọng số. Adam sau đó cập nhật các đường trung bình động hàm mũ của gradient (động lượng) và gradient bình phương (phương sai). Các đường trung bình động này được sử dụng để điều chỉnh gradient hiện tại, đảm bảo mô hình thực hiện các bước lớn hơn theo hướng có gradient nhất quán và các bước nhỏ hơn theo hướng có phương sai cao. Quá trình này được trình bày chi tiết trong bài báo nghiên cứu Adam gốc của Kingma và Ba .
Hiểu khi nào nên sử dụng Adam yêu cầu so sánh nó với các thuật toán phổ biến khác có trong các khuôn khổ học máy (ML) .
Do tính mạnh mẽ và yêu cầu tối thiểu về điều chỉnh siêu tham số , Adam được sử dụng trong nhiều lĩnh vực có tác động lớn.
Khi sử dụng API Python Ultralytics , bạn có thể dễ dàng chọn Adam trình tối ưu hóa để đào tạo các mô hình phát hiện đối tượng, phân đoạn hoặc ước tính tư thế. Trong khi SGD là mặc định cho nhiều người YOLO cấu hình, Adam là một giải pháp thay thế tuyệt vời cho các tập dữ liệu nhỏ hơn hoặc khi ưu tiên sự hội tụ nhanh chóng.
Ví dụ sau đây minh họa cách đào tạo mô hình YOLO11 bằng cách sử dụng Adam trình tối ưu hóa:
from ultralytics import YOLO
# Load a generic YOLO11 model
model = YOLO("yolo11n.pt")
# Train the model on the COCO8 dataset using the 'Adam' optimizer
# The 'optimizer' argument creates the specific PyTorch optimizer instance internally
results = model.train(data="coco8.yaml", epochs=5, optimizer="Adam")
Tính linh hoạt này cho phép các nhà nghiên cứu và kỹ sư thử nghiệm các cấu hình tối ưu hóa để tìm ra thiết lập tốt nhất cho các tập dữ liệu tùy chỉnh cụ thể của họ.