GitM0j0 / KSGFS

Stochastic Gradient Fisher Scoring for Neural Networks
1 stars 0 forks source link

Implementation Log-Likelihood #9

Open GitM0j0 opened 6 years ago

GitM0j0 commented 6 years ago

Hey, ich habe die Test Log-likelihoods für den Boston Housing Datensatz berechnet, kann allerdings nicht die Ergebnisse der anderen Paper erreichen. Kannst du kurz einen Blick hier auf die Implementierung werfen?

norm = torch.distributions.normal.Normal(y, std_true) test_ll = norm.log_prob(standard_pred).mean()

Meine Trainingsdaten habe ich ja standadisiert, die Konvertierung für die Testdaten sieht dann folgendermaßen aus X_test = (X_test - X_train_mean) / X_train_std prediction = prediction * y_train_std + y_train_mean

Als Beispiel hier die Test LL für eine Konfiguration des KSGFS: ll_ksgfs Für anderen Konfigurationen waren die Werte ein wenig besser. Der dazugehörige RMSE: rmse_ksgfs Dieser liegt zumindest in der Range der anderen Ergebnisse und da beide Werte eigentlich sich nur durch ein Skaling unterscheiden sollten, wundere ich mich nun ein wenig.

Zu der Mail am Morgen: In dem SGLD oder SGFS Paper sprechen sie von einem adaptiven Verfahren, die von Optimierung auf Sampling umspringt. Bei den Experimenten wurden aber immer feste Werte für den Burn-In gewählt. Ich werde mich An diesen Werten erst einmal orientieren und kann diese ein wenig variieren und schauen, was dort passiert.

hpplyt commented 6 years ago

Wo ist denn der code dafür?

Und was nimmst du als std_true? Das sollte vermutlich 1 sein oder?

Was genau plottest du denn? LL/RMSE der Parameter an der jeweiligen Iteration oder der der average prediction bis dahin?

GitM0j0 commented 6 years ago

Der Code ist ziemlich unordentlich im 'regression.ipynb', da habe ich gerade die aktuelle Version gepushed.

Ja genau, da habe ich für Boston Housing 1 genommen.

Ersteres!

hpplyt commented 6 years ago

Ok, so spontan habe ich jetzt nichts gesehen, was offensichtlich falsch wäre, ich kanns mir morgen nochmal angucken.

Zum letzten Punkt: was du eigentlich willst, ist die LL bzw. der RMSE von der average prediction über deine samples. Die sollte jeweils etwas besser sein als LL/RMSE an eine beliebigen iteration.

GitM0j0 commented 6 years ago

Das wäre super. Ja stimmt, blöd von mir. Ist nun ein wenig besser, aber die Diskrepanz besteht noch immer.

GitM0j0 commented 6 years ago

Ich habe nochmal reingeschaut, dort std=1. zu nehmen macht natürlich keinen Sinn, da ich die Schätzungen wieder zurückskaliert habe. Muss ich hier nicht vielmehr die predictive variance nehmen?

hpplyt commented 6 years ago

Ja, das würde auf jeden Fall Sinn machen. Ich hatte da irgendwann mal drüber nachgedacht, aber völlig vergessen, das zu erwähnen...

Sind die Ergebnisse damit besser? Oder hast du es noch nicht ausprobiert?