Перейти к содержимому
ПереводыMIT, Berkeley, CMU

MIT 18.06SC, часть 4: SVD, смена базиса и псевдообратная матрица

Перевод конспектов лекций Стрэнга 29, 31 и 33: сингулярное разложение A = UΣVᵀ на двух примерах, смена базиса и сжатие изображений (Фурье, вейвлеты Хаара), левая и правая обратные и псевдообратная матрица через SVD.

Это перевод официальных конспектов (lecture summaries) к трём лекциям Гилберта Стрэнга из курса MIT 18.06SC. Карта всего курса — в путеводителе. Перевод распространяется под лицензией CC BY-NC-SA 4.0, © MIT OpenCourseWare.

Сингулярное разложение матрицы (singular value decomposition) обычно называют SVD. Это последнее и лучшее разложение матрицы:

A=UΣVT,A = U \Sigma V^T,

где UU — ортогональная матрица, Σ\Sigma — диагональная, а VV — ортогональная.

В разложении A=UΣVTA = U \Sigma V^T матрица AA может быть любой. Мы знаем, что если AA симметрична и положительно определена, то её собственные векторы ортогональны и можно записать A=QΛQTA = Q \Lambda Q^T. Это частный случай SVD, где U=V=QU = V = Q. Для более общей AA в SVD нужны две разные матрицы UU и VV.

Мы также научились записывать A=SΛS−1A = S \Lambda S^{-1}, где SS — матрица из nn различных собственных векторов AA. Однако SS может не быть ортогональной; матрицы UU и VV в SVD ортогональны всегда.

Можно думать об AA как о линейном преобразовании, которое переводит вектор v1v_1 из её пространства строк в вектор u1=Av1u_1 = A v_1 в её пространстве столбцов. SVD возникает, когда мы ищем ортогональный базис пространства строк, который переходит в ортогональный базис пространства столбцов: Avi=σiuiA v_i = \sigma_i u_i.

Найти ортогональный базис пространства строк нетрудно — процесс Грама — Шмидта сразу его даёт. Но в общем случае нет причин ожидать, что AA переведёт этот базис в другой ортогональный базис.

Возможно, вы спросите о векторах в нуль-пространствах AA и ATA^T. С ними проблем нет — о них позаботятся нули на диагонали Σ\Sigma.

Суть задачи — найти ортонормированный базис v1,v2,…,vrv_1, v_2, \dots, v_r пространства строк AA, для которого

A[v1v2⋯vr]=[σ1u1σ2u2⋯σrur]=[u1u2⋯ur][σ1σ2⋱σr],A \begin{bmatrix} v_1 & v_2 & \cdots & v_r \end{bmatrix} = \begin{bmatrix} \sigma_1 u_1 & \sigma_2 u_2 & \cdots & \sigma_r u_r \end{bmatrix} = \begin{bmatrix} u_1 & u_2 & \cdots & u_r \end{bmatrix} \begin{bmatrix} \sigma_1 & & & \\ & \sigma_2 & & \\ & & \ddots & \\ & & & \sigma_r \end{bmatrix},

где u1,u2,…,uru_1, u_2, \dots, u_r — ортонормированный базис пространства столбцов AA. Когда мы добавим нуль-пространства, это равенство превратится в AV=UΣAV = U\Sigma. (Ортонормированные базисы v1,…,vrv_1, \dots, v_r и u1,…,uru_1, \dots, u_r можно дополнить до ортонормированных базисов всего пространства как угодно. Поскольку vr+1,…,vnv_{r+1}, \dots, v_n лежат в нуль-пространстве AA, диагональные элементы σr+1,…,σn\sigma_{r+1}, \dots, \sigma_n будут равны 0.)

Столбцы VV и UU — базисы пространства строк и пространства столбцов соответственно. Обычно U≠VU \ne V, но если AA положительно определена, для её пространства строк и пространства столбцов можно взять один и тот же базис!

Примечание переводчика: в оригинале порядок перепутан («столбцы UU и VV — базисы пространства строк и столбцов соответственно»). Верно так, как в переводе: viv_i живут в пространстве строк, uiu_i — в пространстве столбцов.

Пусть AA — обратимая матрица [44−33]\begin{bmatrix} 4 & 4 \\ -3 & 3 \end{bmatrix}. Мы хотим найти векторы v1v_1 и v2v_2 в пространстве строк R2\mathbb{R}^2, u1u_1 и u2u_2 в пространстве столбцов R2\mathbb{R}^2 и положительные числа σ1\sigma_1 и σ2\sigma_2 так, чтобы viv_i были ортонормированы, uiu_i были ортонормированы, а σi\sigma_i были коэффициентами растяжения, для которых Avi=σiuiA v_i = \sigma_i u_i.

Это большой шаг к тому, чтобы найти ортонормированные матрицы VV и UU и диагональную матрицу Σ\Sigma, для которых

AV=UΣ.AV = U\Sigma.

Поскольку VV ортогональна, обе части можно умножить на V−1=VTV^{-1} = V^T и получить

A=UΣVT.A = U \Sigma V^T.

Вместо того чтобы искать UU, VV и Σ\Sigma одновременно, умножим обе части на AT=VΣTUTA^T = V \Sigma^T U^T:

ATA=VΣTUTUΣVT=VΣ2VT=V[σ12σ22⋱σn2]VT.A^T A = V \Sigma^T U^T U \Sigma V^T = V \Sigma^2 V^T = V \begin{bmatrix} \sigma_1^2 & & & \\ & \sigma_2^2 & & \\ & & \ddots & \\ & & & \sigma_n^2 \end{bmatrix} V^T.

Это форма QΛQTQ \Lambda Q^T; теперь VV можно найти, диагонализовав симметричную положительно определённую (или полуопределённую) матрицу ATAA^T A. Столбцы VV — собственные векторы ATAA^T A, а собственные числа ATAA^T A — это σi2\sigma_i^2. (Берём σi\sigma_i равным положительному квадратному корню из λi\lambda_i.)

Чтобы найти UU, делаем то же самое с AATA A^T.

Примечание переводчика: в оригинале в средней части формулы опечатка — «VΣU−1UΣVTV \Sigma U^{-1} U \Sigma V^T». Сокращение работает потому, что UTU=IU^T U = I для ортогональной UU.

Вернёмся к нашей матрице A=[44−33]A = \begin{bmatrix} 4 & 4 \\ -3 & 3 \end{bmatrix}. Начнём с вычисления

ATA=[4−343][44−33]=[257725].A^T A = \begin{bmatrix} 4 & -3 \\ 4 & 3 \end{bmatrix} \begin{bmatrix} 4 & 4 \\ -3 & 3 \end{bmatrix} = \begin{bmatrix} 25 & 7 \\ 7 & 25 \end{bmatrix}.

Собственные векторы этой матрицы дадут нам векторы viv_i, а собственные числа — числа σi\sigma_i.

Два ортогональных собственных вектора ATAA^T A — это [11]\begin{bmatrix} 1 \\ 1 \end{bmatrix} и [1−1]\begin{bmatrix} 1 \\ -1 \end{bmatrix}. Чтобы получить ортонормированный базис, положим v1=[1/21/2]v_1 = \begin{bmatrix} 1/\sqrt{2} \\ 1/\sqrt{2} \end{bmatrix} и v2=[1/2−1/2]v_2 = \begin{bmatrix} 1/\sqrt{2} \\ -1/\sqrt{2} \end{bmatrix}. Их собственные числа σ12=32\sigma_1^2 = 32 и σ22=18\sigma_2^2 = 18. Теперь у нас есть:

[44−33]⏟A=[    ]⏟U[420032]⏟Σ[1/21/21/2−1/2]⏟VT.\underbrace{\begin{bmatrix} 4 & 4 \\ -3 & 3 \end{bmatrix}}_{A} = \underbrace{\begin{bmatrix} \ & \ \\ \ & \ \end{bmatrix}}_{U} \underbrace{\begin{bmatrix} 4\sqrt{2} & 0 \\ 0 & 3\sqrt{2} \end{bmatrix}}_{\Sigma} \underbrace{\begin{bmatrix} 1/\sqrt{2} & 1/\sqrt{2} \\ 1/\sqrt{2} & -1/\sqrt{2} \end{bmatrix}}_{V^T}.

Можно было бы найти UU отсюда, но для практики найдём UU через ортонормированные собственные векторы u1u_1 и u2u_2 матрицы AAT=UΣ2UTA A^T = U \Sigma^2 U^T:

AAT=[44−33][4−343]=[320018].A A^T = \begin{bmatrix} 4 & 4 \\ -3 & 3 \end{bmatrix} \begin{bmatrix} 4 & -3 \\ 4 & 3 \end{bmatrix} = \begin{bmatrix} 32 & 0 \\ 0 & 18 \end{bmatrix}.

К счастью, AATA A^T оказалась диагональной. Хочется взять u1=[10]u_1 = \begin{bmatrix} 1 \\ 0 \end{bmatrix} и u2=[01]u_2 = \begin{bmatrix} 0 \\ 1 \end{bmatrix}, как профессор Стрэнг сделал на лекции, но поскольку Av2=[0−32]A v_2 = \begin{bmatrix} 0 \\ -3\sqrt{2} \end{bmatrix}, на самом деле u2=[0−1]u_2 = \begin{bmatrix} 0 \\ -1 \end{bmatrix} и U=[100−1]U = \begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix}. Заодно это даёт возможность перепроверить вычисление σ1\sigma_1 и σ2\sigma_2.

Итак, SVD матрицы AA:

[44−33]⏟A=[100−1]⏟U[420032]⏟Σ[1/21/21/2−1/2]⏟VT.\underbrace{\begin{bmatrix} 4 & 4 \\ -3 & 3 \end{bmatrix}}_{A} = \underbrace{\begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix}}_{U} \underbrace{\begin{bmatrix} 4\sqrt{2} & 0 \\ 0 & 3\sqrt{2} \end{bmatrix}}_{\Sigma} \underbrace{\begin{bmatrix} 1/\sqrt{2} & 1/\sqrt{2} \\ 1/\sqrt{2} & -1/\sqrt{2} \end{bmatrix}}_{V^T}.

Почему знак важен: собственный вектор определён с точностью до знака, поэтому u2u_2 «по AATA A^T» мог выйти и (0,1)(0, 1), и (0,−1)(0, -1). Но uiu_i и viv_i связаны условием Avi=σiuiA v_i = \sigma_i u_i с положительным σi\sigma_i, и знак uiu_i надо согласовать с выбранным viv_i. Надёжнее всего считать ui=Avi/σiu_i = A v_i / \sigma_i.

Теперь пусть A=[4386]A = \begin{bmatrix} 4 & 3 \\ 8 & 6 \end{bmatrix}. У неё одномерное нуль-пространство и одномерные пространства строк и столбцов.

Пространство строк AA состоит из кратных [43]\begin{bmatrix} 4 \\ 3 \end{bmatrix}. Пространство столбцов AA состоит из кратных [48]\begin{bmatrix} 4 \\ 8 \end{bmatrix}. Нуль-пространство и левое нуль-пространство перпендикулярны пространству строк и пространству столбцов соответственно.

Единичные базисные векторы пространства строк и пространства столбцов: v1=[0,80,6]v_1 = \begin{bmatrix} 0{,}8 \\ 0{,}6 \end{bmatrix} и u1=[1/52/5]u_1 = \begin{bmatrix} 1/\sqrt{5} \\ 2/\sqrt{5} \end{bmatrix}. Чтобы вычислить σ1\sigma_1, найдём ненулевое собственное число ATAA^T A:

ATA=[4836][4386]=[80606045].A^T A = \begin{bmatrix} 4 & 8 \\ 3 & 6 \end{bmatrix} \begin{bmatrix} 4 & 3 \\ 8 & 6 \end{bmatrix} = \begin{bmatrix} 80 & 60 \\ 60 & 45 \end{bmatrix}.

Это матрица ранга 1, так что одно её собственное число должно быть 0. Другое тогда равно следу, так что σ12=125\sigma_1^2 = 125. Найдя единичные векторы, перпендикулярные u1u_1 и v1v_1 (базисные векторы левого нуль-пространства и нуль-пространства соответственно), видим, что SVD матрицы AA:

[4386]⏟A=15[122−1]⏟U[125000]⏟Σ[0,80,60,6−0,8]⏟VT.\underbrace{\begin{bmatrix} 4 & 3 \\ 8 & 6 \end{bmatrix}}_{A} = \underbrace{\frac{1}{\sqrt{5}} \begin{bmatrix} 1 & 2 \\ 2 & -1 \end{bmatrix}}_{U} \underbrace{\begin{bmatrix} \sqrt{125} & 0 \\ 0 & 0 \end{bmatrix}}_{\Sigma} \underbrace{\begin{bmatrix} 0{,}8 & 0{,}6 \\ 0{,}6 & -0{,}8 \end{bmatrix}}_{V^T}.

Проверка числами: σ1u1v1T=125⋅15[12][0,80,6]=5[0,80,61,61,2]=[4386]\sigma_1 u_1 v_1^T = \sqrt{125} \cdot \frac{1}{\sqrt{5}} \begin{bmatrix} 1 \\ 2 \end{bmatrix} \begin{bmatrix} 0{,}8 & 0{,}6 \end{bmatrix} = 5 \begin{bmatrix} 0{,}8 & 0{,}6 \\ 1{,}6 & 1{,}2 \end{bmatrix} = \begin{bmatrix} 4 & 3 \\ 8 & 6 \end{bmatrix} — вся матрица собрана из одного «слоя» ранга 1.

Сингулярное разложение объединяет темы линейной алгебры от положительно определённых матриц до четырёх фундаментальных подпространств:

  • v1,v2,…,vrv_1, v_2, \dots, v_r — ортонормированный базис пространства строк;
  • u1,u2,…,uru_1, u_2, \dots, u_r — ортонормированный базис пространства столбцов;
  • vr+1,…,vnv_{r+1}, \dots, v_n — ортонормированный базис нуль-пространства;
  • ur+1,…,umu_{r+1}, \dots, u_m — ортонормированный базис левого нуль-пространства.

Это «правильные» базисы, потому что Avi=σiuiA v_i = \sigma_i u_i.

Лекция 31. Смена базиса; сжатие изображений

Заголовок раздела «Лекция 31. Смена базиса; сжатие изображений»

Мы уже знаем, что удачный выбор базиса упрощает вычисления. Одно из применений этого принципа — сжатие изображений. Видео лекций, музыка и другие источники данных несут много информации; хранить и передавать её эффективно можно, только сменив базис, в котором она записана.

Пусть один кадр видео лекции — это 512 на 512 пикселей и видео чёрно-белое. Камера записывает уровень яркости каждого из 5122512^2 пикселей; в этом смысле каждый кадр — вектор в векторном пространстве размерности 5122512^2.

В стандартном базисе этого пространства на каждый пиксель приходится один вектор. Передавать все 5122512^2 компонент каждого кадра в стандартном базисе — слишком широкий канал, но если сменить базис по стандарту сжатия изображений JPEG, вполне приличную копию видео можно передать очень экономно.

Например, если сообщать уровень освещённости пиксель за пикселем, нет экономного способа передать информацию «весь кадр чёрный». Но если один из базисных векторов соответствует тому, что у всех пикселей одинаковая яркость (скажем, 1), то запись пустой доски передаётся очень экономно.

Вместе с вектором из одних единиц можно взять базисный вектор, в котором чередуются 1 и −1-1, или вектор, у которого половина единиц и половина −1-1, — он соответствует картинке, светлой слева и тёмной справа. От выбора базиса напрямую зависит, сколько данных придётся скачать, чтобы посмотреть видео, и лучший базис для лекций по алгебре может отличаться от лучшего базиса для боевиков!

[11111111], [1ωω2ω3ω4ω5ω6ω7], [1ω2ω4ω6ω8ω10ω12ω14], ⋯ , [1ω7ω14ω21ω28ω35ω42ω49]\begin{bmatrix} 1 \\ 1 \\ 1 \\ 1 \\ 1 \\ 1 \\ 1 \\ 1 \end{bmatrix},\ \begin{bmatrix} 1 \\ \omega \\ \omega^2 \\ \omega^3 \\ \omega^4 \\ \omega^5 \\ \omega^6 \\ \omega^7 \end{bmatrix},\ \begin{bmatrix} 1 \\ \omega^2 \\ \omega^4 \\ \omega^6 \\ \omega^8 \\ \omega^{10} \\ \omega^{12} \\ \omega^{14} \end{bmatrix},\ \cdots,\ \begin{bmatrix} 1 \\ \omega^7 \\ \omega^{14} \\ \omega^{21} \\ \omega^{28} \\ \omega^{35} \\ \omega^{42} \\ \omega^{49} \end{bmatrix}

Самый известный базис — базис Фурье, тесно связанный с матрицами Фурье, которые мы изучали раньше. Базис JPEG состоит из косинусов — вещественных частей ωjk\omega^{jk}.

Примечание переводчика: здесь ω=e2πi/8\omega = e^{2\pi i/8} — комплексный корень восьмой степени из единицы (матрицы Фурье разбирались на занятии 3.2, лекция 26).

Метод разбивает квадрат 512×512512 \times 512 пикселей на блоки со стороной 8 пикселей, по 64 пикселя в каждом. Затем информация о яркости этих пикселей сжимается — например, отбрасываются все коэффициенты ниже некоторого порога, выбранного так, чтобы после их удаления разница была почти незаметна.

сигнал x →без потерь 64 коэффициента c →сжатие с потерями c^ (много нулей) ⟶ x^=∑c^ivi\text{сигнал } x \ \xrightarrow{\text{без потерь}}\ 64 \text{ коэффициента } c \ \xrightarrow{\text{сжатие с потерями}}\ \hat{c} \text{ (много нулей)} \ \longrightarrow\ \hat{x} = \sum \hat{c}_i v_i

В видео можно сжимать не только каждый кадр, но и последовательности кадров. Соседние кадры почти не отличаются. Если сделать всё правильно, кодировать и сжимать нужно лишь разницу между кадрами, а не каждый кадр целиком.

[11111111], [1111−1−1−1−1], [11−1−10000], [000011−1−1], [1−1000000], ⋯ , [0000001−1]\begin{bmatrix} 1 \\ 1 \\ 1 \\ 1 \\ 1 \\ 1 \\ 1 \\ 1 \end{bmatrix},\ \begin{bmatrix} 1 \\ 1 \\ 1 \\ 1 \\ -1 \\ -1 \\ -1 \\ -1 \end{bmatrix},\ \begin{bmatrix} 1 \\ 1 \\ -1 \\ -1 \\ 0 \\ 0 \\ 0 \\ 0 \end{bmatrix},\ \begin{bmatrix} 0 \\ 0 \\ 0 \\ 0 \\ 1 \\ 1 \\ -1 \\ -1 \end{bmatrix},\ \begin{bmatrix} 1 \\ -1 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \end{bmatrix},\ \cdots,\ \begin{bmatrix} 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ 1 \\ -1 \end{bmatrix}

Ближайший конкурент метода JPEG использует вейвлет-базис. (JPEG2000 улучшает вейвлеты Хаара, показанные выше.) В вейвлет-базисе Хаара для R8\mathbb{R}^8 ненулевые элементы — наполовину 1 и наполовину −1-1 (кроме вектора из одних единиц). При этом половина или даже три четверти элементов базисного вектора могут быть нулями. Эти векторы выбраны ортогональными, и их можно нормировать до ортонормированных.

Линейная алгебра нужна, чтобы найти коэффициенты cic_i при переходе от стандартного базиса (яркость каждого пикселя) к базису Фурье или вейвлет-базису. Например, мы хотим записать:

x=c1w1+⋯+c8w8.x = c_1 w_1 + \dots + c_8 w_8.

Но это просто линейная комбинация векторов вейвлет-базиса. Если WW — матрица, столбцы которой — векторы вейвлет-базиса, то наша задача — всего лишь найти cc:

x=W[c1c2⋮c8].x = W \begin{bmatrix} c_1 \\ c_2 \\ \vdots \\ c_8 \end{bmatrix}.

Итак, c=W−1xc = W^{-1} x.

Вычисления будут быстрее и проще, если не тратить много времени на обращение матрицы (например, если W−1=WTW^{-1} = W^T) или на умножение на обратную. Поэтому в сжатии изображений критерии хорошего базиса такие:

  • умножение на матрицу базиса и на обратную к ней выполняется быстро (как в БПФ или в вейвлет-базисе);
  • хорошее сжатие — изображение можно приблизить всего несколькими базисными векторами. Большинство компонент cic_i малы, и их можно смело обнулить.

Векторы. Пусть столбцы матрицы WW — векторы нового базиса. Тогда, если xx — вектор в старом базисе, его можно перевести в вектор cc в новом базисе по соотношению

x=Wc.x = Wc.

Матрицы преобразований. Пусть у нас есть линейное преобразование TT. Если в базисе v1,v2,…,v8v_1, v_2, \dots, v_8 у TT матрица AA, а в базисе w1,w2,…,w8w_1, w_2, \dots, w_8 — матрица BB, то оказывается, что AA и BB обязаны быть подобными матрицами. Иначе говоря, B=M−1AMB = M^{-1} A M для некоторой матрицы смены базиса MM.

Напоминание. Если у нас есть базис v1,v2,…,v8v_1, v_2, \dots, v_8 и мы знаем T(vi)T(v_i) для каждого ii, то, пользуясь линейностью TT, можно найти T(v)=c1T(v1)+c2T(v2)+⋯+c8T(v8)T(v) = c_1 T(v_1) + c_2 T(v_2) + \dots + c_8 T(v_8) для любого вектора v=c1v1+c2v2+⋯+c8v8v = c_1 v_1 + c_2 v_2 + \dots + c_8 v_8 пространства. Элементы столбца ii матрицы AA — это коэффициенты выходного вектора T(vi)T(v_i).

Если наш базис состоит из собственных векторов преобразования, то есть T(vi)=λiviT(v_i) = \lambda_i v_i, то A=ΛA = \Lambda — (диагональная) матрица собственных чисел. Было бы замечательно использовать для обработки изображений базис из собственных векторов, но найти такой базис намного дороже, чем просто взять базис Фурье или вейвлет-базис.

При смене базиса координаты векторов меняются по правилу x=Wcx = Wc. Элементы матриц меняются по правилу B=M−1AMB = M^{-1} A M.

Лекция 33. Левая и правая обратные; псевдообратная матрица

Заголовок раздела «Лекция 33. Левая и правая обратные; псевдообратная матрица»

Псевдообратных матриц не будет на экзамене, но эта лекция поможет к нему подготовиться.

Двусторонняя обратная матрицы AA — это матрица A−1A^{-1}, для которой AA−1=I=A−1AA A^{-1} = I = A^{-1} A. Это то, что мы называли обратной к AA. Здесь r=n=mr = n = m; у матрицы AA полный ранг.

Напомним: у AA полный ранг по столбцам, если её столбцы независимы, то есть r=nr = n. В этом случае нуль-пространство AA состоит только из нулевого вектора. Уравнение Ax=bAx = b либо имеет ровно одно решение xx, либо не имеет решений.

Матрица ATAA^T A — обратимая симметричная матрица n×nn \times n, так что (ATA)−1ATA=I(A^T A)^{-1} A^T A = I. Мы говорим, что Aleft−1=(ATA)−1ATA^{-1}_{\text{left}} = (A^T A)^{-1} A^T — левая обратная к AA. (Могут быть и другие левые обратные, но эта — наша любимая.) Тот факт, что ATAA^T A обратима, когда у AA полный ранг по столбцам, был центральным в нашем разговоре о методе наименьших квадратов.

Заметьте, что AAleft−1A A^{-1}_{\text{left}} — матрица m×mm \times m, которая равна единичной, только если m=nm = n. У прямоугольной матрицы не может быть двусторонней обратной, потому что у неё самой или у её транспонированной есть ненулевое нуль-пространство.

Если у AA полный ранг по строкам, то r=mr = m. Нуль-пространство ATA^T содержит только нулевой вектор; строки AA независимы. Уравнение Ax=bAx = b всегда имеет хотя бы одно решение; размерность нуль-пространства AA равна n−mn - m, так что будет n−mn - m свободных переменных и (если n>mn > m) бесконечно много решений!

У матриц полного ранга по строкам есть правые обратные Aright−1A^{-1}_{\text{right}}, для которых AAright−1=IA A^{-1}_{\text{right}} = I. Самая удобная из них — AT(AAT)−1A^T (A A^T)^{-1}. Проверка: AA, умноженная на AT(AAT)−1A^T (A A^T)^{-1}, — это II.

У обратимой матрицы (r=m=nr = m = n) нуль-пространство и левое нуль-пространство содержат только нулевой вектор. У матрицы полного ранга по столбцам r=nr = n только нулевой вектор в нуль-пространстве. У матрицы полного ранга по строкам r=mr = m только нулевой вектор в левом нуль-пространстве. Остаётся рассмотреть матрицу AA, для которой r<nr < n и r<mr < m.

Если у AA полный ранг по столбцам и Aleft−1=(ATA)−1ATA^{-1}_{\text{left}} = (A^T A)^{-1} A^T, то

AAleft−1=A(ATA)−1AT=PA A^{-1}_{\text{left}} = A (A^T A)^{-1} A^T = P

— матрица проекции Rm\mathbb{R}^m на пространство столбцов AA. Ближе к равенству AM=IAM = I подойти нельзя.

Аналогично, если у AA полный ранг по строкам, то Aright−1A=AT(AAT)−1AA^{-1}_{\text{right}} A = A^T (A A^T)^{-1} A — матрица проекции Rn\mathbb{R}^n на пространство строк AA.

Обращать матрицы мешают нетривиальные нуль-пространства. Если Ax=0Ax = 0 для какого-то ненулевого xx, то нет никакой надежды найти матрицу A−1A^{-1}, которая обратит этот процесс и даст A−10=xA^{-1} 0 = x.

Вектор AxAx всегда лежит в пространстве столбцов AA. Более того, соответствие между векторами xx в (rr-мерном) пространстве строк и векторами AxAx в (rr-мерном) пространстве столбцов взаимно однозначно. Иначе говоря, если x≠yx \ne y — векторы пространства строк AA, то Ax≠AyAx \ne Ay в пространстве столбцов AA. (Доказательство этого стало бы хорошей экзаменационной задачей.)

Предположим, что утверждение неверно. Тогда найдутся x≠yx \ne y в пространстве строк AA, для которых Ax=AyAx = Ay. Но тогда A(x−y)=0A(x - y) = 0, так что x−yx - y лежит в нуль-пространстве AA. Но пространство строк AA замкнуто относительно линейных комбинаций (например, вычитания), так что x−yx - y лежит и в пространстве строк. Единственный вектор, который лежит и в нуль-пространстве, и в пространстве строк, — нулевой, так что x−y=0x - y = 0. Это противоречит предположению, что xx и yy не равны.

Значит, отображение x↦Axx \mapsto Ax из пространства строк в пространство столбцов обратимо. Обратное к нему отображение называется псевдообратным (pseudoinverse), и оно очень полезно статистикам в работе с линейной регрессией — они не всегда могут гарантировать, что у их матриц полный ранг по столбцам r=nr = n.

Псевдообратная A+A^{+} к AA — это матрица, для которой x=A+Axx = A^{+} A x для всех xx в пространстве строк AA. Нуль-пространство A+A^{+} — это нуль-пространство ATA^T.

Начнём с сингулярного разложения A=UΣVTA = U \Sigma V^T. Напомним, что Σ\Sigma — матрица m×nm \times n, элементы которой равны нулю, кроме сингулярных чисел σ1,σ2,…,σr\sigma_1, \sigma_2, \dots, \sigma_r, стоящих на диагонали её первых rr строк. Матрицы UU и VV ортогональны, поэтому обратить их легко. Остаётся найти псевдообратную только для Σ\Sigma.

Ближе всего к обратной для Σ\Sigma матрица Σ+\Sigma^{+} размера n×mn \times m, у которой в первых rr строках на диагонали стоят 1/σ1,1/σ2,…,1/σr1/\sigma_1, 1/\sigma_2, \dots, 1/\sigma_r. Если r=n=mr = n = m, то Σ+=Σ−1\Sigma^{+} = \Sigma^{-1}. Произведение Σ\Sigma и Σ+\Sigma^{+} — всегда квадратная матрица, у которой первые rr диагональных элементов равны 1, а все остальные — 0.

Если A=UΣVTA = U \Sigma V^T, то её псевдообратная

A+=VΣ+UT.A^{+} = V \Sigma^{+} U^T.

(Вспомните, что QT=Q−1Q^T = Q^{-1} для ортогональных матриц UU, VV или QQ.)

Похожий результат получился бы, если бы мы поставили ненулевые элементы в правый нижний угол Σ+\Sigma^{+}, но лишние ненулевые элементы нам ни к чему.

Хотя псевдообратных не будет на экзамене, многие темы, которые мы затронули, обсуждая их (четыре подпространства, SVD, ортогональные матрицы), там, скорее всего, появятся.

ENRU
singular value decomposition (SVD)сингулярное разложение
singular value, singular vectorсингулярное число, сингулярный вектор
orthogonal matrix, orthonormal basisортогональная матрица, ортонормированный базис
row space / column spaceпространство строк / пространство столбцов
nullspace / left nullspaceнуль-пространство / левое нуль-пространство
positive semidefiniteположительно полуопределённая
change of basisсмена (замена) базиса
standard basisстандартный базис
Fourier basis, wavelet basisбазис Фурье, вейвлет-базис
lossless / lossy compressionсжатие без потерь / с потерями
similar matricesподобные матрицы
two-sided / left / right inverseдвусторонняя / левая / правая обратная
full column rank / full row rankполный ранг по столбцам / по строкам
pseudoinverseпсевдообратная матрица (Мура — Пенроуза)
least squaresметод наименьших квадратов

Дальше: производные по матрицам — путеводитель по MIT 18.S096 «Matrix Calculus»; назад к карте курса 18.06SC.