Основы линейной алгебры для машинного обучения

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

1. Векторы и матрицы: основные определения, операции и геометрическая интерпретация

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

Добро пожаловать в курс «Основы линейной алгебры для машинного обучения». Если вы когда-либо задавались вопросом, как компьютер «видит» изображение кота, как нейросеть переводит текст или как рекомендательная система Netflix подбирает вам фильм — ответ кроется в линейной алгебре.

Для компьютера любой объект реального мира — будь то картинка, звук или текст — это просто набор чисел. Линейная алгебра — это язык, который позволяет нам эффективно работать с этими наборами чисел. В этой первой статье мы разберем алфавит этого языка: скаляры, векторы и матрицы.

Скаляры: строительные блоки

Начнем с самого простого. Скаляр — это просто одиночное число. В контексте машинного обучения (Machine Learning, ML) скаляром может быть, например, температура воздуха (), цена квартиры или вероятность того, что на фото изображена собака ().

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

Где:

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

    Вектор — это упорядоченный список скаляров. Если скаляр — это одна точка данных, то вектор — это набор данных, описывающий один объект.

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

  • Площадь (50 кв.м)
  • Количество комнат (2)
  • Расстояние до метро (5 мин)
  • Мы можем записать это как вектор :

    Где:

  • — вектор (обычно обозначается жирным шрифтом).
  • — элементы или компоненты вектора.
  • В данном случае — это вектор-столбец размерности (так как в нем 3 элемента). Мы говорим, что , где означает трехмерное пространство вещественных чисел.

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

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

    [VISUALIZATION: Двумерная система координат (оси X и Y). Из начала координат (0,0) выходит стрелка в точку (3, 2). Точка подписана как вектор v = [3, 2]. Ось X подписана

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

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

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

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

    Системы линейных уравнений: взгляд через матрицы

    В школе мы все решали системы уравнений. Вспомним классическую задачу: «2 яблока и 1 груша стоят 50 рублей, а 1 яблоко и 3 груши стоят 60 рублей. Сколько стоит яблоко и груша?».

    Обозначим цену яблока за , а груши за . Система выглядит так:

    Где:

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

    Где:

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

    !Геометрическая интерпретация решения системы линейных уравнений как точки пересечения прямых.

    Линейная комбинация векторов

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

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

    Формально, если у нас есть векторы и скаляры , то их линейная комбинация выглядит так:

    Где:

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

    Представьте, что вы управляете дроном. У него есть две команды:
  • Вектор : сместиться на 1 метр на Север.
  • Вектор : сместиться на 1 метр на Восток.
  • Если вы хотите попасть в точку на Северо-Востоке (скажем, 2 метра на Север и 3 метра на Восток), вы делаете линейную комбинацию:

    Где:

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

    Линейная оболочка (Span)

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

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

    Но что, если второй двигатель сломан и тоже толкает дрон на Север, просто с другой силой? Тогда, как бы мы ни комбинировали эти движения, дрон будет летать только по одной линии (вдоль оси Север-Юг). Он никогда не сдвинется на Восток. В этом случае линейная оболочка — это прямая линия.

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

    Это одно из самых важных понятий для анализа данных. Оно отвечает на вопрос: «Есть ли в моих данных лишняя информация?».

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

    Пример зависимости

    Допустим, мы анализируем квартиры и у нас есть три признака (вектора):
  • : Площадь в квадратных метрах.
  • : Цена за квадратный метр.
  • : Общая цена квартиры.
  • Очевидно, что Общая цена = Площадь Цена за метр (с поправкой на то, что это нелинейная операция, но для примера суммы представим упрощенно: допустим, вектор получился сложением и с какими-то коэффициентами).

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

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

    !Сравнение коллинеарных (зависимых) и неколлинеарных (независимых) векторов.

    Математическое определение: Векторы линейно независимы, только если равенство:

    выполняется только тогда, когда все коэффициенты .

    Где:

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

    Базис и размерность

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

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

    Пример: Цветовая модель RGB

    В компьютере любой цвет кодируется тремя числами: Красный (R), Зеленый (G), Синий (B). Векторы цветов:
  • Красный:
  • Зеленый:
  • Синий:
  • Эти три цвета образуют базис цветового пространства.

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

  • Линия — 1D (нужен 1 вектор).
  • Плоскость — 2D (нужно 2 вектора).
  • Наш физический мир — 3D (нужно 3 вектора: длина, ширина, высота).
  • В Data Science мы часто работаем с пространствами огромной размерности. Если у нас есть таблица с данными о клиентах, где 100 колонок (возраст, доход, пол, город...), то каждый клиент — это вектор в 100-мерном пространстве ().

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

    Резюме

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

    3. Линейные отображения, умножение матриц, определитель и обратная матрица

    Линейные отображения, умножение матриц, определитель и обратная матрица

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

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

    Матрица как оператор (Линейное отображение)

    До этого момента мы смотрели на матрицу просто как на таблицу с числами (например, Excel-таблицу). Но в линейной алгебре у матрицы есть более глубокая роль. Матрица — это функция (или оператор), которая берет на вход один вектор и превращает его в другой.

    Вспомним уравнение из прошлой лекции:

    Где:

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

    Правила игры

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

    !A|\det(A) = 2\det(A) = 0.5\det(A) = 1\det(A)\det(A) = 02 \times 2a, b, c, dadbcA^{-1}A30^\circA^{-1}30^\circAA^{-1}I\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}x1/xx=0\det(A) = 0\det(A) = 0W\mathbf{x}WAB \neq BA$).

  • Определитель — коэффициент изменения объема. Если он равен 0, пространство схлопывается, и обратного пути нет.
  • Обратная матрица — способ вернуть всё как было. Существует только если определитель не равен нулю.
  • В следующей статье мы коснемся, пожалуй, самой красивой темы линейной алгебры — собственных векторов и собственных чисел. Мы узнаем, какие векторы не меняют своего направления при трансформации и почему это так важно для алгоритма PageRank от Google.

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

    Собственные векторы и собственные значения: теория и роль в снижении размерности

    Добро пожаловать в четвертую часть курса «Основы линейной алгебры для машинного обучения». В предыдущей статье мы научились рассматривать матрицы как операторы, которые трансформируют пространство: вращают его, растягивают или сжимают. Мы также узнали, что определитель подсказывает нам, как меняется площадь или объем при этой трансформации.

    Сегодня мы коснемся одной из самых элегантных и важных тем в линейной алгебре. Мы будем искать «оси», вокруг которых вращается мир данных. Речь пойдет о собственных векторах и собственных числах (значениях). Именно эти понятия лежат в основе алгоритмов сжатия изображений, рекомендательных систем и даже знаменитого алгоритма PageRank, с которого начинался Google.

    Интуитивное понимание: что остается неизменным?

    Давайте вспомним, что делает матрица. Когда мы умножаем матрицу на вектор, вектор обычно меняет свое направление и длину.

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

    Вот эта «упрямая» стрелка и есть собственный вектор.

    !Иллюстрация того, как линейная трансформация влияет на обычные и собственные векторы

    Математическое определение

    Формально это записывается удивительно коротким и красивым уравнением. Ненулевой вектор называется собственным вектором квадратной матрицы , если выполняется равенство:

    Где:

  • — квадратная матрица трансформации (наш оператор).
  • — собственный вектор (Eigenvector). Он не должен быть нулевым.
  • (греческая буква «лямбда») — собственное число или собственное значение (Eigenvalue).
  • Разбор формулы

    Посмотрите внимательно на левую и правую части уравнения:
  • Слева (): Мы применяем матрицу к вектору . Это матричное умножение, сложная операция, которая может вращать и искажать.
  • Справа (): Мы просто умножаем вектор на число . Это простое масштабирование (растяжение или сжатие).
  • Суть уравнения: действие сложной матрицы на этот конкретный вектор эквивалентно простому умножению на число. Направление вектора не меняется (или меняется на противоположное, если ).

    Собственное число (Eigenvalue)

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

  • Если , вектор растянулся.
  • Если , вектор сжался.
  • Если , длина вектора не изменилась.
  • Если , вектор «отзеркалился» и смотрит в противоположную сторону (но лежит на той же прямой).
  • Как найти собственные векторы и числа?

    Чтобы найти их, нам нужно решить уравнение . Перенесем все в левую часть:

    Где:

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

    Где:

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

    Где:

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

    Пример (без сложных вычислений)

    Представьте матрицу масштабирования, которая удлиняет все по оси X в 3 раза и по оси Y в 2 раза:

    Где:

  • и — диагональные элементы.
  • У этой матрицы:

  • Первый собственный вектор — это ось X (вектор ). Его собственное число .
  • Второй собственный вектор — это ось Y (вектор ). Его собственное число .
  • Любой другой вектор (по диагонали) повернется и не будет собственным.

    Роль в Машинном Обучении: Снижение размерности

    Теперь перейдем к главному вопросу: зачем это нужно Data Scientist'у? Ответ кроется в проблеме «проклятия размерности».

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

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

    Дисперсия как информация

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

    Метод главных компонент (PCA)

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

    Представьте облако точек данных в форме вытянутого огурца в 3D-пространстве.

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

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

    Как происходит сжатие?

    Допустим, у нас было 100 признаков. Мы нашли 100 собственных векторов и отсортировали их по убыванию собственных чисел ().

    Мы видим, что первые 5 векторов имеют огромные , а остальные 95 — крошечные (близкие к нулю). Это значит, что данные реально «живут» в 5-мерном пространстве, а остальные 95 измерений — это просто шум.

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

    Google PageRank: еще один пример

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

    Google ищет собственный вектор этой гигантской матрицы, соответствующий собственному числу . Элементы этого вектора показывают «вес» или авторитетность каждого сайта. Если вы попали в этот вектор с большим значением — вы на первой странице поиска.

    Резюме

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

    5. Матричные разложения: сингулярное разложение (SVD) и его применение в ML

    Матричные разложения: сингулярное разложение (SVD) и его применение в ML

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

    В прошлой статье мы восхищались элегантностью собственных векторов. Они показывают «скрытые оси» данных. Но у них есть один существенный недостаток: они определены только для квадратных матриц.

    Однако в реальном мире данные редко бывают квадратными. У нас может быть таблица, где 1 000 000 пользователей (строки) и 10 000 фильмов (столбцы). Или 50 000 слов и 100 документов. Как найти скрытую структуру в таких прямоугольных матрицах?

    Здесь на сцену выходит Сингулярное разложение (Singular Value Decomposition, SVD). Это «швейцарский нож» линейной алгебры, который работает с любой матрицей. SVD лежит в основе рекомендательных систем Netflix, алгоритмов сжатия изображений и методов обработки естественного языка.

    Что такое SVD? Формальное определение

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

    Для любой матрицы размера существует разложение:

    Давайте разберем каждый элемент этой формулы, так как это самое важное уравнение в нашем курсе:

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

    !Визуальное представление формулы SVD с размерностями матриц

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

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

  • Вращение (матрица ). Мы поворачиваем пространство так, чтобы данные выровнялись по осям координат.
  • Растяжение/Сжатие (матрица ). Мы растягиваем или сжимаем пространство вдоль осей координат. Коэффициенты растяжения — это наши сингулярные числа.
  • Вращение (матрица ). Мы снова поворачиваем пространство в итоговое положение.
  • Если собственные векторы искали оси, которые не меняют направления, то SVD находит пару ортогональных базисов: один во входном пространстве, другой в выходном, которые переходят друг в друга с простым растяжением.

    !Геометрический смысл SVD: поворот, растяжение, поворот

    Сингулярные числа и сжатие информации

    Самая магия кроется в матрице . Сингулярные числа идут в порядке убывания: .

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

    Теорема Эккарта — Янга — Мирского

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

    Это называется усеченным SVD (Truncated SVD). Мы берем только первые столбцов , верхний левый блок матрицы и первые строк . Полученная матрица будет наилучшим приближением исходной матрицы .

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

    Примеры применения в Machine Learning

    1. Рекомендательные системы

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

    Применив SVD, мы раскладываем вкусы на «скрытые факторы» (Latent Factors): * Матрица показывает, насколько каждому пользователю нравятся определенные жанры (боевик, драма, комедия). * Матрица показывает, насколько каждый фильм относится к этим жанрам. * Матрица показывает важность этих жанров в целом.

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

    2. Сжатие изображений

    Черно-белое изображение — это просто матрица яркостей пикселей. Если у нас есть фото , это 1 миллион чисел.

    Если мы сделаем SVD и оставим только первые 50 сингулярных чисел (вместо 1000), мы получим изображение, которое весит в 20 раз меньше, но для человеческого глаза почти не отличается от оригинала. Мы отбросили шум и мелкие детали, оставив основные контуры и градиенты.

    3. Латентно-семантический анализ (LSA) в NLP

    В обработке текстов мы строим матрицу «Документ-Слово». SVD позволяет найти скрытые темы. Например, слова «космос», «ракета», «орбита» будут сгруппированы в одну тему (один сингулярный вектор), даже если они не всегда встречаются вместе. Это позволяет компьютеру понимать смысл текста, а не просто сравнивать слова.

    4. Псевдообратная матрица (Moore-Penrose Inverse)

    В статье про системы уравнений мы говорили, что обратная матрица существует только для квадратных матриц с ненулевым определителем. А что делать, если матрица прямоугольная? Как решать в смысле наименьших квадратов (основа линейной регрессии)?

    Используется псевдообратная матрица , которую легко найти через SVD:

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

    Это позволяет находить оптимальные решения даже для неразрешимых в классическом смысле систем.

    Связь с собственными числами

    Для любознательных: SVD тесно связано с собственными числами, которые мы изучали ранее.

    * Сингулярные числа матрицы — это квадратные корни из собственных чисел матрицы . * Столбцы — это собственные векторы матрицы . * Столбцы — это собственные векторы матрицы .

    То есть SVD — это обобщение спектрального разложения на прямоугольные матрицы.

    Заключение курса

    Поздравляем! Вы завершили курс «Основы линейной алгебры для машинного обучения».

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

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

    Удачи в дальнейшем изучении Data Science!