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

02.3 Когда теряется направление

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

Преобразование может сплющить плоскость в линию. Ранг — число независимых направлений, оставшихся на выходе.

Правило: [x₁,x₂] → [x₁+2x₂, 0].

Образ сообщает, сколько направлений пережило преобразование

Рассмотрим

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

Её столбцы [1,0]T[1,0]^T и [2,0]T[2,0]^T лежат на одной прямой. Любой выход имеет вид

Ax=[x1+2x2,0]T,Ax=[x_1+2x_2,0]^T,

поэтому вся плоскость схлопывается на горизонтальную ось. Ранг матрицы равен размерности пространства её столбцов, то есть размерности образа. Здесь rank равен 1, хотя ненулевых ячеек две.

Для матрицы [m,n][m,n]

0≤rank⁡(A)≤min⁡(m,n).0\le\operatorname{rank}(A)\le\min(m,n).

Rank 0 имеет только нулевая матрица. Полный столбцовый rank nn означает, что разные входы не сталкиваются; полный строковый rank mm означает, что достижим каждый выход.

Ядро описывает невидимые изменения входа

Ядро

ker⁡(A)={v:Av=0}\ker(A)=\{v:Av=0\}

содержит направления, полностью уничтоженные оператором. Для выбранной AA

v=t[−2,1]T,Av=0.v=t[-2,1]^T, \qquad Av=0.

Поэтому xx и x+vx+v дают один выход:

A(x+v)=Ax+Av=Ax.A(x+v)=Ax+Av=Ax.

Например, [2,0]T[2,0]^T и [0,1]T[0,1]^T оба переходят в [2,0]T[2,0]^T. Потеря информации означает не просто уменьшившуюся картинку, а существование разных входов с одинаковым результатом.

Для линейного отображения из Rn\mathbb R^n действует теорема rank-nullity:

rank⁡(A)+dim⁡ker⁡(A)=n.\operatorname{rank}(A)+\dim\ker(A)=n.

В нашем примере одно выходное направление и одно направление ядра вместе учитывают две входные степени свободы.

Determinant и обратимость квадратной матрицы

Для 2×22\times2

det⁡[abcd]=ad−bc.\det\begin{bmatrix}a&b\\c&d\end{bmatrix}=ad-bc.

Ненулевой determinant эквивалентен rank 2 и существованию inverse. Для

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

determinant равен 2, а

A−1=[1/2−1/201].A^{-1}=\begin{bmatrix}1/2&-1/2\\0&1\end{bmatrix}.

Он возвращает [4,2]T[4,2]^T в [1,2]T[1,2]^T. В вычислительной практике обычно решают Ax=bAx=b факторизацией, а не строят полную inverse: явная inverse дороже и может усиливать численные ошибки.

Точный и численный ранг отвечают на разные вопросы

Матрица

D=diag⁡(1,10−12)D=\operatorname{diag}(1,10^{-12})

математически имеет rank 2, потому что обе диагонали ненулевые. Но восстановление второй координаты требует деления на 10−1210^{-12}, поэтому шум порядка 10−1010^{-10} в выходе превращается в ошибку порядка 10210^2 во входе.

Лаборатория определяет numerical rank как число singular values, превышающих

10−10max⁡(1,σ1).10^{-10}\max(1,\sigma_1).

При этом явно выбранном допуске DD получает numerical rank 1. Другой алгоритм или другая точность могут выбрать иной порог. Нельзя выдавать округлённый ноль за доказательство точной линейной зависимости.

Низкий rank иногда является желаемой проекцией, удаляющей шум. Но восстановить произвольную уничтоженную компоненту без дополнительных предположений невозможно. В лаборатории сравните полную, rank-one и нулевую матрицы, наблюдая одновременно сетку, kernel и collision входов.

Можно менять два входа, но на выходе осталось только одно направление. Обратное восстановление входа в общем случае невозможно.

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

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