Основы

Разложение собственного разложения

Нежное введение собственных векторов и собственных значений

В детстве я всегда что-нибудь ломал. Я ломал вещи, потому что хотел посмотреть, что внутри. Я хотел понять, как все устроено. Ну, к сожалению — я только что сломал вещи — я не мог восстановить его обратно в рабочее состояние.

Собственное разложение тоже ломает вещи, как и я, но делает это лучше. Он разлагает матрицу на собственные значения и собственные векторы.

В следующих разделах мы узнаем, как работает собственное разложение, что такое собственные значения и собственные векторы и как их интерпретировать. В конце мы разобьем матрицу и реконструируем ее (успешно) с помощью python и NumPy.

Введение собственного разложения

Иногда мы можем лучше понять вещи, разбив их на части. Разложение их на составные части позволяет найти неочевидные и универсальные свойства.

Собственное разложение предоставляет нам инструмент для разложения матрицы путем обнаружения собственных значений и собственных векторов.

Эта операция может оказаться полезной, поскольку она позволяет упростить выполнение некоторых матричных операций, а также сообщает нам важные факты о самой матрице. Например, матрица является сингулярной только в том случае, если какие-либо собственные значения равны нулю.

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



Прежде чем говорить о некоторых вычислительных деталях, о том, как вычислять собственные значения и собственные векторы, давайте попробуем понять причины, лежащие в основе собственного разложения, что позволит нам получить более интуитивное понимание.

Развитие интуиции

Умножение матрицы на вектор также можно интерпретировать как линейное преобразование. В большинстве случаев это преобразование изменит направление вектора.

Предположим, у нас есть матрица (A) и вектор (v), которые мы можем перемножить.

Мы можем визуализировать преобразование вектора (v) с помощью следующего графика:

Глядя на пример графика, мы видим, что умножение матрицы на вектор изменило направление вектора. Но какое это имеет отношение к собственному разложению?

Получается, что при выполнении собственного разложения мы ищем вектор, направление которого не изменится при умножении матрицы на вектор — только его величина либо увеличится, либо уменьшится.

Поэтому влияние матрицы на вектор такое же, как влияние скаляра на вектор.

Более формально этот эффект можно описать с помощью фундаментального уравнения для собственных значений:

После перестановки и разложения вектора (v) на множители мы получаем следующее уравнение:

Теперь мы подошли к основной идее собственного разложения. Чтобы найти нетривиальное решение приведенного выше уравнения, нам сначала нужно найти скаляры (λ), которые сдвигают матрицу (A) ровно настолько, чтобы убедиться, что умножение матрицы на вектор равно нулю, таким образом посылая вектор (v) в своем нуль-пространстве.

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

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



Нахождение собственных значений

Как мы кратко отметили в предыдущем разделе, нам нужно найти собственные значения, прежде чем мы сможем разблокировать собственные векторы.

Матрица M x M имеет M собственных значений и M собственных векторов — каждое собственное значение имеет связанный собственный вектор, поэтому они идут парами. Если мы обнаруживаем собственные значения, мы держим ключи, чтобы разблокировать связанные собственные векторы.

Представьте, у нас есть матрица 2 на 2, и мы хотим вычислить собственные значения. Используя полученное ранее уравнение, мы можем вычислить характеристический полином и найти собственные значения.

В нашем примере мы просто применили формулу (1), сдвинули матрицу на собственные значения (2), вычислили характеристический полином и решили собственные значения (3), что дало λ1=3 и λ2 = 2. Значение , соответствующие собственные векторы имеют величину 3 и 2 соответственно.

Теперь мы можем разблокировать собственные векторы.

Примечание. Поиск собственных значений становится более сложным и вычислительно затратным, чем больше становятся матрицы (теорема Абеля-Руффини). Поэтому существует целое семейство итерационных алгоритмов для вычисления собственных значений.

Нахождение собственных векторов

Собственные векторы описывают направления матрицы и инвариантны к вращениям. Это означает, что собственные векторы, которые мы ищем, не изменят своего направления.

Мы можем использовать собственные значения, которые мы обнаружили ранее, чтобы выявить собственные векторы.

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

Продолжим наш предыдущий пример и воспользуемся уже обнаруженными собственными значениями λ1=3 и λ2 = 2, начиная с λ1=3:

Мы вставили наше первое собственное значение в уравнение (1), сдвинули матрицу на это значение (2) и, наконец, нашли собственный вектор (3). Собственный вектор для этого уникального собственного значения λ1 определяется как x=1 и y=0.

Однако решение для собственного вектора не единственно. Мы можем представить себе масштабирование собственного вектора любым скаляром и получение действительного результата. Существует в основном бесконечное количество одинаково хороших решений, поэтому мы выбираем собственный вектор с единичной нормой — величиной, равной единице.

Продолжая наш пример, нам все еще нужно решить для λ2 = 2. Применяя те же шаги, что и раньше, мы получаем наш оставшийся собственный вектор:

Примечание. Длина собственного вектора не равна единице. Чтобы получить собственный вектор с единичной нормой, нам пришлось бы уменьшить его, умножив на 1/sqrt(2).

Окончательный пример и реконструкция

Теперь, когда мы знаем, что такое собственное разложение, как вычислять собственные значения и собственные векторы, давайте рассмотрим последний пример.

Поэтому мы создадим матрицу, разложим и реконструируем ее с помощью встроенных функций NumPy.

Прежде всего, давайте создадим простую матрицу 3 на 3 и получим собственные значения и собственные векторы.

Запустив приведенный выше код, мы вычисляем собственные значения и собственные векторы. Поскольку он трехмерный, мы также можем попытаться визуализировать собственные векторы.

Чтобы восстановить исходную матрицу (A), мы можем использовать следующее уравнение:

Нам просто нужно вычислить произведение собственных векторов, собственных значений и инверсий собственных векторов. Следовательно, нам нужно диагонализовать собственные значения и заранее вычислить инверсию собственных векторов.

Распечатав восстановленную матрицу, мы увидим, что она содержит те же значения, что и исходная матрица (A). Таким образом, мы успешно реконструировали его.

Заключение

В этой статье мы узнали, как работает собственное разложение, как вычислять и интерпретировать собственные значения и собственные векторы соответственно. Мы создали окончательный пример, в котором мы разложили и реконструировали матрицу только с помощью встроенных функций NumPy.

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

Спасибо за чтение! Обязательно оставайтесь на связи и следите за мной здесь на Medium, Kaggle или просто скажите Привет на LinkedIn.

Понравилась статья? Станьте Medium Member и продолжайте учиться без ограничений. Я получу часть вашего членского взноса, если вы перейдете по следующей ссылке, без каких-либо дополнительных затрат с вашей стороны.



Ссылки/Дополнительные материалы: