1. Übung

Moderator: Probabilistische Graphische Modelle

jlerch
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 148
Registriert: 18. Okt 2005 14:45

1. Übung

Beitrag von jlerch » 19. Okt 2009 18:56

Hi,

da ich krank bin konnte ich heute morgen nicht in die Vorlesung. Dafür sitze ich nun den gesamten Nachmittag bereits über den Folien und versuche mithilfe weiterer Quellen einen Ansatz für die Übung zu finden. Bisher bin ich nicht wirklich weit gekommen und stehe momentan vor dem Problem, was mit der Kovarianzmatrix gemeint ist. In den Folien kann ich nichts dergleichen finden. Ist die Annahme richtig, dass die dritte Dimension (nur als k beschrieben) als Index für die jeweilige Iteration gedacht ist?

Gruß
joe

Sandra
Mausschubser
Mausschubser
Beiträge: 89
Registriert: 4. Mär 2005 19:47
Kontaktdaten:

Re: 1. Übung

Beitrag von Sandra » 19. Okt 2009 21:06

Ja stimmt. In den Folien steht dazu nicht viel.

Sigma = Kovarianzmatrix ist eine symmetrische dim x dim Matrix (und positiv definit). dim ist die Dimension deiner Zufallsvariable (= Datenpunkt), d.h. in unserem Fall 3 fuer die Werte rot, gruen und blau. In der Diagonalen findet man die Varianz (Streuung) der jeweiligen Dimension und die Nebeneintraege kodieren, wie stark die einzelnen Dimensionen korreliert sind. Wenn ich also eine tatsaechliche Zufallsverteilung habe, dann gehen diese Eintraege gegen Null und uebrig bleibt die Varianz in der Diagonalen.

|Sigma| = Determinante von Sigma

Mit k ist M gemeint. Sorry, das ist mir gar nicht aufgefallen. Es gibt also fuer jedes Mixture eine Kovarianzmatrix. Wenn ihr also das Problem mit 4 Mixtures modelliert, dann habt ihr 4 3x3 Matrizen. Am besten ist es vermutlich, wenn man am Ende noch mal nComponents auf 4 setzt, einfach um zu testen, ob der Code richtig ist, weil hier in dem Beispiel unguenstigerweise die Anzahl der Dimensionen = Anzahl der Mixtures = 3 ist, was aber auf keinen Fall identisch ist.

jlerch
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 148
Registriert: 18. Okt 2005 14:45

Re: 1. Übung

Beitrag von jlerch » 19. Okt 2009 22:29

Da steh ich wohl auf dem Schlauch oder es war für heute einfach schon genug, aber wie sich die Kovarianzmatrix berechnet ist mir noch immer nicht klar. Die Varianz auf der Diagonalen ist ok, aber wie errechne ich die Nebeneinträge?
In den Folien habe ich nur eine Definition von Sigma gefunden (Folie 22 und 25). Da erhalte ich meinem Verständnis nach aber lediglich ein Skalar pro Mixture und keine Matrix.

Sandra
Mausschubser
Mausschubser
Beiträge: 89
Registriert: 4. Mär 2005 19:47
Kontaktdaten:

Re: 1. Übung

Beitrag von Sandra » 20. Okt 2009 10:16

Es gibt aber einen Unterschied zwischen v*v' und v'*v. In der Mathematik wird ein Vektor immer noch standardmaessig in Spaltenform aufgeschrieben. Waehrend in der Informatik das ganz gern als Zeile geschrieben wird und das 'transpose'-Zeichen "vergessen" wird, weil ja "klar" ist was gemeint ist.

Sigma = (E[(x1-mu1)(x1-mu1)] E[(x1-mu1)(x2-mu2)] E[(x1-mu1)(x3-mu3)]; E[(x2-mu2)(x1-mu1)] ...)

jlerch
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 148
Registriert: 18. Okt 2005 14:45

Re: 1. Übung

Beitrag von jlerch » 20. Okt 2009 12:02

Ouh wie peinlich. Ja seh ich heute auch so.
Danke.

Sandra
Mausschubser
Mausschubser
Beiträge: 89
Registriert: 4. Mär 2005 19:47
Kontaktdaten:

Re: 1. Übung

Beitrag von Sandra » 20. Okt 2009 12:55

Das muss dir nicht peinlich sein! Dafuer ist ja das Forum da, um ueber solche Unklarheiten zu diskutieren. In der Pruefung waere es eindeutig zu spaet ;-)

jlerch
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 148
Registriert: 18. Okt 2005 14:45

Re: 1. Übung

Beitrag von jlerch » 20. Okt 2009 15:07

Ich hangel mich mal weiter von Problem zu Problem.

Auf Folie 19 finde ich in der 2. Formel eine Variation der Normalverteilung die sich für mich erstmal nicht trivial ergibt. Mit der Annahme, dass Sigma j hier die Kovarianzmatrix meint (Sigma j wird allerdings erst später definiert) und der Betrag die Determinante ist bleibt noch als Unbekannte das "d".

Sandra
Mausschubser
Mausschubser
Beiträge: 89
Registriert: 4. Mär 2005 19:47
Kontaktdaten:

Re: 1. Übung

Beitrag von Sandra » 20. Okt 2009 19:19

.joe hat geschrieben:Ich hangel mich mal weiter von Problem zu Problem.
Gut!
.joe hat geschrieben:Auf Folie 19 finde ich in der 2. Formel eine Variation der Normalverteilung die sich für mich erstmal nicht trivial ergibt. Mit der Annahme, dass Sigma j hier die Kovarianzmatrix meint (Sigma j wird allerdings erst später definiert) und der Betrag die Determinante ist bleibt noch als Unbekannte das "d".
Die Formel ist einfach die mehrdimensionale Verallgemeinerung der Normalverteilung. Demzufolge ist d die Anzahl der Dimensionen deiner Datenpunkte.

Findest du, dass Sigma_j zu spaet erklaert wird? Mir scheint es recht logisch erst die eindimensionale Verteilung einzufuehren mit dem Mittelwert mu und der Varianz sigma. Darunter kann sich jeder etwas vorstellen. Und danach wird diese Verteilung auf eine multivariate Verteilung erweitert mit dem mehrdimensionalen Mittelwert mu (Vektor) und der mehrdimensionalen "Varianz" Sigma (Matrix).

jlerch
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 148
Registriert: 18. Okt 2005 14:45

Re: 1. Übung

Beitrag von jlerch » 21. Okt 2009 08:49

Okay. Die Vermutung hatte ich zumindest.
Erst die eindimensionale Normalverteilung einzuführen und dann auf mehrdimensional zu erweitern erscheint mir absolut sinnvoll.

xAx
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 157
Registriert: 6. Mär 2008 17:20

Re: 1. Übung

Beitrag von xAx » 22. Okt 2009 12:09

Hätte da eine frage zum 1.) Anfang und 2.) Ende unserer estGaussMixEM(X, M):
1.) Wie initialisiere ich die p(j | i) (ich meine die p mit einem "^" drauf)? Jeweils mit 1/M, weil ich noch überhaupt nicht sagen kann, welcher Punkt zu welchem Gauß gehört?
2.) Was ist überhaupt das Ende? Wann soll estGaussMixEM aufhören, zu itererieren und was wäre eine gute Abbruchbedingung?
Danke schonmal für die Hilfe!
Nichts ist wie es scheint!
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Zuletzt geändert von xAx am 14. Mär 2009 16:17, insgesamt 99-mal geändert.

Sandra
Mausschubser
Mausschubser
Beiträge: 89
Registriert: 4. Mär 2005 19:47
Kontaktdaten:

Re: 1. Übung

Beitrag von Sandra » 22. Okt 2009 13:06

xAx hat geschrieben:Hätte da eine frage zum 1.) Anfang und 2.) Ende unserer estGaussMixEM(X, M):
1.) Wie initialisiere ich die p(j | i) (ich meine die p mit einem "^" drauf)? Jeweils mit 1/M, weil ich noch überhaupt nicht sagen kann, welcher Punkt zu welchem Gauß gehört?
Entweder so wie du geschrieben hast oder zufaellig oder du laesst vorher kmeans laufen (ist in Matlab schon implementiert).
xAx hat geschrieben:2.) Was ist überhaupt das Ende? Wann soll estGaussMixEM aufhören, zu itererieren und was wäre eine gute Abbruchbedingung?
Danke schonmal für die Hilfe!
Am besten bis es konvergiert, d.h. bis sich die loglikelihood oder die soft assignments p nur noch minimal aendern oder du gibst eine feste Anzahl an Iterationen vor. Ich habe beides kombiniert, weil die Anzahl der Iterationen je nach Initialisierung sehr stark variieren kann und so schnell ist das ganze ja nun auch wieder nicht.

Gruesse Sandra

Stefano
Windoof-User
Windoof-User
Beiträge: 25
Registriert: 26. Aug 2008 10:46

Re: 1. Übung

Beitrag von Stefano » 23. Okt 2009 13:54

Hallo zusammen,

mir ist noch unklar, wie genau wir den Likelihood-Ratio berechnen sollen.

Normalerweise würde ich wie in diesem Wiki-Artikel vorgehen, aber ich vermute, dass sich die Antwort in den Folien versteckt (und ich sie nicht finde).


Danke vorweg und Gruß
Stefano

xAx
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 157
Registriert: 6. Mär 2008 17:20

Re: 1. Übung

Beitrag von xAx » 23. Okt 2009 15:49

Sandra hat geschrieben:
xAx hat geschrieben:Hätte da eine frage zum 1.) Anfang und 2.) Ende unserer estGaussMixEM(X, M):
1.) Wie initialisiere ich die p(j | i) (ich meine die p mit einem "^" drauf)? Jeweils mit 1/M, weil ich noch überhaupt nicht sagen kann, welcher Punkt zu welchem Gauß gehört?
Entweder so wie du geschrieben hast oder zufaellig oder du laesst vorher kmeans laufen (ist in Matlab schon implementiert).
Hm, nach ewigem Suchen nach dem Fehler zum Schluss gekommen: meine Variante geht nicht. Varianzmatrizen und Durchschnittswerte bleiben konstant die selben. Zufällllige Werte brachten dann den Erfolg.
btw: gibt's ein schönes matlab konstrukt mit dem man in softp(n, M) zufällige werte reinlädt, sodass jede der n Zeilensummen gleich 1 ist?
Nichts ist wie es scheint!
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Zuletzt geändert von xAx am 14. Mär 2009 16:17, insgesamt 99-mal geändert.

Sandra
Mausschubser
Mausschubser
Beiträge: 89
Registriert: 4. Mär 2005 19:47
Kontaktdaten:

Re: 1. Übung

Beitrag von Sandra » 23. Okt 2009 19:02

Stefano hat geschrieben: mir ist noch unklar, wie genau wir den Likelihood-Ratio berechnen sollen.
Der Ratio ist letztendlich der Unterschied zwischen Vordergrund und Hintergrund jedes einzelnen Pixels, d.h. ihr berechnet die Differenz der loglikelihood von pFG und pBG.

Sandra
Mausschubser
Mausschubser
Beiträge: 89
Registriert: 4. Mär 2005 19:47
Kontaktdaten:

Re: 1. Übung

Beitrag von Sandra » 23. Okt 2009 19:18

xAx hat geschrieben:Hm, nach ewigem Suchen nach dem Fehler zum Schluss gekommen: meine Variante geht nicht. Varianzmatrizen und Durchschnittswerte bleiben konstant die selben. Zufällllige Werte brachten dann den Erfolg.
Sorry! Ich habe eindeutig zu lange mit Gaussian Processes Modellen gearbeitet. Keine Sorge, die kommen auch noch in der Vorlesung dran :-) Da kann man tatsaechlich die Werte vorher ziemlich gleich verteilt zuordnen. Aber da man ja hier auch noch gleichzeitig lernt, wie viele Cluster (Mixture) wir brauchen, kommt natuerlich in jedem Schritt noch eine zufaellige Wahrscheinlichkeit hinzu, die dann das "Gleichgewicht" zerstoert.
xAx hat geschrieben: btw: gibt's ein schönes matlab konstrukt mit dem man in softp(n, M) zufällige werte reinlädt, sodass jede der n Zeilensummen gleich 1 ist?
Ist mir nicht bekannt. Ich kenne auch nur das mit repmat, was ich euch in der Matlab-Einfuehrung praesentiert hatte. Siehe SpeedUpMatlab.m Das sind dann zwei Zeilen.

Antworten

Zurück zu „Probabilistische Graphische Modelle“