Epochs là gì

Một epoch được định nghĩa là một lần đi qua toàn bộ tập huấn luyện trong khi huấn luyện một mô hình học máy.

Bạn muốn trích dẫn bài này:
-----

"Epoch," Trí tuệ nhân tạo, Ngày xuất bản: 09/10/2019, URL: //trituenhantao.io/tu-dien-thuat-ngu/epoch/, Ngày truy cập: 11/12/2022.

Copy

Bài viết có liên quan

Phản hồi hoàn thiện nội dung

  • Issue: *
  • Your Name: *
  • Your Email: *

  • Details: *

Gửi

Related Articles:

  • Hướng dẫn Fine-Tuning BERT với PyTorch
  • TensorFlow.js – Nhận diện chữ số viết tay [Phần 2]
  • Câu hỏi phỏng vấn AI cơ bản

« Back to Glossary Index

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

Để hiểu rõ sự khác biệt giữa chúng, các bạn cần tìm hiểu một số khái niệm trong machine learning như Gradient Descent.

Bạn đang xem: Batch size là gì

Định nghĩa 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].

Trong đó:..* Gradient có nghĩa là tỷ lệ của độ nghiêm của đường dốc.

..* Descent là từ viết tắt của decending - nghĩa là giảm.

Thuật toán sẽ lặp đi lặp lại nhiều lần để tìm ra được kết quả tối ưu.



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

Thuật toán gradient Descent có một tham số là learning rate. Như hình phía trên bên trái, ban đầu bước nhảy khá lớn, nghĩa là giá trị learning rate 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ị learning rate nhỏ dần theo.

Chúng ta sử dụng thuật ngữ epochs, batch size, iterations khi dữ liệu của chúng ta quá [rất] lớn [vd 10 triệu mẫu]. Lúc này các khái niệm trên mới trở nên rõ ràng, còn với trường hợp dữ liệu nhỏ thì chúng khá tương tự nhau.

Khái niện Epoch

Một Epoch được tính là khi chúng ta đưa tất cả dữ liệu vào mạng neural network 1 lần.

Khi dữ liệu quá lớn, chúng ta không thể đưa hết mỗi lần tất cả tập dữ liệu vào để huấn luyện được. Buộc lòng chúng ta phải chia nhỏ tập dữ liệu ra thành các batch [size nhỏ hơn].

Xem thêm: Patch Panel Là Gì ? Phân Loại Patch Panel Amp Patch Panel Là Gì

Câu trả lời ở đây là tại vì chúng ta đang dùng thuật toán tối ưu là Gradient Descent. Thuật toán này đòi hỏi chúng ta phải đem toàn bộ dữ 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à dữ liệu sẽ bị underfitting[như hình mô tả bên dưới].



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 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].

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

epoch /'i:pɔk/
  • danh từ
    • sự bắt đầu của một kỷ nguyên [trong lịch sử, trong đời...]
      • to make an epoch: mở ra một kỷ nguyên
  • recent epoch: thời đại hiện nay
  • ['i:pɔk]

    o   thế; một phân vị thời gian của một kỷ, ví dụ thế Mioxen

    o   thế, thời kỳ

    §   drift epoch : thời kỳ băng hà trôi dạt

    §   glacial epoch : thời kỳ băng hà

    §   recent epoch : thời đại hiện nay

    Xem thêm: era, date of reference

    Khi mới bắt đầu bước vào thế giới của ML/DL chúng ta sẽ bắt gặp các thuật ngữ Epoch - Batch size và Iterations. Và sẽ cảm thấy bối rối vì chúng khá giống nhau, nhưng thực tế là chúng khác xa nhau.Bạn đang xem: Tham số epoch là gì, what is batch size in neural network

    Để hiểu rõ sự khác biệt giữa chúng, các bạn cần tìm hiểu một số khái niệm trong machine learning như Gradient Descent.

    Bạn đang xem: Epoch là gì

    Định nghĩa 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].

    Trong đó:..* Gradient có nghĩa là tỷ lệ của độ nghiêm của đường dốc.

    ..* Descent là từ viết tắt của decending - nghĩa là giảm.

    Thuật toán sẽ lặp đi lặp lại nhiều lần để tìm ra được kết quả tối ưu.



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

    Thuật toán gradient Descent có một tham số là learning rate. Như hình phía trên bên trái, ban đầu bước nhảy khá lớn, nghĩa là giá trị learning rate 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ị learning rate nhỏ dần theo.

    Chúng ta sử dụng thuật ngữ epochs, batch size, iterations khi dữ liệu của chúng ta quá [rất] lớn [vd 10 triệu mẫu]. Lúc này các khái niệm trên mới trở nên rõ ràng, còn với trường hợp dữ liệu nhỏ thì chúng khá tương tự nhau.

    Khái niện Epoch

    Một Epoch được tính là khi chúng ta đưa tất cả dữ liệu vào mạng neural network 1 lần.

    Khi dữ liệu quá lớn, chúng ta không thể đưa hết mỗi lần tất cả tập dữ liệu vào để huấn luyện được. Buộc lòng chúng ta phải chia nhỏ tập dữ liệu ra thành các batch [size nhỏ hơn].

    Tại sao phải dùng hơn 1 Epoch.

    Xem thêm: Soạn Tiếng Anh 11 Unit 6 Sách Mới, Getting Started Unit 6: Global Warming

    Câu trả lời ở đây là tại vì chúng ta đang dùng thuật toán tối ưu là Gradient Descent. Thuật toán này đòi hỏi chúng ta phải đem toàn bộ dữ 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à dữ liệu sẽ bị underfitting[như hình mô tả bên dưới].



    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 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].

    Chúng ta có thể dùng 1 epoch để huấn luyện mô hình, với điều kiệ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ó câu trả lời cho câu hỏi này. Phụ thuộc hoàn toàn vào tập dữ liệu của bạn đang có.

    Batch Size

    Batch size là số lượng mẫu dữ liệu trong một batch.

    Ở đây, khái niệm batch size và số lượng batch[number of batch] là hoàn toàn khác nhau.

    Như đã nói ở trên, chúng ta không thể đưa hết toàn bộ dữ liệu vào huấn luyện trong 1 epoch, vì vậy chúng ta cần phải chia tập dữ liệu thành các phần [number of batch], mỗi phần có kích thước là batch size.

    Iterations

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

    Xem thêm: Hệ Toạ Độ Trong Không Gian Bài Tập, Hệ Tọa Độ Trong Không Gian

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

    Chủ Đề