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

Giảm dần độ dốc ngẫu nhiên ( SGD )

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

Cách thức hoạt động của Stochastic Gradient Descent

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 .

SGD so với các thuật toán tối ưu hóa khác

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.

  • Giảm Gradient Hàng loạt : Phương pháp này tính toán gradient bằng cách sử dụng toàn bộ tập dữ liệu cho mỗi bước. Mặc dù tạo ra đường cong lỗi ổn định, nhưng phương pháp này cực kỳ chậm và tốn kém về mặt tính toán đối với các tập dữ liệu lớn.
  • Mini-Batch Gradient Descent : Trong thực tế, hầu hết " SGD "Việc triển khai trong các khuôn khổ như PyTorch thực sự sử dụng các lô nhỏ. Phương pháp này cập nhật các tham số bằng cách sử dụng một nhóm nhỏ các mẫu (ví dụ: 32 hoặc 64 hình ảnh). Nó tạo ra sự cân bằng, mang lại hiệu quả tính toán như SGD với tính ổn định của quá trình xử lý theo lô.
  • Adam Optimizer : The Adam thuật toán mở rộng SGD bằng cách giới thiệu tốc độ học tập thích ứng cho từng tham số. Trong khi Adam thường hội tụ nhanh hơn, SGD với động lượng đôi khi được ưu tiên cho các tác vụ thị giác máy tính để đạt được khả năng khái quát tốt hơn và tránh quá khớp .

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

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.

  1. Phát hiện đối tượng theo thời gian thực: Khi đào tạo các mô hình hiệu suất cao như Ultralytics YOLO11 để phát hiện đối tượng , trình tối ưu hóa phải xử lý hàng nghìn hình ảnh từ các tập dữ liệu như COCO . SGD cho phép mô hình học nhanh các đặc điểm như cạnh và hình dạng vật thể. Tính chất ngẫu nhiên giúp mô hình tổng quát hóa tốt, điều này rất quan trọng đối với các ứng dụng quan trọng về an toàn như xe tự hành phát hiện người đi bộ trong nhiều điều kiện thời tiết khác nhau.
  2. Xử lý Ngôn ngữ Tự nhiên (NLP): Việc đào tạo các Mô hình Ngôn ngữ Lớn (LLM) liên quan đến các tập dữ liệu chứa hàng tỷ từ. Không thể tải tất cả dữ liệu này vào bộ nhớ cùng một lúc. SGD cho phép mô hình học ngữ pháp, ngữ cảnh và phân tích cảm xúc theo từng bước. Hiệu quả này hỗ trợ sự phát triển của các trợ lý ảo và công cụ dịch thuật tinh vi.

Thực hiện SGD với Ultralytics

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ư TensorFlowScikit-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.

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