alterna ai
ALTERNA AI / ГЛАВА 02 · 04

02.4 Направление, которое не поворачивается

На предыдущей странице: когда теряется направление.

Поищем ненулевую стрелку, после преобразования которой меняется только масштаб. Такое направление называют собственным.

Таблица растягивает горизонталь вдвое, вертикаль не меняет.

Некоторые направления матрица не поворачивает

Ненулевой vv называется eigenvector квадратной матрицы AA, если

Av=λv.Av=\lambda v.

Матрица может растянуть, сжать или обратить этот вектор, но результат остаётся на той же прямой. Нулевой вектор исключается: равенство A0=λ0A0=\lambda0 истинно для любого λ\lambda и не выделяет направление.

Перенос слагаемых даёт

(A−λI)v=0.(A-\lambda I)v=0.

Ненулевое решение существует только когда A−λIA-\lambda I вырождена:

det⁡(A−λI)=0.\det(A-\lambda I)=0.

Для 2×22\times2 характеристический polynomial равен

λ2−tr⁡(A)λ+det⁡(A)=0.\lambda^2-\operatorname{tr}(A)\lambda+\det(A)=0.

Два направления треугольной матрицы

Для

A=[2101]A=\begin{bmatrix}2&1\\0&1\end{bmatrix}

eigenvalues равны диагональным значениям 2 и 1. При λ=2\lambda=2 подходит v1=[1,0]Tv_1=[1,0]^T:

Av1=[2,0]T=2v1.Av_1=[2,0]^T=2v_1.

При λ=1\lambda=1 подходит v2=[1,−1]Tv_2=[1,-1]^T:

Av2=[1,−1]T=v2.Av_2=[1,-1]^T=v_2.

Произвольный x=[1,2]Tx=[1,2]^T переходит в [4,2]T[4,2]^T и не остаётся коллинеарным с исходным направлением. Наличие eigenvectors не превращает каждый вход в eigenvector.

Реальных собственных направлений может не быть

Поворот на 90 градусов имеет

R=[0−110],λ2+1=0.R=\begin{bmatrix}0&-1\\1&0\end{bmatrix}, \qquad \lambda^2+1=0.

Его eigenvalues равны ±i\pm i, поэтому на вещественной плоскости нет ненулевого направления, которое осталось бы на своей прямой. При этом преобразование полностью обратимо и сохраняет длины. Отсутствие real eigenvector не означает rank loss.

Повторяющееся eigenvalue тоже не гарантирует полный собственный базис. Shear

S=[1101]S=\begin{bmatrix}1&1\\0&1\end{bmatrix}

имеет eigenvalue 1 кратности 2, но условие (S−I)v=0(S-I)v=0 требует v2=0v_2=0. Независимое eigen-направление только одно, поэтому матрица не диагонализуется над R\mathbb R двумя eigenvectors.

Для симметричной матрицы ситуация лучше. У

H=[2112]H=\begin{bmatrix}2&1\\1&2\end{bmatrix}

направления [1,1]T[1,1]^T и [1,−1]T[1,-1]^T ортогональны, а eigenvalues равны 3 и 1. Реальная симметричная матрица допускает ортонормированный собственный базис.

Hessian при стандартных условиях симметричен; его eigenvalues описывают локальную кривизну вдоль eigen-направлений. Это помогает анализировать conditioning оптимизации. Eigenvalues произвольной weight matrix сами по себе не являются оценкой качества модели.

A = [[2, 1], [0, 1]]
v = [1, -1]
Av = [sum(a*b for a, b in zip(row, v)) for row in A]
assert Av == v

Код повторяет только что разобранные операции. Полный проверяемыйPython-пример главы доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.

Стрелка осталась на своей прямой. Другие стрелки могут менять направление, и нулевую стрелку за собственный вектор не принимают.

Повернуть, растянуть, повернуть. Как этот вопрос продолжает полученный результат?

Python-примеры главы 02 Академическая база →