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

Bộ tối ưu hóa Adam

Tìm hiểu cách bộ tối ưu hóa Adam cung cấp khả năng huấn luyện mạng nơ-ron hiệu quả với tốc độ học thích ứng, động lượng và các ứng dụng thực tế trong AI.

Adam (Adaptive Moment Estimation) là một thuật toán tối ưu hóa phổ biến và mạnh mẽ được sử dụng trong học máy (ML)học sâu (DL). Nó được thiết kế để tìm các giá trị tối ưu cho các tham số của mô hình (trọng số và độ lệch) một cách hiệu quả bằng cách lặp đi lặp lại cập nhật chúng dựa trên dữ liệu huấn luyện. Adam được đánh giá cao về tốc độ hội tụ nhanh và hiệu quả trên một loạt các vấn đề, khiến nó trở thành một lựa chọn mặc định phổ biến cho nhiều người thực hành khi huấn luyện các mô hình tùy chỉnh. Sự phát triển của nó là một bước tiến quan trọng trong việc làm cho việc huấn luyện các mô hình lớn, phức tạp trở nên thiết thực hơn.

Cách Adam hoạt động

Đổi mới chính của Adam là khả năng điều chỉnh tốc độ học cho từng tham số riêng lẻ. Thay vì sử dụng một tốc độ học cố định duy nhất cho tất cả các trọng số trong mạng, Adam tính toán một tốc độ học riêng lẻ điều chỉnh khi quá trình huấn luyện tiến triển. Nó đạt được điều này bằng cách kết hợp những ưu điểm của hai phương pháp tối ưu hóa khác: RMSProp và Momentum. Adam theo dõi hai thành phần chính: moment thứ nhất (trung bình của các gradient, tương tự như momentum) và moment thứ hai (phương sai không tâm của các gradient). Sự kết hợp này cho phép nó thực hiện các cập nhật thông tin hơn, thực hiện các bước lớn hơn cho các tham số có gradient nhất quán và các bước nhỏ hơn cho các tham số có gradient nhiễu hoặc thưa thớt. Phương pháp 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.

Adam so với các bộ tối ưu hóa khác

Việc so sánh Adam với các trình tối ưu hóa phổ biến khác để hiểu rõ điểm mạnh của nó là rất hữu ích.

  • Adam so với Gradient Descent ngẫu nhiên (SGD): Mặc dù SGD là một thuật toán tối ưu hóa cơ bản, nhưng nó sử dụng tốc độ học không đổi áp dụng cho tất cả các bản cập nhật tham số. Điều này có thể khiến nó hội tụ chậm hoặc bị mắc kẹt trong các "thung lũng" không tối ưu của hàm mất mát. Adam, với tốc độ học thích ứng, thường điều hướng không gian mất mát hiệu quả hơn và hội tụ nhanh hơn nhiều. Tuy nhiên, một số nghiên cứu cho thấy rằng các mô hình được đào tạo bằng SGD có thể khái quát hóa tốt hơn một chút và tránh quá khớp hiệu quả hơn trong một số trường hợp nhất định. Lựa chọn thường đòi hỏi thử nghiệm thực nghiệm, như được giải thích trong các hướng dẫn về mẹo đào tạo mô hình.
  • AdamW: Một biến thể phổ biến và hiệu quả là AdamW (Adam với phân rã trọng lượng tách rời). Nó sửa đổi cách phân rã trọng lượng—một kỹ thuật chính quy hóa—được áp dụng, tách nó khỏi bước cập nhật gradient. Điều này thường dẫn đến cải thiện hiệu suất mô hình và khái quát hóa tốt hơn. Các triển khai có sẵn trong các framework chính như PyTorchTensorFlow.

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

Hiệu quả và tính mạnh mẽ của Adam làm cho nó phù hợp với nhiều ứng dụng.

  1. Huấn luyện các mô hình ngôn ngữ lớn (LLM): Adam và các biến thể của nó rất quan trọng để huấn luyện các mô hình lớn trong Xử lý ngôn ngữ tự nhiên (NLP). Đối với các mô hình như GPT-4 hoặc các mô hình từ Hugging Face, hiệu quả của Adam giúp có thể xử lý các tập dữ liệu văn bản khổng lồ từ các nguồn như Wikipedia và học các mẫu ngôn ngữ phức tạp. Khả năng điều hướng các bề mặt mất mát (loss landscapes) phức tạp của nó là điều cần thiết để thành công.
  2. Phân loại Ảnh và Phát hiện Đối tượng: Trong thị giác máy tính (CV), Adam được sử dụng rộng rãi để huấn luyện các mạng nơ-ron tích chập (CNN) sâu trên các bộ dữ liệu hình ảnh lớn như ImageNet hoặc COCO. Nó giúp các mô hình cho phân loại ảnhphát hiện đối tượng hội tụ nhanh chóng, giúp tăng tốc quá trình phát triển và chu kỳ điều chỉnh siêu tham số.

Sử dụng trong Ultralytics YOLO

Trong hệ sinh thái Ultralytics, Adam và biến thể AdamW của nó là các trình tối ưu hóa có sẵn để huấn luyện các mô hình Ultralytics YOLO. Tận dụng tốc độ học thích ứng của Adam có thể đẩy nhanh quá trình hội tụ trong quá trình huấn luyện phát hiện đối tượng, phân đoạn thể hiện hoặc các mô hình ước tính tư thế như YOLO11 hoặc YOLOv10. Mặc dù SGD thường là trình tối ưu hóa mặc định và được khuyến nghị cho một số mô hình YOLO vì khả năng tổng quát hóa cuối cùng tốt hơn, Adam cung cấp một giải pháp thay thế mạnh mẽ, đặc biệt hữu ích trong quá trình thử nghiệm ban đầu. Bạn có thể dễ dàng định cấu hình trình tối ưu hóa và các cài đặt huấn luyện khác. Các công cụ như Ultralytics HUB hợp lý hóa quy trình, cho phép người dùng huấn luyện các mô hình bằng nhiều trình tối ưu hóa khác nhau, bao gồm Adam, cục bộ hoặc thông qua huấn luyện trên đám mây. Các framework như PyTorchTensorFlow cung cấp các triển khai tiêu chuẩn của Adam, được sử dụng trong framework Ultralytics.

Tham gia cộng đồng Ultralytics

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
Đã sao chép liên kết vào clipboard