Sau một năm rưỡi, tôi trở lại câu trả lời của mình vì câu trả lời trước đó của tôi là sai.
Kích thước hàng loạt tác động học tập đáng kể. Điều gì xảy ra khi bạn đặt một lô qua mạng của bạn là bạn tính trung bình độ dốc. Khái niệm là nếu kích thước lô của bạn đủ lớn, điều này sẽ cung cấp ước tính đủ ổn định về độ dốc của bộ dữ liệu đầy đủ. Bằng cách lấy mẫu từ tập dữ liệu của bạn, bạn ước tính độ dốc trong khi giảm đáng kể chi phí tính toán. Bạn càng đi thấp, ước tính của bạn sẽ càng kém chính xác, tuy nhiên trong một số trường hợp, các gradient ồn ào này thực sự có thể giúp thoát khỏi cực tiểu địa phương. Khi quá thấp, trọng lượng mạng của bạn chỉ có thể nhảy xung quanh nếu dữ liệu của bạn bị nhiễu và nó có thể không thể học hoặc nó hội tụ rất chậm, do đó ảnh hưởng tiêu cực đến tổng thời gian tính toán.
Một ưu điểm khác của việc tạo khối là tính toán GPU, GPU rất giỏi trong việc song song hóa các tính toán xảy ra trong các mạng thần kinh nếu một phần của tính toán giống nhau (ví dụ, nhân ma trận lặp lại trên cùng một ma trận trọng số của mạng của bạn). Điều này có nghĩa là một kích thước lô 16 sẽ mất ít hơn hai lần số lượng của một lô là 8.
Trong trường hợp bạn cần kích thước lô lớn hơn nhưng nó không phù hợp với GPU của bạn, bạn có thể cung cấp một lô nhỏ, lưu ước tính độ dốc và cung cấp một hoặc nhiều lô, sau đó thực hiện cập nhật trọng lượng. Bằng cách này, bạn có được độ dốc ổn định hơn vì bạn đã tăng kích thước lô ảo của mình.
SAI, TRẢ LỜI TRẢ LỜI: [[[Không, trung bình batch_size chỉ ảnh hưởng đến tốc độ học tập của bạn chứ không ảnh hưởng đến chất lượng học tập. Lot_sizes cũng không cần phải là lũy thừa 2, mặc dù tôi hiểu rằng một số gói nhất định chỉ cho phép sức mạnh là 2. Bạn nên cố gắng lấy batch_size của mình ở mức cao nhất có thể mà vẫn phù hợp với bộ nhớ của GPU để đạt tốc độ tối đa có thể .]]]]