Backpropagation: cómo aprende una red
Lo esencial
- 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.
En la teoría
- La pregunta
- Actividad: el grafo vivo
- El grafo computacional
- Hacia atrás, caja por caja
- Lo que necesitas de Python
- Un motor de autograd: la clase Valor
- Verificar gradientes con diferencias finitas
- Una red neuronal encima del motor
- Una capa entera, con matrices
- Gradientes que se desvanecen o explotan
- Lo que aprendiste y lo que sigue
¿Terminaste este tema?
Márcalo y en la ruta verás cuánto llevas. Se guarda solo en este navegador.