Линейная алгебра
Собственные значения и спектральная теорема
Найти базис, в котором отображение — это просто растяжение по осям
Направления, которые отображение не сбивает
Почти каждый вектор под действием меняет и длину, и направление. Но есть особые направления, которые только растягиваются:
Включите переключатель собственных векторов и переберите заготовки. Обратите внимание, что у поворота собственных направлений нет вовсе:
- определитель
- 3
- ранг
- 2
Как их находят
Перепишем определение: , то есть . Ненулевое решение существует ровно тогда, когда необратима, — а это, по прошлому уроку, значит
Это характеристическое уравнение. Для оно раскрывается в
откуда сразу два полезных факта: сумма собственных значений равна следу, а произведение — определителю. Проверять вычисления этим стоит всегда.
Для матриц больше характеристический полином не используют: искать корни полинома численно неустойчиво. Настоящие алгоритмы (QR-итерации) работают иначе. Полином — инструмент понимания, а не вычисления.
Диагонализация
Пусть у есть линейно независимых собственных векторов. Соберём их в столбцы , а собственные значения — в диагональную . Тогда , то есть
Сравните со сменой базиса из предыдущего урока: это в точности она. Диагонализация — переход в базис из собственных векторов, где отображение превращается в независимые растяжения по осям.
Практическое следствие — степени матрицы:
Возведение диагональной матрицы в степень поэлементно, поэтому считается мгновенно. Так же анализируют устойчивость итераций: если все , процесс сходится к нулю; если хоть одно больше единицы — расходится. Ровно этот аргумент объясняет затухающие и взрывающиеся градиенты в рекуррентных сетях.
Диагонализуема не всякая матрица: сдвиг из заготовок выше — контрпример. Но для одного важного класса гарантия есть.
Спектральная теорема
Если симметрична (), то все её собственные значения действительны, а собственные векторы можно выбрать ортонормированными.
Тогда ортогональна, и разложение принимает особенно приятный вид:
Это едва ли не самое используемое утверждение блока. Симметричные матрицы возникают повсюду: ковариационные матрицы, гессианы, матрицы Грама , лапласианы графов. Все они раскладываются в «поворот, растяжение по осям, поворот обратно».
Положительная определённость
Симметричная называется положительно определённой, если для всех . Равносильные условия:
- все собственные значения строго положительны;
- для некоторой полного ранга;
- все ведущие главные миноры положительны (критерий Сильвестра).
Если допускается ноль — говорят «неотрицательно определённая». Зачем это нужно:
- ковариационная матрица всегда неотрицательно определена (дисперсия не бывает отрицательной);
- гессиан в точке минимума неотрицательно определён — это условие второго порядка;
- определённость — то, что делает многомерную гауссиану корректно определённой;
- в оптимизации именно собственные значения гессиана задают число обусловленности, а с ним и скорость обучения.
Частая путаница
Собственные значения — свойство отображения, а не таблицы: у подобных матриц они одинаковы. Но сингулярные значения (следующий урок) — не то же самое, что собственные. Совпадают они только для симметричных неотрицательно определённых матриц. У поворота нет действительных собственных значений, а сингулярные значения равны единице — и это ровно то различие, ради которого SVD и существует.
Источники
- 3Blue1Brown — Essence of Linear Algebra, эпизоды 14–15 — Собственные векторы, собственные базисы
- Deisenroth, Faisal, Ong — Mathematics for Machine Learning, гл. 4.2–4.4 — Собственные значения, диагонализация, определённость
Проверки
0 из 2Собственные значения через след и определитель
У матрицы известно: и . Оба собственных значения действительны.
Чему равно большее из них?
Подсказка: сумма равна следу, произведение — определителю. Подбор здесь быстрее, чем формула.
Собственные значения матрицы 2×2
Реализуйте
eigenvalues2(m)для матрицы , заданной списком строк.Используйте характеристическое уравнение .
Требования:
- если дискриминант отрицательный, действительных собственных значений нет —
верните
null(в PythonNone); - иначе верните список из двух значений по убыванию;
- кратное собственное значение возвращается дважды.
Загрузка редактора…
Ctrl/⌘ + Enter- если дискриминант отрицательный, действительных собственных значений нет —
верните