Forum: Digitale Signalverarbeitung / DSP / Machine Learning Matrixanalysis


von A. S. (rava)


Lesenswert?

hi,

ich habe eine C Methode, die mit einer mehrdimensionalen gauss'schen 
Normalverteilung arbeitet. Parameter der Methode sind die Mittelwerte 
und die Kovarianzmatrix. Alle Parameter sind reellwertig.
Siehe auch hier: 
http://de.wikipedia.org/wiki/Mehrdimensionale_Normalverteilung

Nun muss ich zunächst überprüfen, ob die Übergebene Matrix tatsächlich 
eine Kovarianzmatrix sein kann. Das Ding muss also symmetrisch und 
positiv semidefinit sein.
Siehe auch hier: http://de.wikipedia.org/wiki/Kovarianzmatrix

Symmetrie lässt sich einfach abprüfen; für die Semidefinitheit muss ich 
aber zeigen, dass die Eigenwerte alle nicht negativ sind. 
Eigenwertberechnungen erfordern allerdings das Lösen eines Polynoms 
n-ter Ordnung. Und das macht für beliebige Eingangsmatrizen im 
allgemeinen Fall nur wenig Spaß.

Das hätte ich gerne einfacher. Ich habe mir also mal die anderen 
Kriterien angesehen:
http://de.wikipedia.org/wiki/Definitheit#Kriterien_f.C3.BCr_Definitheit

Hier meine Ergebnisse
a) Eigenwerte <-- aufwändig
b) Hauptminoren <-- kann keine Semidefinitheit zeigen
c) Gaußsches Eliminationsverfahren <-- noch aufwändiger
d) Cholesky-Zerlegung <-- kein Nachweis, funktioniert nur falls 
Definitheit vorliegt
e) Diagonaldominante Matrizen <-- nicht in allen Fällen ein Nachweis

damit komme ich also nicht weiter.

Hier wird noch das Rayleigh-Kriterium angeführt. Und wenn der kleinste 
Eigenwert positiv ist, sind alle positiv:
https://inst.eecs.berkeley.edu/~ee127a/book/login/l_sym_sed.html

Das wird aber auf zu einem n-1 Dimensionalen Optimierungsproblem, das 
aber auch zu keiner geschlossenen Lösung führt. Ein Ansatz für 3D wäre 
hier, als Einsvektor in Kugelkoordinaten anzugeben und das Skalarprodukt 
zu minimieren über die beiden Parameter theta und phi.



Eigentlich kann das doch nicht so schwierig sein, oder?

von ghl (Gast)


Lesenswert?

A. S. schrieb:
> c) Gaußsches Eliminationsverfahren <-- noch aufwändiger
Hä? Easy.
. Sortieren nach führenden Nullen
. Jede Zeile i
.   Index j des ersten Nicht-Null Elementes finden
.   Zeile mit Element an [i][j] multiplizieren.
    für jede nachfolgende Zeile k
.     Wenn [k][j] != 0
.       [k] -=  [i] * [k][j]
.     Höchsten Nicht-Null Index in [k] finden und k mit dem Inversen 
multiplizieren

Fertig.

von A. S. (rava)


Lesenswert?

okay, da meine Suche sonst zu nichts geführt hat, sehe ich mir gerade 
das Gauss-Verfahren nochmal an. Aus  wiki:
> Eine reelle symmetrische quadratische Matrix A ist genau dann positiv
> definit, wenn das Gaußsche Eliminationsverfahren bei Diagonalstrategie,
> das heißt ohne Zeilenvertauschungen, mit n positiven Pivotelementen
> durchgeführt werden kann.

Ich suche nach positiver Semidefinitheit.

Ich möchte also beispielsweise für die Matrix

0 0 0
0 1 0
0 0 0

herausbekommen, dass sie gültig ist, denn die Eigenwerte sind 0,0,1 und 
sie ist symmetrisch.

Das kann Gauss nicht liefern, oder?

: Bearbeitet durch User
von Detlef _. (detlef_a)


Lesenswert?

Cholesky liefert sehr Wohl kriterium fuer positv semidefinit. Ist 
numeridch super. Bei Gauss ist auf jeden fall pivotsuche noetig, sonst 
wird es instabil.   Sowas nicht selber machen, da gibt es jede menge 
fallstricke, in 'Numerical recipes' abkupfern.
Math rulez!
Cheers
Detlef

von A. S. (rava)


Lesenswert?

was ist denn das besagte kriterium?

auf wiki steht nur dass die Zerlegung existieren muss. Klar. Und wie 
weise ich nach, dass die Zerlegung existiert, wenn sie nur für positiv 
definite Matrizen definiert ist?

Rechnen, bis der Algo durch 0 dividiert?


Sagt mal wenn ich das Rayleigh-Kriterium ein bisschen weiterverfolge. Im 
Prinzip kann ich den Suchraum nach dem kleinsten Eigenwert als die n-1 
dimensionale Oberfläche einer n-dimensionalen Einheitskugel darstellen. 
Und diese Einheitskugel schneidet eine n-dimensionale Wolke, deren 
Hauptachsen alle aufeinander senkrecht stehen, richtig?
Kann ich da nicht mit irgendeiner Gradientenmethode zum kleinsten 
Eigenwert hinwandern (also da wo die Wolke am dünnsten ist)? Es dürfte 
ja keine lokalen Minima geben.
Oder passt mein Bild der "Wolke" nicht mehr, falls negative Eigenwerte 
vorliegen?

: Bearbeitet durch User
von Detlef _. (detlef_a)


Angehängte Dateien:

Lesenswert?

>>Rechnen, bis der Algo durch 0 dividiert?

Ja, genau, so schlicht ist das.

Im angehängten screenshot des Cholesky Algo aus 
http://apps.nrbook.com/c/index.html ist das genau die Abfrage.

math rulez!
Cheers
Detlef

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.