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

Собственное разложение (EIG)

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

Когда существует матрица A, мы называем v собственным вектором матрицы, если он создает удлиненную или сжатую версию вектора. Коэффициент удлинения или сжатия равен λ, собственному значению матрицы A.

Например, для следующей матрицы A ее умножение на [1, 0] слева приводит к [1, 0]. Это один из примеров собственного вектора с собственным значением 1.

Чтобы получить основные собственные векторы, мы сначала вычисляем собственные значения, делая определитель (A —λI) равным нулю. Затем для каждого собственного значения (их может быть более одного) могут быть получены собственные векторы, делающие (A —λI) нулевым.

Для данной матрицы A, приведенной выше, собственные значения 1 и 3 вычисляются путем решения уравнения (1 — λ)*(3 — λ) = 0. Аналогично, собственные векторы вычисляются путем подстановки каждого собственного значения и решения полученные уравнения.

Собственное разложение матрицы.

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

Разложение по сингулярным значениям (SVD)

Разложение по сингулярным значениям является основным моментом линейной алгебры и решает три основные проблемы, связанные с собственными векторами:

  1. Собственные векторы требуют, чтобы матрица A была квадратной.
  2. Собственных векторов не всегда достаточно. Если матрица A не удовлетворяет определяющему условию, равному нулю, у нее не будет собственных векторов.
  3. Собственные векторы обычно не ортогональны.

Суть SVD отображается в следующем виде, где v1, . . . , vr — ортонормированный базис пространства строк u1, . . . , ur — ортонормированный базис пространства столбцов, а σ1, . . . , σr — сингулярные значения. Обратите внимание, что векторы в ортонормированном базисе ортогональны друг другу и имеют длину 1.

В конечном итоге матрица A выражается в следующей форме путем умножения уравнения AV = на транспонирование V. >. Транспонирование V аналогично обратной матрице.

Применение в машинном обучении

Анализ главных компонентов (PCA)

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

Рекомендательная система

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

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

Здесь SVD используется так, что U — это матрица внедрения пользователя, транспонирование V — это матрица внедрения фильма, а Σ — список значений, отражающих важность каждого фактора.

Ссылки

  1. Собственное разложение матрицы, Википедия, https://en.wikipedia.org/wiki/Eigendecomposition_of_a_matrix.
  2. Матрица сдвига, Википедия, https://en.wikipedia.org/wiki/Shear_matrix.
  3. Глава 7, Разложение по сингулярным значениям, Массачусетский технологический институт, https://math.mit.edu/classes/18.095/2016IAP/lec2/SVD_Notes.pdf.
  4. PCA с использованием Python, RarelyKnows, https://rarelyknows.wordpress.com/2020/10/11/pca-using-python/.
  5. Различные реализации совместной фильтрации, Medium, https://towardsdatascience.com/various-implementations-of-collaborative-filtering-100385c6dfe0.