Эта статья служит кратким введением в две важные концепции машинного обучения: собственные векторы и собственные значения.

Eigen-Things

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

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

Собственный вектор — это просто ненулевой вектор, в котором при применении линейного преобразования он изменится только на скалярный коэффициент и останется на том же промежутке.

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

Собственное значение, часто обозначаемое как λ, представляет собой коэффициент, на который масштабируется собственный вектор.

Eigenvecotrs / визуализированные собственные значения

Предположим, что на диаграмме ниже у нас есть набор векторов: коричневый, темно-фиолетовый и темно-зеленый. Скажем, мы применили к ним линейное преобразование и получили следующие новые векторы: оранжевый, розовый и зеленый. Считаются ли эти векторы собственными векторами?

Если вы ответили «Да», то вы правы, линейное преобразование создало новый набор векторов, которые были скалярно кратны исходным векторам, и все они оставались в том же направлении, что и раньше.

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

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

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

Математика, стоящая за этим

Допустим, у нас есть векторное пространство, подобное приведенным выше диаграммам, и ненулевой вектор v внутри этого пространства, и мы применяем некоторое линейное преобразование T к этому вектору. В этом сценарии v будет считаться собственным вектором, если T(v) равно скаляр, кратный v,см. ниже:

*Скаляр λ — это собственное значение, связанное с вектором v

В левой части мы применяем линейное преобразование Tк вектору v, а к В правой части мы растягиваем вектор v, применяя к нему соответствующее собственное значение.

Линейные преобразования принимают разные формы, и в отношении машинного обучения мы чаще всего будем использовать их в виде матрицы n x n, и в этом случае собственные векторы сформируйте матрицы n на 1. Если линейное преобразование выражается таким образом, используя матрицу n на n, то уравнение собственного значения для этого преобразования может быть записано как матричное умножение следующим образом:

Где A — это матричное представление T и u — вектор координат v.

Линейные преобразования в матрицах

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

Эти векторы считаются скалярными кратными друг другу, если существует скаляр λ такой, что:

К счастью, в нашем случае есть значение λ, равное -1/20. Теперь давайте рассмотрим n-мерное линейное преобразование векторов, определяемое матрицей n на n A:

где для каждой строки:

Если вы обнаружите, что v и w кратны скаляру, тогда v — это собственный вектор линейного преобразования A, а скейлер λ — это собственное значение, соответствующее этому собственному вектору:

Приведенное выше уравнение можно сформулировать более надежно, например:

Где I — единичная матрица, а 0 — нулевой вектор. Мы будем называть это уравнением собственных значений.

Теперь, когда у нас есть уравнение собственных значений, мы можем видеть, что для того, чтобы левая часть была равна 0, либо содержимое скобок (A-λI), должен быть равен 0 или вектору v. Нас действительно не интересует случай, когда вектор v равен 0, так как это было бы тривиальным решением, то есть у него нет ни длины, ни направления. Вместо этого нас интересует, когда член в скобках (A-λI) равен 0, что подводит нас к нашей следующей теме — характеристическим полиномам.

Характеристический полином

Характеристический многочлен квадратной матрицы - это многочлен, инвариантный относительно подобия матриц и имеющий собственные значения в качестве корней. Детерминантное уравнение – это уравнение, полученное приравниванием характеристического многочлена к нулю.

Уравнение на собственные значения, которое я дал ранее, будет иметь отличное от нуля решение v только в том случае, если определитель матрицы равен нулю. В этом случае собственными значениями A являются значения λ, которые удовлетворяют:

что также можно записать как:

Приведенное выше уравнение является полиномиальной функцией переменной λ, степень полинома равна n, порядок матрицы А. λ является собственным значением A тогда и только тогда, когда приведенное выше уравнение равно 0.

Из фундаментальной теоремы алгебры следует, что характеристический полином матрицы n на n A, будучи полиномом степени n, может быть разложен на произведение n линейных членов:

где λ_i может быть вещественным числом, но обычно является комплексным числом. Числа λ_1,λ_2, …, λ_n, не все из которых могут иметь различные значения, являются корнями полинома и собственными значениями A. Другими словами, новое уравнение, использующее характеристический полином, делает так, что уравнение собственных значений, которое я дал ранее «(A-λI)v=0», будет иметь только не- нулевое решение v, если определитель A равен нулю.

Пример: 2-мерная матрица

Давайте рассмотрим простую матрицу 2 x 2 A, чтобы лучше понять это:

Теперь возьмем определитель, чтобы найти характеристический многочлен A:

В приведенном выше уравнении мы сначала применяем матричное умножение собственного значения λ на матрицу идентичности I, а затем вычитаем это с помощью A, что дает нам характеристический многочлен. После всего этого мы, наконец, упростим характеристический многочлен, который даст нам собственные значения A, λ=1 и λ. =3.

Собственные векторы, соответствующие каждому собственному значению, можно найти, решив компоненты v в следующем уравнении, которое мы упоминали ранее:

При этом давайте сначала решим для λ=1:

Мы обнаружили, что для решения этого уравнения нам нужен ненулевой вектор с v_1 = -v_2. С учетом сказанного:

Выше приведен собственный вектор A, соответствующий λ=1, как и любой скаляр, кратный этому вектору.

Теперь давайте решим для λ=3:

Любой ненулевой вектор с v_1= v_2 решает это уравнение. Поэтому:

Выше приведен собственный вектор A, соответствующий λ=3, как и любой скаляр, кратный этому вектору.

В итоге мы получаем векторы v_λ=1 и v_λ=3, которые являются собственными векторами A связан с собственными значениями λ=1 и λ=3 соответственно.

Матрицы за пределами 2-D

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

Краткое содержание

Вывод из этой записной книжки — это просто понимание того, что такое собственные значения и собственные векторы и как они работают как визуально, так и математически. Собственные векторы и собственные значения распространены во многих приложениях в области машинного обучения, в том числе в анализе основных компонентов (PCA), алгоритме рейтинга страниц Google и распознавании лиц. Тема собственных вещей, конечно, гораздо глубже, но цель этой статьи состояла в том, чтобы сосредоточиться в основном на основных понятиях идеи. Если вы заметили какие-либо ошибки в моей математике или объяснениях, не стесняйтесь оставлять комментарии об этом, я хотел бы понять, где я ошибся, и исправить это как можно скорее. Я надеюсь, что вы нашли это полезным, спасибо за чтение!

Источники:

https://en.wikipedia.org/wiki/Eigenvalues_and_eigenvectors

https://en.wikipedia.org/wiki/Characteristic_polynomial

https://en.wikipedia.org/wiki/Определитель

https://en.wikipedia.org/wiki/Eigenvalue_algorithm

https://mathworld.wolfram.com/Eigenvalue.html