Eu achei o seguinte artigo útil:
Edelman, A., Arias, TA e Smith, ST (1998).
A geometria de algoritmos com restrições de ortogonalidade . Revista SIAM sobre Análise e Aplicações de Matrizes, 20 (2), 303-353.
Este documento tem muito mais informações do que você pode precisar, em termos de geometria diferencial e métodos de otimização de ordem superior.
No entanto, as informações para responder à sua pergunta são realmente bastante diretas e, de fato, estão contidas principalmente nas equações 2.53 e 2.70, que são da forma
onde o gradiente nominal
é corrigida para constrangido gradiente subtraindo-se fora a sua projecção para a solução actual . Este é o normal para o coletor, semelhante ao movimento circular , e garante que o gradiente corrigido seja tangente ao coletor.
∇f=G−XΦ
G=∂f∂X
∇fΦX
Nota: Estas fórmulas supor que você já está no colector, ou seja, . Portanto, na prática, você precisará garantir que sua condição inicial seja apropriada (por exemplo, , possível retangular). Você também pode precisar ocasionalmente corrigir erros de arredondamento e / ou truncamento acumulados (por exemplo, via SVD, consulte o exemplo "ZCA" abaixo).XTX=IX0=I
No caso sem restrições, , enquanto no caso restrito, assume duas formas:
que corresponde ao "coletor Grassmann". A distinção aqui é que é insensível às rotações , uma vez que para uma rotação e , temos .Φ=0Φ
ΦG=XTG⟹∇Gf=(I−XXT)G
∇GQTQ=IX=X0QXXT=X0XT0
A segunda forma é
que corresponde ao " Stiefel manifold ", e é sensível a rotações.
ΦS=GTX⟹∇Sf=G−XGTX
Um exemplo simples é a aproximação de uma determinada matriz com por uma matriz ortogonal , minimizando o erro dos mínimos quadrados. Nesse caso, temos
O caso irrestrito tem a solução , porque não estamos preocupados em garantir que seja ortogonal.A∈Rn×pp≤nX
f[X]=12∥X−A∥2F=12∑ij(Xij−Aij)2⟹G=X−A
∇f=GX=AX
Para o caso Grassmann, temos
Isso só pode ter uma solução: é quadrado, em vez de "fino" , porque se , terá um espaço nulo .
∇Gf=(XXT−I)A=0
Ap<nX
Para o caso Stiefel, temos
que pode ser resolvido mesmo quando .
∇Sf=XATX−A=0
p<n
Esses dois casos, Grassmann vs. Stiefel, correspondem essencialmente à diferença entre " PCA vs. ZCA whitening ". Em termos de SVD , se a matriz de entrada for , então as soluções serão e . A solução PCA se aplica apenas a uma entrada quadrada, ou seja, deve ser a " matriz de covariância ". No entanto, a solução ZCA pode ser usada quando é uma " matriz de dados ". (Isso é mais conhecido como o problema de procrustações ortogonais .)A=USVTXG=UXS=UVTXGAXSA