1Todo cálculo es un grafo computacional de operaciones pequeñas. Hacia adelante se calculan los valores, de las entradas a la salida; hacia atrás, los gradientes, de la salida a las entradas.
2En cada caja del grafo, el gradiente de una entrada es el gradiente que llega por el gradiente local de la operación: la suma copia el gradiente que llega y la multiplicación lo multiplica por la otra entrada. Es la regla de la cadena aplicada en orden.
3Cuando un número se usa por varios caminos, sus gradientes se suman. Por eso el código usa += y hay que poner los gradientes en cero antes de cada paso de entrenamiento.
4Una clase Valor de unas 80 líneas, inspirada en micrograd, es un motor de autograd completo: con él se arma una red pequeña y se entrena con descenso de gradiente.
5Todo gradiente se verifica con la derivada numérica centrada. Con matrices, una capa densa se retropropaga con Xᵀ·G, la suma de las filas de G y G·Wᵀ; el producto de muchos gradientes locales puede desvanecerse o explotar.