Mini-batch gradient descent

Như đã đề cập, mini-batch gradient descent (mini-BGD) là một thuật toán hỗ trợ training neural network. Thuật toán này kết hợp ý tưởng từ Stochastic gradient descent (SGD) và Batch gradient descent (BGD).

Với mini-BGD, training dataset sẽ được chia thành nhiều gói (batch) khác nhau để xử lý. Sau khi xử lý tất cả dữ liệu trong mỗi batch, cost sẽ được tính toán và model sẽ được cập nhật tương ứng.
Với cách tiếp cận này, tần suất cập nhật của model sẽ không quá nhiều như SGD và lượng dữ liệu cần phải xử lý trong một lần cũng nhỏ hơn BGD. Với khả năng cân bằng cùng việc cho phép chúng ta tuỳ chỉnh này, mini-BGD là thuật toán thường được sử dụng, đặc biệt trong deep learning. Tuy nhiên, chúng ta cũng cần lưu ý rằng việc tuỳ chỉnh batch-size sẽ ảnh hưởng trực tiếp đến kết quả:
– Batch-size nhỏ giúp model học (converge) nhanh hơn nhưng dễ phát sinh nhiễu và thiếu ổn định.
– Batch-size lớn khiến model học (coverge) chậm hơn nhưng sẽ ổn định và training chính xác hơn.

Để sử dụng mini-BGD, chúng ta sẽ cần chú ý lựa chọn tham số batch-size phù hợp. Giá trị này sẽ tương ứng với luỹ thừa của 2, như 32, 64, hay 128. Thông thường, chúng ta sẽ bắt đầu ở giá trị 32 và tăng/giảm tuỳ theo nhu cầu.
Đã có khá nhiều nghiên cứu chỉ ra rằng 32 là một giá trị thích hợp cho batch-size của thuật toán này. Theo nghiên cứu của Dominic Masters và Carlo Luschi:

The presented results confirm that using small batch sizes achieves the best training stability and generalization performance, for a given computational cost, across a wide range of experiments. In all cases the best results have been obtained with batch sizes m = 32 or smaller, often as small as m = 2 or m = 4.

Tài liệu tham khảo:
A Gentle Introduction to Mini-Batch Gradient Descent and How to Configure Batch Size
Gradient Descent For Machine Learning
– Yoshua Bengio, Practical recommendations for gradient-based training of deep architectures, 2012.
– Dominic Masters, Carlo Luschi, Revisiting Small Batch Training for Deep Neural Networks, 2018.

Leave a comment