Y llegamos al método más complejo de nuestro código, aquel que calcula el gradiente de la función de error para cada elemento del mini-batch.
La cabecera de este método ya la hemos visto:
def __backpropagation(self, x, y):
Es decir, recibe una muestra y su etiqueta. Y el resultado devuelto por esta función será una estructura con las mismas dimensiones que los arrays de pesos y bias (los parámetros de la red) conteniendo la derivada parcial de la función de coste para cada uno de esos parámetros (es decir, el gradiente de la función de coste).
Vamos a llamar a estas estructuras grad_b -para el gradiente correspondiente a los biases- y grad_w -para el gradiente correspondiente a los pesos-.