Линейная алгебра
Обратная матрица: когда трансформацию можно отменить
В 1977 году алгоритм RSA впервые зашифровал сообщение, умножив на матрицу в поле по модулю простого числа. Дешифрование - это применение обратной операции: если прямое преобразование существует и обратимо, исходные данные восстанавливаются без потерь. Обратная матрица - математическая основа любой обратимой системы: от криптографии до роботизированной кинематики, где по положению руки вычисляют углы суставов.
- **Компьютерное зрение**: undistortion объектива камеры через обратную матрицу внутренних параметров - каждый кадр Tesla Autopilot, каждая фотография на iPhone
- **Линейная регрессия**: нормальное уравнение θ = (XᵀX)⁻¹Xᵀy - аналитическое решение задачи наименьших квадратов одной обратной матрицей
- **Робототехника**: обратная кинематика - по положению захвата вычислить углы всех суставов манипулятора через обратную матрицу Якобиана
- **Криптография**: шифр Хилла и RSA - обратная матрица по модулю простого числа как операция дешифрования
Обратная матрица: когда трансформацию можно отменить
**Каждый раз, когда iPhone снимает фото и убирает искажения объектива - применяется обратная матрица.** Когда GPS пересчитывает маршрут, когда линейная регрессия подгоняет коэффициенты, когда Photoshop поворачивает слой и возвращает обратно - везде тот же объект. Обратная матрица - это **кнопка undo** для линейных преобразований: A что-то сделала, A⁻¹ это отменяет так, что не остаётся следа. Главное **A⁻¹ · A = I** - умножили туда, умножили обратно, получили исходный вектор.
**Самое интересное в уроке - не формула**. Самое интересное - случаи, когда обратной **не существует**. Сжатие JPEG, projection в PCA, dropout в нейросетях, downsampling картинки - все это необратимо, и понимание почему - важнее, чем умение считать.
Что главное в концепте «Обратная матрица: когда трансформацию можно отменить»?
Проверка усвоения материала концепта.
Геометрия: туда и обратно
Геометрия: туда и обратно
Возьмём матрицу поворота на 30°. Применим к вектору - он повернётся. Применим обратную - он вернётся ровно туда, откуда стартовал. Не "примерно", не "около" - **в ту же точку**, до последнего знака.
**Точка `back` буквально совпадает с `v`** - таково определение A⁻¹. Если на анимации видно, что они в разных местах, матрица посчитана неверно (или это была не обратная).
Что главное в концепте «Геометрия: туда и обратно»?
Проверка усвоения материала концепта.
Определение и свойства
Определение и свойства
ОПРЕДЕЛЕНИЕ: A⁻¹ - матрица, для которой A · A⁻¹ = A⁻¹ · A = I (единичная матрица) АНАЛОГИЯ С ЧИСЛАМИ: 5 · (1/5) = 1 A · A⁻¹ = I СВОЙСТВА (которые экономят кучу времени): (A⁻¹)⁻¹ = A - обратная к обратной = исходная (A · B)⁻¹ = B⁻¹ · A⁻¹ - порядок переворачивается! (Aᵀ)⁻¹ = (A⁻¹)ᵀ det(A⁻¹) = 1 / det(A) ГЛАВНОЕ ОГРАНИЧЕНИЕ: Не у каждой матрицы есть обратная. Условие существования: det(A) ≠ 0 (об этом - целый раздел ниже)
**Аналогия со снятием одежды**: если сначала надеть рубашку (A), потом куртку (B) - чтобы снять, идти надо в обратном порядке: сначала куртку (B⁻¹), потом рубашку (A⁻¹). Поэтому **(AB)⁻¹ = B⁻¹A⁻¹**, а не A⁻¹B⁻¹. Эта мелочь - ловушка на собеседованиях.
Что главное в концепте «Определение и свойства»?
Проверка усвоения материала концепта.
Когда обратной не существует - и почему это важно
Когда обратной не существует - и почему это важно
Обратная **не существует**, когда трансформация **теряет информацию**. Если две разные точки исходного пространства попали в одну после применения A - вернуть их обратно невозможно: какую из них выбирать?
| Условие | Существует A⁻¹? | Геометрический смысл |
|---|---|---|
| det(A) ≠ 0 | Да | Преобразование не схлопывает объём |
| det(A) = 0 | Нет | Пространство потеряло измерение |
| Столбцы линейно независимы | Да | Каждый столбец - новое направление |
| Столбцы коллинеарны | Нет | Все направления слиплись |
| Квадратная и обратимая | Да | Биекция: каждой точке - свой образ |
| Прямоугольная (m ≠ n) | Нет (только псевдо-) | Размерности входа и выхода разные |
**Что показывает картинка**: матрица A = [[2, 4], [1, 2]] переводит **весь** единичный квадрат в **отрезок** на прямой y = x/2. Площадь = 0, det(A) = 2·2 - 4·1 = 0. Из любой точки на этом отрезке невозможно понять, откуда внутри квадрата она пришла. Это и есть необратимость.
Что главное в концепте «Когда обратной не существует - и почему это важно»?
Проверка усвоения материала концепта.
Необратимость в реальном мире
Необратимость в реальном мире
| Операция | Почему необратима | Что теряется |
|---|---|---|
| JPEG-сжатие | Округление коэффициентов DCT | Высокие частоты, мелкие детали |
| Downsampling картинки 2x | 4 пикселя усредняются в 1 | Локальная вариация |
| PCA с обрезкой компонент | Проекция на k главных осей | Дисперсия по отброшенным осям |
| Dropout в нейросети | Часть активаций обнуляется | Информация в обнулённых нейронах |
| Хеш-функция | Много входов - один выход | Сами входы (специально!) |
| Average pooling в CNN | Усреднение в окне | Где именно был сильный сигнал |
**Ключевая мысль**: половина приёмов ML - **намеренная** потеря информации, чтобы остался только полезный сигнал. "Необратимо" - не баг, а часто сама суть метода.
Что главное в концепте «Необратимость в реальном мире»?
Проверка усвоения материала концепта.
Формула 2×2 (которую можно держать в голове)
Формула 2×2 (которую можно держать в голове)
ДЛЯ МАТРИЦЫ: A = [ a b ] [ c d ] ОБРАТНАЯ: 1 [ d -b ] A⁻¹ = ─────── · [ -c a ] det(A) где det(A) = a·d - b·c МНЕМОНИКА: 1) поменять местами a и d 2) сменить знак у b и c 3) разделить всё на det ПРИМЕР: A = [ 4 7 ] det = 4·3 - 7·2 = 12 - 14 = -2 [ 2 3 ] A⁻¹ = (1/-2) · [ 3 -7 ] = [ -1.5 3.5 ] [ -2 4 ] [ 1.0 -2.0 ]
Что главное в концепте «Формула 2×2 (которую можно держать в голове)»?
Проверка усвоения материала концепта.
Решение системы: x = A⁻¹·b
Решение системы: x = A⁻¹·b
Главная учебная задача обратной матрицы - решение систем уравнений A·x = b. Алгебра простая:
СИСТЕМА: 4x + 7y = 18 2x + 3y = 8 В МАТРИЧНОМ ВИДЕ: A·x = b где A = [4 7] b = [18] [2 3] [ 8] ДОМНОЖАЕМ ОБЕ ЧАСТИ НА A⁻¹ СЛЕВА: A⁻¹·A·x = A⁻¹·b I·x = A⁻¹·b x = A⁻¹·b ПОДСТАВЛЯЕМ A⁻¹ = [-1.5 3.5]: [ 1.0 -2.0] x = [-1.5 3.5] · [18] = [-1.5·18 + 3.5·8] = [-27 + 28] = [ 1 ] [ 1.0 -2.0] [ 8] [ 1.0·18 - 2.0·8] [ 18 - 16] [ 2 ] ОТВЕТ: x = 1, y = 2. ПРОВЕРКА: 4·1 + 7·2 = 4 + 14 = 18 ✓ 2·1 + 3·2 = 2 + 6 = 8 ✓
**В реальном коде так не делают**. Считать обратную и умножать на неё медленнее и численно хуже, чем `np.linalg.solve(A, b)`. Метод обратной хорош для понимания, для практики - `solve` (LU-разложение под капотом). Эта разница - база любого собеседования по численным методам.
Что главное в концепте «Решение системы: x = A⁻¹·b»?
Проверка усвоения материала концепта.
ML-применение №1: нормальное уравнение линейной регрессии
ML-применение №1: нормальное уравнение линейной регрессии
Линейная регрессия - первая модель в любом курсе ML. Её **точное** аналитическое решение - **одна** обратная матрица:
ДАНО: X - матрица признаков (n × d), n примеров, d признаков y - вектор целевых значений (n,) θ - искомые коэффициенты (d,) МОДЕЛЬ: y_pred = X · θ ЦЕЛЬ: минимизировать ||X·θ - y||² РЕШЕНИЕ В ЗАКРЫТОМ ВИДЕ (NORMAL EQUATION): θ = (Xᵀ·X)⁻¹ · Xᵀ · y ЗДЕСЬ ОБРАТНАЯ СУЩЕСТВУЕТ КОГДА: - признаки линейно независимы (нет дубликатов колонок) - n ≥ d (примеров не меньше, чем признаков) НЕ СУЩЕСТВУЕТ КОГДА: - есть точная мультиколлинеарность ("вес = 2.2 · масса" в двух колонках) - больше признаков чем примеров → решение: ridge regression (X^T X + λI)⁻¹ - регуляризация спасает обратимость
**Зачем градиентный спуск, если есть точное решение**: при d = 100 000 (как в NLP) обратная матрица 100 000 × 100 000 - это 80 ГБ памяти и часы CPU. Градиентный спуск не строит матрицу - он итерируется. Поэтому в нейросетях обратные матрицы напрямую не считаются почти никогда. Но **формула** показывает, что задача в принципе разрешима за один шаг.
Что главное в концепте «ML-применение №1: нормальное уравнение линейной регрессии»?
Проверка усвоения материала концепта.
ML-применение №2: undistortion в компьютерном зрении
ML-применение №2: undistortion в компьютерном зрении
Объектив камеры искажает прямые линии ("бочка" на широкоугольных, "подушка" на телевиках). Перед обработкой кадра в self-driving / SLAM / фото - искажение **снимают**. Это буквально применение обратной матрицы к каждому пикселю.
**Каждый кадр Tesla Autopilot, каждая фотография на iPhone, каждое сканирование Lidar** проходит через обратное преобразование внутренних параметров камеры. Для ML и робототехники это рутина уровня дыхания.
Что главное в концепте «ML-применение №2: undistortion в компьютерном зрении»?
Проверка усвоения материала концепта.
ML-применение №3: whitening (декорреляция признаков)
ML-применение №3: whitening (декорреляция признаков)
Часто признаки в датасете коррелированы ("рост" и "размер обуви"). Это мешает многим алгоритмам. **Whitening** превращает признаки в некоррелированные с единичной дисперсией - и в этой формуле снова обратная (точнее, обратный квадратный корень):
Σ - ковариационная матрица признаков X_white = X · Σ^(-1/2) Обратный корень из Σ считается через спектральное разложение, но идея та же: "взять и обратить". Применяется в: - предобработке для PCA, ICA - GAN-стабилизации (whitened batch) - подготовке инпутов для классических методов перед нейросетями
Что главное в концепте «ML-применение №3: whitening (декорреляция признаков)»?
Проверка усвоения материала концепта.
А что если матрица не квадратная? Псевдо-обратная
А что если матрица не квадратная? Псевдо-обратная
В реальных задачах матрицы X почти никогда не квадратные: 10 000 примеров и 50 признаков - это X размера 10000 × 50. Обратной не существует **в принципе**. Спасает обобщение - **псевдо-обратная Мура-Пенроуза** (A⁺), которая всегда существует и совпадает с A⁻¹ для квадратных невырожденных:
**В индустрии 80% задач решаются именно псевдо-обратной, не обычной**. Понимание обычной A⁻¹ - база, понимание pinv - то, что отделяет учебный код от продакшна.
Что главное в концепте «А что если матрица не квадратная? Псевдо-обратная»?
Проверка усвоения материала концепта.
Обратные к типичным трансформациям (полезная памятка)
Обратные к типичным трансформациям (полезная памятка)
| Трансформация | Обратная | Интуиция |
|---|---|---|
| Поворот на угол θ | Поворот на -θ | Повернуть назад |
| Масштаб ×k (k ≠ 0) | Масштаб ×(1/k) | Уменьшить во столько же раз |
| Сдвиг (shear) на k | Сдвиг на -k | Сдвинуть в обратную сторону |
| Отражение | Та же самая (F⁻¹ = F) | Дважды отразить = ничего не делать |
| Перестановка координат | Обратная перестановка | Транспонирование для матрицы перестановок |
| Проекция на ось | НЕ существует | Информация о другой оси потеряна |
| Любая ортогональная U | Транспонирование (Uᵀ) | Бесплатное обращение - используется в SVD, QR |
**Последняя строка - самое важное упражнение**. Для ортогональной матрицы U⁻¹ = Uᵀ (просто транспонировать). Это причина, по которой в численном ML так любят ортогональные матрицы: транспонирование стоит ничего, обращение - дорого.
Что главное в концепте «Обратные к типичным трансформациям (полезная памятка)»?
Проверка усвоения материала концепта.
Метод Гаусса-Жордана для матриц больше 2×2
Метод Гаусса-Жордана для матриц больше 2×2
Для n×n матрицы формула становится громоздкой. Стандартный школьный/вузовский алгоритм - **метод Гаусса-Жордана**: дописать к матрице единичную справа и элементарными преобразованиями строк свести левую часть к I. Что осталось справа - и есть A⁻¹.
ИДЕЯ: [A | I] → ... → [I | A⁻¹] ПРИМЕР с A = [2 1]: [1 1] [ 2 1 | 1 0 ] [ 1 1 | 0 1 ] R1 ← R1 / 2: [ 1 0.5 | 0.5 0 ] [ 1 1 | 0 1 ] R2 ← R2 - R1: [ 1 0.5 | 0.5 0 ] [ 0 0.5 | -0.5 1 ] R2 ← R2 / 0.5: [ 1 0.5 | 0.5 0 ] [ 0 1 | -1 2 ] R1 ← R1 - 0.5·R2: [ 1 0 | 1 -1 ] [ 0 1 | -1 2 ] A⁻¹ = [ 1 -1 ] [-1 2 ] ПРОВЕРКА: A · A⁻¹ = [2 1] · [ 1 -1] = [ 1 0 ] = I ✓ [1 1] [-1 2] [ 0 1 ]
Что главное в концепте «Метод Гаусса-Жордана для матриц больше 2×2»?
Проверка усвоения материала концепта.
Практика: шифр Хилла
Практика: шифр Хилла
Вопросы для собеседования
Почему (AB)⁻¹ = B⁻¹A⁻¹, а не A⁻¹B⁻¹?
- AB·v означает: сначала B применилось к v, потом A к B·v - Чтобы отменить, надо снимать в обратном порядке: сначала A, потом B - Поэтому (AB)⁻¹ = B⁻¹A⁻¹ - Аналогия: надели рубашку → потом куртку. Снимать: куртка → рубашка
Когда лучше использовать pinv (псевдо-обратную) вместо inv?
- Прямоугольные матрицы (m ≠ n) - inv не существует, pinv всегда работает - Плохо обусловленные матрицы (det близок к 0) - inv даёт огромные числа, pinv через SVD устойчивее - Линейная регрессия с мультиколлинеарностью - pinv даёт минимально-норменное решение - В индустрии pinv (или lstsq поверх SVD) - дефолт, inv - редкое исключение
Почему в нейросетях обратные матрицы практически не считают?
- Размерности слоёв: десятки тысяч × десятки тысяч, обратная требует O(n³) и квадратичной памяти - Градиентный спуск работает за O(n) на шаг и не требует хранить полную матрицу - Обратные используются в специальных местах: ridge regression, второпорядковая оптимизация (Newton, K-FAC) - Чаще встречается псевдо-обратная для предобработки или итеративные приближения (CG, Lanczos)
Что главное в концепте «Практика: шифр Хилла»?
Проверка усвоения материала концепта.
Что унести из урока
- **A⁻¹ - кнопка undo**: A⁻¹ · A = I, существует только когда трансформация ничего не теряет
- **det(A) = 0 ⟺ обратной нет**: пространство схлопнулось, информация утрачена
- **Половина приёмов ML необратима намеренно** (JPEG, downsampling, dropout, projection в PCA)
- **Формула 2×2**: a↔d, минусы у b,c, делить на det
- **(AB)⁻¹ = B⁻¹A⁻¹** - порядок переворачивается, как при снятии одежды
- **В коде**: solve > inv для систем, pinv для прямоугольных и плохообусловленных, ортогональные матрицы дают U⁻¹ = Uᵀ почти бесплатно
- **Линейная регрессия** = одна обратная (нормальное уравнение); недетерминированный случай решается ridge или pinv
Связи
Обратная матрица сидит на пересечении нескольких больших тем
- Определитель — det = 0 - точное условие отсутствия обратной
- Метод Гаусса — Тот же алгоритм для систем и для обратной
- Сингулярное разложение (SVD) — Универсальный способ построить псевдо-обратную для любой матрицы
- Линейная регрессия — Нормальное уравнение - ровно один inv
Вопросы для размышления
- На практике numpy.linalg.solve(A, b) быстрее и численно стабильнее, чем inv(A) @ b. Почему библиотеки предпочитают LU-разложение прямому вычислению обратной матрицы?
- Псевдообратная Мура-Пенроуза существует для любой матрицы, в том числе прямоугольной. Чем она отличается от «настоящей» обратной и почему линейная регрессия использует именно её?
- Обусловленность матрицы (condition number) определяет, насколько ошибки во входных данных усиливаются при решении системы Ax = b. Как это связано с понятием обратимости в прикладных задачах?