Khám phá cách thuật toán gradient descent tối ưu hóa các mô hình học máy như... Ultralytics YOLO26. Tìm hiểu về hàm mất mát, lan truyền ngược và trọng số để cải thiện độ chính xác của AI.
Gradient Descent là một thuật toán tối ưu hóa lặp cơ bản được sử dụng để huấn luyện các mô hình học máy và mạng nơ-ron. Chức năng chính của nó là giảm thiểu hàm mất mát bằng cách điều chỉnh một cách có hệ thống các tham số nội bộ của mô hình, cụ thể là trọng số và độ lệch của mô hình . Bạn có thể hình dung quá trình này như một người leo núi đang cố gắng xuống núi trong sương mù dày đặc; không thể nhìn thấy đáy núi, người leo núi cảm nhận độ dốc của mặt đất và bước theo hướng dốc nhất xuống dưới. Trong bối cảnh học máy (ML) , "ngọn núi" đại diện cho cảnh quan lỗi, và "đáy núi" đại diện cho trạng thái mà các dự đoán của mô hình chính xác nhất. Kỹ thuật tối ưu hóa này là động lực đằng sau những đột phá của trí tuệ nhân tạo (AI) hiện đại, cung cấp sức mạnh cho mọi thứ từ hồi quy tuyến tính đơn giản đến các kiến trúc học sâu phức tạp như Ultralytics YOLO26 .
Hiệu quả của thuật toán Gradient Descent dựa trên việc tính toán độ dốc—một vectơ chỉ hướng tăng mạnh nhất của hàm mất mát. Phép tính này thường được thực hiện bằng thuật toán lan truyền ngược (backpropagation) . Sau khi xác định được hướng, thuật toán sẽ cập nhật trọng số theo hướng ngược lại để giảm lỗi. Kích thước bước nhảy được xác định bởi một siêu tham số gọi là tốc độ học (learning rate ). Việc tìm ra tốc độ học tối ưu là rất quan trọng; bước nhảy quá lớn có thể khiến mô hình vượt quá điểm cực tiểu, trong khi bước nhảy quá nhỏ có thể làm cho quá trình huấn luyện diễn ra rất chậm, đòi hỏi số lượng epoch quá nhiều để hội tụ. Để hiểu sâu hơn về mặt toán học, Khan Academy cung cấp bài học về giải tích đa biến về chủ đề này.
Quá trình này lặp đi lặp lại cho đến khi mô hình đạt đến điểm mà lỗi được giảm thiểu, thường được gọi là hội tụ. Trong khi thuật toán chuẩn tính toán độ dốc trên toàn bộ tập dữ liệu huấn luyện , các biến thể như Thuật toán Giảm Độ dốc Ngẫu nhiên ( SGD ) sử dụng các tập con nhỏ hơn hoặc các ví dụ đơn lẻ để tăng tốc độ tính toán và thoát khỏi các cực tiểu cục bộ. Khả năng thích ứng này làm cho nó phù hợp để huấn luyện các mô hình quy mô lớn trên Nền tảng Ultralytics , nơi hiệu quả và tốc độ là tối quan trọng.
Thuật toán Gradient Descent hoạt động âm thầm phía sau hậu trường của hầu hết các giải pháp AI thành công, chuyển đổi dữ liệu thô thành thông tin hữu ích trong nhiều ngành công nghiệp khác nhau.
Điều quan trọng là phải phân biệt Gradient Descent với các thuật ngữ có liên quan chặt chẽ trong từ điển thuật ngữ học sâu (DL) để tránh nhầm lẫn trong quá trình phát triển mô hình.
Trong khi các thư viện cấp cao như ultralytics Trừu tượng hóa quá trình này trong quá trình huấn luyện, bạn có thể thấy trực tiếp cơ chế bằng cách sử dụng PyTorch Ví dụ sau đây minh họa một bước tối ưu hóa đơn giản, trong đó chúng ta cập nhật thủ công một tensor để giảm thiểu một giá trị.
import torch
# Create a tensor representing a weight, tracking gradients
w = torch.tensor([5.0], requires_grad=True)
# Define a simple loss function: (w - 2)^2. Minimum is at w=2.
loss = (w - 2) ** 2
# Backward pass: Calculate the gradient (slope) of the loss with respect to w
loss.backward()
# Perform a single Gradient Descent step
learning_rate = 0.1
with torch.no_grad():
w -= learning_rate * w.grad # Update weight: w_new = w_old - (lr * gradient)
print(f"Gradient: {w.grad.item()}")
print(f"Updated Weight: {w.item()}") # Weight moves closer to 2.0
Hiểu rõ những nguyên tắc cơ bản này cho phép các nhà phát triển khắc phục sự cố hội tụ, tinh chỉnh siêu tham số hiệu quả và tận dụng các công cụ mạnh mẽ như Ultralytics Explorer để hình dung cách các tập dữ liệu của họ tương tác với động lực huấn luyện mô hình. Đối với những người muốn triển khai các mô hình được tối ưu hóa này một cách hiệu quả, việc khám phá huấn luyện nhận biết lượng tử hóa (QAT) có thể giúp cải thiện hiệu suất hơn nữa cho các thiết bị biên.