Como os modelos realmente aprendem, da descida do gradiente simples ao Adam
O acúmulo de gradiente simula um batch maior quando a memória é limitada. Em vez de dar um passo depois de cada micro-batch, você soma os gradientes de vários micro-batches e depois dá um único passo do otimizador.
O tamanho efetivo do batch é o tamanho do micro-batch vezes o número de passos de acúmulo. Isso permite que uma GPU pequena se comporte mais como se tivesse treinado com um batch maior.
Um barril de água da chuva captura a ideia. Uma xícara pequena não consegue regar o jardim inteiro de uma vez, então você despeja várias xícaras num barril e depois usa a quantidade do barril. O acúmulo de gradiente reúne várias contribuições pequenas de gradiente antes de uma atualização. A figura abaixo é literalmente esse processo: cada novo termo é uma xícara, e as barras que sobem são o barril enchendo em direção ao seu total. O acúmulo de gradiente é uma soma parcial de gradientes que você resgata como um único passo.