Thuật ngữ

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ả.

Xe lửa YOLO mô hình đơn giản
với Ultralytics TRUNG TÂM

Tìm hiểu thêm

Trong học máy, đặc biệt là khi đào tạo các mô hình học sâu , kích thước lô đề cập đến số lượng ví dụ đào tạo được xử lý trong một lần lặp lại duy nhất. Đào tạo các mô hình lớn trên các tập dữ liệu khổng lồ, phổ biến trong các lĩnh vực như thị giác máy tính , thường khiến việc xử lý toàn bộ tập dữ liệu cùng một lúc trở nên không khả thi về mặt tính toán do hạn chế về bộ nhớ. Thay vào đó, dữ liệu được chia thành các nhóm nhỏ hơn, dễ quản lý hoặc "lô". Các tham số bên trong của mô hình được cập nhật sau khi xử lý từng lô, giúp quá trình đào tạo hiệu quả hơn và có khả năng mở rộng hơn.

Tầm quan trọng của kích thước lô

Kích thước lô là một siêu tham số quan trọng ảnh hưởng đáng kể đến động lực đào tạo, sử dụng tài nguyên và cuối cùng là hiệu suất của mô hình cuối cùng. Các tác động của nó bao gồm:

  • Tốc độ đào tạo: Kích thước lô lớn hơn có thể sử dụng khả năng xử lý song song của phần cứng như GPU hiệu quả hơn, có khả năng giảm thời gian cần thiết để hoàn thành một kỷ nguyên (một lần chạy đầy đủ trên dữ liệu đào tạo). Điều này là do sử dụng phần cứng tốt hơn và ít cập nhật tham số hơn cho mỗi kỷ nguyên. Tìm hiểu thêm về các khái niệm điện toán song song .
  • Sử dụng bộ nhớ: Kích thước lô ảnh hưởng trực tiếp đến lượng bộ nhớ ( CPU RAM hoặc GPU VRAM) là bắt buộc. Các lô lớn hơn cần nhiều bộ nhớ hơn để lưu trữ dữ liệu, kích hoạt và gradient trong quá trình đào tạo. Các kỹ thuật để tối ưu hóa việc sử dụng bộ nhớ là rất quan trọng khi làm việc với kích thước lô lớn hoặc phần cứng hạn chế.
  • Tổng quát hóa mô hình: Việc lựa chọn kích thước lô ảnh hưởng đến quá trình tối ưu hóa và tổng quát hóa mô hình. Các lô nhỏ hơn đưa thêm nhiễu vào ước tính độ dốc được sử dụng trong các thuật toán như Stochastic Gradient Descent (SGD) . Nhiễu này đôi khi có thể hoạt động như một dạng chính quy hóa , giúp mô hình thoát khỏi các cực tiểu cục bộ sắc nét và có khả năng cải thiện khả năng tổng quát hóa của nó đối với dữ liệu chưa biết, do đó làm giảm tình trạng quá khớp . Ngược lại, các lô lớn hơn cung cấp ước tính chính xác hơn về độ dốc của toàn bộ tập dữ liệu nhưng có thể hội tụ thành các cực tiểu sắc nét hơn, đôi khi có thể cản trở quá trình tổng quát hóa, như đã thảo luận trong nghiên cứu như " Về đào tạo lô lớn cho học sâu ".
  • Tương tác tốc độ học: Kích thước lô thường tương tác với tốc độ học . Nhìn chung, kích thước lô lớn hơn cho phép và thường được hưởng lợi từ tốc độ học cao hơn. Các trình tối ưu hóa như Adam có thể giúp quản lý các tương tác này.

Chọn đúng kích thước lô

Việc lựa chọn kích thước lô tối ưu liên quan đến việc cân bằng hiệu quả tính toán, hạn chế bộ nhớ và khái quát hóa mô hình. Không có kích thước lô "tốt nhất" phổ quát; nó phụ thuộc rất nhiều vào tập dữ liệu cụ thể (ví dụ: COCO Dataset ), kiến trúc mô hình (như những mô hình được sử dụng trong Ultralytics YOLO ) và các tài nguyên phần cứng khả dụng. Các lựa chọn phổ biến thường nằm trong lũy thừa của 2 (ví dụ: 16, 32, 64, 128) do tối ưu hóa căn chỉnh bộ nhớ phần cứng. Thường cần phải thử nghiệm và các kỹ thuật như điều chỉnh siêu tham số . Các khuôn khổ như PyTorchTensorFlow cung cấp tính linh hoạt trong việc thiết lập kích thước lô.

Kích thước lô so với các thuật ngữ liên quan khác

Đ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:

  • Lặp lại/Bước: Một bản cập nhật duy nhất của các tham số mô hình dựa trên việc xử lý một lô dữ liệu. Điều này bao gồm một lần truyền tiếp, tính toán mất mát và truyền ngược (truyền ngược) .
  • Epoch: Một lần hoàn thành toàn bộ tập dữ liệu đào tạo. Nếu một tập dữ liệu có 1000 mẫu và kích thước lô là 100, một epoch bao gồm 10 lần lặp (1000 / 100 = 10).
  • Mini-Batch Gradient Descent: Phương pháp đào tạo phổ biến nhất, trong đó kích thước lô lớn hơn 1 nhưng nhỏ hơn tổng kích thước tập dữ liệu. Điều này trái ngược với Batch Gradient Descent (sử dụng toàn bộ tập dữ liệu, kích thước lô = N) và Stochastic Gradient Descent (sử dụng một mẫu duy nhất, kích thước lô = 1). Thuật ngữ "kích thước lô" thường đề cập đến kích thước được sử dụng trong mini-batch gradient descent. Tìm hiểu thêm về các biến thể gradient descent .

Ứng dụng trong thế giới thực

  • Phát hiện đối tượng: Khi đào tạo mô hình Ultralytics YOLO cho Nhiệm vụ phát hiện đối tượng , kích thước lô sẽ xác định số lượng hình ảnh được xử lý đồng thời. Đào tạo YOLO11 trên một tập dữ liệu lớn như ImageNet có thể yêu cầu điều chỉnh kích thước lô dựa trên GPU bộ nhớ. Kích thước lô lớn hơn (ví dụ: 64) có thể tăng tốc quá trình đào tạo trên mỗi kỷ nguyên trên GPU cao cấp, trong khi kích thước nhỏ hơn (ví dụ: 16) có thể cần thiết trên các thiết bị có ít bộ nhớ hơn hoặc có khả năng cải thiện khả năng khái quát hóa. Các nền tảng như Ultralytics HUB có thể giúp quản lý và theo dõi các thử nghiệm đào tạo này.
  • Xử lý ngôn ngữ tự nhiên (NLP): Đào tạo các mô hình ngôn ngữ lớn như BERT liên quan đến việc xử lý các chuỗi văn bản. Kích thước lô ảnh hưởng đến số lượng chuỗi được xử lý cùng nhau. Do các chuỗi có thể thay đổi về độ dài và các mô hình lớn, nên việc sử dụng bộ nhớ là một mối quan tâm đáng kể. Các kỹ thuật như tích lũy gradient (xử lý các lô nhỏ hơn theo trình tự trước khi cập nhật các tham số) thường được sử dụng để mô phỏng các kích thước lô lớn hơn khi bộ nhớ bị hạn chế. Khám phá các khái niệm trong các khóa học NLP .

Hiểu và lựa chọn cẩn thận kích thước lô là điều cơ bản để đào tạo hiệu quả các mô hình học sâu. Để nghiên cứu thêm, hãy xem xét các tài nguyên như Chuyên ngành học sâu hoặc khám phá các kỹ thuật như Chuẩn hóa lô đôi khi có thể làm giảm độ nhạy với kích thước lô.

Đọc tất cả