Các kích thước hàng loạt định nghĩa số lượng mẫu sẽ được truyền qua mạng.
Chẳng hạn, giả sử bạn có 1050 mẫu đào tạo và bạn muốn thiết lập batch_size
bằng 100. Thuật toán lấy 100 mẫu đầu tiên (từ thứ 1 đến thứ 100) từ tập dữ liệu đào tạo và huấn luyện mạng. Tiếp theo, nó lấy 100 mẫu thứ hai (từ thứ 101 đến thứ 200) và huấn luyện lại mạng. Chúng tôi có thể tiếp tục làm thủ tục này cho đến khi chúng tôi tuyên truyền tất cả các mẫu thông qua mạng. Vấn đề có thể xảy ra với bộ mẫu cuối cùng. Trong ví dụ của chúng tôi, chúng tôi đã sử dụng 1050 không chia hết cho 100 mà không có phần còn lại. Giải pháp đơn giản nhất là lấy 50 mẫu cuối cùng và huấn luyện mạng.
Ưu điểm của việc sử dụng cỡ lô <số lượng tất cả các mẫu:
Nó đòi hỏi ít bộ nhớ hơn. Vì bạn đào tạo mạng bằng cách sử dụng ít mẫu hơn, quy trình đào tạo tổng thể đòi hỏi ít bộ nhớ hơn. Điều đó đặc biệt quan trọng nếu bạn không thể điều chỉnh toàn bộ tập dữ liệu trong bộ nhớ của máy.
Thông thường các mạng đào tạo nhanh hơn với các đợt nhỏ. Đó là bởi vì chúng tôi cập nhật các trọng số sau mỗi lần truyền. Trong ví dụ của chúng tôi, chúng tôi đã nhân giống 11 đợt (10 trong số đó có 100 mẫu và 1 có 50 mẫu) và sau mỗi đợt chúng tôi đã cập nhật các tham số của mạng. Nếu chúng tôi sử dụng tất cả các mẫu trong quá trình truyền, chúng tôi sẽ chỉ thực hiện 1 cập nhật cho tham số của mạng.
Nhược điểm của việc sử dụng cỡ lô <số lượng của tất cả các mẫu:
- Lô càng nhỏ, ước tính độ dốc sẽ càng kém chính xác. Trong hình bên dưới, bạn có thể thấy rằng hướng của gradient lô nhỏ (màu xanh lá cây) dao động nhiều hơn so với hướng của gradient lô đầy đủ (màu xanh lam).
Stochastic chỉ là một lô nhỏ có giá trị batch_size
bằng 1. Trong trường hợp đó, độ dốc thay đổi hướng thậm chí thường xuyên hơn so với độ dốc của lô nhỏ.