Épocas, batches e mini-batches

Épocas, batches e mini-batches1. Questões2. O que é uma "época"?3. Quantas épocas devo usar?Heurísticas comuns4. Quando executar o backpropagation?a) Gradiente Descendente em Lote (Batch Gradient Descent)b) Gradiente Descendente Estocástico (SGD - Stochastic Gradient Descent)c) Mini-Batch Gradient Descent (o mais comum hoje) 5. Se "atraso" o backpropagation, o desempenho é afetado?Caso 1: Aumentar o tamanho do mini-batchCaso 2: Atraso dentro de uma época (ex.: atualização a cada 2 mini-batches)Caso 3: Atrasar várias épocas sem backpropagation 6. Critérios para definir a frequência do backpropagationResumo


1. Questões

Uma questão comum que assola quem inicia no ramo de RNs é: ﹣ Quantas épocas se deve usar para treinar uma RN?

Outras perguntas: ﹣ Existe alguma heurística para definir quando o algoritmo de backpropagation deve ser executado e os pesos da rede atualizados? ﹣ Se o algoritmo de backpropagation "demora" para ser executado o desempenho da rede pode ser comprometido?

Seguem-se algumas respostas...

2. O que é uma "época"?

Uma época (epoch) corresponde a uma passagem completa por todo o conjunto de dados de treinamento. Ou seja, durante uma época, a rede neural processa todos os exemplos de treinamento pelo menos uma vez, atualizando seus pesos (parâmetros) conforme a estratégia de treinamento adotada (mais sobre isso adiante).

Exemplo: Se você tem 1.000 amostras de treinamento e um batch size de 100, uma época consistirá em 10 iterações (já que ).

3. Quantas épocas devo usar?

Não existe um número fixo, pois depende de fatores como:

Heurísticas comuns

4. Quando executar o backpropagation?

Depende do método de treino: O backpropagation é o algoritmo que calcula os gradientes para atualizar os pesos da rede, mas quando ele é aplicado depende da estratégia de treinamento:

a) Gradiente Descendente em Lote (Batch Gradient Descent)

b) Gradiente Descendente Estocástico (SGD - Stochastic Gradient Descent)

c) Mini-Batch Gradient Descent (o mais comum hoje)

5. Se "atraso" o backpropagation, o desempenho é afetado?

Depende do que você chama de "atraso":

Caso 1: Aumentar o tamanho do mini-batch

Caso 2: Atraso dentro de uma época (ex.: atualização a cada 2 mini-batches)

Caso 3: Atrasar várias épocas sem backpropagation

 

6. Critérios para definir a frequência do backpropagation

Resumo

  1. Use mini-batch (tamanho 32-128) para equilibrar velocidade e estabilidade.
  2. Número de épocas: Comece com 10-50 e use early stopping se o erro de validação parar de cair.
  3. Backpropagation: Execute a cada mini-batch (não espere acumular muitos dados).
  4. Se o desempenho estruggle, experimente reduzir o batch size ou ajustar a taxa de aprendizado.

Se você estiver usando frameworks como PyTorch ou TensorFlow, isso é gerenciado automaticamente pelos DataLoaders (que dividem os dados em mini-batches).


Próximo tópico sugerido >> Definições de épocas e batches no Keras, com eventual atualização nos parâmetros de treino.


Fernando Passold, em 10/06/2025