Spielt der Rückgabewert logLikelihood da noch rein oder brauchen wir den abgesehen von einer Abbruchbedigung gar nicht?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.
1. Übung
Moderator: Probabilistische Graphische Modelle
Re: 1. Übung
Habt ihr schon eine Möglichkeit gefunden im segmentor die FG und BG Wahrscheinlichkeit in akzeptabler Zeit zu berechnen? Ich habs mit einer Schleife über alle Pixel und der Formel im 2. Foliensatz auf Folie 19 versucht und nach 10 Minuten abgebrochen da es nicht fertig wurde.
Re: 1. Übung
Ich hab irgendwas geändert das es nun schneller geht. Kann nicht wirklich sagen was 
Zumindest läuft es nun durch. Das Ergebnis sieht allerdings bei weitem nicht so gut aus wie im Übungszettel.
Was ich bei der log likelihood ratio visualisieren soll versteh ich nicht. Was ist denn die logLikelihood von pFG bzw. pBG?

Zumindest läuft es nun durch. Das Ergebnis sieht allerdings bei weitem nicht so gut aus wie im Übungszettel.
Was ich bei der log likelihood ratio visualisieren soll versteh ich nicht. Was ist denn die logLikelihood von pFG bzw. pBG?
Re: 1. Übung
Ich habe ein paar Probleme mit dem Anfang... ich habe noch nie Matlab benutzt, aber das ist jetzt nicht mehr das größte Problem.
Ich weiss nicht, wie ich das allererste Implementieren muss, also das p(j). Ich sehe im Skript keine geschlossene Formel für p(j), oder wie das "pi" definiert ist.
Was ist konkret in estGaussMixEM zu implementieren, die initialisierung der arrays und die gesamte schleife inkl. abbruchbedingung, oder nur ein durchlauf? Ich finde die Aufgabenstellung zu allgemein formuliert.
Ich weiss nicht, wie ich das allererste Implementieren muss, also das p(j). Ich sehe im Skript keine geschlossene Formel für p(j), oder wie das "pi" definiert ist.
Was ist konkret in estGaussMixEM zu implementieren, die initialisierung der arrays und die gesamte schleife inkl. abbruchbedingung, oder nur ein durchlauf? Ich finde die Aufgabenstellung zu allgemein formuliert.

Re: 1. Übung
Nein das sollte dann keine 10 Minuten mehr dauern. Du wendest den EM Algorithmus auf den Trainingspunkte an und dann erhaeltst du ja die Kovarianzmatrizen und die Mittelwerte zurueck und mit diesen Parametern schaetzt du dann fuer jeden Punkt die Vordergrund- und Hintergrundwahrscheinlichkeiten..joe hat geschrieben:Habt ihr schon eine Möglichkeit gefunden im segmentor die FG und BG Wahrscheinlichkeit in akzeptabler Zeit zu berechnen? Ich habs mit einer Schleife über alle Pixel und der Formel im 2. Foliensatz auf Folie 19 versucht und nach 10 Minuten abgebrochen da es nicht fertig wurde.
Der Rueckgabewert wird dann nicht mehr benoetigt. Ist ja auch nur eine Zahl und kein Vektor..joe hat geschrieben:Spielt der Rückgabewert logLikelihood da noch rein oder brauchen wir den abgesehen von einer Abbruchbedigung gar nicht?
Re: 1. Übung
Es kommt auch ein bisschen auf die Bilder an, die ihr verwendet und natuerlich wo ihr hinklickt. Die besten Ergebnisse habe ich bei der Person..joe hat geschrieben:Ich hab irgendwas geändert das es nun schneller geht. Kann nicht wirklich sagen was
Zumindest läuft es nun durch. Das Ergebnis sieht allerdings bei weitem nicht so gut aus wie im Übungszettel.
Wenn du die likelihood deiner Pixeln hast, die ja in pFG und pBG abgespeichert sind, dann weisst du auch was die log-likelihood ist.joe hat geschrieben:Was ich bei der log likelihood ratio visualisieren soll versteh ich nicht. Was ist denn die logLikelihood von pFG bzw. pBG?

Re: 1. Übung
Das meiste wurde eigentlich schon weiter oben diskutiert. p(x|theta_j) ist auf Folie 19 definiert. Das ist die Gaussverteilung fuer mehrdimensionale Zufallsvariablen. Daher auch der Name Gaussian Mixture Models. Mit dieser Formel weist du jeden Punkt einem Mixture zu anhand der aktuellen Parameter, die sich aber permanent aendern in den ersten Iterationen. Den eigentlichen Algorithmus findest du dann auf Folie 25 und dort ist auch pi definiert.tovar hat geschrieben: Ich weiss nicht, wie ich das allererste Implementieren muss, also das p(j). Ich sehe im Skript keine geschlossene Formel für p(j), oder wie das "pi" definiert ist.
Wenn du in den Code reinschaust, dann siehst du dass von estGaussMixEM die Kovarianzmatrizen, die Mittelwerte und die Gewichte fuer den Vordergrund und den Hintergrund erwartet werden. Mit diesen Parametern wird dann spaeter auf den Testpunkten jeder einzelne Pixel klassifiziert. Wenn du also nur die Initialisierung der Arrays oder die Ergebnisse nach einem Durchlauf zurueck gibst, dann wird deine Segmentierung fehl schlagen, weil die Werte eher zufaelligen Charakter haben.tovar hat geschrieben:Was ist konkret in estGaussMixEM zu implementieren, die initialisierung der arrays und die gesamte schleife inkl. abbruchbedingung, oder nur ein durchlauf? Ich finde die Aufgabenstellung zu allgemein formuliert.
Re: 1. Übung
Was ist denn die likelihood der Pixel? Ich hab dafür die sum(p(i|j) * p(j)) (sum über alle j = 1:M) verwendet.
Ich hab bei der Person gerade so gute Ergebnisse, dass man in der Klassifizierung erahnen kann das eine Person auf dem Bild ist. Beim Mond haut das zu 100% hin. Was mir aufgefallen ist, es macht für meine Berechnung kaum einen Unterschied ob ich 10 oder 100 Iterationen ansetze und ob ich 3 Mixtures oder 10 nehme. Die errechnete log-likelihood pendelt ebenfalls permanent bei 480 herum. Ich geh davon aus, dass ich dem zu folge einen Rechenfehler drin habe.
Ich hab bei der Person gerade so gute Ergebnisse, dass man in der Klassifizierung erahnen kann das eine Person auf dem Bild ist. Beim Mond haut das zu 100% hin. Was mir aufgefallen ist, es macht für meine Berechnung kaum einen Unterschied ob ich 10 oder 100 Iterationen ansetze und ob ich 3 Mixtures oder 10 nehme. Die errechnete log-likelihood pendelt ebenfalls permanent bei 480 herum. Ich geh davon aus, dass ich dem zu folge einen Rechenfehler drin habe.
Re: 1. Übung
Wenn das die Formel von slide 19 ist: Ja..joe hat geschrieben:Was ist denn die likelihood der Pixel? Ich hab dafür die sum(p(i|j) * p(j)) (sum über alle j = 1:M) verwendet.
Das wuerde ich auch vermuten, weil das Personenbild sehr gut funktioniert und das Mondbild mit der geforderten Implementierung gar nicht laeuft. Warum das so ist und was man dagegen tun kann, soll Gegenstand der naechsten Uebung sein.joe hat geschrieben:Ich hab bei der Person gerade so gute Ergebnisse, dass man in der Klassifizierung erahnen kann das eine Person auf dem Bild ist. Beim Mond haut das zu 100% hin. Was mir aufgefallen ist, es macht für meine Berechnung kaum einen Unterschied ob ich 10 oder 100 Iterationen ansetze und ob ich 3 Mixtures oder 10 nehme. Die errechnete log-likelihood pendelt ebenfalls permanent bei 480 herum. Ich geh davon aus, dass ich dem zu folge einen Rechenfehler drin habe.

Re: 1. Übung
der mond klappt imo nicht, weil der hintergrund keine varianz hat. wenn man es trotzdem testen will, kann man ja ein bisschen vom mond mit in den hintergrund anklicken 
frage: habe ich die chance auf einen bonus, wenn ich mit k-means initialisiere und sage, dass man die maximale anzahl an iterationen vom EM auf 1 setzen soll, sodass nur die k-means werte verwendet werden?

frage: habe ich die chance auf einen bonus, wenn ich mit k-means initialisiere und sage, dass man die maximale anzahl an iterationen vom EM auf 1 setzen soll, sodass nur die k-means werte verwendet werden?
Nichts ist wie es scheint!
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Zuletzt geändert von xAx am 14. Mär 2009 16:17, insgesamt 99-mal geändert.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Zuletzt geändert von xAx am 14. Mär 2009 16:17, insgesamt 99-mal geändert.
Re: 1. Übung
Immer diese super-schlauen StudentenxAx hat geschrieben:der mond klappt imo nicht, weil der hintergrund keine varianz hat. wenn man es trotzdem testen will, kann man ja ein bisschen vom mond mit in den hintergrund anklicken![]()

Je nachdem ob du es selbst programmiert hast oder die vorimplementierte Version von Matlab nimmst, gibt es dann mehr oder weniger BonuspunktexAx hat geschrieben:frage: habe ich die chance auf einen bonus, wenn ich mit k-means initialisiere und sage, dass man die maximale anzahl an iterationen vom EM auf 1 setzen soll, sodass nur die k-means werte verwendet werden?

Re: 1. Übung
Hi,Sandra hat geschrieben:Das wuerde ich auch vermuten, weil das Personenbild sehr gut funktioniert und das Mondbild mit der geforderten Implementierung gar nicht laeuft. Warum das so ist und was man dagegen tun kann, soll Gegenstand der naechsten Uebung sein
danke für den Tipp. Dadurch bin ich darauf gekommen, dass meine Kovarianzmatrix wohl falsch ist und so war es auch. Nun geht das Mondbild bei mir auch nicht mehr

- JanEisklar
- Mausschubser
- Beiträge: 48
- Registriert: 18. Okt 2007 13:29
- Kontaktdaten:
Re: 1. Übung
Hi,
vielleicht könnte mir jemand mal auf die Sprünge helfen wie pFG und pBG zu berechnen ist.
Weiter oben hatte jemand geschrieben, dass er \(p(x|\Theta) = \displaystyle\sum_{j=1}^{M}\left[p(x|\Theta_j) \cdot{} p(j)\right]\) verwendet hat(Skript S.19 erste Formel). So hatte ich das auch vor nur wird \(p(x|\Theta_j)\) ja nicht von der Funktion estGaussMixEm zurückgegeben und müsste jetzt wieder komplett neu ausgerechnet werden.
Dürfen wir das als Rückgabewert noch mit einbauen? Alternativ könnte ich auch meine E-Step Funktion noch einmal aufrufen, aber das ist irgendwie auch etwas seltsam.
Vielleicht habe ich ja auch etwas komplett falsch verstanden und versuche hier etwas sehr merkwüdiges..wäre schön wenn mir jemand etwas dazu sagen könnte.
vielleicht könnte mir jemand mal auf die Sprünge helfen wie pFG und pBG zu berechnen ist.
Weiter oben hatte jemand geschrieben, dass er \(p(x|\Theta) = \displaystyle\sum_{j=1}^{M}\left[p(x|\Theta_j) \cdot{} p(j)\right]\) verwendet hat(Skript S.19 erste Formel). So hatte ich das auch vor nur wird \(p(x|\Theta_j)\) ja nicht von der Funktion estGaussMixEm zurückgegeben und müsste jetzt wieder komplett neu ausgerechnet werden.
Dürfen wir das als Rückgabewert noch mit einbauen? Alternativ könnte ich auch meine E-Step Funktion noch einmal aufrufen, aber das ist irgendwie auch etwas seltsam.
Vielleicht habe ich ja auch etwas komplett falsch verstanden und versuche hier etwas sehr merkwüdiges..wäre schön wenn mir jemand etwas dazu sagen könnte.
Re: 1. Übung
Ich habe da auch noch mal eine eigene Funktion dafuer geschrieben, weil ich es einfacher fand. Aber man kann vermutlich auch die E-Funktion aus dem EM Algorithmus so anpassen, dass es fuer beides funktioniert.JanEisklar hat geschrieben: Weiter oben hatte jemand geschrieben, dass er \(p(x|\Theta) = \displaystyle\sum_{j=1}^{M}\left[p(x|\Theta_j) \cdot{} p(j)\right]\) verwendet hat(Skript S.19 erste Formel). So hatte ich das auch vor nur wird \(p(x|\Theta_j)\) ja nicht von der Funktion estGaussMixEm zurückgegeben und müsste jetzt wieder komplett neu ausgerechnet werden.
Dürfen wir das als Rückgabewert noch mit einbauen? Alternativ könnte ich auch meine E-Step Funktion noch einmal aufrufen, aber das ist irgendwie auch etwas seltsam.
Re: 1. Übung
Hallo,
ist schon relativ spät aber wir haben ein Problem bei dem wir nicht auf die Ursache kommen.
Bei der Ausführung des EM-Algorithmus verschieben sich die Gewichtungen derart, dass manche Komponenten eine Gewichtung von 0 haben. Dadurch nehmen die Kovarianzmatrizen dieser Komponenten sehr kleine Werte an während die Kovarianzmatrizen der Komponenten mit einer größeren Gewichtung sehr groß werden. Dadurch bricht unser Algorithmus immer mit einem Fehler ab.
Welcher Rechenschritt könnte zu solch abgedrehten Werten führen? - Wir haben alle Rechenschritte direkt mit den Formeln aus den Folien verglichen und kamen auf keinen Fehler.
ist schon relativ spät aber wir haben ein Problem bei dem wir nicht auf die Ursache kommen.
Bei der Ausführung des EM-Algorithmus verschieben sich die Gewichtungen derart, dass manche Komponenten eine Gewichtung von 0 haben. Dadurch nehmen die Kovarianzmatrizen dieser Komponenten sehr kleine Werte an während die Kovarianzmatrizen der Komponenten mit einer größeren Gewichtung sehr groß werden. Dadurch bricht unser Algorithmus immer mit einem Fehler ab.
Welcher Rechenschritt könnte zu solch abgedrehten Werten führen? - Wir haben alle Rechenschritte direkt mit den Formeln aus den Folien verglichen und kamen auf keinen Fehler.
Re: 1. Übung
Ist euer Wahrscheinlichkeitsvektor auch ein Wahrscheinlichkeitsvektor, d.h. summiert sich jede Zeile zu 1?Xepha hat geschrieben:Hallo,
ist schon relativ spät aber wir haben ein Problem bei dem wir nicht auf die Ursache kommen.
Bei der Ausführung des EM-Algorithmus verschieben sich die Gewichtungen derart, dass manche Komponenten eine Gewichtung von 0 haben. Dadurch nehmen die Kovarianzmatrizen dieser Komponenten sehr kleine Werte an während die Kovarianzmatrizen der Komponenten mit einer größeren Gewichtung sehr groß werden. Dadurch bricht unser Algorithmus immer mit einem Fehler ab.
Welcher Rechenschritt könnte zu solch abgedrehten Werten führen? - Wir haben alle Rechenschritte direkt mit den Formeln aus den Folien verglichen und kamen auf keinen Fehler.