Эта статья служит кратким введением в две важные концепции машинного обучения: собственные векторы и собственные значения.
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/Определитель