Математическая геометрия данных: от векторов до сингулярного разложения

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

1. Вектор как объект: переход от списков чисел к геометрической интерпретации

Вектор как объект: переход от списков чисел к геометрической интерпретации

Почему в машинном обучении мы называем «вектором» и массив из 768 чисел, представляющий смысл слова в нейросети, и простую стрелку на школьной доске? На первый взгляд, между списком цен на недвижимость в Excel и геометрическим объектом, имеющим направление, мало общего. Однако именно способность видеть за сухими цифрами геометрию позволяет инженерам данных понимать, почему алгоритмы группируют одни объекты и отдаляют другие. Если вы привыкли воспринимать вектор только как одномерный массив (1D-array) в NumPy, вы видите лишь «тень» объекта. Наша задача — вернуть этому объекту объем, направление и метрику.

От программистской абстракции к математической сущности

В контексте разработки ПО вектор часто воспринимается как контейнер. Мы создаем список [25, 180, 1], где числа означают возраст, рост и наличие высшего образования. Для Python это просто последовательность байтов в памяти. Но как только мы переходим к анализу данных, мы неявно накладываем на этот список структуру векторного пространства.

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

Представим вектор в -мерном вещественном пространстве :

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

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

Геометрическая интуиция операций

Рассмотрим, что происходит с «точками данных», когда мы выполняем базовые арифметические действия. В программировании мы пишем a + b, но в геометрии это правило параллелограмма или правило треугольника.

Сложение как перенос

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

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

Умножение на скаляр как изменение масштаба

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

В машинном обучении это основа регуляризации и градиентного спуска. Когда мы обновляем веса модели: , мы берем вектор градиента и умножаем его на малый скаляр (learning rate). Геометрически мы делаем очень маленький шаг в направлении, противоположном вектору наискорейшего роста функции потерь. Без понимания того, что умножение на скаляр — это растяжение или сжатие вектора, трудно осознать, почему слишком большой learning rate заставляет модель «перепрыгивать» через минимум.

Радиус-вектор и пространство состояний

Важно различать вектор как «сдвиг» и вектор как «точку». В геометрии данных мы чаще всего работаем с радиус-векторами. Это векторы, начало которых жестко закреплено в нулевой точке пространства.

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

  • Состояние (Position vector): Где мы находимся? (Набор текущих весов).
  • Изменение (Displacement vector): Куда мы движемся? (Обновление весов).
  • Этот дуализм позволяет применять аппарат линейной алгебры к оптимизации. Если мы рассматриваем векторы как точки, мы можем говорить о расстоянии между ними (метрике). Если как направленные отрезки — об углах между ними.

    Понятие размерности и «проклятие» размерности

    Вектор в списке — это просто элементов. В геометрии — это количество степеней свободы. В -мерном пространстве существует взаимно перпендикулярных направлений.

    Для специалиста по Data Science переход от 2D к 1000D — это не просто «больше чисел», это качественное изменение свойств пространства. В низких размерностях (2D, 3D) большая часть объема сферы сосредоточена в ее центре. В высоких размерностях почти весь объем сосредоточен в тонком слое у поверхности (в «коре»). Геометрически это означает, что в многомерных данных почти все точки становятся «далекими» друг от друга и располагаются на периферии.

    Это понимание критично при работе с алгоритмами, основанными на расстоянии (например, k-NN или кластеризация). Если мы не чувствуем геометрию -мерного пространства, мы будем удивляться, почему в 100-мерном пространстве «ближайший сосед» оказывается почти так же далеко, как и средняя точка датасета.

    Векторные поля и градиенты

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

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

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

    Линейная оболочка и подпространства

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

    В анализе данных это фундамент метода главных компонент (PCA). Мы ищем такое подпространство меньшей размерности (например, плоскость в 10-мерном пространстве), на которое можно спроецировать данные с минимальной потерей информации.

  • Если данные лежат почти на одной прямой, их «геометрическая размерность» равна 1, даже если они записаны векторами из 100 чисел.
  • Нахождение этой «скрытой» геометрии — ключ к сжатию данных и удалению шума.
  • Базис: смена точки зрения

    Список чисел [1, 2] обретает смысл только тогда, когда мы знаем, что значит «1» и что значит «2». Обычно мы подразумеваем стандартный базис: 1 шаг по оси и 2 шага по оси . Но геометрия позволяет нам менять базис. Мы можем повернуть оси координат так, чтобы первая ось была направлена вдоль максимальной изменчивости данных.

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

    Геометрия как мост к глубокому обучению

    Рассмотрим Word Embeddings (векторные представления слов). Слово «король» представляется вектором . Это не просто индекс в словаре. В обученном пространстве векторов геометрические отношения отражают семантические связи. Знаменитая формула — это чистая векторная геометрия.

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

    Норма вектора: измерение величины

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

    Наиболее естественная для нас — Евклидова норма ():

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

    Выбор нормы меняет «форму» пространства. В единичная сфера — это привычный шар. В единичная «сфера» — это ромб (в 2D) или октаэдр (в 3D). Понимание того, как разные нормы «сдавливают» или «растягивают» пространство, критично для понимания регуляризации Lasso и Ridge, которые заставляют веса моделей принимать определенные геометрические конфигурации.

    Направленность и косинусное расстояние

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

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

    Граничные случаи и сингулярности

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

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

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

    Переход от списков чисел к геометрии — это не просто смена терминологии. Это обретение зрения в многомерных пространствах. Когда мы смотрим на вектор не как на array([1.2, 0.5, ...]), а как на точку в пространстве состояний или как на силу, действующую в определенном направлении, алгоритмы машинного обучения перестают быть «черными ящиками».

    Мы начинаем видеть, что:

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