Урок по треку Математика для ML 7 мин

Собственные значения, SVD и PCA за 7 минут

Собственные векторы, разложение симметричных матриц, SVD, низкоранговые приближения и связь с PCA.

Собственные векторы и SVD это язык, на котором объясняют PCA, рекомендации на матричной факторизации, сжатие моделей и LoRA. На собесе обычно просят дать определения, посчитать пример 2×2 и связать всё с PCA.

Собственные векторы

Ненулевой вектор v собственный для матрицы A, если

A v = λ v

Матрица только растягивает v в λ раз (или переворачивает при λ < 0), но не уводит с прямой. λ называется собственным значением.

Для матрицы 2×2 удобны два факта:

  • сумма собственных значений равна следу (сумме диагонали);
  • произведение равно определителю.

Пример: A = [[2, 1], [1, 2]]. След 4, определитель 3, значит λ² - 4λ + 3 = 0, и λ = 3 или 1. Собственные векторы (1, 1) и (1, -1).

Симметричные матрицы

Для вещественной симметричной матрицы (ковариационная, гессиан) спектральная теорема гарантирует:

  • все собственные значения вещественные;
  • собственные векторы можно выбрать ортонормированными;
  • A = QΛQᵀ, где Q ортогональная, Λ диагональная.

У ковариационной матрицы все λ ≥ 0, потому что дисперсия не бывает отрицательной.

SVD

Сингулярное разложение есть у любой матрицы, даже прямоугольной и вырожденной:

A = U Σ Vᵀ

U и V ортогональные, Σ диагональная с σ₁ ≥ σ₂ ≥ … ≥ 0. Сингулярные числа это корни из собственных значений AᵀA. Число ненулевых σ равно рангу.

Теорема Эккарта-Янга: если оставить k наибольших σ и обнулить остальные, получится лучшее приближение A матрицей ранга k по норме Фробениуса и спектральной норме. Отсюда:

  • сжатие матриц и изображений;
  • латентные факторы в рекомендациях (пользователь и товар как векторы из k чисел);
  • LoRA: обновление весов большой модели ищут как произведение двух узких матриц.

Число обусловленности κ = σmax / σmin. Если оно огромное, решение Ax = b очень чувствительно к шуму, а градиентный спуск ползёт зигзагом.

PCA

PCA ищет ортогональные направления максимальной дисперсии.

  1. Центрировать признаки (обязательно).
  2. Стандартизовать, если единицы разные: иначе доход в рублях задавит возраст в годах.
  3. Посчитать ковариационную матрицу C = XᵀX / (n - 1).
  4. Найти собственные векторы и значения C, отсортировать по убыванию λ.
  5. Спроецировать данные на первые k векторов.

Собственное значение равно дисперсии вдоль компоненты, доля объяснённой дисперсии λᵢ / Σλ. Число компонент выбирают по накопленной доле (например 95%) или по качеству следующей модели.

На практике считают SVD центрированной X: компоненты это столбцы V, дисперсии σ² / (n - 1). Так точнее, потому что явное построение XᵀX возводит число обусловленности в квадрат.

Степенной метод

Чтобы найти доминирующий собственный вектор огромной разреженной матрицы, многократно умножают на неё вектор и нормируют:

for _ in range(steps):
    w = matvec(M, v)
    v = [x / norm(w) for x in w]

Компонента вдоль самого большого по модулю λ растёт быстрее остальных. Так считают PageRank и первые компоненты PCA на больших данных.

Частые ошибки

  • Забыть центрирование перед PCA или не стандартизовать разные единицы.
  • Говорить, что PCA выбирает важные исходные признаки: компоненты это их линейные комбинации, и PCA не видит целевую переменную.
  • Считать, что SVD есть только у квадратных матриц.
  • Путать сингулярные числа с собственными значениями самой A.

Что спросят на собесе

  • Определение собственного вектора, пример 2×2 через след и определитель.
  • Как устроен PCA, зачем центрирование и стандартизация, как выбрать число компонент.
  • Что такое SVD, как оно связано с PCA и почему его считают вместо ковариационной матрицы.
  • Где в ML используется низкоранговое приближение.

Закрепите за 5 минут

После урока в тренажёре 3-5 проверочных вопросов, дальше модуль уходит в повторения.