Bis zum letzten Mal
[Teil 1] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen. [Teil 2] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen. [Teil 3] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen.
Wenn Sie nur das Endergebnis zusammenfassen
Wir haben die Epoche von 50 auf 100 Generationen erhöht, und die durchschnittliche AUC betrug 0,724. Die folgenden Ergebnisse waren derzeit die besten.
Wetter | precision | recall | f1-score |
---|---|---|---|
Regen | 0.53 | 0.77 | 0.63 |
Fein | 0.86 | 0.68 | 0.76 |
durchschnittlich | 0.76 | 0.71 | 0.72 |
Zumindest gab es zu wenige Generationen. Das Ändern des Bildes, das Erhöhen der Trainingsdaten und die ternäre Klassifizierung verbesserten die Ergebnisse jedoch nicht.
Nach vielen Versuchen und Irrtümern habe ich versucht, etwas zu tun, das weder ähm noch ähm war, aber ich konnte nichts finden, das diese AUC überschritt ...
Um nur die Ergebnisse zusammenzufassen:
Das ist Überlernen. Bei Trainingsdaten steigt die Genauigkeit auf 0,95, bei Testdaten sind die Ergebnisse jedoch schlechter.
Im Moment haben wir 500 Knoten in der verborgenen Ebene, aber selbst wenn wir dies auf 1000 Knoten setzen, hat sich die Genauigkeit nicht verbessert.
Ich habe drei Modelle erstellt, die eine binäre Klassifizierung durchführen, ob es sonnig, regnerisch oder bewölkt ist, aber die Genauigkeit ist gesunken.
Es wurde gesagt, dass es besser sei, es zu erhöhen, aber das ist auch nutzlos.
etc.
Infolgedessen sind die Kandidaten, die angekommen sind, wie folgt.
Bisher wurde die Skalierung von Bilddaten durchgeführt
img_mat /= 255.
Das war eine sehr einfache Skalierung. Skalierung ist auch beim konventionellen maschinellen Lernen wichtig, und es ist oft schwierig, ohne richtige Skalierung zu lernen.
Daher wird dies geändert, indem die Trainingsdaten für jeden RGB-Kanal wie folgt standardisiert werden.
for i in range(0,3):
m = x_train_mat[:,i,:,:].mean()
s = x_train_mat[:,i,:,:].std()
x_train_mat[:,i,:,:] = (x_train_mat[:,i,:,:] - m)/s
x_test_mat[:,i,:,:] = (x_test_mat[:,i,:,:] - m)/s
Infolgedessen hat sich die Lerngeschwindigkeit im Hinblick auf den Lernprozess erheblich geändert, und die Genauigkeit hat sich in wenigen Generationen verbessert.
Laut dem Artikel sollte CNN ein vorab trainiertes Modell verwenden. Lassen Sie uns dies kurz vorstellen. Beim normalen Training teilt die Stapelgröße die Trainingsdaten innerhalb von 1 Epoche, aber die Trainingsdaten selbst, die in das Modell eingeführt werden sollen, werden geteilt.
Mit anderen Worten
Lerndaten A → Modelloptimierung → Lerndaten B → Modelloptimierung → (ry
Führen Sie nach dem Optimieren des Modells mit A wie in gezeigt die Modelloptimierung mit B mit diesem Parameter durch.
Konzeptionell soll Überlernen und Feinabstimmung unterdrückt werden.
Wenn Sie in Code schreiben
N = len(x_train_mat)
wbatch = N/3
perm = np.random.permutation(N)
for i in six.moves.range(0, N, wbatch):
t_x_data = x_train_mat[perm[i:i + wbatch]]
t_y_data = y_train[perm[i:i + wbatch]]
if len(t_y_data) > wbatch / 2:
"""Verwerfen Sie, wenn zu wenig Trainingsdaten vorhanden sind"""
cnn.fit_test(t_x_data,t_y_data,x_test_mat,y_test)
So was.
Die Lehrerdaten in den Trainingsdaten sind voreingenommen, und die Beziehung ist wie Regen <fein. Infolgedessen passt es übermäßig auf die Sonnenseite, und es hat sich gezeigt, dass sich die Genauigkeit des Regens nicht verbessert. Um die Regendaten in den Trainingsdaten zu erhöhen, wurde daher die folgende Verarbeitung durchgeführt.
Um Überlernen zu vermeiden, haben wir Drop-Outs in die CNN Max-Pooling-Ergebnisse aufgenommen.
Bis jetzt habe ich mich für diesen Bereich entschieden, ohne ihn anzupassen, und ihn auf 3 gesetzt, aber ich werde dies ändern.
Unter den oben genannten Bedingungen ändern wir die Filtergröße und die Poolgröße.
Durchschnittliche AUC: 0,711 Sonnige AUC: 0,790
Wetter | precision | recall | f1-score |
---|---|---|---|
Regen | 0.6 | 0.61 | 0.6 |
Fein | 0.82 | 0.82 | 0.82 |
durchschnittlich | 0.75 | 0.75 | 0.75 |
Durchschnittliche AUC: 0,719 Haru AUC: 0,783
Wetter | precision | recall | f1-score |
---|---|---|---|
Regen | 0.66 | 0.58 | 0.61 |
Fein | 0.82 | 0.86 | 0.84 |
durchschnittlich | 0.77 | 0.77 | 0.77 |
Durchschnittliche AUC: ** 0,735 ** Sonnige AUC: 0,780
Wetter | precision | recall | f1-score |
---|---|---|---|
Regen | 0.67 | 0.61 | 0.63 |
Fein | 0.83 | 0.86 | 0.85 |
durchschnittlich | 0.78 | 0.78 | 0.78 |
Durchschnittliche AUC: 0,688 Sonnige AUC: 0,790
Wetter | precision | recall | f1-score |
---|---|---|---|
Regen | 0.67 | 0.48 | 0.56 |
Fein | 0.79 | 0.89 | 0.84 |
durchschnittlich | 0.75 | 0.76 | 0.75 |
Durchschnittliche AUC: ** 0,741 ** Haru AUC: 0,784
Wetter | precision | recall | f1-score |
---|---|---|---|
Regen | 0.53 | 0.8 | 0.64 |
Fein | 0.88 | 0.68 | 0.77 |
durchschnittlich | 0.77 | 0.72 | 0.73 |
Durchschnittliche AUC: ** 0,750 ** Sonnige AUC: 0,790
Wetter | precision | recall | f1-score |
---|---|---|---|
Regen | 0.61 | 0.7 | 0.65 |
Fein | 0.85 | 0.8 | 0.83 |
durchschnittlich | 0.78 | 0.77 | 0.77 |
Anscheinend ist das Ergebnis besser, wenn die Filtergröße auf 0 und die Poolgröße etwas größer eingestellt ist. Durch Erhöhen der Poolgröße werden mehr charakteristische Merkmale extrahiert, sodass dies diesmal möglicherweise besser ist. Ich denke, es gibt je nach Problem eine gute Kombination aus Filtergröße und Poolgröße.
Das Endergebnis des fertigen Modells ist wie folgt.
Durchschnittliche AUC: ** 0,767 ** Haru AUC: ** 0,806 **
Wetter | precision | recall | f1-score |
---|---|---|---|
Regen | 0.59 | 0.77 | 0.67 |
Fein | 0.88 | 0.76 | 0.82 |
durchschnittlich | 0.79 | 0.76 | 0.77 |
Es ist als AUC erheblich gestiegen.
Ich setze Versuch und Irrtum fort, indem ich verschiedene Bedingungen ändere, aber ich konnte so etwas wie ein Muster nicht finden, also versuche ich verschiedene Kombinationen. Da die Auswertung jedoch zu viel mit den Testdaten erfolgt, sind die Testdaten nicht auch Teil der Trainingsdaten? Es ist sicher, dass die Theorie herausgekommen ist. Es ist möglicherweise besser, andere Testdaten zu verwenden, wenn das endgültige Modell fertiggestellt ist.
Recommended Posts