Epoch
Toàn bộ một lần chạy tập dữ liệu training thông qua thuật toán được gọi là một epoch trong học máy.
Epoch là gì?
Trong thế giới của mạng nơ-ron nhân tạo (artificial neural network), một epoch là một vòng lặp của toàn bộ tập dữ liệu training. Việc đào tạo một mạng nơ-ron thường mất nhiều epoch. Nói một cách đơn giản, nếu chúng ta cung cấp cho mạng nơ-ron dữ liệu training theo nhiều mẫu trong hơn một epoch, thì khả năng khái quát hóa có thể được cải thiện khi chúng ta cung cấp cho nó một đầu vào mới không quan sát được (dữ liệu thử nghiệm).
Các tham số cơ bản của tập dữ liệu của mô hình sẽ được thay đổi theo từng epoch. Do đó, thuật toán học sẽ giảm dần độ dốc hàng loạt được đặt tên sau từng đợt của epoch. Kích thước đợt (batch) thường là 1 hoặc lớn hơn, và nó luôn là một giá trị số nguyên trong số epoch. Ngoài ra, nó có thể được biểu diễn dưới dạng một vòng lặp for (for-loop) với một số nhất định, trong đó mỗi tuyến vòng lặp đi qua toàn bộ tập dữ liệu training.
Khi giá trị "kích thước đợt" mẫu được cung cấp là 1, vòng lặp for chứa một lớp cho phép nó chạy qua một mẫu được chỉ định trong một lô. Việc thiết lập số lượng epoch mà một mô hình sẽ thực thi để đào tạo (train) phụ thuộc vào một số tham số được liên kết với cả dữ liệu và mục tiêu của mô hình. Để chuyển quy trình này thành một thuật toán, thông thường cần phải hiểu thấu đáo về dữ liệu.
Khi một tập dữ liệu hoàn chỉnh được truyền đi rồi quay lại qua mạng nơ-ron, nó được gọi là Epoch. Chúng ta chia epoch thành nhiều đợt nhỏ hơn vì một epoch quá lớn để gửi tất cả đến máy tính cùng một lúc.
Bên trong mạng
blockchain, một epoch được coi là
một khoảng thời gian cụ thể.
Khoảng thời gian này được sử dụng để chỉ định thời điểm các sự kiện cụ thể trong mạng blockchain sẽ xảy ra, chẳng hạn như khi nào các ưu đãi sẽ được phân phối hoặc khi nào một nhóm trình xác thực (validator) mới sẽ được chỉ định để xác thực các giao dịch. Mỗi giao thức blockchain sẽ xác định khoảng thời gian đó theo cách khác nhau. Nó thường được gọi là thời gian cần thiết để hoàn thành một lượng khối nhất định trên chuỗi.
Ví dụ, trong giao thức
Ethereum (ETH), một epoch là thời gian cần thiết
để hoàn thành 30.000 khối trên chuỗi. Độ dài của một epoch được xác định bởi tốc độ xử lý các giao dịch và đạt được các thỏa thuận, tuy nhiên, vào khoảng 100 giờ, tốc độ này vẫn tương đối ổn định.
Một ví dụ khác là hệ thống blockchain Cardano, trong đó một epoch được gọi là một đơn vị thời gian.
Cardano (ADA) sử dụng Ouroboros Praos, một phương thức đồng thuận
bằng chứng cổ phần (Proof-of-Stake) (PoS) tùy chỉnh để chia blockchain thành
các epoch 5 ngày. Sau đó, các epoch được chia thành các vị trí (slot), trong đó mỗi slot bao gồm các khoảng thời gian 20 giây. Mỗi epoch đang
có sẵn 432.000 slot (5 ngày).