2. Übung

Moderator: Probabilistische Graphische Modelle

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

2. Übung

Beitrag von xAx » 28. Okt 2009 11:58

Hallo an alle Mitleser. Bekommen wir zum Experimentieren noch die Musterlösung der 1. Übung, oder müssen wir mit unserer eigenen Abgabe arbeiten? Würde da lieber mit einem "stable release" arbeiten, bevor ich mit einem unbekannten Fehler in meiner Version in die falsche Richtung experimentiere. Experimente an Fremdcode fände ich auch viel spannender, denn um das eigene Programm zum Laufen zu bringen waren ja auch schon viele Testläufe nötig.
Nichts ist wie es scheint!
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Zuletzt geändert von xAx am 14. Mär 2009 16:17, insgesamt 99-mal geändert.

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

Re: 2. Übung

Beitrag von jlerch » 28. Okt 2009 12:26

Hi,

ich würde sagen die ist bereits Online ;) "Matlab segmentor (complete)" unter 3. Übung auf der Webseite.

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

Re: 2. Übung

Beitrag von Sandra » 28. Okt 2009 16:04

Ich musste noch mal ein Update hoch laden, weil ich eine veraltete und nicht lauffaehige Version rein gestellt hatte. Sorry!

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

Re: 2. Übung

Beitrag von xAx » 29. Okt 2009 20:14

Jetzt mit der Mulö vor Augen habe ich eine Frage. Die estimate function berechnet die wahrscheinlichkeiten der multivariate verteilungen so:

Code: Alles auswählen

    term1 = 1/(2*pi)^(d/2)*det(covMats(:,:,j))^(1/2);
    term2 = inv(covMats(:,:,j));
    for i=1:n
        prob(i,j) = term1 * exp(-1/2*(X(i,:)-means(j,:))*term2*(X(i,:)- ...
            means(j,:))');
    end;
Mir geht es insbesondere um term1: die Wurzel der Determinante der Varianzmatrix steht nicht unter dem Bruchstrich - ganz im gegensatz zur Formel auf seite 19. Jetzt merke ich, dass die matlab function mvnpdf wieder einen kleinen ticken anders definiert ist. Jedoch war in Tests die Abweichung der matlab function von der Formel, wie sie in den Folien steht, stets in der Größenordnung von nur 10^(-18). Welche Formel stimmt denn nun? Jedenfalls bekomme ich nur mit der aus der Mulö die Konvergenz der LogLikelihood gegen 0.
Im Nachhinein bin ich erstaunt, wie gut meine abgegebene Lösung dann doch funktioniert hat. Hoffe, es gibt keinen Punktabzug, denn das ganze hat ein paar weitere Auswirkungen: z.B. der Abbruch bei geringer Veränderungs des LogLikelihood: die Schritte sind meist nur 2 groß. Keine wirkliche Änderung bei Werten um die -500. Er konvergiert auch nicht gegen 0 sondern irgend einen Wert in der Pampa, etwas oberhalb des Initial-L.L.
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: 2. Übung

Beitrag von Sandra » 30. Okt 2009 08:41

xAx hat geschrieben:Jetzt mit der Mulö vor Augen habe ich eine Frage. Die estimate function berechnet die wahrscheinlichkeiten der multivariate verteilungen so:

Code: Alles auswählen

    term1 = 1/(2*pi)^(d/2)*det(covMats(:,:,j))^(1/2);
    term2 = inv(covMats(:,:,j));
    for i=1:n
        prob(i,j) = term1 * exp(-1/2*(X(i,:)-means(j,:))*term2*(X(i,:)- ...
            means(j,:))');
    end;
Mir geht es insbesondere um term1: die Wurzel der Determinante der Varianzmatrix steht nicht unter dem Bruchstrich - ganz im gegensatz zur Formel auf seite 19. Jetzt merke ich, dass die matlab function mvnpdf wieder einen kleinen ticken anders definiert ist. Jedoch war in Tests die Abweichung der matlab function von der Formel, wie sie in den Folien steht, stets in der Größenordnung von nur 10^(-18). Welche Formel stimmt denn nun? Jedenfalls bekomme ich nur mit der aus der Mulö die Konvergenz der LogLikelihood gegen 0.
Das ist ein Fehler in der Musterloesung. Die Determinante muss natuerlich unter den Bruchstrich. Was meinst du mit Konvergenz der LogLikelihood gegen 0?
xAx hat geschrieben:Im Nachhinein bin ich erstaunt, wie gut meine abgegebene Lösung dann doch funktioniert hat. Hoffe, es gibt keinen Punktabzug, denn das ganze hat ein paar weitere Auswirkungen: z.B. der Abbruch bei geringer Veränderungs des LogLikelihood: die Schritte sind meist nur 2 groß. Keine wirkliche Änderung bei Werten um die -500. Er konvergiert auch nicht gegen 0 sondern irgend einen Wert in der Pampa, etwas oberhalb des Initial-L.L.
Den Fall wuerde ich abfangen. Nach nur zwei Schritten kann das Verfahren noch nicht konvergiert sein. Mitunter verschlechtert sich die LogLikelihood am Anfang, je nachdem wie die zufaellige Verteilung am Anfang war.

Was meinst du mit "keine Aenderungen bei Werten um die -500"? Meinst du etwa, dass der LL gegen 0 konvergieren sollte? Das habe ich noch nie erlebt. Das Hauptproblem ist ja, dass wir extrem viele Wahrscheinlichkeiten aufmultiplizieren, d.h. deine Zahl wird unglaublich klein und damit numerisch instabil. Deswegen nutzen wir ja den Logarithmus, damit wir dann auch in Bereichen 10e-211 Unterschiede erkennen koennen. Wenn also deine LL oberhalb der Initial LL liegt, dann ist vollkommen ausreichend und zeigt an dass zumindest irgendetwas gelernt wurde.

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

Re: 2. Übung

Beitrag von xAx » 30. Okt 2009 12:14

Sandra hat geschrieben: Was meinst du mit Konvergenz der LogLikelihood gegen 0? [...]
Was meinst du mit "keine Aenderungen bei Werten um die -500"? Meinst du etwa, dass der LL gegen 0 konvergieren sollte? Das habe ich noch nie erlebt.
Genau dieses Verhalten zeigt sich bei mir mit der Mulö. Aber das sollte geklärt sein, da ja die Formel etwas falsch implemtiert ist. Danke!
Edit: Komisch, auch mit gefixter Formel wandern die Erwartungswerte nicht wirklich "in die Zentren der Gaußhügel der Punktewolken". (Figure 2)
Nichts ist wie es scheint!
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Zuletzt geändert von xAx am 14. Mär 2009 16:17, insgesamt 99-mal geändert.

Antworten

Zurück zu „Probabilistische Graphische Modelle“