Bỏ qua, tới nội dung chính
Luxara Academy

Bài archive — trả lời một câu hỏi

Mini-batch 32 nghĩa là gì?

Vì sao không cập nhật trọng số sau mỗi thư một lần hoặc sau cả tập một lần?

Mini-batch là nhóm mẫu dùng chung để tính gradient trước mỗi bước cập nhật. Với tập 128 thư và batch_size = 32, mỗi epoch có 128/32=4128 / 32 = 4 bước — mỗi bước trung bình mất mát và gradient trên 32 thư.

So sánh ba cách:

  • Online (batch 1): 128 bước/epoch, nhiễu cao, chậm trên phần cứng vector hóa.
  • Full batch (128): một gradient/epoch, ổn định nhưng tốn bộ nhớ, khó thoát cực trị xấu trên tập lớn.
  • Mini-batch 32: cân bằng — trên tập 1 797 ảnh chữ số của khóa sau này, 1797/32≈571797 / 32 \approx 57 bước/epoch.
python
n, batch = 128, 32
assert n % batch == 0
steps_per_epoch = n // batch  # 4

Cùng hạt giống và cùng thứ tự xáo trộn, chạy lại phải cho cùng chuỗi mất mát — đó là lý do khóa ghim seed khi dạy batch.