Линейная алгебра для машинного обучения

Курс систематизирует знания по линейной алгебре для применения в машинном обучении и анализе данных. Вы изучите матричные вычисления, векторные пространства и линейные отображения на практических примерах алгоритмов ML.

1. Матрицы и матричные вычисления: базовые операции в ML

В машинном обучении данные редко существуют в виде изолированных чисел. Чаще всего мы работаем с наборами данных, где строки представляют отдельные объекты (например, пользователей или изображения), а столбцы — их характеристики (возраст, доход, пиксели). Такая структура естественным образом описывается матрицей. Понимание того, как анализировать матрицы и раскладывать их на базовые компоненты, является ключом к алгоритмам сжатия данных, рекомендательным системам и глубокому обучению.

Характеристики матриц: Детерминант и След

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

Детерминант (определитель) квадратной матрицы , обозначаемый как , геометрически показывает, во сколько раз линейное преобразование, заданное этой матрицей, увеличивает или уменьшает площадь (в 2D) или объем (в 3D) фигур.

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

След матрицы (trace), обозначаемый как — это просто сумма элементов, стоящих на ее главной диагонали (от верхнего левого угла до нижнего правого).

Где — след матрицы, — размерность квадратной матрицы, — элементы на главной диагонали.

След обладает важным свойством инвариантности: при циклической перестановке перемножаемых матриц их след не меняется (). Это свойство часто используется при оптимизации функций потерь в нейронных сетях для упрощения вычисления градиентов.

Собственные значения и собственные векторы

Когда мы умножаем вектор на матрицу, вектор обычно меняет как свою длину, так и направление. Однако для каждой квадратной матрицы существует особый набор векторов, которые при умножении на эту матрицу меняют только длину, но сохраняют свое направление (или меняют его на строго противоположное).

Эти векторы называются собственными векторами (eigenvectors), а коэффициент, на который изменяется их длина — собственным значением (eigenvalue).

Математически это записывается уравнением:

Где — квадратная матрица преобразования, — собственный вектор (не равный нулю), — собственное значение (скаляр).

!Интерактивный симулятор линейных преобразований — изменяйте значения матрицы и наблюдайте, как собственные векторы сохраняют свое направление

> Алгоритм PageRank, созданный основателями Google, использует именно эту концепцию. Веб-страницы и ссылки между ними представляются в виде огромной матрицы переходов. Важность каждой страницы вычисляется как собственный вектор этой матрицы, соответствующий максимальному собственному значению (равному 1). Страница важна, если на нее ссылаются другие важные страницы.

Матричные разложения (Факторизация)

В арифметике мы можем разложить сложное число на простые множители, чтобы лучше понять его структуру (например, ). В линейной алгебре аналогичный процесс называется матричным разложением или факторизацией. Мы представляем сложную матрицу данных в виде произведения нескольких более простых матриц, каждая из которых имеет понятный геометрический смысл.

Разложение Холецкого

Для особого класса матриц — симметричных положительно определенных — существует операция, аналогичная извлечению квадратного корня из числа. Это разложение Холецкого.

Где — исходная симметричная положительно определенная матрица, — нижнетреугольная матрица (все элементы выше главной диагонали равны нулю), — транспонированная матрица .

В машинном обучении разложение Холецкого применяется при работе с вероятностями. Например, ковариационная матрица многомерного нормального распределения всегда симметрична и положительно определена. Разложение Холецкого позволяет эффективно генерировать случайные выборки из этого распределения, что критически важно для работы вариационных автоэнкодеров (VAE) и генеративно-состязательных сетей (GAN).

Сингулярное разложение (SVD)

Собственное разложение и разложение Холецкого требуют, чтобы матрица была квадратной. Но реальные данные (например, таблица, где 1000 пользователей и 50 признаков) редко образуют квадратную матрицу. Здесь на помощь приходит сингулярное разложение (Singular Value Decomposition, SVD) — метод, который называют «фундаментальной теоремой линейной алгебры», так как он применим к любой прямоугольной матрице.

Теорема SVD утверждает, что любую матрицу размером можно представить в виде:

Где: * — исходная матрица данных. * — ортогональная матрица размером . Ее столбцы называются левыми сингулярными векторами. * — диагональная матрица размером . На ее диагонали стоят сингулярные значения (обозначаются как ), отсортированные по убыванию. Они показывают «важность» каждого направления. * — транспонированная ортогональная матрица размером . Ее строки — правые сингулярные векторы.

!Геометрическая интерпретация SVD: любое линейное преобразование можно разбить на вращение, масштабирование по осям и еще одно вращение

Геометрически SVD показывает, что любое сложное линейное преобразование можно разбить на три простых шага:

  • Вращение исходного пространства (матрица ).
  • Масштабирование вдоль осей координат (матрица ).
  • Еще одно вращение в целевом пространстве (матрица ).
  • Сравнение методов факторизации

    | Характеристика | Разложение Холецкого | Сингулярное разложение (SVD) | | :--- | :--- | :--- | | Требования к матрице | Квадратная, симметричная, положительно определенная | Любая прямоугольная матрица | | Формула | | | | Главное применение в ML | Сэмплирование из распределений, оптимизация вычислений | Сжатие данных, понижение размерности, рекомендательные системы |

    Применение SVD: Аппроксимация низкого ранга

    Самое мощное свойство SVD в машинном обучении — возможность сжатия данных с минимальными потерями информации. Поскольку сингулярные значения в матрице отсортированы по убыванию (), первые несколько значений содержат основную информацию о структуре данных, а остальные часто представляют собой просто информационный шум.

    Если мы обнулим все маленькие сингулярные значения, оставив только самых больших, мы получим аппроксимацию низкого ранга.

    Представьте, что у нас есть черно-белое изображение размером 1000 × 1000 пикселей. Для его хранения требуется 1 000 000 чисел. Если мы применим SVD и оставим только наибольших сингулярных значений, нам нужно будет хранить только: * Матрицу : чисел. * Сингулярные значения : чисел. * Матрицу : чисел.

    Итого: 100 050 чисел вместо миллиона. Мы сжали данные почти в 10 раз, при этом визуально восстановленное изображение будет крайне похоже на оригинал, так как мы сохранили самые важные «паттерны» (главные компоненты) изображения.

    Именно этот математический аппарат лежит в основе метода главных компонент (PCA), который используется дата-саентистами для визуализации многомерных данных и борьбы с «проклятием размерности» при обучении моделей.

    2. Системы линейных уравнений и линейная независимость признаков

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

    Любая модель машинного обучения, будь то простая линейная регрессия или глубокая нейронная сеть, в своей основе решает систему уравнений. Мы ищем такие параметры (веса), которые наилучшим образом связывают наши входные данные (признаки) с желаемым результатом (целевой переменной).

    Матричная форма системы линейных уравнений

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

    У вас есть данные по двум квартирам:

  • Площадь 50 кв.м, до центра 2 км. Цена: 10 млн руб.
  • Площадь 80 кв.м, до центра 5 км. Цена: 15 млн руб.
  • Мы предполагаем, что цена формируется как базовая стоимость плюс вес каждого признака. Математически это записывается как система из двух линейных уравнений:

    Где — стоимость одного квадратного метра, а — штраф за каждый километр удаленности от центра.

    В линейной алгебре такие системы записываются компактно в матричном виде:

    Где: * — матрица признаков (в нашем случае размеры квартир и расстояния). * — вектор-столбец неизвестных весов модели ( и ), которые алгоритм должен найти. * — вектор-столбец целевых переменных (цены на квартиры).

    Решить систему — значит найти такой вектор , при умножении которого на матрицу данных мы получим правильные ответы .

    Линейная независимость признаков

    В идеальном мире матрица содержит уникальную и полезную информацию в каждом столбце. Но при сборе реальных данных часто возникает проблема дублирования информации.

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

    Рассмотрим пример. Допустим, к площади и расстоянию до центра вы добавили третий признак — площадь квартиры, но уже в квадратных футах.

    Поскольку 1 квадратный метр примерно равен 10,76 квадратных футов, ваш третий столбец будет просто первым столбцом, умноженным на 10,76. С точки зрения математики и машинного обучения, вы не добавили никакой новой информации. Вы просто продублировали существующую в другом масштабе.

    !Геометрическая разница между независимыми и зависимыми признаками

    Почему линейная зависимость — это проблема?

    В машинном обучении наличие линейно зависимых признаков называется мультиколлинеарностью. Это явление разрушает работу многих алгоритмов по нескольким причинам:

  • Невозможность найти уникальное решение. Если признаки зависимы, матрица становится вырожденной (ее детерминант ). В этом случае система имеет либо бесконечно много решений, либо ни одного. Алгоритм не может понять, какому из дублирующих признаков отдать больший вес.
  • Нестабильность весов. Даже если признаки не идеально зависимы, а просто сильно коррелируют (например, площадь квартиры и количество комнат), веса модели начинают вести себя хаотично. При малейшем изменении входных данных веса могут скакать от огромных положительных значений до огромных отрицательных.
  • Избыточные вычисления. Лишние признаки замедляют обучение модели и требуют больше памяти, не принося пользы.
  • > В статистике существует классическая ловушка фиктивных переменных (dummy variable trap). Если вы кодируете категориальный признак «Пол» (Мужской/Женский) двумя бинарными столбцами, они становятся линейно зависимыми, так как столбец «Женский» всегда равен 1 минус столбец «Мужской». Для корректной работы линейной регрессии один из таких столбцов необходимо удалить.

    Переопределенные системы и метод наименьших квадратов

    В нашем первом примере с квартирами у нас было 2 неизвестных веса и ровно 2 наблюдения (квартиры). Такая система называется квадратной, и если признаки независимы, она имеет ровно одно идеальное решение.

    Но в реальном машинном обучении данных всегда больше, чем признаков. У нас может быть 10 000 квартир и всего 5 признаков. Матрица становится вытянутой по вертикали (прямоугольной).

    В такой ситуации система не имеет точного решения. Невозможно провести одну прямую (или гиперплоскость), которая идеально прошла бы через все 10 000 точек, потому что реальные данные содержат шум и погрешности. Вектор просто не лежит в линейной оболочке (пространстве, образованном столбцами) матрицы .

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

    !Интерактивная визуализация метода наименьших квадратов и ортогональной проекции

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

    Математически этот процесс приводит к самому важному уравнению в классическом машинном обучении — нормальному уравнению для метода обычных наименьших квадратов (Ordinary Least Squares, OLS):

    Где: * — транспонированная матрица признаков. * — исходная матрица признаков. * — искомые оптимальные веса модели. * — вектор реальных целевых значений.

    Умножая левую и правую часть исходного уравнения на транспонированную матрицу , мы превращаем нерешаемую прямоугольную систему в решаемую квадратную.

    Матрица всегда является квадратной и симметричной. И вот здесь мы возвращаемся к линейной независимости: чтобы мы могли решить это уравнение и найти веса , матрица должна быть обратимой. А она будет обратимой только в том случае, если все столбцы исходной матрицы линейно независимы.

    Если в данных есть мультиколлинеарность, матрица становится вырожденной, и классическая линейная регрессия ломается. Именно поэтому дата-саентисты тратят так много времени на отбор признаков (Feature Selection), удаляя сильно коррелирующие переменные перед обучением модели.

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

    3. Векторные пространства: подпространства и ортогональные проекции

    Векторные пространства: подпространства и ортогональные проекции

    В предыдущей статье мы выяснили, что алгоритмы машинного обучения ломаются, если в данных есть линейно зависимые признаки (мультиколлинеарность). Мы также вскользь упомянули, что при решении переопределенных систем уравнений (когда данных больше, чем признаков) алгоритм ищет точку, которая находится ближе всего к правильным ответам.

    Сегодня мы заглянем под капот этого процесса. Мы разберем геометрическую суть работы с данными — концепцию векторных пространств, подпространств и ортогональных проекций. Эти инструменты лежат в основе не только линейной регрессии, но и алгоритмов сжатия данных, таких как метод главных компонент (PCA).

    Геометрия данных: пространства и подпространства

    В машинном обучении каждый объект (например, квартира, клиент или изображение) представляется в виде вектора признаков. Если у нас есть набор данных с признаками, мы говорим, что наши данные живут в -мерном векторном пространстве, которое обозначается как .

    > Векторное пространство — это математическая структура, в которой векторы можно складывать друг с другом и умножать на числа (скаляры), получая в результате новые векторы, принадлежащие этому же пространству.

    Однако данные редко заполняют всё доступное пространство равномерно. Представьте, что вы анализируете параметры автомобилей: вес, мощность двигателя и расход топлива. Эти три признака образуют трехмерное пространство . Но тяжелые машины обычно имеют мощные двигатели и потребляют много топлива. Эти параметры сильно связаны.

    Если нанести все автомобили на 3D-график, вы увидите, что точки не разбросаны хаотично в виде облака. Они будут группироваться вокруг некоторой двумерной плоскости или даже вытягиваться вдоль одной линии. Такая плоскость или линия внутри большего пространства называется подпространством.

    Подпространство — это часть векторного пространства , которая сама по себе является векторным пространством. Геометрически в подпространствами являются: * Само начало координат (точка ). * Любая прямая, проходящая через начало координат (одномерное подпространство). * Любая плоскость, проходящая через начало координат (двумерное подпространство).

    Поиск таких подпространств — главная задача при сжатии данных. Если мы сможем найти 2D-плоскость, в которой (или очень близко к которой) лежат все наши 3D-точки, мы сможем отбросить один лишний признак без существенной потери информации.

    Ортогональная проекция на прямую

    Как именно «перенести» точку из многомерного пространства на подпространство меньшей размерности? Для этого используется операция ортогональной проекции.

    Представьте, что подпространство — это пол в комнате, а ваша точка данных — это теннисный мячик, висящий в воздухе. Если вы посветите на мячик фонариком строго сверху вниз, тень от мячика на полу и будет его ортогональной проекцией.

    Математически, линейное отображение называется проекцией, если выполняется свойство:

    Это означает, что если вы уже спроецировали точку на плоскость (тень упала на пол), то повторное применение проекции к этой тени ничего не изменит — она останется на том же месте.

    Рассмотрим простейший случай: проекцию вектора на одномерное подпространство (прямую), которое задается вектором . Мы хотим найти такую точку на прямой , которая находится ближе всего к .

    Слово «ортогональная» (перпендикулярная) здесь ключевое. Кратчайшее расстояние от точки до прямой — это перпендикуляр. Значит, вектор ошибки (разница между исходным вектором и его проекцией) должен быть ортогонален вектору . В линейной алгебре два вектора ортогональны, если их скалярное произведение равно нулю.

    Из этого геометрического факта выводится формула проекции вектора на вектор :

    Где: * — скалярное произведение векторов и . * — квадрат длины вектора . * Дробь — это просто число (скаляр), показывающее, насколько нужно растянуть или сжать вектор , чтобы добраться до точки проекции.

    Проекция на многомерные подпространства

    В машинном обучении мы редко проецируем данные на одну прямую. Чаще нам нужно спроецировать вектор размерности на подпространство размерности (где ). Например, спроецировать 100-мерный вектор на 10-мерную гиперплоскость.

    Для этого нам нужен базис подпространства — набор из линейно независимых векторов, которые задают эту гиперплоскость. Запишем эти векторы по столбцам в матрицу .

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

    А сама точка проекции в исходном пространстве вычисляется умножением матрицы базиса на эти координаты. В итоге мы получаем матрицу проекции :

    Умножив любой вектор на матрицу , мы мгновенно получим его ортогональную проекцию на подпространство, заданное столбцами матрицы .

    !Интерактивная визуализация ортогональной проекции вектора на плоскость

    Связь с машинным обучением: метод наименьших квадратов

    Если формула кажется вам знакомой, вы абсолютно правы. В предыдущей статье мы вывели нормальное уравнение для линейной регрессии:

    Теперь мы можем посмотреть на линейную регрессию через призму геометрии.

    В регрессии у нас есть матрица признаков и вектор целевых переменных (например, реальные цены на квартиры). Вектор содержит столько же элементов, сколько у нас наблюдений (например, 10 000). Значит, — это точка в 10 000-мерном пространстве.

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

    Веса модели , которые находит линейная регрессия — это просто координаты этой проекции в базисе наших признаков. Ошибка модели (Mean Squared Error) — это квадрат длины перпендикуляра, опущенного из реальной точки на гиперплоскость предсказаний.

    Ортогонализация Грама — Шмидта

    Вычисление матрицы проекции требует нахождения обратной матрицы . Это вычислительно сложная и нестабильная операция, особенно для больших матриц.

    Но что, если мы выберем базисные векторы матрицы так, чтобы они были ортогональны друг другу (угол между ними 90 градусов) и имели длину, равную 1? Такой базис называется ортонормированным.

    Для ортонормированной матрицы выполняется прекрасное свойство: (единичная матрица). Единичная матрица при обращении остается единичной, и наша страшная формула проекции магическим образом схлопывается до:

    Никаких обратных матриц! Вычисления ускоряются в тысячи раз.

    Чтобы превратить любой обычный базис в ортонормированный, используется метод Грама — Шмидта. Это итеративный алгоритм, который работает на основе тех же самых проекций:

  • Берем первый вектор как есть (только нормализуем его длину до 1).
  • Берем второй вектор и вычитаем из него его проекцию на первый вектор. Оставшаяся часть гарантированно будет перпендикулярна первому вектору.
  • Берем третий вектор и вычитаем из него его проекции на первый и второй векторы.
  • Повторяем для всех измерений.
  • В машинном обучении ортогональные базисы ценятся на вес золота. Они не только ускоряют вычисления, но и гарантируют, что признаки не дублируют друг друга (отсутствует мультиколлинеарность).

    Сжатие данных и PCA

    Понимание проекций открывает дверь к одному из самых популярных алгоритмов обучения без учителя — Анализу главных компонент (Principal Component Analysis, PCA).

    Представьте, что у вас есть черно-белые фотографии лиц размером 100x100 пикселей. Каждое изображение — это вектор в пространстве размерности 10 000. Хранить и обрабатывать такие данные тяжело.

    Но лица не являются случайным набором пикселей. У них есть структура: глаза, нос, симметрия. Это значит, что векторы лиц не заполняют всё 10 000-мерное пространство, а лежат в подпространстве гораздо меньшей размерности.

    Алгоритм PCA находит ортонормированный базис этого подпространства (так называемые «собственные лица»). Затем он берет исходное 10 000-мерное изображение и ортогонально проецирует его на найденное подпространство, например, размерности 50.

    Вместо 10 000 пикселей мы теперь храним всего 50 координат проекции (). При этом мы сохраняем самую важную информацию об изображении. Ошибка реконструкции (потеря качества при сжатии) — это в точности длина вектора ошибки между исходным изображением и его проекцией.

    Ортогональные проекции — это математический мост между сырыми, избыточными данными и компактными, информативными признаками, с которыми работают современные нейросети.

    4. Линейные отображения: собственные значения и матричные разложения

    Линейные отображения: собственные значения и матричные разложения

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

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

    Базовые характеристики: детерминант и след

    Прежде чем раскладывать матрицу на множители, полезно оценить её общие свойства с помощью двух ключевых характеристик: детерминанта и следа.

    Детерминант (определитель) квадратной матрицы , обозначаемый как , показывает, как изменяется объем (или площадь в 2D) многомерной фигуры после применения этого линейного отображения. * Если , преобразование сохраняет объем (например, обычный поворот). * Если , матрица «схлопывает» пространство в меньшую размерность (например, проецирует 3D-объект на 2D-плоскость). Такая матрица называется вырожденной, и для неё не существует обратной матрицы.

    След матрицы (trace), обозначаемый как — это просто сумма элементов на её главной диагонали. Удивительное свойство следа заключается в том, что он остается неизменным (инвариантным) при смене базиса. Независимо от того, в какой системе координат вы рассматриваете линейное отображение, его след будет одинаковым.

    Собственные значения и собственные векторы

    Представьте, что вы растягиваете резиновый лист. Большинство точек на листе изменят свое положение и направление относительно центра. Но найдутся такие линии, которые останутся на своих местах, они лишь растянутся или сожмутся. Векторы, лежащие на этих линиях, называются собственными векторами (eigenvectors).

    > Собственный вектор квадратной матрицы — это такой ненулевой вектор, который при умножении на матрицу лишь масштабируется, не меняя своего направления.

    Математически это выражается знаменитым уравнением:

    Где: * — квадратная матрица преобразования. * — собственный вектор. * (лямбда) — собственное значение (eigenvalue), скаляр, показывающий, во сколько раз растягивается или сжимается вектор .

    Если , вектор удлиняется. Если , вектор укорачивается. Если , вектор меняет направление на противоположное.

    !Интерактивная визуализация собственных векторов

    Алгоритм PageRank: веб-страницы как собственные векторы

    Собственные векторы — это не просто абстракция, на них построен фундамент интернета. Алгоритм PageRank, созданный основателями Google, оценивает важность веб-страниц.

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

    Алгоритм ищет такой вектор важности страниц , который не меняется после применения матрицы переходов (то есть после очередного «клика» пользователей распределение весов остается стабильным). Это в точности означает решение уравнения . Вектор PageRank — это собственный вектор матрицы интернета, соответствующий собственному значению .

    Собственное разложение (Диагонализация)

    Если квадратная матрица размера имеет линейно независимых собственных векторов, мы можем собрать их по столбцам в новую матрицу . А соответствующие им собственные значения поместить на диагональ матрицы (где все остальные элементы — нули).

    Тогда исходную матрицу можно представить в виде собственного разложения:

    Это уравнение имеет глубокий геометрический смысл. Любое сложное линейное преобразование можно разбить на три простых шага:

  • — смена базиса. Мы переходим в систему координат, оси которой направлены вдоль собственных векторов.
  • — масштабирование. В этой новой системе координат преобразование действует максимально просто: оно лишь растягивает или сжимает оси на величину собственных значений.
  • — возврат в исходный базис.
  • Это разложение невероятно полезно при возведении матриц в степень. В машинном обучении (например, в марковских цепях) часто нужно вычислить . Умножать матрицу саму на себя раз вычислительно дорого. Но благодаря диагонализации:

    Возвести диагональную матрицу в степень элементарно — нужно просто возвести в степень каждое число на её диагонали.

    Разложение Холецкого: квадратный корень для матриц

    Собственное разложение работает не для всех матриц. Но в машинном обучении мы часто сталкиваемся с особым классом матриц — симметричными положительно определенными. Яркий пример — ковариационная матрица, описывающая зависимости между признаками в данных.

    Для таких матриц существует особый, очень эффективный вид факторизации — разложение Холецкого:

    Где — нижнетреугольная матрица (все элементы выше главной диагонали равны нулю), а — её транспонированная версия.

    Разложение Холецкого можно воспринимать как извлечение «квадратного корня» из матрицы. Оно вычисляется в два раза быстрее других методов и широко применяется в вероятностных моделях. Например, при генерации данных из многомерного нормального распределения (что используется в Вариационных Автоэнкодерах — VAE), разложение Холецкого ковариационной матрицы позволяет превратить простой белый шум в сложные коррелированные данные.

    Сингулярное разложение (SVD)

    Что делать, если матрица не квадратная? Например, у нас есть датасет, где 10 000 пользователей (строки) оценили 500 фильмов (столбцы). Матрица имеет размер . Собственное разложение здесь неприменимо.

    На помощь приходит «фундаментальная теорема линейной алгебры» — Сингулярное разложение (Singular Value Decomposition, SVD). Оно гарантированно существует для абсолютно любой прямоугольной матрицы размера .

    Формула SVD выглядит так:

    Каждая из этих трех матриц имеет строгий геометрический смысл:

  • (размер ) — ортогональная матрица. Она выполняет вращение в исходном пространстве признаков (пространстве фильмов).
  • (размер ) — диагональная матрица с неотрицательными числами на диагонали. Эти числа называются сингулярными значениями (обозначаются как ). Они показывают силу или «важность» каждого нового измерения. Матрица выполняет масштабирование и изменяет размерность пространства (переводит из пространства фильмов в пространство пользователей).
  • (размер ) — ортогональная матрица. Она выполняет финальное вращение уже в новом пространстве (пространстве пользователей).
  • Сингулярные значения в матрице всегда отсортированы по убыванию: . Самые большие значения соответствуют самым важным, информативным направлениям в данных.

    Применение SVD: сжатие данных и аппроксимация

    Главная суперсила SVD в машинном обучении — возможность аппроксимации матриц низкого ранга.

    Если в нашей матрице пользователей и фильмов много шума, мы можем вычислить её SVD, а затем обнулить все маленькие сингулярные значения в матрице , оставив только самых больших (например, ).

    Перемножив усеченные матрицы обратно, мы получим новую матрицу, которая занимает в памяти в сотни раз меньше места, но при этом сохраняет главные скрытые паттерны (например, скрытые жанры: комедии, боевики, драмы). Именно на этом принципе работают классические рекомендательные системы и метод главных компонент (PCA) для понижения размерности.

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

    5. Аффинные пространства: геометрические преобразования и гиперплоскости

    Аффинные пространства: геометрические преобразования и гиперплоскости

    Векторные пространства обладают одним строгим ограничением: они всегда должны проходить через начало координат (нулевую точку). Если мы рассматриваем прямую или плоскость в классической линейной алгебре, они обязаны пересекать точку . Однако реальные данные в машинном обучении редко бывают так идеально отцентрированы. Облако точек, описывающее доходы и возраст клиентов, может находиться далеко от нулевых значений. Чтобы работать со смещенными данными, математика вводит понятие аффинного пространства.

    Аффинное пространство можно представить как классическое векторное пространство, которое оторвали от начала координат и сдвинули в произвольную точку. Если векторное пространство — это собака, привязанная поводком к колышку (началу координат), то аффинное пространство — это та же собака, но отпущенная свободно гулять по парку.

    Математически аффинное пространство определяется как сумма вектора сдвига и векторного подпространства:

    Где: * — результирующее аффинное пространство (например, смещенная плоскость). * — вектор сдвига (конкретная точка, через которую проходит новое пространство). * — базовое векторное подпространство (пространство направлений, определяющее ориентацию).

    Геометрические преобразования: вращение данных

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

    Поворот — это линейное отображение, которое вращает векторы вокруг фиксированной точки (обычно начала координат) на заданный угол . В двумерном пространстве матрица поворота против часовой стрелки выглядит так:

    Где: * — матрица поворота. * — угол поворота в радианах или градусах. * и — тригонометрические функции, вычисляющие проекции новых координат.

    Умножив любой вектор данных на эту матрицу, мы получим новые координаты точки после поворота.

    Свойства матриц поворота

    Повороты обладают уникальными геометрическими свойствами, которые делают их незаменимыми в анализе данных:

  • Сохранение расстояний. Расстояние между любыми двумя точками до поворота равно расстоянию между ними после поворота. Математически: .
  • Сохранение углов. Угол между двумя векторами не меняется при их совместном вращении.
  • Некоммутативность в многомерных пространствах. В 3D и выше порядок поворотов имеет критическое значение. Поворот объекта сначала по оси X, а затем по оси Y даст совершенно иной результат, чем поворот сначала по оси Y, а затем по оси X.
  • Для многомерных пространств (размерности ) применяется концепция поворотов Гивенса. Идея заключается в том, чтобы зафиксировать измерений и выполнять вращение только в выбранной двумерной плоскости. Это позволяет алгоритмам последовательно «выравнивать» многомерные данные по нужным осям.

    Проекции на аффинные пространства

    В предыдущих материалах мы рассматривали ортогональную проекцию вектора на подпространство (проходящее через ноль). Это основа метода наименьших квадратов в линейной регрессии. Но что делать, если целевая прямая или плоскость смещена, то есть является аффинным пространством?

    Процесс проецирования точки на аффинное пространство разбивается на три логических шага:

  • Сдвиг к началу координат. Мы вычитаем вектор сдвига из нашей точки , перенося всю систему координат так, чтобы аффинное пространство совпало с базовым векторным подпространством .
  • Классическая проекция. Вычисляем ортогональную проекцию смещенной точки на подпространство .
  • Возврат на место. Прибавляем вектор сдвига обратно к результату.
  • Итоговая формула ортогональной проекции на аффинное пространство:

    Где: * — искомая проекция точки на аффинное пространство. * — вектор сдвига аффинного пространства. * — оператор проекции на базовое векторное подпространство. * — исходная точка, которую мы проецируем.

    > Представьте, что вы хотите найти кратчайшее расстояние от дрона до наклонной крыши дома. Крыша не проходит через уровень земли (начало координат). Вы мысленно опускаете дом до земли, находите точку прямо под дроном, а затем поднимаете дом вместе с этой точкой обратно.

    Гиперплоскости и линейная классификация

    Концепция аффинных пространств достигает своего пика в машинном обучении при решении задач классификации. Главным инструментом здесь выступает гиперплоскость.

    Гиперплоскость — это подпространство, размерность которого ровно на единицу меньше размерности объемлющего пространства.

    | Размерность пространства () | Геометрический вид гиперплоскости () | | :--- | :--- | | 2D (плоскость) | 1D (прямая линия) | | 3D (объем) | 2D (обычная плоскость) | | 4D и выше | Многомерная гиперплоскость (невозможно визуализировать, но легко описать математически) |

    Любую гиперплоскость можно задать простым линейным уравнением:

    Где: * — вектор весов (нормаль), который перпендикулярен гиперплоскости и задает ее ориентацию. * — вектор признаков (координаты точки данных). — смещение (bias). Именно этот параметр превращает гиперплоскость из векторного пространства в аффинное*, позволяя ей не проходить через начало координат.

    !Разделяющая гиперплоскость в задаче классификации

    Применение в Support Vector Machines (SVM)

    Алгоритм метода опорных векторов (SVM) ищет такую гиперплоскость, которая наилучшим образом разделяет два класса данных (например, спам и не спам).

    Подставив координаты любой точки в уравнение , мы получим некоторое число. * Если результат , точка лежит по одну сторону от гиперплоскости (Класс 1). * Если результат , точка лежит по другую сторону (Класс -1). * Если результат ровно , точка лежит прямо на гиперплоскости.

    Для оценки уверенности модели алгоритму необходимо знать, насколько далеко точка находится от разделяющей границы. Расстояние от точки до гиперплоскости вычисляется по формуле:

    Где: * — кратчайшее (ортогональное) расстояние. * — модуль значения функции гиперплоскости в точке . * — евклидова норма (длина) вектора весов.

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

    Сначала определим класс: . Результат больше нуля, значит, модель относит клиента к первому классу (вернет кредит).

    Теперь вычислим расстояние до границы, чтобы понять уверенность модели. Длина вектора нормали . Расстояние . Чем больше это расстояние, тем надежнее предсказание алгоритма.

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