Número de condição das formulações A'A e AA '


9

É mostrado (Yousef Saad, métodos iterativos para sistemas lineares esparsos , p. 260) que cond(A′A)≈cond(A)2

Isso também é verdade para ?AA′

No caso de ser com , observo queAN×MN≪Mcond(A′A)≫cond(AA′)

Isso significa que a formulação em termos de é preferível neste caso?AA′


2
Você está comparando números de condição de duas matrizes com tamanhos muito diferentes. Sem uma explicação do porquê, parece que essa comparação provavelmente não é significativa. Certamente, se você pode conseguir o que precisa usando uma matriz muito menor, deve fazê-lo (mesmo que o condicionamento seja semelhante).
— precisa saber é o seguinte

11
A nova resposta de Stefano M abaixo está correta. Por favor, leia e vote.
— David Ketcheson

Respostas:


6

Se com N < M , então r a n k ( A T A ) = r a n k ( A A T ) = r a n k ( A ) ≤ N < M, de modo que A T A ∈ R M × M não pode ser posto completo, ie é singular.A∈RN×MN<M

rank⁡(ATA)=rank⁡(AAT)=rank⁡(A)≤N<M
ATA∈RM×M

Consequentemente, o número da condição é . Devido à aritmética de precisão finita, se você computa no matlab, obtém um grande número, não .κ2(ATA)=∞cond(A'A)Inf


@OscarB: os valores singulares de são apenas N , não existe o valor M de singular! Sua derivação está correta, mas observe que se σ i , i = 1 … N são os sv's de A , então S S T = d i a g ( σ 2 1 , … , σ 2 n ) , enquanto S T S = d i a g ( σ 2ANMσEui=1…NASST=diag⁡(σ12,…,σn2)comM-Nzeros à direita. STS=diag⁡(σ12,…,σn2,0,…,0)M−N
— 276 Stefano M

8

Bem, Vamos olhar por tem aproximadamente o número de condição quadrado de A . Usando a decomposição SVD de A = U S V T , com U ∈ R N × N , S ∈ R N × M , V ∈ R M × M , podemos expressar A T A comoATAAA=USVTU∈RN×NS∈RN×MV∈RM×MATA

ATA=(USVT)TUSVT=VSTUTUSVT=VSTSVT

Que chegamos ao notar que é orthonormal, tal que U T U = I . Além disso, observamos que S é uma matriz diagonal, de modo que a decomposição final de A T A pode ser expressa como V S 2 V T , com S 2 significando S T S , produzindo uma matriz diagonal com os primeiros N valores singulares de S ao quadrado na diagonal. Isto significa que uma vez que o número de condição é a razão entre o primeiro e o último valor singular, c o n d (UUTU=ISATAVS2VTS2STSS paraA∈RN×M, cond(A)=s1sNA∈RN×M

cond(ATA)=s12sM2=(s1sM)2=cond(A)2

Agora, podemos realizar o mesmo exercício com :AAT

AAT=USVT(USVT)T=USVTVSTUT=US2UT

O que significa que obtemos o resultado , uma vez queS2aqui significaSST, uma diferença subtil da notação acima.cond(AAT)=s12sN2S2SST

Mas observe essa diferença sutil! Para , o número da condição possui o M-ésimo valor singular no denominador, enquanto A A T tem o N-ésimo valor singular. Isso explica por que você está vendo diferenças significativas no número de condição - A A T vai realmente ser “melhor condicionado” de A T A .ATAAATAATATA

Ainda assim, David Ketcheson estava correto - você está comparando números de condição entre duas matrizes muito diferentes. Em particular, o que você pode realizar com não será o mesmo que o que você pode realizar com A A T .ATAAAT


Essa é uma ótima explicação! Eu vejo a diferença claramente agora. Matriz A é usado para construir equações normais e com ligeiras alterações, você também pode formulá-la como , não clássica A ' A . Você pode dizer também se é vantajoso usar o solucionador como LSQR em vez de resolver equações normais? Como o LSQR não requer a construção deste produto. AA′A′A
— Alexander

Ainda bem que fazia sentido. Em geral, você precisa considerar o condicionamento do problema. Mas, se isso não for um problema, você poderá usar as equações normais / fatoração QR (de A) / LSQR, dependendo do tamanho do problema (entre outras coisas). A menos que seu problema seja grande ou mal condicionado, provavelmente aplicaria a fatoração QR, mas sem mais conhecimento do problema que você está tentando resolver, é difícil dizer. Estou certo de que outras pessoas com mais experiência poderiam fornecer conselhos mais detalhados.
— OscarB

O A em si está mal condicionado (com número de condição de ), denso e grande. QR não é uma opção. Como está mal condicionado, tenho que adicionar alguma regularização de qualquer maneira. Agora, a simples regularização de Tikhonov parece ser suficiente. A questão é que se c o n d ( A ) < c o n d ( A Um T ) < c o n d ( A T A ) (para o meu caso com N < M≈107cond(A)<cond(AAT)<cond(ATA)N<M), o uso do LSQR parece sempre preferível, pois você não precisa formar nenhum produto. A questão é se as soluções obtidas com equações normais e LSQR são idênticas?
— Alexander

Bem, pelo que entendi, o LSQR fornecerá uma solução idêntica às equações normais após "infinitamente muitas" iterações com precisão exata. No entanto, para problemas incorretos, a solução de equações normais não é a que você deseja. Em vez disso, você deseja usar o LSQR para iterar até que a semi convergência seja alcançada. No entanto, controlar algoritmos iterativos em problemas incorretos é outro jogo de bola. Além disso, dependendo do custo do seu produto vetor de matriz e do número de iterações (e, portanto, do matvecs) necessárias, uma solução tikhonov direta com bidiagonalização pode ser melhor.
— OscarB

Explicação impressionante. +1 para você, senhor!
— precisa saber é

2

A afirmação que (para matrizes quadradas) na pergunta e [Edit: eu interpretei errado] na resposta de Artan é um absurdo. Contra-exemplocond⁡A2≈cond⁡ATA

A=(ϵ10ϵ),ϵ≪1

para o qual você pode facilmente verificar que enquanto cond A 2 = O ( ϵ - 2 ) .cond⁡ATA=O(ϵ−4)cond⁡A2=O(ϵ−2)


Ok ressaltar que e A T A são, em geral, muito diferente como o que diz respeito eigs, SVD, número cond: mas na minha opinião a alegação da pergunta é sobre [ c o n d ( A ) ] 2 . A2ATA[cond(A)]2
— 24512 Stefano M

@StefanoM Obrigado, parece que eu li errado, embora a partir da discussão, não fosse o único.
— Jed Brown

1

Em condições aritméticas exatas (A ^ 2) = cond (A'A) = cond (AA '), ver p. Golub e van Loan, 3ª ed., P. Isso não é verdade na aritmética de ponto flutuante se A for quase deficiente na classificação. O melhor conselho é seguir as receitas do livro acima ao resolver problemas com mínimos quadrados, sendo a abordagem mais segura a SVD, p257. Use \ varepsilon-rank ao calcular SVD, onde \ varepsilon é a resolução dos dados da matriz.


Sinto muito, olhei para Golub e Van Loan, 3ª ed p. 70, e não conseguiu encontrar nada que faça backup da instrução cond (A ^ 2) = cond (A ^ TA) = cond (AA ^ T). Você poderia ser mais específico com sua referência?
— OscarB

Não há nenhuma declaração lá, mas você pode derivar do teorema 2.5.2 e do pseudo-inverso, seção 5.5.4 que cond (AA ') = cond (A'A). A razão pela qual considero pseudo-inverso é que é isso que importa para o problema dos mínimos quadrados em questão. A igualdade após cond (A ^ 2) deve ser \ aproximadamente, desculpe pelo erro de digitação.
— Artan

Não, esta resposta está totalmente incorreta. Veja meu contra-exemplo.
— precisa

Saad deve ter afirmado isso em algum contexto específico. O que é relevante para a questão em questão é o argumento do processo.
— 25412 Artan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.