Estou trabalhando em visão computacional e preciso otimizar uma função objetiva que envolve a matriz e a matriz é uma matriz ortogonal.
Onde é a matriz da unidade. Estou lendo alguns artigos e eles falavam de terminologia complicada, como otimização sobre a variedade grassmaniana, variedade Stiefel. Basicamente, o gradiente nessas variedades será diferente dos gradientes regulares nos espaços euclidianos.
Você pode sugerir um artigo fácil de ler para que eu possa implementar o método baseado em gradiente nessas variedades. Se houver exemplos simples do Matlab que ilustrem os documentos, serão úteis
obrigado
optimization
orthogonal
Lan Trần Thị
fonte
fonte
Respostas:
Eu achei o seguinte artigo útil:
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.
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 Φ
A segunda forma é que corresponde ao " Stiefel manifold ", e é sensível a rotações.
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×p p≤n X
Para o caso Grassmann, temos Isso só pode ter uma solução: é quadrado, em vez de "fino" , porque se , terá um espaço nulo .
Para o caso Stiefel, temos que pode ser resolvido mesmo quando .
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=USVT XG=U XS=UVT XG A XS A
fonte