Es un algoritmo utilizado en el entrenamiento de redes neuronales. Consiste en ajustar los pesos de la red en función de la diferencia entre la salida predicha y la salida deseada. Se realiza en sentido contrario a través de la red, calcula gradientes y utiliza técnicas de optimización para minimizar el error y mejorar el rendimiento de la red durante el entrenamiento.