главные углы, измеряющие сходство и расстояние в подпространствах

алгоритм

@toc

1 Два хороших литературных источника, описывающих главные углы

1 Principal Angles Between Subspaces andTheir Tangents 2 PRINCIPAL ANGLES BETWEEN SUBSPACES IN AN A-BASED SCALAR PRODUCT: ALGORITHMS AND PERTURBATION ESTIMATES

2 Визуальное понимание главных углов

ПредположениеXXЯвляетсяn*pn*pматрица, а между столбцамиОртогональный блок, что можно понимать как наличиеppКусокnnматрица размерных векторов, предположенияYYЯвляетсяn*qn*qматрица, а между столбцамиОртогональный блок, что можно понимать как наличиеqqКусокnnматрица размерных векторов, мераXXиYYГлавные углы между ними определяются как:Θ(X,Y)=[θ1,...,θm]\Theta(X,Y)=[\theta_{1},...,\theta_{m}]вm=min(p,q)m=min(p,q),[θ1,...,θm][\theta_{1},...,\theta_{m}]Существуют следующие определения:sk=cos(θk)=maxxеXmaxyеYxHy=xkHyks_{k}=cos(\theta_{k})=\max_{x\in X}\max_{y\in Y}\left|x^Hy\right|=\left|x_{k}^Hy_{k}\right|    в приведенной выше формулеxkx_{k}иyky_{k}соответственноXXиYYВектор-столбец в .     Выше приведено определение главного героя.Следует отметить, что главные углы определяют не угол, а ряд углов.Количество углов определяется количеством векторов в поле с меньшим количеством векторов в двух полях. Углы обычно сортируются в порядке убывания значения косинуса. Определение угла с наибольшим косинусом можно понимать следующим образом: вычислить значение косинуса векторов-столбцов в двух областях соответственно, чтобы значение приняло максимальное значение.xkx_{k}иyky_{k}- главный вектор, соответствующий самому большому главному герою. И так далее для других главных углов.     Этот ряд главных углов можно визуализировать, поскольку векторы-столбцы между двумя областями сопоставляются друг с другом, и достигается комбинация между векторами с наименьшим расстоянием. Так же, как найти партнера, два человека, которые больше всего похожи на мужа и жену, образуют семью. Затем отсортируйте по степени сходства, чтобы сформировать упорядоченный вектор. Если совпадающие векторы в двух полях могут образовать модельную пару очень похожего вида, то можно сказать, что разница между двумя полями мала, или угол мал, или расстояние мало. Если углы в этом векторе главных углов велики, это означает, что расстояние или сходство между векторами-столбцами в двух областях очень мало.

Три метода расчета главных углов между двумя областями

1 Рассчитайте главные углы между двумя областями по определению

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

2 Использование разложения по сингулярным числам

    для векторов-столбцовОртогональный блокдва поля вектораXXиYY, две матрицыn*pn*pиn*qn*qДа здесьnn- размерность указывающей величины,ppиqqпредставляет количество выборок. Сначала вычисляем матрицуTT: T=XHYT=X^HYТогда для матрицыTTВыполните разложение по единственному значению (SVD)T=UΣVHT=U\Sigma V^H Σ\SigmaЯвляетсяp*qp*qДиагональная матрица, каждое значение которой представляет косинус главных углов между двумя областями, соответствующий главный вектор равенXUXUиYVYVпервыйmmвектор-столбец, гдеm=min(p,q)m=\min(p,q)

3 Другие методы решения главных углов

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