Ultralytics YOLO27: Đăng ký vào danh sách chờ.
Cấp phép YOLO
Quay lại Bảng thuật ngữ Ultralytics

Momentum (Optimization)

Tối ưu hóa động lượng sử dụng các gradient trước đó để tăng tốc quá trình huấn luyện model, làm mượt các lần cập nhật nhiễu và cải thiện khả năng hội tụ, đồng thời cân bằng tốc độ học.

Động lượng là một kỹ thuật tối ưu hóa giúp quá trình huấn luyện dựa trên gradient ghi nhớ các lần cập nhật trước đó. Bằng cách kết hợp gradient hiện tại với lịch sử suy giảm của các gradient trước, kỹ thuật này tăng tốc theo những hướng nhất quán và giảm chuyển động qua lại. Điều này giúp các model học máy tối thiểu hóa hàm mục tiêu huấn luyện hiệu quả hơn. Tối ưu hóa công cụ tìm kiếm liên quan đến khả năng hiển thị của website; động lượng liên quan đến các lần cập nhật số học đối với tham số model.

Cách thức hoạt động của động lượng#

Trong quá trình gradient descent, model điều chỉnh trọng số theo hướng ngược với gradient—hướng mà hàm mất mát tăng nhanh nhất. Động lượng cổ điển, còn gọi là động lượng Polyak hoặc phương pháp quả cầu nặng, bổ sung quán tính cho chuyển động này. Boris Polyak giới thiệu phương pháp này trong công trình năm 1964 về tăng tốc các phương pháp lặp.

Optimizer duy trì một bộ đệm vận tốc, với một giá trị tích lũy cho mỗi tham số. Mỗi lần cập nhật nhân bộ đệm cũ với hệ số động lượng, cộng thêm gradient hiện tại, rồi trừ bộ đệm thu được sau khi nhân với tốc độ học khỏi các trọng số. Trong mạng nơ-ron, lan truyền ngược cung cấp các gradient đó; optimizer giữ lại bộ đệm giữa các lần cập nhật.

Động lượng đặc biệt hữu ích trên các bề mặt mất mát kéo dài, nơi độ cong dốc theo chiều ngang qua thung lũng và thoải theo chiều dọc đáy thung lũng. Các gradient liên tục hướng dọc theo thung lũng sẽ tích lũy, trong khi những thành phần đổi hướng qua lại theo chiều ngang sẽ triệt tiêu một phần lẫn nhau. Khi sử dụng stochastic gradient descent, bộ nhớ này cũng làm mượt các dao động giữa các mini-batch. Động lực học của động lượng trên hàm mất mát bậc hai giải thích cả khả năng tăng tốc lẫn các dao động mà phương pháp này có thể gây ra gần điểm cực tiểu.

Hệ số động lượng, thường được ký hiệu là beta hoặc mu, thường nằm trong khoảng từ không đến một. Giá trị không tương đương với gradient descent thông thường; các giá trị gần một hơn giữ lại gradient cũ lâu hơn. 0.9 là giá trị khởi đầu phổ biến. Với bộ đệm vận tốc chưa chuẩn hóa và gradient không đổi, vận tốc tích lũy tiến tới mức gấp mười lần gradient đó ở 0.9, so với gấp 100 lần ở 0.99. Do đó, động lượng và tốc độ học tương tác mạnh trong quá trình tinh chỉnh siêu tham số.

Sự kết hợp quá mạnh sẽ gây ra hiện tượng vượt quá: các lần cập nhật liên tục vượt qua điểm cực tiểu, khiến giá trị mất mát dao động hoặc phân kỳ. Hiện tượng này xảy ra ngay cả với các hàm mục tiêu bậc hai trơn. Lịch trình tốc độ học thay đổi độ lớn của lần cập nhật trong quá trình huấn luyện, còn động lượng quyết định lịch sử hướng được duy trì ở mức nào.

Hai thuật toán tối ưu hóa có liên quan mật thiết sử dụng lịch sử này theo những cách khác nhau:

  • Động lượng Nesterov tính gradient tại vị trí dự đoán trước dựa trên vận tốc được giữ lại, cho phép gradient điều chỉnh chuyển động dự kiến.
  • Adam kết hợp trung bình gradient có trọng số hàm mũ với trung bình bình phương gradient, giúp điều chỉnh tỷ lệ cập nhật riêng cho từng tham số. beta1 của Adam kiểm soát bộ nhớ gradient.

Ví dụ PyTorch tối giản#

Ví dụ PyTorch này so sánh các điểm bắt đầu và tốc độ học giống nhau trên một hàm mục tiêu bậc hai kéo dài. Triển khai SGD chính thức tự động quản lý bộ đệm động lượng.

import torch

# Curvature is 50 times greater along the second coordinate.
scale = torch.tensor([1.0, 50.0])

for momentum in (0.0, 0.9):
    weights = torch.tensor([5.0, 1.0], requires_grad=True)
    optimizer = torch.optim.SGD([weights], lr=0.015, momentum=momentum)

    for step in range(100):
        optimizer.zero_grad()
        loss = (scale * weights.square()).sum()
        loss.backward()
        optimizer.step()

    final_loss = (scale * weights.square()).sum().item()
    print(f"Momentum {momentum}: loss = {final_loss:.6f}")

Sau 100 lần cập nhật, giá trị mất mát xấp xỉ 0.056531 khi không dùng động lượng và 0.000216 khi dùng động lượng. Lịch sử hướng tích lũy giúp tăng tốc tiến trình theo tọa độ thoải.

Ứng dụng trong huấn luyện thị giác máy tính#

Động lượng hỗ trợ huấn luyện mạng nơ-ron tích chập cho các tác vụ phân loại ảnh và phát hiện đối tượng. Tính năng huấn luyện Ultralytics YOLO bật động lượng Nesterov khi chọn optimizer="SGD", còn thiết lập momentum kiểm soát lịch sử cập nhật được giữ lại. Phần triển khai trainer truyền hệ số đó cho optimizer bằng nesterov=True.

Một ứng dụng tiêu biểu là quy trình huấn luyện ResNet ban đầu trên ImageNet. Các model đó sử dụng SGD với động lượng 0.9, kích thước batch là 256, weight decay 0.0001 và tốc độ học ban đầu 0.1; tốc độ học giảm mười lần khi lỗi chững lại.

Khám phá các giải pháp

Thị giác máy tính trong thể thao

Thị giác máy tính trong thể thao

Khám phá cách Ultralytics YOLO thúc đẩy thị giác máy tính trong thể thao với khả năng theo dõi cầu thủ và bóng, phân tích hiệu suất, cung cấp thông tin chuyên sâu cho huấn luyện và hỗ trợ phục hồi cho vận động viên.
Tìm hiểu thêm
Thị giác máy tính cho ảnh hàng không

Thị giác máy tính cho ảnh hàng không

Chuyển hình ảnh từ drone và ảnh hàng không thành thông tin chuyên sâu theo thời gian thực cho nông nghiệp, nuôi trồng thủy sản, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Ứng dụng computer vision trong ngành hàng không vũ trụ với Ultralytics YOLO cho kiểm tra máy bay, phát hiện dị vật trên đường băng (FOD), vận hành mặt đất tại sân bay và phát hiện lỗi vật liệu composite.
Tìm hiểu thêm
Computer vision trong lĩnh vực an ninh

Computer vision trong lĩnh vực an ninh

Bảo vệ mọi địa điểm bằng model Ultralytics YOLO. Vision AI hỗ trợ giám sát vành đai, phát hiện mối đe dọa, nhận dạng biển số và an toàn nơi làm việc.
Tìm hiểu thêm
Computer vision trong robotics

Computer vision trong robotics

Tăng cường năng lực cho máy móc thông minh bằng model Ultralytics YOLO. Vision AI trong lĩnh vực robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh giản hoạt động logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho hàng theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại hoạt động bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng chờ và phân tích khách hàng thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong chăm sóc sức khỏe

Thị giác máy tính trong chăm sóc sức khỏe

Xây dựng các giải pháp chăm sóc sức khỏe với model Ultralytics YOLO. Vision AI trong chăm sóc sức khỏe hỗ trợ xử lý hình ảnh y tế nhanh hơn, chẩn đoán thông minh hơn và theo dõi bệnh nhân.
Tìm hiểu thêm
Thị giác máy tính trong sản xuất

Thị giác máy tính trong sản xuất

Tối ưu hóa sản xuất bằng các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Thị giác máy tính trong ngành ô tô

Thị giác máy tính trong ngành ô tô

Ứng dụng thị giác máy tính trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn giao thông, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong nông nghiệp

Thị giác máy tính trong nông nghiệp

Ứng dụng AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Hỗ trợ giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để nâng cao năng suất một cách thông minh hơn.
Tìm hiểu thêm

Hãy cùng nhau kiến tạo tương lai của AI!

Bắt đầu hành trình hướng đến tương lai của machine learning