Iterativer "Löser" für


9

Ich kann mir nicht vorstellen, dass ich der Erste bin, der über das folgende Problem nachdenkt, daher bin ich mit einer Referenz zufrieden (aber eine vollständige, detaillierte Antwort wird immer geschätzt):

Sagen Sie bitte eine symmetrische , positiv definite haben . n wird als sehr groß angesehen, so dass es unmöglich ist , Σ im Speicher zu halten. Sie können jedoch Σ x für jedes x R n auswerten . Bei einigen x R n möchten Sie x t Σ - 1 x finden .ΣRn×nnΣΣxxRnxRnxtΣ1x

Die erste Lösung, die mir in den Sinn kommt, besteht darin, Verwendung von (sagen wir) konjugierten Gradienten zu finden. Dies scheint jedoch etwas verschwenderisch zu sein - Sie suchen einen Skalar und finden dabei einen gigantischen Vektor in R n . Es erscheint sinnvoller, eine Methode zur direkten Berechnung des Skalars zu entwickeln (dh ohne Σ - 1 x zu durchlaufen ). Ich suche nach dieser Art von Methode.Σ1xRnΣ1x


2
Entsteht Ihre Matrix aus für ein "kurzes & breites" rechteckiges A ? Σ=ATAA
GeoMatt22

@ GeoMatt22 leider nicht. Aber sagen wir mal, was würden Sie in diesem Fall vorschlagen?
Yair Daon

1
Ja, ich habe nur darüber nachgedacht, ob es eine kleinere Matrix gibt, mit der ich arbeiten kann ... ich bin mir nicht sicher, ob es trotzdem helfen würde. Haben Sie versucht, "matrixfreie Mahalanobis-Entfernung" oder ähnliches zu googeln? Tut mir leid, nicht weiter zu helfen!
GeoMatt22

Danke @ GeoMatt22, ich konnte online nichts finden.
Yair Daon

Antworten:


2

Ich glaube nicht, dass ich von einer Methode gehört habe, die das tut, was Sie wollen, ohne es tatsächlich zu lösen .y=Σ1x

Die einzige Alternative, die ich anbieten kann, ist, wenn Sie etwas über die Eigenvektoren und -werte von wissen . Angenommen, Sie wussten, dass sie λ i , v i sind , dann können Sie Σ = V T L V darstellen, wobei die Spalten von V die v i sind und L eine Diagonalmatrix mit den Eigenwerten auf der Diagonale ist. Folglich haben Sie Σ - 1 = V T L - 1 V und Sie erhalten x T Σ - 1 x =Σλi,viΣ=VTLVVviLΣ1=VTL1V Dies würde natürlich erfordern speichernalleEigenwerte, dh eine vollständige Matrix V . Wenn Sie jedoch zufällig wissen, dass nur einige der Eigenwerte von Σ klein sind, sagen Sie das erste m , und der Rest ist so groß, dass Sie alle Terme mit λ - 1vernachlässigen können

xTΣ1x=xTVTL1Vx=iλi1(viTx)2.
VΣm füri>m, können Sie sich annähern λi1i>m Dies erfordert dann nur, dass Sie m Vektoren anstelle aller n Eigenvektorenspeichern.
xTΣ1x=i=1nλi1(viTx)2i=1mλi1(viTx)2.
mn

In der Praxis ist es natürlich oft gleich oder schwieriger, die Eigenwerte und Eigenvektoren zu berechnen, als einfach zu löseny=Σ1x


m

xTΣ1x

Können Sie dann eine Methode vorschlagen?
Yair Daon

Es gibt viele oder spärliche Eigenwertlöser. ARPACK und der PETSc-basierte SLEPc sind wahrscheinlich die am weitesten verbreiteten.
Wolfgang Bangerth

mn×n
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.