Diskussion zum Artikel "Tiefe Neuronale Netzwerke (Teil VII). Ensembles von Neuronalen Netzen: Stacking"

 

Neuer Artikel Tiefe Neuronale Netzwerke (Teil VII). Ensembles von Neuronalen Netzen: Stacking :

Wir erstellen weitere Ensembles. Diesmal wird das zuvor mittels Bagging geschaffene Ensemble durch einen trainierbaren Kombinator (Combiner) - ein tiefes neuronales Netzwerk - ergänzt. Ein neuronales Netz kombiniert die 7 besten Ensemble-Ergebnisse nach der Bereinigung (pruning). Der zweite nimmt alle 500 Ausgänge des Ensembles als Input, bereinigt sie und kombiniert sie neu. Die neuronalen Netze werden mit dem keras/TensorFlow-Paket für Python aufgebaut. Die Eigenschaften des Pakets werden kurz erläutert. Es werden Tests durchgeführt und die Klassifizierungsqualität der Ensembles mit Bagging und Stacking verglichen.

Zeichnen wir den Trainingsablauf:

history_stop_500

Abb. 11. Der Trainingsablauf des Neuronalen Netzes DNN500

Zur Verbesserung der Klassifikationsqualität können zahlreiche Hyperparameter modifiziert werden: Neuroneninitialisierungsmethode, Regularisierung der Aktivierung der Neuronen und ihrer Gewichte, etc. Die Ergebnisse, die mit fast intuitiv ausgewählten Parametern erzielt werden, haben eine vielversprechende Qualität, aber auch eine enttäuschende Seite. Ohne Optimierung war es nicht möglich, die Genauigkeit über 0,82 zu erhöhen. Fazit: Es ist notwendig, die Hyperparameter des neuronalen Netzes zu optimieren. In den vorangegangenen Artikeln haben wir mit der Bayes'schen Optimierung experimentiert. Das kann auch hier angewendet werden, aber es ist ein anderes schwieriges Thema.

Autor: Vladimir Perervenko