Kích thước lô
Khám phá tác động của kích thước lô lên học sâu. Tối ưu hóa tốc độ đào tạo, sử dụng bộ nhớ và hiệu suất mô hình một cách hiệu quả.
Kích thước lô là một siêu tham số cơ bản trong học máy , xác định số lượng mẫu huấn luyện được xử lý trước khi các tham số nội bộ của mô hình được cập nhật. Thay vì xử lý toàn bộ tập dữ liệu huấn luyện cùng một lúc, vốn có thể gây tốn kém về mặt tính toán, dữ liệu được chia thành các tập con nhỏ hơn hay còn gọi là "lô". Việc lựa chọn kích thước lô là một quyết định quan trọng, ảnh hưởng trực tiếp đến động lực học, tốc độ huấn luyện và hiệu suất cuối cùng của mô hình. Nó thể hiện sự đánh đổi giữa hiệu quả tính toán và độ chính xác của ước lượng gradient được sử dụng để cập nhật trọng số mô hình.
Vai trò của quy mô lô trong đào tạo mô hình
Trong quá trình huấn luyện, mạng nơ-ron (NN) học bằng cách điều chỉnh trọng số dựa trên sai số mà nó mắc phải. Việc điều chỉnh này được hướng dẫn bởi một thuật toán tối ưu hóa như gradient descent . Kích thước lô xác định số lượng ví dụ mà mô hình "nhìn thấy" trước khi tính toán gradient và thực hiện cập nhật trọng số.
- Giảm Gradient Ngẫu Nhiên (SGD): Khi kích thước lô là 1, quá trình này được gọi là giảm gradient ngẫu nhiên. Gradient được tính toán cho từng mẫu riêng lẻ, dẫn đến việc cập nhật thường xuyên nhưng nhiễu.
- Giảm Gradient Hàng Loạt: Khi kích thước hàng loạt bằng tổng số mẫu trong tập dữ liệu huấn luyện, phương pháp này được gọi là giảm gradient hàng loạt. Phương pháp này cung cấp ước tính gradient rất chính xác nhưng tốn kém về mặt tính toán và bộ nhớ.
- Giảm Gradient Hàng Loạt Nhỏ: Đây là phương pháp phổ biến nhất, trong đó kích thước hàng loạt được đặt thành một giá trị từ 1 đến tổng kích thước tập dữ liệu (ví dụ: 32, 64, 128). Phương pháp này cân bằng giữa tính ổn định của giảm gradient hàng loạt và hiệu quả của giảm gradient ngẫu nhiên .
Việc lựa chọn kích thước lô ảnh hưởng đáng kể đến quá trình đào tạo. Kích thước lô lớn hơn cung cấp ước tính chính xác hơn về gradient, nhưng chi phí tính toán cho mỗi lần cập nhật lại cao hơn. Ngược lại, kích thước lô nhỏ hơn dẫn đến ước tính gradient kém chính xác hơn nhưng cho phép cập nhật nhanh hơn.
Chọn đúng kích thước lô
Việc tìm ra kích thước lô tối ưu là một phần quan trọng của việc điều chỉnh siêu tham số và phụ thuộc vào tập dữ liệu, kiến trúc mô hình và phần cứng có sẵn.
- Kích thước lô lớn: Xử lý nhiều dữ liệu cùng lúc có thể tận dụng tối đa khả năng xử lý song song của GPU , giúp rút ngắn thời gian huấn luyện trên mỗi epoch . Tuy nhiên, nghiên cứu đã chỉ ra rằng các lô rất lớn đôi khi có thể dẫn đến "khoảng cách tổng quát hóa", tức là mô hình hoạt động tốt trên dữ liệu huấn luyện nhưng lại kém trên dữ liệu chưa được biết đến. Chúng cũng đòi hỏi bộ nhớ đáng kể, đây có thể là một yếu tố hạn chế.
- Kích thước lô nhỏ: Những kích thước này đòi hỏi ít bộ nhớ hơn và thường dẫn đến tổng quát hóa mô hình tốt hơn, vì nhiễu trong các bản cập nhật gradient có thể giúp mô hình thoát khỏi các cực tiểu cục bộ và tìm ra giải pháp mạnh mẽ hơn. Điều này có thể giúp ngăn ngừa hiện tượng quá khớp . Nhược điểm chính là quá trình huấn luyện chậm hơn do các bản cập nhật trọng số được thực hiện thường xuyên hơn và ít dữ liệu được xử lý song song hơn.
Đối với nhiều ứng dụng, kích thước lô là lũy thừa của 2 (như 32, 64, 128, 256) được khuyến nghị vì chúng thường phù hợp với kiến trúc bộ nhớ GPU . Các công cụ như Ultralytics HUB cho phép dễ dàng thử nghiệm với các kích thước lô khác nhau khi huấn luyện mô hình .
Kích thước lô trong đào tạo so với suy luận
Mặc dù kích thước lô là một khái niệm cốt lõi trong đào tạo, nó cũng áp dụng cho suy luận, nhưng với mục đích khác. Trong quá trình suy luận, xử lý lô được sử dụng để xử lý đồng thời nhiều đầu vào (ví dụ: hình ảnh hoặc câu) nhằm tối đa hóa thông lượng. Điều này thường được gọi là suy luận lô .
Đối với các ứng dụng yêu cầu kết quả tức thì, chẳng hạn như suy luận thời gian thực trên xe tự hành, kích thước lô 1 được sử dụng để giảm thiểu độ trễ suy luận . Trong các tình huống ngoại tuyến, chẳng hạn như xử lý một bộ sưu tập hình ảnh lớn qua đêm, kích thước lô lớn hơn có thể được sử dụng để cải thiện hiệu quả.
Ứng dụng trong thế giới thực
- Phân tích hình ảnh y tế : Khi huấn luyện mô hình YOLO11 để phát hiện khối u trong hình ảnh y tế , hình ảnh thường có độ phân giải cao. Do hạn chế về bộ nhớ trên GPU , kích thước lô nhỏ (ví dụ: 4 hoặc 8) thường được sử dụng. Điều này cho phép mô hình được huấn luyện trên dữ liệu chi tiết cao mà không vượt quá bộ nhớ khả dụng, đảm bảo quá trình huấn luyện ổn định.
- Kiểm soát Chất lượng Sản xuất : Trong môi trường AI sản xuất , một mô hình có thể được huấn luyện để phát hiện lỗi trên dây chuyền lắp ráp. Với bộ dữ liệu lớn gồm hàng triệu hình ảnh sản phẩm, quy mô lô lớn hơn (ví dụ: 256 hoặc 512) có thể được sử dụng trên một cụm huấn luyện phân tán mạnh mẽ. Điều này giúp tăng tốc quá trình huấn luyện, cho phép lặp lại và triển khai mô hình nhanh hơn.
Kích thước lô so với các thuật ngữ liên quan
Điều quan trọng là phải phân biệt kích thước lô với các khái niệm liên quan khác:
- Kích thước lô so với Kỷ nguyên và Số lần lặp : Một lần lặp là một lần cập nhật trọng số của mô hình. Một kỷ nguyên là một lần duyệt toàn bộ tập dữ liệu huấn luyện. Số lần lặp trong một kỷ nguyên là tổng số mẫu huấn luyện chia cho kích thước lô.
- Kích thước lô so với Chuẩn hóa lô : Chuẩn hóa lô (BatchNorm) là một kỹ thuật được sử dụng trong lớp mạng nơ-ron để chuẩn hóa dữ liệu đầu vào cho mỗi lô nhỏ. Mặc dù hiệu quả của nó có thể bị ảnh hưởng bởi kích thước lô (nó hoạt động tốt hơn với các lô lớn hơn), nhưng nó là một lớp riêng biệt trong kiến trúc mô hình, không phải là một tham số vòng lặp huấn luyện. Hầu hết các nền tảng học sâu hiện đại như PyTorch và TensorFlow đều cung cấp các triển khai mạnh mẽ.