Thuật ngữ

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

Khám phá cách Stochastic Gradient Descent tối ưu hóa các mô hình học máy, cho phép đào tạo hiệu quả cho các tập dữ liệu lớn và tác vụ học sâu.

Xe lửa YOLO mô hình đơn giản
với Ultralytics TRUNG TÂM

Tìm hiểu thêm

Stochastic Gradient Descent, thường được gọi là SGD, là một thuật toán tối ưu hóa phổ biến và hiệu quả được sử dụng rộng rãi trong Machine Learning (ML) và đặc biệt là Deep Learning (DL) . Nó đóng vai trò là một biến thể của thuật toán Gradient Descent tiêu chuẩn nhưng được thiết kế riêng để có tốc độ và hiệu quả khi xử lý các tập dữ liệu rất lớn. Thay vì tính toán gradient (hướng dốc nhất cho hàm mất mát) bằng cách sử dụng toàn bộ tập dữ liệu trong mỗi bước, SGD sẽ ước tính gradient dựa trên một mẫu dữ liệu được chọn ngẫu nhiên hoặc một tập hợp con nhỏ được gọi là mini-batch. Phương pháp này giúp giảm đáng kể chi phí tính toán và yêu cầu về bộ nhớ, giúp việc đào tạo các mô hình phức tạp trên lượng dữ liệu khổng lồ trong các lĩnh vực như thị giác máy tính trở nên khả thi.

Sự liên quan trong Học máy

SGD là nền tảng để đào tạo các mô hình học máy quy mô lớn, đặc biệt là Mạng nơ-ron (NN) phức tạp hỗ trợ nhiều ứng dụng AI hiện đại. Hiệu quả của nó khiến nó trở nên không thể thiếu khi làm việc với các tập dữ liệu quá lớn để phù hợp với bộ nhớ hoặc sẽ mất quá nhiều thời gian để xử lý bằng Batch Gradient Descent truyền thống. Các mô hình như Ultralytics YOLO thường sử dụng SGD hoặc các biến thể của nó trong quá trình đào tạo để học các mẫu cho các tác vụ như phát hiện đối tượng , phân loại hình ảnhphân đoạn hình ảnh . Các khuôn khổ học sâu chính như PyTorchTensorFlow cung cấp các triển khai mạnh mẽ của SGD, làm nổi bật vai trò cơ bản của nó trong hệ sinh thái AI .

Các khái niệm chính

Để hiểu về SGD cần lưu ý một số ý tưởng cốt lõi sau:

  • Hàm mất mát : Một thước đo mức độ phù hợp của dự đoán của mô hình với các giá trị mục tiêu thực tế. SGD hướng đến mục tiêu giảm thiểu hàm này.
  • Tỷ lệ học : Một siêu tham số kiểm soát kích thước bước thực hiện trong mỗi lần cập nhật tham số. Việc tìm ra tỷ lệ học tốt là rất quan trọng để đào tạo hiệu quả. Các lịch trình tỷ lệ học thường được sử dụng để điều chỉnh nó trong quá trình đào tạo.
  • Kích thước lô : Số lượng mẫu đào tạo được sử dụng trong một lần lặp để ước tính gradient. Trong SGD thuần túy, kích thước lô là 1. Khi sử dụng các tập hợp con nhỏ, nó thường được gọi là Mini-batch Gradient Descent.
  • Dữ liệu đào tạo : Bộ dữ liệu được sử dụng để đào tạo mô hình. SGD xử lý dữ liệu này theo từng mẫu hoặc theo từng đợt nhỏ. Dữ liệu chất lượng cao là điều cần thiết, thường đòi hỏi phải thu thập dữ liệu và chú thích cẩn thận.
  • Gradient: Một vectơ biểu thị hướng tăng mạnh nhất của hàm mất mát. SGD di chuyển các tham số theo hướng ngược lại với gradient được tính toán từ mẫu hoặc lô nhỏ.
  • Kỷ nguyên: Một lần hoàn thành toàn bộ tập dữ liệu đào tạo . Đào tạo thường bao gồm nhiều kỷ nguyên.

Sự khác biệt từ các khái niệm liên quan

SGD là một trong số các thuật toán tối ưu hóa và điều quan trọng là phải phân biệt nó với các thuật toán khác:

  • Batch Gradient Descent (BGD) : Tính toán gradient bằng cách sử dụng toàn bộ tập dữ liệu đào tạo trong mỗi bước. Điều này cung cấp ước tính gradient chính xác nhưng tốn kém về mặt tính toán và bộ nhớ đối với các tập dữ liệu lớn. Nó dẫn đến đường hội tụ mượt mà hơn so với các bản cập nhật nhiễu của SGD.
  • Mini-batch Gradient Descent: Một sự thỏa hiệp giữa BGD và SGD. Nó tính toán gradient bằng cách sử dụng một tập hợp con ngẫu nhiên nhỏ (mini-batch) của dữ liệu. Điều này cân bằng độ chính xác của BGD với hiệu quả của SGD và là cách tiếp cận phổ biến nhất trong thực tế. Hiệu suất có thể phụ thuộc vào kích thước lô .
  • Adam Optimizer : Một thuật toán tối ưu hóa tốc độ học thích ứng tính toán tốc độ học thích ứng riêng lẻ cho các tham số khác nhau. Nó thường hội tụ nhanh hơn SGD chuẩn nhưng đôi khi có thể tổng quát kém hiệu quả hơn, như đã thảo luận trong nghiên cứu như "Giá trị biên của các phương pháp Gradient thích ứng trong Học máy" . Nhiều biến thể Gradient Descent tồn tại ngoài những biến thể này.

Ứng dụng trong thế giới thực

Hiệu quả của SGD cho phép sử dụng trong nhiều ứng dụng AI quy mô lớn:

Ví dụ 1: Đào tạo các mô hình ngôn ngữ lớn (LLM)

Các mô hình đào tạo như những mô hình được sử dụng trong Xử lý ngôn ngữ tự nhiên (NLP) thường liên quan đến các tập dữ liệu văn bản khổng lồ (hàng tỷ từ). SGD và các biến thể của nó (như Adam) rất cần thiết để lặp lại dữ liệu này một cách hiệu quả, cho phép các mô hình như GPT-4 hoặc các mô hình được tìm thấy trên Hugging Face học ngữ pháp, ngữ cảnh và ngữ nghĩa. Bản chất ngẫu nhiên giúp thoát khỏi các cực tiểu cục bộ kém trong bối cảnh mất mát phức tạp.

Ví dụ 2: Đào tạo phát hiện đối tượng theo thời gian thực

Đối với các mô hình như Ultralytics YOLO được thiết kế cho suy luận thời gian thực , việc đào tạo cần phải hiệu quả. SGD cho phép các nhà phát triển đào tạo các mô hình này trên các tập dữ liệu hình ảnh lớn như COCO hoặc các tập dữ liệu tùy chỉnh được quản lý thông qua các nền tảng như Ultralytics HUB . Các bản cập nhật nhanh chóng cho phép hội tụ nhanh hơn so với Batch GD, rất quan trọng để lặp lại nhanh chóng trong quá trình phát triển mô hình và điều chỉnh siêu tham số . Hiệu quả này hỗ trợ các ứng dụng trong các lĩnh vực như xe tự hànhrô bốt .

Đọc tất cả