Линейная алгебра
Матрица как линейное отображение
Столбцы матрицы — это образы базисных векторов, и из одного этого следует почти всё
Сначала отображение, потом таблица
Матрица — это не таблица чисел. Точнее: таблица чисел — это запись матрицы в фиксированном базисе, а сама матрица есть линейное отображение.
Отображение называется линейным, если
Одной формулой: сохраняет линейные комбинации. Отсюда сразу следует — линейное отображение обязано оставлять начало координат на месте.
Слой нейросети линейным не является при : он не сохраняет ноль. Это аффинное отображение. Разница в терминологии, но она объясняет, почему в теории всё пишут через расширенную матрицу с дополнительной единичной координатой.
Главное наблюдение
Возьмём произвольный вектор и разложим его по базису:
Применим и воспользуемся линейностью:
Вот и всё. Линейное отображение полностью определяется тем, куда оно переводит базисные векторы. Знаете образов — знаете отображение целиком.
Матрица — это именно эти образы, записанные столбцами:
Из этого следует и определение умножения матрицы на вектор:
Стоит один раз перестроить интуицию с «строка скалярно умножается на вектор» на «столбцы взвешиваются координатами». Вторая точка зрения объясняет почти всё остальное.
Следствия, которые теперь бесплатны
Образ (column space) — это столбцов. Прямо из формулы выше: пробегает все линейные комбинации столбцов, когда пробегает всё пространство.
Ранг — размерность образа, то есть число линейно независимых столбцов.
Ядро (null space) — множество , то есть те комбинации столбцов, которые обнуляются. Ядро тривиально ровно тогда, когда столбцы независимы, — то есть ровно тогда, когда отображение инъективно. Это в точности то, что мы обсуждали в блоке 0.
Теорема о ранге и дефекте связывает всё вместе:
где — число столбцов. Читается как закон сохранения: каждое измерение входа либо выживает в образе, либо схлопывается в ядро.
Умножение матриц — это композиция
Определение умножения матриц выбрано именно так, чтобы это равенство выполнялось. Отсюда всё остальное:
- Порядок: означает «сначала , потом » — как в композиции функций . Матрицы записываются в порядке, обратном порядку применения.
- Согласование размерностей: если и , то имеет форму , — форму , произведение — . Внутренние размерности обязаны совпасть, потому что выход должен быть допустимым входом .
- Некоммутативность: , потому что композиция функций некоммутативна. Повернуть, а потом растянуть — не то же самое, что растянуть, а потом повернуть.
- Ассоциативность: , потому что композиция ассоциативна. Ровно поэтому в глубоких сетях можно группировать слои как угодно.
Ни одно из этих свойств не нужно запоминать отдельно. Все они — свойства композиции отображений.
Транспонирование
. Геометрический смысл не так очевиден, как хотелось бы, и станет ясен только вместе со скалярным произведением: — это сопряжённое отображение, определяемое соотношением
Пока достаточно рабочих правил: — порядок меняется, как при обращении композиции.
Проверка понимания
Матрица задаёт отображение . Число строк — это размерность выхода, число столбцов — размерность входа. Легко перепутать, потому что записывается «строки × столбцы», а читается «из столбцов в строки».
Проверяйте так: столбцов должно быть столько, сколько базисных векторов на входе — ведь каждый столбец и есть образ одного из них.
Источники
- 3Blue1Brown — Essence of Linear Algebra, эпизоды 3–4 — Матрица как преобразование, умножение как композиция
- Deisenroth, Faisal, Ong — Mathematics for Machine Learning, гл. 2.7 — Linear mappings, transformation matrices
Проверки
0 из 2Что кодируют столбцы
Линейное отображение переводит в , а в .
Какая матрица его задаёт?
Умножение как композиция
Реализуйте
matmul(a, b)— произведение матриц, заданных списками строк.Требования:
- если размерности несовместимы (число столбцов
aне равно числу строкb), вернитеnull(в Python —None); - произведение матрицы с нулём столбцов на матрицу с нулём строк корректно и даёт нулевую матрицу нужного размера.
Реализуйте через линейные комбинации столбцов, а не через тройной цикл по индексам, если получится: -й столбец произведения — это , применённая к -му столбцу . Результат тот же, но связь со смыслом видна лучше.
Загрузка редактора…
Ctrl/⌘ + Enter- если размерности несовместимы (число столбцов