Yolo Tầm nhìn Thâm Quyến
Thâm Quyến
Tham gia ngay
Bảng chú giải thuật ngữ

Adam Trình tối ưu hóa

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.

Làm sao Adam Tác phẩm

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 .

Phân biệt Adam từ các trình tối ưu hóa khác

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) .

  • Giảm dần độ dốc ngẫu nhiên ( SGD ) : SGD cập nhật các tham số bằng cách sử dụng tốc độ học cố định (hoặc lịch trình phân rã đơn giản). Trong khi SGD có hiệu quả về mặt tính toán và thường khái quát hóa tốt, nó có thể gặp khó khăn với "điểm yên ngựa" trong bối cảnh mất mát và hội tụ chậm hơn Adam . Nhiều nhiệm vụ thị giác máy tính sử dụng SGD để tinh chỉnh lần cuối nhằm đạt được độ chính xác tối đa.
  • RMSProp: Công cụ tối ưu hóa này chủ yếu giải quyết vấn đề tốc độ học tập giảm dần trong AdaGrad. Adam cải thiện RMSProp bằng cách thêm vào thuật ngữ động lượng, giúp làm giảm dao động và tăng tốc độ hội tụ về mức tối thiểu.
  • AdamW : Một biến thể được gọi là Adam với sự suy giảm trọng lượng tách rời ( AdamW ) thường được ưu tiên sử dụng để huấn luyện các máy biến áp hiện đại và các mô hình thị giác máy tính lớn. Nó tách biệt việc điều chỉnh suy giảm trọng số khỏi việc cập nhật gradient, thường mang lại khả năng khái quát hóa tốt hơn so với tiêu chuẩn. Adam .

Các Ứng dụng Thực tế

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.

  1. AI trong chăm sóc sức khỏe : Khi đào tạo các mô hình để phân tích hình ảnh y tế —chẳng hạn như phát hiện các bất thường trong ảnh chụp MRI—dữ liệu có thể thưa thớt hoặc không cân bằng. Adam Tốc độ học tập thích ứng của giúp mô hình hội tụ nhanh chóng ngay cả khi các tính năng cụ thể ít xuất hiện trong dữ liệu đào tạo , tạo điều kiện triển khai các công cụ chẩn đoán nhanh hơn.
  2. Xử lý ngôn ngữ tự nhiên (NLP) : Các mô hình ngôn ngữ lớn (LLM) như GPT-4 phụ thuộc rất nhiều vào Adam (hoặc AdamW ) trong quá trình tiền huấn luyện. Thuật toán xử lý hiệu quả số lượng lớn tham số—thường lên đến hàng tỷ—và bản chất thưa thớt của các nhúng từ, cho phép các mô hình này học các mẫu ngôn ngữ phức tạp từ các tập dữ liệu văn bản khổng lồ như Wikipedia .

Sử dụng trong Ultralytics YOLO

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ọ.

Tham gia Ultralytics cộng đồng

Tham gia vào tương lai của AI. Kết nối, hợp tác và phát triển cùng với những nhà đổi mới toàn cầu

Tham gia ngay