Learning Rate
Tìm hiểu cách learning rate ảnh hưởng đến quá trình training model. Khám phá cách tối ưu step size cho Ultralytics YOLO26 để đạt hiệu năng SOTA trong phát hiện đối tượng và nhiều tác vụ khác.
Tốc độ học là một cấu hình tinh chỉnh siêu tham số quan trọng, xác định kích thước bước mà model thực hiện trong quá trình tối ưu hóa. Trong bối cảnh huấn luyện mạng neural, tốc độ học kiểm soát mức độ cập nhật các trọng số bên trong của model dựa trên sai số ước tính mỗi khi model xử lý một batch dữ liệu. Hãy hình dung một người đang đi xuống núi về phía thung lũng (điểm có sai số thấp nhất); tốc độ học quyết định độ dài mỗi bước chân. Nếu bước quá dài, họ có thể bước qua hẳn thung lũng và bỏ lỡ đáy. Nếu bước quá ngắn, việc đến đích có thể mất thời gian lâu đến mức không thực tế.
Tình thế “Goldilocks” trong tối ưu hóa#
Việc tìm tốc độ học tối ưu thường được mô tả là một bài toán cân bằng trong các quy trình machine learning. Mục tiêu là tối thiểu hóa hàm mất mát, hàm đo lường sự khác biệt giữa các dự đoán của model và ground truth thực tế. Quá trình này phụ thuộc nhiều vào một thuật toán tối ưu hóa như hạ gradient ngẫu nhiên (SGD) hoặc bộ tối ưu hóa Adam để điều hướng bề mặt mất mát.
- Tốc độ học quá cao: Nếu giá trị được đặt quá cao, các lần cập nhật trọng số của model sẽ rất lớn. Điều này có thể dẫn đến hiện tượng “vượt quá”, trong đó model không hội tụ đến một nghiệm mà thay vào đó dao động mạnh hoặc phân kỳ. Sự bất ổn này đôi khi có thể kích hoạt vấn đề gradient bùng nổ, khiến quá trình huấn luyện trở nên vô ích.
- Tốc độ học quá thấp: Ngược lại, kích thước bước cực nhỏ đảm bảo model di chuyển thận trọng về phía cực tiểu, nhưng có thể dẫn đến underfitting vì quá trình huấn luyện trở nên chậm đến mức khó chịu. Model có thể thực sự bị mắc kẹt tại một cực tiểu cục bộ hoặc cần thêm hàng nghìn epoch để học các mẫu đơn giản, gây lãng phí tài nguyên tính toán. Các nhà nghiên cứu thường tham khảo tài liệu PyTorch về tối ưu hóa để hiểu cách các thuật toán khác nhau tương tác với những giá trị này.
Các ứng dụng trong thực tế#
Tác động của việc điều chỉnh tốc độ học thể hiện rõ trong nhiều ngành có yêu cầu cao, nơi tác vụ thị giác máy tính được triển khai.
-
Hệ thống lái xe tự hành: Trong quá trình phát triển phương tiện tự hành, các kỹ sư sử dụng những tập dữ liệu lớn để huấn luyện model phát hiện đối tượng, nhằm nhận diện người đi bộ và biển báo giao thông. Khi áp dụng transfer learning cho một model được huấn luyện trước như YOLO26, các nhà phát triển thường sử dụng tốc độ học nhỏ hơn nhiều so với khi huấn luyện ban đầu. Quá trình “fine-tuning” này đảm bảo model học được các đặc điểm riêng của những môi trường lái xe cụ thể (ví dụ: đường tuyết so với đường cao tốc sa mạc) mà không làm mất đi khả năng trích xuất đặc trưng tổng quát vốn có.
-
Chẩn đoán hình ảnh y khoa: Trong phân tích ảnh y khoa, chẳng hạn như phát hiện khối u trong ảnh chụp MRI, độ chính xác là yếu tố tối quan trọng. Tốc độ học cao trong trường hợp này tạo ra rủi ro model bỏ qua những khác biệt kết cấu tinh tế giúp phân biệt mô ác tính với mô lành tính. Các chuyên gia thường áp dụng kỹ thuật có tên “learning rate warmup”, tăng dần tốc độ học từ 0 đến một giá trị mục tiêu để ổn định các giai đoạn đầu của quá trình huấn luyện, đảm bảo các trọng số của mạng neural ổn định trong một cấu hình vững chắc trước khi bắt đầu học mạnh. Bạn có thể đọc thêm về các chiến lược này trong Khóa học cấp tốc về Machine Learning của Google.
Phân biệt các thuật ngữ liên quan#
Điều quan trọng là phải phân biệt tốc độ học với các tham số huấn luyện khác, vì chúng thường được cấu hình trong cùng các tệp cấu hình nhưng phục vụ những mục đích khác nhau:
- Tốc độ học so với kích thước batch: Trong khi tốc độ học kiểm soát mức độ cập nhật, kích thước batch xác định số lượng mẫu huấn luyện được xử lý trước khi một lần cập nhật diễn ra. Hai yếu tố này có mối quan hệ chặt chẽ; thông thường, khi tăng kích thước batch, cũng cần tăng tốc độ học tương ứng để duy trì hiệu quả huấn luyện, một khái niệm được nghiên cứu trong các bài báo về huấn luyện batch lớn.
- Tốc độ học so với suy giảm: Suy giảm đề cập đến một chiến lược trong đó tốc độ học được giảm dần theo thời gian. Một scheduler có thể giảm tốc độ học theo hệ số 10 sau mỗi 30 epoch. Điều này giúp model thực hiện những bước nhảy khái niệm lớn ở giai đoạn đầu, sau đó tinh chỉnh độ chính xác bằng các bước nhỏ hơn về cuối quá trình huấn luyện. Đây là một tính năng tiêu chuẩn trong gói Python của Ultralytics.
Thiết lập tốc độ học trong Ultralytics YOLO#
Khi sử dụng các framework hiện đại, bạn có thể dễ dàng điều chỉnh tốc độ học ban đầu (lr0) và phân số tốc độ học cuối (lrf). Dưới đây là ví dụ về cách cấu hình các giá trị này bằng client tương thích với Ultralytics Platform cho một lần chạy huấn luyện tùy chỉnh.
from ultralytics import YOLO
# Load the YOLO26 model (latest state-of-the-art architecture)
model = YOLO("yolo26n.pt")
# Train the model with a custom initial learning rate
# lr0=0.01 sets the initial rate
# lrf=0.01 sets the final learning rate to (lr0 * lrf)
results = model.train(data="coco8.yaml", epochs=10, lr0=0.01, lrf=0.01)Đối với người dùng nâng cao, các kỹ thuật như LR Finder (được fast.ai phổ biến) có thể tự động hóa phần lớn việc tìm giá trị khởi đầu tốt nhất bằng cách chạy một epoch thử nghiệm ngắn, trong đó tốc độ học được tăng theo cấp số nhân cho đến khi loss phân kỳ. Làm chủ siêu tham số này thường là chìa khóa để đạt hiệu năng SOTA (hiện đại nhất) trong các dự án AI của bạn.









