Линейная алгебра
Определитель: число, которое всё решает
Что происходит с единичным квадратом при умножении на матрицу? Он превращается в параллелограмм - и его площадь равна |det(A)|. Одно число кодирует всю геометрию преобразования.
- Normalizing flows (Glow, RealNVP): log|det J| в функции потерь
- Ridge regression: защита от det = 0 при мультиколлинеарности
- Собственные значения: det(A - lambda*I) = 0 - характеристическое уравнение
- 3D-графика: ориентация нормалей, тест точка-в-треугольнике
- Криптография: матричные шифры требуют обратимых матриц
Предварительные знания
- Умножение матриц
- Обратная матрица
- Линейная зависимость векторов
Определитель как масштаб площади и объёма
Что происходит с единичным квадратом при умножении на матрицу? Он превращается в параллелограмм - и его площадь равна |det(A)|. Одно число кодирует всю геометрию преобразования.
Матрица $A$ преобразует единичный квадрат в параллелограмм. Площадь параллелограмма равна $|\det(A)|$. Знак определителя кодирует ориентацию: $\det > 0$ сохраняет ориентацию (правая система остаётся правой), $\det < 0$ - меняет (зеркальное отражение).
**Ключевой инсайт**: $\det = 0$ - сигнал катастрофы. В данных это мультиколлинеарность (признаки линейно зависимы). В модели - матрица необратима, регрессия сломана. В normalizing flows $\det$ якобиана - буквально то, насколько нейросеть растягивает пространство.
Матрица $A = \begin{pmatrix} 3 & 1 \\ 6 & 2 \end{pmatrix}$. Чему равен $\det(A)$?
Свойства определителя
Определитель **мультипликативен**: $\det(AB) = \det(A)\cdot\det(B)$. $AB$ означает сначала $B$, потом $A$. Объём меняется в $\det(B)$ раз, потом ещё в $\det(A)$ раз.
**Ridge regression** добавляет $\lambda I$ именно для того, чтобы $\det(X^TX + \lambda I) > 0$ при любом $\lambda > 0$ - даже при полной мультиколлинеарности.
Если $\det(A) = 3$ и $\det(B) = -2$, чему равен $\det(AB)$?
Вычисление: разложение Лапласа и LU
Для малых матриц - разложение по строке (Лаплас). Для больших ($n > 4$) - LU-разложение за $O(n^3)$. Формула Лапласа за $O(n!)$ при $n = 20$ потребовала бы $2.4 \cdot 10^{18}$ операций.
**Почему в normalizing flows якобиан делают треугольным**: $\det$ произвольной $n\times n$ матрицы - $O(n^3)$ операций. $\det$ треугольной матрицы - $O(n)$ (просто произведение диагонали). Affine coupling layers строят треугольный якобиан: $\log|\det J| = \sum s_i$.
Почему numpy вычисляет det через LU-разложение, а не формулой Лапласа?
Итог
- **det** = коэффициент масштабирования объёма при линейном преобразовании
- **det 2x2** = $ad - bc$ (площадь параллелограмма из столбцов)
- **det = 0** - матрица необратима, данные мультиколлинеарны
- **det(AB) = det(A) * det(B)** - мультипликативность
- **|det| = 1** у поворотов и отражений - объём сохраняется
- **LU-разложение** позволяет вычислять det за $O(n^3)$ вместо $O(n!)$
Связанные темы
Определитель - ключ к следующим разделам
- Собственные значения — det(A - lambda*I) = 0 - характеристическое уравнение для eigenvalues
- Обратная матрица — A^-1 существует тогда и только тогда, когда det(A) != 0
- Векторные пространства — det = 0 означает, что столбцы линейно зависимы и не образуют базис
Вопросы для размышления
- Почему det(AB) = det(A) * det(B), а det(A+B) != det(A) + det(B)?
- Что геометрически означает det < 0?
- Как Ridge regression связана с определителем матрицы признаков?
- Почему в normalizing flows стараются делать якобиан треугольным?