Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Epoch vs Iteration when training neural networks [closed]

What is the difference between epoch and iteration when training a multi-layer perceptron?

like image 991
mohammad Avatar asked Jan 20 '11 21:01

mohammad


People also ask

What is the difference between epoch and iteration?

Iteration is one time processing for forward and backward for a batch of images (say one batch is defined as 16, then 16 images are processed in one iteration). Epoch is once all images are processed one time individually of forward and backward to the network, then that is one epoch.

What do you understand by the terms batch iterations and epoch in training a neural network model?

The batch size is a number of samples processed before the model is updated. The number of epochs is the number of complete passes through the training dataset. The size of a batch must be more than or equal to one and less than or equal to the number of samples in the training dataset.

What is an epoch when training a neural network?

Epochs. One Epoch is when an ENTIRE dataset is passed forward and backward through the neural network only ONCE. Since one epoch is too big to feed to the computer at once we divide it in several smaller batches.

What is a training iteration?

An iteration is a term used in machine learning and indicates the number of times the algorithm's parameters are updated. Exactly what this means will be context dependent. A typical example of a single iteration of training of a neural network would include the following steps: processing the training dataset batch.


2 Answers

In the neural network terminology:

  • one epoch = one forward pass and one backward pass of all the training examples
  • batch size = the number of training examples in one forward/backward pass. The higher the batch size, the more memory space you'll need.
  • number of iterations = number of passes, each pass using [batch size] number of examples. To be clear, one pass = one forward pass + one backward pass (we do not count the forward pass and backward pass as two different passes).

For example: if you have 1000 training examples, and your batch size is 500, then it will take 2 iterations to complete 1 epoch.

FYI: Tradeoff batch size vs. number of iterations to train a neural network


The term "batch" is ambiguous: some people use it to designate the entire training set, and some people use it to refer to the number of training examples in one forward/backward pass (as I did in this answer). To avoid that ambiguity and make clear that batch corresponds to the number of training examples in one forward/backward pass, one can use the term mini-batch.

like image 131
Franck Dernoncourt Avatar answered Oct 18 '22 00:10

Franck Dernoncourt


Epoch and iteration describe different things.


Epoch

An epoch describes the number of times the algorithm sees the entire data set. So, each time the algorithm has seen all samples in the dataset, an epoch has been completed.

Iteration

An iteration describes the number of times a batch of data passed through the algorithm. In the case of neural networks, that means the forward pass and backward pass. So, every time you pass a batch of data through the NN, you completed an iteration.


Example

An example might make it clearer.

Say you have a dataset of 10 examples (or samples). You have a batch size of 2, and you've specified you want the algorithm to run for 3 epochs.

Therefore, in each epoch, you have 5 batches (10/2 = 5). Each batch gets passed through the algorithm, therefore you have 5 iterations per epoch. Since you've specified 3 epochs, you have a total of 15 iterations (5*3 = 15) for training.

like image 20
Khon Lieu Avatar answered Oct 18 '22 01:10

Khon Lieu