1. Матрицы и матричные вычисления: базовые операции в ML
В машинном обучении данные редко существуют в виде изолированных чисел. Чаще всего мы работаем с наборами данных, где строки представляют отдельные объекты (например, пользователей или изображения), а столбцы — их характеристики (возраст, доход, пиксели). Такая структура естественным образом описывается матрицей. Понимание того, как анализировать матрицы и раскладывать их на базовые компоненты, является ключом к алгоритмам сжатия данных, рекомендательным системам и глубокому обучению.
Характеристики матриц: Детерминант и След
Прежде чем переходить к сложным преобразованиям, матрицу можно охарактеризовать всего несколькими числами, которые описывают ее глобальные свойства.
Детерминант (определитель) квадратной матрицы , обозначаемый как , геометрически показывает, во сколько раз линейное преобразование, заданное этой матрицей, увеличивает или уменьшает площадь (в 2D) или объем (в 3D) фигур.
Если , это означает, что матрица «схлопывает» пространство в меньшую размерность (например, превращает 2D-квадрат в 1D-линию). Такая матрица называется вырожденной или сингулярной, и для нее не существует обратной матрицы.
След матрицы (trace), обозначаемый как — это просто сумма элементов, стоящих на ее главной диагонали (от верхнего левого угла до нижнего правого).
Где — след матрицы, — размерность квадратной матрицы, — элементы на главной диагонали.
След обладает важным свойством инвариантности: при циклической перестановке перемножаемых матриц их след не меняется (). Это свойство часто используется при оптимизации функций потерь в нейронных сетях для упрощения вычисления градиентов.
Собственные значения и собственные векторы
Когда мы умножаем вектор на матрицу, вектор обычно меняет как свою длину, так и направление. Однако для каждой квадратной матрицы существует особый набор векторов, которые при умножении на эту матрицу меняют только длину, но сохраняют свое направление (или меняют его на строго противоположное).
Эти векторы называются собственными векторами (eigenvectors), а коэффициент, на который изменяется их длина — собственным значением (eigenvalue).
Математически это записывается уравнением:
Где — квадратная матрица преобразования, — собственный вектор (не равный нулю), — собственное значение (скаляр).
> Алгоритм PageRank, созданный основателями Google, использует именно эту концепцию. Веб-страницы и ссылки между ними представляются в виде огромной матрицы переходов. Важность каждой страницы вычисляется как собственный вектор этой матрицы, соответствующий максимальному собственному значению (равному 1). Страница важна, если на нее ссылаются другие важные страницы.
Матричные разложения (Факторизация)
В арифметике мы можем разложить сложное число на простые множители, чтобы лучше понять его структуру (например, ). В линейной алгебре аналогичный процесс называется матричным разложением или факторизацией. Мы представляем сложную матрицу данных в виде произведения нескольких более простых матриц, каждая из которых имеет понятный геометрический смысл.
Разложение Холецкого
Для особого класса матриц — симметричных положительно определенных — существует операция, аналогичная извлечению квадратного корня из числа. Это разложение Холецкого.
Где — исходная симметричная положительно определенная матрица, — нижнетреугольная матрица (все элементы выше главной диагонали равны нулю), — транспонированная матрица .
В машинном обучении разложение Холецкого применяется при работе с вероятностями. Например, ковариационная матрица многомерного нормального распределения всегда симметрична и положительно определена. Разложение Холецкого позволяет эффективно генерировать случайные выборки из этого распределения, что критически важно для работы вариационных автоэнкодеров (VAE) и генеративно-состязательных сетей (GAN).
Сингулярное разложение (SVD)
Собственное разложение и разложение Холецкого требуют, чтобы матрица была квадратной. Но реальные данные (например, таблица, где 1000 пользователей и 50 признаков) редко образуют квадратную матрицу. Здесь на помощь приходит сингулярное разложение (Singular Value Decomposition, SVD) — метод, который называют «фундаментальной теоремой линейной алгебры», так как он применим к любой прямоугольной матрице.
Теорема SVD утверждает, что любую матрицу размером можно представить в виде:
Где: * — исходная матрица данных. * — ортогональная матрица размером . Ее столбцы называются левыми сингулярными векторами. * — диагональная матрица размером . На ее диагонали стоят сингулярные значения (обозначаются как ), отсортированные по убыванию. Они показывают «важность» каждого направления. * — транспонированная ортогональная матрица размером . Ее строки — правые сингулярные векторы.
Геометрически SVD показывает, что любое сложное линейное преобразование можно разбить на три простых шага:
Сравнение методов факторизации
| Характеристика | Разложение Холецкого | Сингулярное разложение (SVD) | | :--- | :--- | :--- | | Требования к матрице | Квадратная, симметричная, положительно определенная | Любая прямоугольная матрица | | Формула | | | | Главное применение в ML | Сэмплирование из распределений, оптимизация вычислений | Сжатие данных, понижение размерности, рекомендательные системы |
Применение SVD: Аппроксимация низкого ранга
Самое мощное свойство SVD в машинном обучении — возможность сжатия данных с минимальными потерями информации. Поскольку сингулярные значения в матрице отсортированы по убыванию (), первые несколько значений содержат основную информацию о структуре данных, а остальные часто представляют собой просто информационный шум.
Если мы обнулим все маленькие сингулярные значения, оставив только самых больших, мы получим аппроксимацию низкого ранга.
Представьте, что у нас есть черно-белое изображение размером 1000 × 1000 пикселей. Для его хранения требуется 1 000 000 чисел. Если мы применим SVD и оставим только наибольших сингулярных значений, нам нужно будет хранить только: * Матрицу : чисел. * Сингулярные значения : чисел. * Матрицу : чисел.
Итого: 100 050 чисел вместо миллиона. Мы сжали данные почти в 10 раз, при этом визуально восстановленное изображение будет крайне похоже на оригинал, так как мы сохранили самые важные «паттерны» (главные компоненты) изображения.
Именно этот математический аппарат лежит в основе метода главных компонент (PCA), который используется дата-саентистами для визуализации многомерных данных и борьбы с «проклятием размерности» при обучении моделей.