Differentiation for Learning