Epoch

What is Epoch?

In machine learning, an epoch represents one complete pass of the entire training dataset through the learning algorithm. Since training datasets are often too large to be fed into a model at once, they are typically broken down into smaller 'batches.' The process of training on one batch is called an 'iteration.' Therefore, one epoch is completed after the model has iterated through all the batches that make up the entire dataset. The number of epochs is a key hyperparameter in model training, as it determines how many times the model 'sees' the full dataset.

Where did the term "Epoch" come from?

The term 'epoch' is standard terminology in the field of iterative machine learning and deep learning. It arose from the need to describe the process of repeatedly training a model on a dataset to allow it to learn the underlying patterns. The concept became particularly important with the advent of neural networks and gradient-based optimization methods, where learning is an iterative process of adjusting model parameters over many passes of the data.

How is "Epoch" used today?

The concept of an epoch is fundamental to training virtually all modern machine learning models, from simple linear regressions to large-scale neural networks. Models are trained for multiple epochs until their performance on a validation dataset stops improving, a point known as convergence. The trade-off is that too few epochs can lead to underfitting (the model hasn't learned enough), while too many can lead to overfitting (the model has memorized the training data and performs poorly on new data). The term is ubiquitous in machine learning frameworks like TensorFlow, PyTorch, and scikit-learn.

Related Terms