Course Meeting Times
Lectures: 3 sessions / week, 2 hours / session
Prerequisites
Courses in linear algebra (such as 18.06 Linear Algebra) and multivariate calculus (such as 18.02 Multivariable Calculus)
Course Description
We all know that calculus courses such as 18.01 Single Variable Calculus and 18.02 Multivariable Calculus cover univariate and vector calculus, respectively. Modern applications such as machine learning require the next big step, matrix calculus.
This class covers a coherent approach to matrix calculus showing techniques that allow you to think of a matrix holistically (not just as an array of scalars), compute derivatives of important matrix factorizations, and really understand forward and reverse modes of differentiation. We will discuss adjoint methods, custom Jacobian matrix vector products, and how modern automatic differentiation is more computer science than mathematics in that it is neither symbolic nor based on finite differences.
Topics
Here are some of the topics covered:
 Derivatives as linear operators and linear approximation on arbitrary vector spaces: beyond gradients and Jacobians.
 Derivatives of functions with matrix inputs and/or outputs (e.g. matrix inverses and determinants). Kronecker products and matrix “vectorization.”
 Derivatives of matrix factorizations (e.g. eigenvalues/SVD) and derivatives with constraints (e.g. orthogonal matrices).
 Multidimensional chain rules, and the signifance of righttoleft (“forward”) vs. lefttoright (“reverse”) composition. Chain rules on computational graphs (e.g. neural networks).
 Forward and reversemode manual and automatic multivariate differentiation.
 Adjoint methods (vJp/pullback rules) for derivatives of solutions of linear, nonlinear, and differential equations.
 Application to nonlinear rootfinding and optimization. Multidimensional Newton and steepest–descent methods.
 Applications in engineering/scientific optimization and machine learning.
 Second derivatives, Hessian matrices, quadratic approximations, and quasiNewton methods.
Calendar
Lecture # and Topics  Key Dates 

Lecture 1 Part 1: Introduction Lecture 1 Part 2: Derivatives as Linear Operators 

Lecture 2 Part 1: Derivatives as Linear Operators (cont.) Lecture 2 Part 2: Two by Two Matrix Jacobians 
Problem Set 1 out 
Lecture 3 Part 1: The Gradient of a Scalar Function of a Vector: Column Vector or Row Vector? Lecture 3 Part 2: Finite Difference 

Lecture 4 Part 1: The Gradient of the Determinant Lecture 4 Part 2: Nonlinear RootFinding, Optimization, and AdjointMethod Differentiation 
Problem Set 1 due Problem Set 2 out 
Lecture 5: Forward and Reverse Automatic Differentiation in a Nutshell  
Lecture 6 Part 1: Derivatives of Eigenproblems Lecture 6 Part 2: Second Derivatives, Bilinear Forms, and Hessian Matrices 

Lecture 7 Part 1: Hessian Matrices (cont.) Lecture 7 Part 2: Backpropagation through Back Substitution with a Backslash 
Problem Set 2 due 
Lecture 8 Part 1: Hessian Matrices (cont.) Lecture 8 Part 2: Differentiable Programming and Neural Differential Equations 