Собственные векторы и 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 ищет ортогональные направления максимальной дисперсии.
- Центрировать признаки (обязательно).
- Стандартизовать, если единицы разные: иначе доход в рублях задавит возраст в годах.
- Посчитать ковариационную матрицу C = XᵀX / (n - 1).
- Найти собственные векторы и значения C, отсортировать по убыванию λ.
- Спроецировать данные на первые 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 используется низкоранговое приближение.