Matrix calculus#
While training a machine learning model, often some function \(\mathcal L(\boldsymbol X)\) of a matrix \(\boldsymbol X\) is being minimized or maximized. That’s why it is important to elaborate a neat notation for differentials and gradients of such functions.
Differentiating functions of matrices#
Let \(f\colon \mathbb R^{m\times n} \to \mathbb R\) be a real-valued function of matrix \(\boldsymbol X\). Such function can be differentiated similar (63) as a function of vector from \(\mathbb R^{mn}\):
Здесь мы упаковали градиент функции \(f\) в матрице того же размера, что и матрица \(\boldsymbol X\), а также воспользовались равенством
Using more traditional notation, we can rewrite (68) as
Note that once again gradient \(\nabla f(\boldsymbol X)\) has the same shape as input variable \(\boldsymbol X\). Here it is an \(m\times n\) matrix:
Rules of matrix calculus#
\(d\boldsymbol A = \boldsymbol 0\) |
\(d(\boldsymbol{AXB}) = \boldsymbol A(d\boldsymbol X)\boldsymbol B\) |
\(d(\mathrm{tr}(\boldsymbol {AX})) = \mathrm{tr}(\boldsymbol A\cdot d\boldsymbol X)\) |
\(d(\alpha \boldsymbol X + \beta \boldsymbol Y) = \alpha d\boldsymbol X + \beta d\boldsymbol Y.\) |
\(d(\boldsymbol X^\mathsf{T}) = (d\boldsymbol X)^{\mathsf T}\) |
\(d(\boldsymbol{XY}) = d\boldsymbol X \cdot \boldsymbol Y + \boldsymbol X \cdot d\boldsymbol Y.\) |
\(d\langle\boldsymbol X, \boldsymbol Y\rangle = \langle d\boldsymbol X , \boldsymbol Y\rangle + \langle\boldsymbol X , d\boldsymbol Y\rangle.\) |
Here \(\boldsymbol A\) and \(\boldsymbol B\) are constant matrices, \(\boldsymbol X\) and \(\boldsymbol Y\) are variable matrices, \(\alpha, \beta \in \mathbb R\).
Examples of matrix calculus#
Differential of inverse matrix#
Вычислим дифференциал обратной матрицы: \(f(\boldsymbol X) = \boldsymbol X^{-1}\), где \(\boldsymbol X\) — невырожденная квадратная матрица.
Продифференцируем равенство \(\boldsymbol I = \boldsymbol X\cdot \boldsymbol X^{-1}\):
Отсюда уже легко выражается искомый дифференциал:
Warning
Внимательный читатель заметит, что данное решение предполагает, что дифференцируемость функции \(f\) уже известна. Полное решение можно прочитать здесь (пример А.14).
Gradient of determinant#
Вычислим градиент определителя: \(f(\boldsymbol X) = \det(\boldsymbol X)\), где \(\boldsymbol X\) — квадратная матрица.
Попробуем вычислить \(\frac{\partial f}{\partial{X_{ij}}}\). Для этого разложим определитель по \(i\)-й строке:
где \(M_{ij}\) — это определитель подматрицы, полученной из исходной выбрасыванием \(i\)-й строки и \(j\)-го столбца. Теперь мы видим, что определитель линеен по переменной \(X_{ij}\), причём коэффициент при ней равен \((-1)^{i + j}M_{ij}\). Таким образом,
Чтобы записать матрицу, составленную из таких определителей, покороче, вспомним, что
Обратите внимание на переставленные индексы \(i\) и \(j\) (отмечены красным). Но всё равно похоже! Таким образом, для невырожденной матрицы \(\boldsymbol X\) мы можем представить градиент в виде
где \(\boldsymbol X^{-\mathsf{T}}\) — более короткая запись для \((\boldsymbol X^{-1})^\mathsf{T}\).
Linear matrix function#
Let \(f(\boldsymbol X) = \boldsymbol{XW}\), где \(\boldsymbol X\) и \(\boldsymbol W\) — матрицы подходящего размера. Тогда
Получилась линейная по \(\boldsymbol H\) функция, поэтому она и является дифференциалом функции \(f\) в точке \(\boldsymbol X\): \(Df(\boldsymbol X) [\boldsymbol H] = \boldsymbol{HW}\). Допустима также запись \(df(\boldsymbol X) = d\boldsymbol X\cdot \boldsymbol W\).
More rules and examples of matrix calculus can be found in this cookbook (from p.8).
Exercises#
Calculate \(\nabla f\) if \(f(\boldsymbol X) = \mathrm{tr}(\boldsymbol X)\).
Calculate \(\nabla f\) if \(f(\boldsymbol X) = \boldsymbol a^\mathsf{T} \boldsymbol X \boldsymbol b\).
Calculate \(\nabla f\) if \(f(\boldsymbol X) = \log(\det(\boldsymbol X))\).
Calculate \(\nabla f\) if \(f(\boldsymbol X) = \mathrm{tr}(\boldsymbol{AX}^{\mathsf T}\boldsymbol X)\).
Let \(f(\boldsymbol X) = \det\left(\boldsymbol{AX}^{-1}\boldsymbol B\right)\). Calculate \(\nabla f\) if
all matrices are square;
matrices \(\boldsymbol A\) and \(\boldsymbol B\) are rectangular.
Find differential of \(f(\boldsymbol W) = \boldsymbol{XW}\).
Show that inner product in the space of matrices of shape \(\mathbb R^{m\times n}\) can be defined as \(\langle \boldsymbol A, \boldsymbol B \rangle = \mathrm{tr} (\boldsymbol A^\mathsf{T} \boldsymbol B)\).
Hint
You need to verify three properties:
\(\langle \boldsymbol A, \boldsymbol A \rangle \geq 0\), \(\langle \boldsymbol A, \boldsymbol A \rangle = 0 \iff \boldsymbol A = \boldsymbol 0\);
\(\langle \boldsymbol A, \boldsymbol B \rangle = \langle \boldsymbol B, \boldsymbol A \rangle\);
\(\langle \alpha \boldsymbol A + \beta \boldsymbol B, \boldsymbol C \rangle = \alpha\langle \boldsymbol A, \boldsymbol C \rangle + \beta\langle \boldsymbol B, \boldsymbol C \rangle\).