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^T) = (d\boldsymbol X)^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.\) |
В этой таблице предполагается, что \(\boldsymbol A\) и \(\boldsymbol B\) — постоянные матрицы, \(\boldsymbol X\) и \(\boldsymbol Y\) — переменные матрицы, \(\alpha, \beta \in \mathbb R\).
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^{-\top}\) — более короткая запись для \((\boldsymbol X^{-1})^\top\).
Exercises#
Calculate \(\nabla f\) if \(f(\boldsymbol X) = \boldsymbol a^\top \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}^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.