Diskussion zum Artikel "Tiefe neuronale Netzwerke (Teil V). Bayes'sche Optimierung von DNN-Hyperparametern" - Seite 3
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Bei der Bayes'schen Methode müssen Sie nicht nur mit der Anzahl der Durchgänge, sondern auch mit der Anzahl der Punkte spielen. Man muss nach einer schnelleren Option suchen. Dies ist sehr mühsam
Um es zu beschleunigen, fügen Sie den Parametern beim Aufruf von BayesianOptimisation hinzu
maxit = 1 #1 statt 100 - Anzahl der Wiederholungen für GP_fit für die Vorhersage der Hyperebene
Ich konnte keine Verbesserung mit 100 Wiederholungen im Vergleich zu 1 feststellen, also verwende ich jetzt 1.
D.h..
maxit=1 über ... wird an GPfit:: GP_fit übergeben und die Optimierung wird 1 Mal statt 100 Mal durchgeführt.
Sie können auch Folgendes übergeben:
control = c(20*d, 10*d, 2*d);#default - control = c(200*d, 80*d, 2*d) - aus 200*d die 80*d besten auswählen und 2*d Cluster bilden - wobei d die Anzahl der zu optimierenden Parameter ist.
Beschreibung dieser Parameter hier https://github.com/cran/GPfit/blob/master/R/GP_fit.R
PS. Wechseln Sie nicht zu TensorFlow? Es ist nur ein höheres Niveau.
Obwohl Darch schlecht unterstützt wird, haben sie einige Dinge korrigiert und verbessert, aber im Januar wurde es von CRAN ins Archiv geschickt, weil Fehler nicht behoben wurden (es gab einen mit Fehlerauswertung im Trainingsmodus mit Validierung). Im Mai wurde Version 13 veröffentlicht, dann aber wieder auf Version 12 zurückgesetzt. Jetzt ist die 13. Version wieder aufgetaucht - offenbar ist sie fertiggestellt worden.
Um die Dinge zu beschleunigen, fügen Sie den Parametern beim Aufruf von BayesianOptimisation
maxit = 1 #1 statt 100 - Anzahl der Wiederholungen für GP_fit für die Vorhersage der Hyperebene
maxit=1 über ... wird an GPfit:: GP_fit übergeben und die Optimierung wird 1 Mal statt 100 Mal durchgeführt.Ich habe keine Verbesserung bei 100 Wiederholungen im Vergleich zu 1 festgestellt, also verwende ich 1.
D.h..
Sie können auch Folgendes übergeben:
control = c(20*d, 10*d, 2*d);#default - control = c(200*d, 80*d, 2*d) - wähle 80*d am besten aus 200*d und bilde 2*d Cluster - wobei d die Anzahl der zu optimierenden Parameter ist
Ja, es scheint mit Darch 30% im Training und 36% im Test zu funktionieren. Ich werde den EA fertigstellen, ihn in Betrieb nehmen, und dann werde ich es vielleicht tun.
Obwohl Darch schlecht unterstützt wird, haben sie einige Dinge korrigiert und verbessert, aber im Januar wurde es von CRAN ins Archiv geschickt, weil Fehler nicht behoben wurden (es gab einen mit Fehlerschätzung im Trainingsmodus mit Validierung). Im Mai wurde Version 13 veröffentlicht, dann aber wieder auf Version 12 zurückgesetzt. Jetzt ist die 13. Version wieder aufgetaucht - offenbar haben sie sie fertiggestellt.
Vielen Dank für die Information. Ich werde es mit Ihren Parametern versuchen.
Ich habe sie schon lange nicht mehr auf Github besucht. Ich werde einen Vorschlag schreiben müssen. Das darch-Paket bietet GPU-Nutzung, aber sie haben das Paket, das sie dafür verwenden, aus CRAN entfernt (für 3.4.4). Und es wäre interessant, wie sich GPU auf Geschwindigkeit und Qualität auswirken würde.
Viel Glück
Eine weitere Bremse gibt es hier
https://github.com/yanyachen/rBayesianOptimization/blob/master/R/Utility_Max.R
Ich habe auch maxit = 1 anstelle von 100 eingestellt .
Da ... nicht übergeben werden kann, können Sie einfach Ihre Utility_Max-Funktion in R laden und die korrigierte Version verwenden.
Ein weiterer Spasti hier
https://github.com/yanyachen/rBayesianOptimization/blob/master/R/Utility_Max.R
Ich habe auch maxit = 1 statt 100 eingestellt .
Da ... nicht übergeben werden kann, können Sie einfach Ihre Utility_Max-Funktion in R laden und die korrigierte Version verwenden.
Ich habe es an der Optimierung des neuronalen Netzes Ensemble aus dem PartVI-Artikel überprüft. Weder maxit noch control haben einen sichtbaren Einfluss auf die Berechnungszeit. Den größten Einfluss hat die Anzahl der Neuronen in der versteckten Schicht. Ich habe es so gelassen
OPT_Res <- BayesianOptimization(fitnes, bounds = bonds, init_grid_dt = NULL, init_points = 20, n_iter = 20, acq = "ucb", kappa = 2.576, eps = 0.0, verbose = TRUE, maxit = 100, control = c(100, 50, 8)) elapsed = 14.42 Round = 1 numFeature = 9.0000 r = 7.0000 nh = 36.0000 fact = 9.0000 Value = 0.7530 elapsed = 42.94 Round = 2 numFeature = 4.0000 r = 8.0000 nh = 46.0000 fact = 6.0000 Value = 0.7450 elapsed = 9.50 Round = 3 numFeature = 11.0000 r = 5.0000 nh = 19.0000 fact = 5.0000 Value = 0.7580 elapsed = 14.17 Round = 4 numFeature = 10.0000 r = 4.0000 nh = 35.0000 fact = 4.0000 Value = 0.7480 elapsed = 12.36 Round = 5 numFeature = 8.0000 r = 4.0000 nh = 23.0000 fact = 6.0000 Value = 0.7450 elapsed = 25.61 Round = 6 numFeature = 12.0000 r = 8.0000 nh = 44.0000 fact = 7.0000 Value = 0.7490 elapsed = 8.03 Round = 7 numFeature = 12.0000 r = 9.0000 nh = 9.0000 fact = 2.0000 Value = 0.7470 elapsed = 14.24 Round = 8 numFeature = 8.0000 r = 4.0000 nh = 45.0000 fact = 2.0000 Value = 0.7620 elapsed = 9.05 Round = 9 numFeature = 7.0000 r = 8.0000 nh = 20.0000 fact = 10.0000 Value = 0.7390 elapsed = 17.53 Round = 10 numFeature = 12.0000 r = 9.0000 nh = 20.0000 fact = 6.0000 Value = 0.7410 elapsed = 4.77 Round = 11 numFeature = 9.0000 r = 2.0000 nh = 7.0000 fact = 2.0000 Value = 0.7570 elapsed = 8.87 Round = 12 numFeature = 6.0000 r = 1.0000 nh = 40.0000 fact = 8.0000 Value = 0.7730 elapsed = 14.16 Round = 13 numFeature = 8.0000 r = 6.0000 nh = 41.0000 fact = 10.0000 Value = 0.7390 elapsed = 21.61 Round = 14 numFeature = 9.0000 r = 6.0000 nh = 47.0000 fact = 7.0000 Value = 0.7620 elapsed = 5.14 Round = 15 numFeature = 13.0000 r = 3.0000 nh = 3.0000 fact = 5.0000 Value = 0.7260 elapsed = 5.66 Round = 16 numFeature = 6.0000 r = 9.0000 nh = 1.0000 fact = 9.0000 Value = 0.7090 elapsed = 7.26 Round = 17 numFeature = 9.0000 r = 2.0000 nh = 25.0000 fact = 1.0000 Value = 0.7550 elapsed = 32.09 Round = 18 numFeature = 11.0000 r = 7.0000 nh = 38.0000 fact = 6.0000 Value = 0.7600 elapsed = 17.18 Round = 19 numFeature = 5.0000 r = 3.0000 nh = 46.0000 fact = 6.0000 Value = 0.7500 elapsed = 11.08 Round = 20 numFeature = 6.0000 r = 4.0000 nh = 20.0000 fact = 6.0000 Value = 0.7590 elapsed = 4.47 Round = 21 numFeature = 6.0000 r = 2.0000 nh = 4.0000 fact = 2.0000 Value = 0.7390 elapsed = 5.27 Round = 22 numFeature = 6.0000 r = 2.0000 nh = 21.0000 fact = 10.0000 Value = 0.7520 elapsed = 7.96 Round = 23 numFeature = 7.0000 r = 1.0000 nh = 41.0000 fact = 7.0000 Value = 0.7730 elapsed = 12.31 Round = 24 numFeature = 7.0000 r = 3.0000 nh = 41.0000 fact = 3.0000 Value = 0.7730 elapsed = 7.64 Round = 25 numFeature = 8.0000 r = 4.0000 nh = 16.0000 fact = 7.0000 Value = 0.7420 elapsed = 6.24 Round = 26 numFeature = 13.0000 r = 5.0000 nh = 6.0000 fact = 1.0000 Value = 0.7600 elapsed = 8.41 Round = 27 numFeature = 11.0000 r = 8.0000 nh = 8.0000 fact = 7.0000 Value = 0.7420 elapsed = 8.48 Round = 28 numFeature = 6.0000 r = 7.0000 nh = 15.0000 fact = 2.0000 Value = 0.7580 elapsed = 10.11 Round = 29 numFeature = 12.0000 r = 6.0000 nh = 17.0000 fact = 4.0000 Value = 0.7310 elapsed = 6.03 Round = 30 numFeature = 8.0000 r = 3.0000 nh = 12.0000 fact = 1.0000 Value = 0.7540 elapsed = 8.58 Round = 31 numFeature = 13.0000 r = 5.0000 nh = 18.0000 fact = 2.0000 Value = 0.7300 elapsed = 6.78 Round = 32 numFeature = 13.0000 r = 2.0000 nh = 15.0000 fact = 8.0000 Value = 0.7320 elapsed = 9.54 Round = 33 numFeature = 10.0000 r = 3.0000 nh = 37.0000 fact = 9.0000 Value = 0.7420 elapsed = 8.19 Round = 34 numFeature = 6.0000 r = 1.0000 nh = 42.0000 fact = 3.0000 Value = 0.7630 elapsed = 12.34 Round = 35 numFeature = 7.0000 r = 2.0000 nh = 43.0000 fact = 8.0000 Value = 0.7570 elapsed = 20.47 Round = 36 numFeature = 7.0000 r = 8.0000 nh = 39.0000 fact = 2.0000 Value = 0.7670 elapsed = 11.51 Round = 37 numFeature = 5.0000 r = 9.0000 nh = 18.0000 fact = 3.0000 Value = 0.7540 elapsed = 32.71 Round = 38 numFeature = 7.0000 r = 7.0000 nh = 40.0000 fact = 6.0000 Value = 0.7540 elapsed = 28.33 Round = 39 numFeature = 7.0000 r = 9.0000 nh = 38.0000 fact = 5.0000 Value = 0.7550 elapsed = 22.87 Round = 40 numFeature = 12.0000 r = 6.0000 nh = 48.0000 fact = 3.0000 Value = 0.7580 Best Parameters Found: Round = 12 numFeature = 6.0000 r = 1.0000 nh = 40.0000 fact = 8.0000 Value = 0.7730 maxit = 100, control = c(100, 50, 8))Bester 10
Wert - durchschnittlicher F1. Keine schlechte Leistung.
Um die Berechnungen zu beschleunigen, müssen wir einige Funktionen des Pakets umschreiben. Als erstes ersetzen wir alle ncol(), nrow(), von denen es eine Menge gibt, durch dim()[1], dim()[2]. Diese werden zigmal schneller ausgeführt. Und wahrscheinlich, da es nur Matrix-Operationen sind, verwenden Sie GPU (gpuR-Paket). Ich werde es nicht selbst machen können, kann ich es dem Entwickler vorschlagen?
Viel Glück!
Ich habe es mit der Optimierung des neuronalen Netzes aus dem PartVI-Papier überprüft. Weder maxit noch control haben eine sichtbare Ausführungszeit. Den größten Einfluss hat die Anzahl der Neuronen in der versteckten Schicht. Ich habe es so gelassen
Am besten 10
Wert - durchschnittlicher F1. Keine schlechte Leistung.
Um die Berechnungen zu beschleunigen, müssen wir einige Funktionen des Pakets umschreiben. Als erstes müssen alle ncol(), nrow() Funktionen durch dim()[1], dim()[2] ersetzt werden. Sie werden zigmal schneller ausgeführt. Und wahrscheinlich, da es nur Matrix-Operationen gibt, verwenden Sie GPU (gpuR-Paket). Ich werde es nicht selbst tun können, kann ich es dem Entwickler vorschlagen?
Viel Glück!
Optimieren Sie einfach ein paar Parameter, ich habe 20 Stück optimiert, und wenn die bekannten Punkte zu 20-40 Stück werden, dann dauert die Berechnung von GPfit nur ein paar Minuten, unter solchen Bedingungen werden Sie eine Beschleunigung sehen.
Und die Anzahl der Neuronen beeinflusst nur die Berechnungszeit des NS selbst.
Optimieren Sie nur wenige Parameter, ich habe 20 Stück optimiert, und wenn aus bekannten Punkten 20-40 Stück werden, dann dauert die Berechnung von GPfit nur zehn Minuten, unter solchen Bedingungen werden Sie die Beschleunigung sehen.
Und die Anzahl der Neuronen beeinflusst nur die Berechnungszeit des NS selbst.
Ich denke, ja.
Neuer Artikel Tiefe Neuronale Netze (Teil V). Bayesianische Optimierung von DNN-Hyperparametern ist veröffentlicht worden:
Autor: Vladimir Perervenko