Epoch, Batch size và Iterations

Trong quá trình học Machine Learning và Deep Learning, chúng ta thường gặp các khái niệm như Epoch, Batch size và Iterations. Nhưng bạn đã hiểu rõ về sự khác nhau giữa chúng chưa? Hãy cùng tìm hiểu để không còn nhầm lẫn nữa nhé.

Epoch, Batch size và Iterations: Định nghĩa

Trước khi đi vào chi tiết, chúng ta cần hiểu về thuật toán Gradient Descent – một phương pháp quan trọng trong Machine Learning. Đầu tiên, các tham số của mạng được khởi tạo và dữ liệu được truyền vào mạng Neural Network. Sau đó, thông qua quá trình forward propagation, mạng xác định đầu ra dự đoán và so sánh với nhãn ban đầu để tính toán hàm mất mát. Tiếp theo, thông qua back propagation, các tham số của mạng được cập nhật. Tất cả những quá trình này sẽ được lặp đi lặp lại để giảm thiểu hàm mất mát đến mức thấp nhất có thể.

Có ba biến thể chính của Gradient Descent:

  1. Batch Gradient Descent: Sử dụng toàn bộ dữ liệu huấn luyện cho mỗi lần cập nhật tham số.
  2. Stochastic Gradient Descent: Sử dụng chỉ một dữ liệu huấn luyện để cập nhật tham số.
  3. Mini-Batch Gradient Descent: Sử dụng một số lượng nhỏ dữ liệu (Batch size) để cập nhật tham số trong mỗi lần.

Các thuật toán này khác nhau ở số lượng dữ liệu được sử dụng cho mỗi lần cập nhật tham số.

Epoch, Batch size và Iterations: Khái niệm cụ thể

Để hiểu rõ hơn về các khái niệm này, chúng ta cần nắm vững ý nghĩa của từng thuật ngữ:

  • Batch size: Đại diện cho số lượng dữ liệu sử dụng trong mỗi lần cập nhật tham số của mô hình Mini-Batch Gradient Descent.
  • Epoch: Là một lần duyệt qua toàn bộ dữ liệu huấn luyện.
  • Iterations: Biểu thị số lượng các Batch size mà mô hình cần duyệt trong một epoch.

Ví dụ, nếu tập huấn luyện có 32.000 dữ liệu và Batch size được đặt là 32 (mỗi lần cập nhật sẽ sử dụng 32 dữ liệu), thì số lượng Iterations cần để hoàn thành một epoch sẽ là 32.000/32 = 1000. Thông thường, các giá trị phổ biến cho Batch size là 32, 64, 128, 256… (có dạng 2^n để tăng tốc tính toán). Đối với Stochastic Gradient Descent, Batch size = số lượng dữ liệu huấn luyện và đối với Batch Gradient Descent, Batch size = 1.

Một số lưu ý quan trọng

Trong quá trình machine learning, có một số lưu ý cần nhớ về Batch size và sự lựa chọn các phương pháp Gradient Descent:

  • Nếu tập huấn luyện quá lớn và không thể load toàn bộ dữ liệu một lần để cập nhật, chúng ta có thể sử dụng Batch size nhỏ hơn.
  • Batch size càng lớn, tính toán vectorization sẽ được tận dụng tốt hơn.
  • Batch size = 1 (Stochastic Gradient Descent) giúp mô hình hội tụ nhanh hơn, tuy nhiên hàm mất mát sẽ dao động quanh điểm tối ưu hơn là hội tụ về nó và không tận dụng được tính toán vectorization.

Kết luận

Hy vọng qua bài viết này, bạn đã hiểu rõ hơn về các khái niệm Epoch, Batch size và Iterations trong Machine Learning. Nếu có câu hỏi hay đóng góp, hãy để lại bình luận để chúng ta cùng thảo luận nhé!

FEATURED TOPIC