Khám phá cách Stochastic Gradient Descent (SGD) tối ưu hóa các mô hình học máy, cho phép huấn luyện hiệu quả cho các tập dữ liệu lớn và các tác vụ học sâu.
Giảm dần độ dốc ngẫu nhiên ( SGD ) là một thuật toán tối ưu hóa nền tảng được sử dụng rộng rãi trong học máy (ML) và học sâu (DL) . Nó đóng vai trò là động lực thúc đẩy quá trình huấn luyện mô hình, điều chỉnh lặp đi lặp lại các trọng số và độ lệch nội tại của mô hình để giảm thiểu sai số được tính toán bởi hàm mất mát . Không giống như thuật toán giảm dần độ dốc truyền thống, vốn xử lý toàn bộ tập dữ liệu để tính toán một bản cập nhật duy nhất, SGD sửa đổi các tham số mô hình chỉ bằng cách sử dụng một ví dụ huấn luyện được chọn ngẫu nhiên tại một thời điểm. Cách tiếp cận "ngẫu nhiên" hay ngẫu nhiên này làm cho thuật toán hiệu quả về mặt tính toán và có khả năng mở rộng cao, tạo ra một lộ trình khả thi cho việc huấn luyện dữ liệu lớn , trong khi việc xử lý toàn bộ tập dữ liệu cùng một lúc sẽ gây tốn bộ nhớ.
Mục tiêu chính của việc đào tạo mạng nơ-ron là điều hướng một bối cảnh lỗi phức tạp để tìm ra điểm thấp nhất, biểu thị độ chính xác cao nhất. SGD đạt được điều này thông qua một chu trình lặp lại. Đầu tiên, nó tính toán độ dốc (gradient) - hướng tăng lỗi mạnh nhất - cho một mẫu cụ thể bằng cách sử dụng phương pháp lan truyền ngược . Sau đó, nó cập nhật các trọng số theo hướng ngược lại để giảm lỗi.
Độ lớn của bước này được kiểm soát bởi tốc độ học tập , một giá trị quan trọng được cấu hình trong quá trình điều chỉnh siêu tham số . Bởi vì SGD Sử dụng các mẫu đơn lẻ, đường đi đến giá trị cực tiểu sẽ bị nhiễu và ngoằn ngoèo thay vì đường thẳng. Nhiễu này thường có lợi, vì nó giúp mô hình thoát khỏi các cực tiểu cục bộ—các nghiệm dưới mức tối ưu mà các thuật toán phi ngẫu nhiên có thể bị mắc kẹt—cho phép mô hình tìm ra một nghiệm toàn cục tốt hơn. Quá trình này lặp lại trong nhiều kỷ nguyên , hoặc nhiều lần duyệt qua toàn bộ tập dữ liệu, cho đến khi mô hình hội tụ. Độc giả có thể khám phá trực giác toán học trong các ghi chú tối ưu hóa Stanford CS231n .
Hiểu cách SGD khác với các khái niệm liên quan là rất quan trọng để lựa chọn chiến lược phù hợp cho dữ liệu đào tạo của bạn.
SGD và các biến thể của nó là tiêu chuẩn để đào tạo các hệ thống AI hiện đại trong nhiều ngành công nghiệp khác nhau.
Các ultralytics thư viện cho phép người dùng dễ dàng chuyển đổi giữa các trình tối ưu hóa. Trong khi AdamW có thể là mặc định cho một số tác vụ, SGD thường được sử dụng để tinh chỉnh hoặc đáp ứng các yêu cầu nghiên cứu cụ thể. Đoạn trích dưới đây minh họa cách chọn rõ ràng SGD để đào tạo một mô hình.
from ultralytics import YOLO
# Load the latest YOLO11 model (nano version)
model = YOLO("yolo11n.pt")
# Train the model on the COCO8 dataset using the SGD optimizer
# The 'lr0' argument sets the initial learning rate
results = model.train(data="coco8.yaml", epochs=50, optimizer="SGD", lr0=0.01)
Mã này khởi tạo một YOLO11 mô hình và bắt đầu đào tạo với optimizer="SGD". Để tùy chỉnh thêm, hãy tham khảo
cấu hình đào tạo mô hình tài liệu. Các khuôn khổ như
TensorFlow và
Scikit-learn cũng cung cấp các triển khai mạnh mẽ của SGD
cho nhiều nhiệm vụ học máy khác nhau.