Diferenciación Automática de Algoritmos para Aprendizaje Automático