Phân Biệt Epoch – Batch Size Và Iterations

Chúng tôi rất vui mừng được chia sẻ kiến thức sâu sắc về từ khóa Epoch la gi và hy vọng rằng nó sẽ hữu ích cho bạn đọc. Bài viết tập trung trình bày ý nghĩa, vai trò và ứng dụng của từ khóa này trong việc tối ưu hóa nội dung trang web và chiến dịch tiếp thị trực tuyến. Chúng tôi cung cấp các phương pháp tìm kiếm, phân tích và lựa chọn từ khóa phù hợp, cùng với các chiến lược và công cụ hữu ích. Hy vọng rằng thông tin mà chúng tôi chia sẻ sẽ giúp bạn xây dựng chiến lược thành công và thu hút lưu lượng người dùng. Xin chân thành cảm ơn sự quan tâm và hãy tiếp tục theo dõi blog của chúng tôi để cập nhật những kiến thức mới nhất.

Khi mới khai mạc nhảy vào thế giới của ML/DL tất cả chúng ta sẽ gặp gỡ các thuật ngữ Epoch – Batch size và Iterations. Và sẽ cảm thấy bối rối vì chúng tương đối giống nhau, nhưng thực tế là chúng khác xa nhau.

Bạn Đang Xem: Phân Biệt Epoch – Batch Size Và Iterations

Để cho dễ hình dung, mình lấy ví dụ về việc ăn cơm. Tất cả chúng ta không thể ăn một lần hết một chén cơm được, mà phải mỗi lần ăn phải xúc từng muỗn ăn. Xúc tuần tự khi hết bát thứ nhất, tất cả chúng ta lại ăn tiếp bát thứ hai, bát thứ 3 … đến khi no, kết thúc buổi tiệc.

Liên tưởng giữa việt ăn cơm và các thuật ngữ epoch, batch size, iteration như sau:

  • batch size: Số hạt cơm trong một lần xúc.

  • Iteration : Số lần xúc cơm hết 1 bát.

  • epoch : Số bát cơm bạn ăn trong một buổi tiệc.

Hết phần diễn giải bằng ví dụ. Đến phần viết hàn lâm phía dưới, nếu như khách hàng nào đã hiểu rồi thì có thể bỏ qua, bạn nào muốn đào sâu thêm lý do thì xem mình diễn giải phía dưới.

Để nắm rõ sự khác biệt giữa chúng, các bạn cần phải tìm hiểu một khái niệm vô cùng quan trọng trong machine learning – Gradient Descent.

Khái niệm ngắn gọn của Gradient Descent:

Gradient Descent là thuật toán lặp tối ưu (iteractive optimization algorithm) được sử dụng trong machine learning để tìm kết quả tốt nhất (minima of a curve).

Xem Thêm : Bài 3: Khái niệm về nhóm chức, lập công thức cấu tạo

Trong số đó:

..* Gradient có tức thị tỷ lệ của độ nghiêng của đường dốc.

..* Descent là từ viết tắt của decending – tức thị giảm.

Thuật toán sẽ lặp đi tái diễn nhiều lần để tìm ra được cực tiểu.

Hình ảnh

https://medium.com/onfido-tech/machine-learning-101-be2e0a86c96a Nguồn ảnh

Các bạn quan sát hình phía trên bên trái, thuở đầu, bước nhảy khá lớn, tức thị giá trị cost lớn, và sau một vài lần lặp, điểm chấm đen đi xuống dần, và giá trị cost nhỏ dần theo. Mô hình quy tụ từ từ đến khi cost <= epselon

Tất cả chúng ta sử dụng thuật ngữ epochs, batch size, iterations khi tất cả chúng ta cần phải trainning mô hình machine learning, mà tập trainset của tất cả chúng ta quá (rất) lớn (vd 10 triệu mẫu, ví dụ train mô hình nhận dạng khuôn mặt với tập ms-celeb-1m). Lúc này các khái niệm trên mới trở thành rõ ràng, còn với trường hợp tài liệu nhỏ thì chúng tương đối tương tự nhau.

Một Epoch được tính là lúc tất cả chúng ta đưa tất cả tài liệu trong tập train vào mạng neural network 1 lần. Ví dụ, bạn có 10 triệu bức hình trong tập train, bạn cho toàn bộ số hình đó là input của mô hình 3 lần, suy ra bạn đã train được 3 epoch.

Khi tài liệu quá rộng, tất cả chúng ta không thể đưa hết mỗi lần tất cả tập tài liệu vào để huấn luyện được, vì bạn cần phải một siêu máy tính có lượng RAM và GPU RAM cực lớn để lưu trữ toàn bộ hình ảnh trên, điều này là bất khả thi khi đối chiếu với người dùng thường ngày, phòng lab nhỏ. Buộc lòng tất cả chúng ta phải chia nhỏ tập tài liệu ra, và khái niệm batch hình thành.

Batch size là số lượng mẫu tài liệu trong một lần huấn luyện. Ví dụ, trong bài toán phân loại chó mèo, chọn batch size =32, nghĩa là 1 trong lần lặp ta sẽ cho tình cờ 32 bức nhìn chó hoặc mèo chạy Viral tiến trong mạng neural network. tiếp theo bạn quăng tiếp 32 hình tình cờ, không lặp với những hình trước đó, vào mạng, quăng đến khi nào không còn hình nào có thể quăng vào nữa -> bạn hoàn thành 1 epoch.

Iterations

Xem Thêm : TÌNH NGHĨA ANH EM LÀ GÌ

Iterations là số lượng batchs cần để hoàn thành 1 epoch.

Ví dụ tất cả chúng ta có tập tài liệu có 20,000 mẫu, batch size là 500, vậy tất cả chúng ta cần 40 lần lặp (iteration) để hoàn thành 1 epoch.

Vì sao phải dùng hơn 1 Epoch.

Lời giải đáp ở đây là tại vì tất cả chúng ta đang dùng thuật toán tối ưu là Gradient Descent. Thuật toán này yên cầu tất cả chúng ta phải đem toàn bộ tài liệu qua mạng một vài lần để tìm được kết quả tối ưu. Vì vậy, dùng 1 epoch thật sự không đủ để tìm được kết quả tốt nhất.

Với việc chỉ sử dụng 1 lần lặp, xác suất rất cao là tài liệu sẽ bị underfitting(như hình mô tả phía dưới).

Hình ảnh

Khi số lần lặp tăng dần, trạng thái của mô hình sẽ chuyển dần từ underfitting sang optimal và sau đó là overfitting (thường là vậy, trừ khi mô hình huấn luyện của bạn đang sử dụng quá đơn giản, quá ít trọng số thì chúng không thể nào overfitting nổi).

Tất cả chúng ta có thể dùng 1 epoch để huấn luyện mô hình, với xét tuyển là ta sử dụng thuật toán tối ưu không phải là gradient descent.

Số lần lặp tối ưu là bao nhiêu?

Tiếc rằng không có lời đáp cho thắc mắc này. Phụ thuộc hoàn toàn vào nhiều yếu tố. Mục tiêu chung là ta sẽ lặp đến khi nào quy tụ. Có một số phương pháp giúp tất cả chúng ta xác định mô hình đã đứng ở ngưỡng cực tiểu cục bộ rồi, không thể xuống hơn được nữa.

Các chúng ta có thể tìm hiểu với từ khóa early stopping.

Cảm ơn các bạn đã theo dõi nội dung bài viết.

Nguồn: https://towardsdatascience.com/epoch-vs-iterations-vs-batch-size-4dfb9c7ce9c9

You May Also Like

About the Author: v1000