Mini-batch Gradient Descent

Otra alternativa es la que ofrece la versión "Mini-batch": si hacer pasar todas las muestras en cada iteración exige demasiados recursos (aunque devuelva el resultado más exacto de la función de error) y hacer pasar tan solo una muestra es la solución más rápida aunque el resultado de la función de error sea solo una aproximación al valor real ¿por qué no plantearse una solución intermedia y calcular el error cada n muestras?

Mini-batch Gradient Descent hace exactamente esto: calcula el gradiente no a partir de todo el conjunto de entrenamiento ni a partir de una única muestra, sino a partir de un pequeño subconjunto aleatorio de muestras llamado mini-batch. Este algoritmo tarda menos en alcanzar el mínimo que Stochastic Gradient Descent pero corre el riesgo de caer en un mínimo local más fácilmente.

Tengamos en cuenta, en todo caso, que esta aproximación "mini-batch" suele recibir el nombre de "estocástica" aun cuando involucre más de una muestra por iteración. En otras palabras, cuando leamos el término "Stochastic Gradient Descent" deberemos tener en cuenta que, muy probablemente, se refiera a un algoritmo que calcula la función de error cada n muestras, siendo este valor n configurable (y pudiendo tomar también el valor 1, por supuesto). El valor n suele denominarse batch size.