4.8 Проекции, углы и ортогональность

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

Вспомним скалярное произведение

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

💡Скалярным произведением двух векторов и называется число, равное произведению длин этих векторов на косинус угла между ними:

Заметьте, что длина векторов выражена именно через -норму, которую мы разбирали ранее. Данная формула справедлива только для этой нормы, так как именно она равна евклидовой длине вектора. И её можно также выразить через эту формулу как корень скалярного произведения вектора самого на себя.

В таком случае:

В пространстве скалярное произведение также можно вычислить как сумму попарных произведений координат:

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

Проекция и связь со скалярным произведением

Приведём еще одно, «проекционное», определение скалярного произведения:

💡Скалярное произведение двух векторов — это произведение длины проекции одного вектора на направление другого и длины этого второго вектора:

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

Векторное выражение проекции:

Проекция вектора $a$ на вектор $b$

Проекция вектора на вектор

Например, если у нас есть два вектора:

То проекция вектора на вектор будет рассчитываться следующим образом с использованием -нормы:

Косинусная мера

Из формулы скалярного произведения как сразу следует способ выразить угол между векторами:

Это лежит в основе косинусной меры — важной метрики в анализе текстов, изображений, эмбеддингов и рекомендательных систем:

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

В обработке текстов (англ. NLP, Natural Language Processing) косинусная мера применяется при сравнении TF-IDF-векторов документов: она позволяет находить документы с похожим содержанием, даже если их объёмы сильно различаются.

Подробнее про TF-IDF

TF-IDF (Term frequency-inverse document frequency — дословно, «частота термина — обратная документная частота») — это базовый метод представления текстов в виде числовых векторов.

Он оценивает важность слова для конкретного документа в контексте всей коллекции документов. Значение TF-IDF для термина в документе определяется как произведение:

где:

  • — частотность термина в документе: ;
  • — обратная частота в корпусе: , где — общее число документов, — число документов, содержащих .

Таким образом, высокое значение TF-IDF означает, что слово часто используется в текущем документе, но редко встречается в других. Это снижает вес «пустых» слов вроде «и», «в», «на», которые называются стоп-словами (stopwords): они встречаются во всех документах и потому имеют низкий .

Пусть слово «алгоритм» встречается 5 раз в документе , содержащем 100 слов, и встречается в 10 из 1000 документов. Тогда:

TF-IDF часто используется как:

  • Вход для тематических моделей (LSA, NMF).
  • Признаковое описание для классификации и кластеризации текстов.
  • Основа для построения векторного пространства в поисковых системах.

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

Ортогональность и ортогонализация

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

Сначала уточним формальное определение.

Ортогональность и линейная независимость

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

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

Это кажется вполне очевидным, учитывая формулу, которую мы рассмотрели в разделе о скалярном произведении векторов:

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

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

Понятие ортогональности касается не только векторов, но и матриц.

💡Ортогональная матрица — это квадратная матрица, столбцы (или строки) которой образуют ортонормированный базис.

Например ортогональной матрицы:

То есть это матрица, у которой:

  • Каждый столбец имеет единичную длину (норму).
  • Любые два различных столбца ортогональны друг другу.
Пример

Единичная норма. И действительно, если мы рассмотрим, например, -нормы векторов матрицы , они будут равны единицам:

Ортогональность. Если мы рассмотрим скалярное произведение векторов матрицы Q, то оно окажется нулевым. Это означает, что векторы ортогональны друг другу:

Формально матрица называется ортогональной, если , где — единичная матрица. Это равносильно тому, что .

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

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

Главные компоненты как ортогональные направления.

Главные компоненты как ортогональные направления. На графике оси и соответствуют исходным признакам, а векторы и — главным компонентам. Они взаимно ортогональны и указывают направления наибольшей и второй по значимости дисперсии в данных соответственно

В целом, работа с данными в ортонормированном базисе предпочтительна, потому что:

  • Упрощаются вычисления: скалярные произведения, проекции и координаты векторов легко вычисляются.
  • Повышается численная устойчивость: особенно при решении систем уравнений и в регрессии. Например, в Principal Component Regression (PCR) признаки сначала преобразуют с помощью PCA в ортогональный базис, чтобы устранить мультиколлинеарность (ситуация, когда некоторые признаки линейно зависимы).
  • Геометрическая интерпретация становится ясной: векторы единичной длины и под прямыми углами легко анализировать.
  • Устраняется избыточность: переход к ортонормированному базису позволяет оставить только независимые направления и отбросить линейно зависимые компоненты.

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

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

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

Метод Грама — Шмидта

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

Алгоритм довольно прост.

Шаг №1

Приравниваем один из векторов к . Например:

Шаг №2

Для каждого нового вектора вычитаем проекции на все ранее построенные векторы :

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

Это обеспечивает ортогональность ко всем предыдущим .

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

Пример

Пусть у нас есть два линейно независимых (в двумерном пространстве это значит, что они не лежат на одной прямой) не ортогональных вектора и :

В двумерном пространстве векторы и выглядят следующим образом.

Векторы $v_1$ и $v_2$

Векторы и

Идём по алгоритму метода Грама — Шмидта.

Шаг №1

Берём первый вектор без изменений:

Шаг №2

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

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

Векторы $v_1$, $v_2$ и ортогональный базис

Векторы , и ортогональный базис

Из нашего примера в двумерном пространстве можно понять, что в пространствах большей размерности метод Грама — Шмидта действует итеративно: каждый новый вектор поочерёдно «разворачивается» относительно уже построенных векторов так, чтобы стать ортогональным каждому из них.

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

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

Пример реализации метода Грама — Шмидта на Python:
1import numpy as np
2
3def gram_schmidt(V):
4   Q = []
5   for v in V:
6       for q in Q:
7           v = v - np.dot(v, q) * q
8       v = v / np.linalg.norm(v)
9       Q.append(v)
10   return np.array(Q)
11
12# Пример
13V = np.array([[1, 1, 0], [1, 0, 1], [0, 1, 1]])
14Q = gram_schmidt(V)
15Надо print("Ортонормированный базис:\\n", Q)

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

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

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

QR-разложение

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

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

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

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

💡Формально QR-разложение представляет собой матричную факторизацию, при которой матрица раскладывается на произведение ортогональной матрицы и верхнетреугольной матрицы :

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

Вместо обращения матрицы , можно использовать QR-разложение:

  • Разложим:
  • Подставим:
  • После упрощения:

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

Это прямое применение QR-разложения в регрессии, аппроксимации и снижении размерности. Реализуем это разложение сразу на примере. Допустим, у нас есть некая матрица :

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

Вывести верхнетреугольную матрицу из разложения — уже простая задача:

Мы получили QR-разложение матрицы :

Результат наших вычислений можно проверить:

С геометрической точки зрения, QR-разложение переводит исходное признаковое пространство в новую систему координат, где признаки становятся ортонормированными, независимыми и легко интерпретируемыми.

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

Готовые функции NumPy и SciPy для QR-разложения
1import numpy as np
2
3A = np.array([[1, 1, 0], [1, 0, 1], [0, 1, 1]])
4Q, R = np.linalg.qr(A)
5print("Q =\\n", Q)
6print("R =\\n", R)

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

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

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

Пример проекции.

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

Мы уже проделывали это с векторами в предыдущих разделах — это была именно ортогональная проекция. Теперь введём определение:

💡Ортогональная проекция вектора на подпространство — это такой вектор , который удовлетворяет двум условиям.
Условие №1. Он находится ближе всего к вектору среди всех векторов подпространства (т. е. минимизирует расстояние):

Условие №2. Разность ортогональна всему подпространству :

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

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

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

Она помогает нам найти такой вектор в подпространстве признаков , который наиболее точно приближает признак в смысле евклидовой нормы. Именно этот пример мы далее наглядно разберём.

Геометрическая интерпретация линейной регрессии и метода наименьших квадратов (МНК)

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

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

Именно так формулируется метод наименьших квадратов (МНК) — он минимизирует сумму квадратов отклонений между предсказаниями модели и фактическими значениями.

Линия регрессии.

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

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

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

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

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

Иллюстрация геометрического смысла МНК.

Иллюстрация геометрического смысла МНК

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

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


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

Дальше мы планируем поднять планку: перейдём к спектральным методам — разложению матриц на собственные и сингулярные компоненты. Там те же идеи ортогональности и норм проявятся в SVD-, PCA- и спектральном разложении, позволяя оценивать силу направлений, сжимать данные и строить ещё более устойчивые модели.



Чтобы добавить в заметки выделенный текст, нажмите Ctrl + E
Предыдущий параграф4.7. Геометрия признакового пространства: нормы и расстояния
Следующий параграф4.9. Спектральные методы и матричные разложения