Optimization Algorithm
Khám phá cách các optimization algorithm như SGD và AdamW thúc đẩy ML training. Tìm hiểu cách tối thiểu hóa loss và cải thiện performance của Ultralytics YOLO26 cho các ứng dụng AI.
Thuật toán tối ưu hóa đóng vai trò là engine tính toán cốt lõi điều khiển quy trình huấn luyện các model machine learning (ML) và deep learning (DL). Trách nhiệm chính của thuật toán là lặp đi lặp lại việc điều chỉnh trọng số model và các bias bên trong để giảm thiểu sai số giữa kết quả dự đoán và mục tiêu thực tế. Bạn có thể hình dung quy trình này như một người leo núi đang cố gắng đi xuống một ngọn núi phủ sương để đến điểm thấp nhất trong thung lũng. Thuật toán tối ưu hóa đóng vai trò là người hướng dẫn, xác định hướng đi và độ lớn của bước chân mà người leo núi nên thực hiện để đến đáy, tương ứng với trạng thái trong đó hàm mất mát được tối thiểu hóa và độ chính xác dự đoán của model được tối đa hóa.
Cách thức hoạt động của các thuật toán tối ưu hóa#
Quá trình huấn luyện một mạng nơ-ron bao gồm một chu kỳ lặp lại của việc dự đoán, tính toán sai số và cập nhật tham số. Thuật toán tối ưu hóa điều khiển giai đoạn "cập nhật" trong vòng lặp này. Sau khi một batch dữ liệu huấn luyện được xử lý, hệ thống tính toán một gradient—một vector chỉ theo hướng làm sai số tăng mạnh nhất—bằng một phương pháp gọi là lan truyền ngược.
Sau đó, optimizer cập nhật các tham số của model theo hướng ngược với gradient để giảm sai số. Độ lớn của lần cập nhật này được chi phối bởi một hyperparameter quan trọng gọi là tốc độ học. Nếu bước đi quá lớn, model có thể vượt qua cực tiểu toàn cục; nếu quá nhỏ, quá trình huấn luyện có thể trở nên chậm đến mức không khả thi hoặc mắc kẹt tại một cực tiểu cục bộ. Các tài liệu chuyên sâu như ghi chú về tối ưu hóa Stanford CS231n cung cấp những phân tích kỹ thuật sâu hơn về các động lực này.
Các loại thuật toán tối ưu hóa phổ biến#
Các bài toán khác nhau đòi hỏi những chiến lược khác nhau. Mặc dù có nhiều biến thể, một số thuật toán chủ chốt đang chi phối hoạt động phát triển AI hiện đại:
- Gradient Descent ngẫu nhiên (SGD): Một phương pháp kinh điển cập nhật các tham số bằng cách sử dụng một mẫu đơn lẻ hoặc một batch nhỏ thay vì toàn bộ dataset. Phương pháp này có hiệu quả tính toán cao và được sử dụng rộng rãi trong các thư viện như Scikit-learn.
- Adam Optimizer: Adam, viết tắt của Ước lượng Moment Thích nghi, điều chỉnh tốc độ học cho từng tham số riêng lẻ. Thuật toán này được trình bày chi tiết trong bài nghiên cứu kinh điển về Adam của Kingma và Ba và thường là lựa chọn mặc định cho việc huấn luyện đa dụng nhờ tốc độ cũng như đặc tính hội tụ của nó.
- AdamW: Một biến thể của Adam tách biệt weight decay khỏi bước cập nhật gradient, mang lại khả năng tổng quát hóa tốt hơn. Đây thường là optimizer được ưu tiên để huấn luyện các kiến trúc hiện đại như Transformers và các model Ultralytics YOLO26 hiệu năng cao.
Các ứng dụng trong thực tế#
Các thuật toán tối ưu hóa âm thầm hoạt động phía sau hầu hết mọi giải pháp AI thành công, chuyển đổi dữ liệu thành thông tin tình báo có thể hành động.
-
Phương tiện tự hành: Trong công nghệ xe tự lái, các hệ thống phát hiện vật thể phải ngay lập tức nhận diện người đi bộ, đèn giao thông và các xe khác. Trong quá trình huấn luyện các hệ thống này cho AI trong ngành ô tô, thuật toán tối ưu hóa xử lý hàng triệu hình ảnh đường phố, tinh chỉnh mạng để giảm thiểu lỗi phát hiện. Điều này đảm bảo xe dừng lại một cách đáng tin cậy khi nhìn thấy người, giúp ngăn ngừa tai nạn.
-
Phân tích ảnh y khoa: Đối với các ứng dụng AI trong lĩnh vực chăm sóc sức khỏe, chẳng hạn như xác định khối u trong ảnh chụp MRI, độ chính xác là yếu tố bắt buộc. Các optimizer định hướng quá trình huấn luyện Mạng nơ-ron tích chập (CNNs) để phân biệt mô ác tính với mô khỏe mạnh ở độ nhạy cao, giảm nguy cơ âm tính giả trong các chẩn đoán quan trọng.
Phân biệt các khái niệm liên quan#
Điều quan trọng là phải phân biệt thuật toán tối ưu hóa với các thành phần khác của quá trình học để hiểu hiệu quả workflow.
- Thuật toán tối ưu hóa so với Hàm mất mát: Hàm mất mát hoạt động như một "bảng điểm", tính toán một giá trị số (chẳng hạn như Sai số bình phương trung bình) biểu thị mức độ sai lệch trong các dự đoán của model. Thuật toán tối ưu hóa là "nhà chiến lược" sử dụng điểm số này để điều chỉnh các trọng số và cải thiện hiệu năng trong vòng tiếp theo.
- Thuật toán tối ưu hóa so với Tinh chỉnh hyperparameter: Thuật toán tối ưu hóa học các tham số bên trong (trọng số) trong suốt các vòng lặp huấn luyện. Tinh chỉnh hyperparameter bao gồm việc lựa chọn các thiết lập bên ngoài tốt nhất—chẳng hạn như lựa chọn optimizer, kích thước batch hoặc tốc độ học ban đầu—trước khi quá trình huấn luyện bắt đầu. Các công cụ tự động như Ray Tune thường được sử dụng để tìm tổ hợp tối ưu của các thiết lập bên ngoài này.
Triển khai tối ưu hóa trong Python#
Trong các framework hiện đại, việc lựa chọn thuật toán tối ưu hóa thường được thực hiện thông qua một argument duy nhất. Ví dụ sau minh họa cách huấn luyện một model YOLO26 bằng optimizer AdamW trong package ultralytics. Người dùng cũng có thể tận dụng Ultralytics Platform để quản lý các phiên huấn luyện này theo phương pháp no-code.
from ultralytics import YOLO
# Load the latest YOLO26 model (recommended for new projects)
model = YOLO("yolo26n.pt")
# Train the model using the 'AdamW' optimization algorithm
# The optimizer iteratively updates weights to minimize loss on the dataset
results = model.train(data="coco8.yaml", epochs=5, optimizer="AdamW")Đối với những người quan tâm đến cơ chế ở mức thấp hơn, các framework như PyTorch Optimizers và TensorFlow Keras Optimizers cung cấp tài liệu phong phú về cách triển khai và tùy chỉnh các thuật toán này cho những kiến trúc nghiên cứu tùy chỉnh.









