Ich habe ein paar Artikel gelesen, in denen die Vor- und Nachteile der einzelnen Methoden erörtert wurden. Einige argumentieren, dass GA keine Verbesserung bei der Suche nach der optimalen Lösung bringt, während andere zeigen, dass sie effektiver ist. Es scheint, dass GA in der Literatur im Allgemeinen bevorzugt wird (obwohl die meisten Leute es in irgendeiner Weise modifizieren, um die gewünschten Ergebnisse zu erzielen). Warum scheinen die meisten Softwarelösungen dann nur Backpropagation zu verwenden?
Gibt es eine allgemeine Faustregel, wenn Sie die eine oder andere verwenden? Vielleicht hängt es von der Art des NN ab, oder es gibt eine Lösung auf dem neuesten Stand der Technik, die im Allgemeinen besser ist als andere?
Wenn möglich, suche ich nach allgemeinen Antworten: zB "Wenn der NN groß ist, ist GA besser" oder "GA ist immer besser, hat aber Rechenleistungsprobleme" usw.
Eines der Hauptprobleme bei neuronalen Netzwerken ist die Überanpassung. Dies bedeutet, dass Algorithmen, die sich sehr bemühen, ein Netzwerk zu finden, das bestimmte Kriterien basierend auf einer begrenzten Datenmenge minimiert, zu einem Netzwerk führen, das für diese bestimmte Stichprobe sehr gut funktioniert von Daten, die aber eine schlechte Verallgemeinerung haben. Aus diesem Grund bin ich eher vorsichtig, GAs zum Entwerfen neuronaler Netze zu verwenden, insbesondere wenn sie gleichzeitig mit der Optimierung der Gewichte eine Architekturoptimierung durchführen. Ich habe allgemein festgestellt, dass Trainingsnetzwerke (mit Regularisierung) aus einer Anzahl (z. B. 20) zufälliger anfänglicher Gewichtungsvektoren und anschließender Bildung eines Ensembles aller resultierenden Netzwerke im Allgemeinen ein ebenso guter Ansatz sind wie jeder andere.
Im Wesentlichen ist Optimierung die Wurzel allen Übels im maschinellen Lernen. Je mehr davon Sie tun, desto wahrscheinlicher ist es, dass Sie die Daten überschneiden.
quelle
Wenn Sie mit großen Datenmengen arbeiten und eine überwachte Lernaufgabe mit einem vorwärtsgerichteten neuronalen Netzwerk lösen möchten, sind Lösungen auf der Basis von Backpropagation viel praktikabler. Der Grund dafür ist, dass für ein komplexes neuronales Netzwerk die Anzahl der freien Parameter sehr hoch ist. Ein Industrieprojekt, an dem ich gerade arbeite, umfasst ein neuronales Feed-Forward-Netzwerk mit etwa 1000 Eingängen, zwei verborgenen Schichten mit jeweils 384 Neuronen und 60 Ausgängen. Dies führt zu 1000 * 384 + 384 * 384 + 384 * 60 = 554496 Gewichtsparametern, die optimiert werden sollen. Die Verwendung eines GA-Ansatzes wäre hier furchtbar langsam.
quelle
Die zweite Antwort ist falsch. Überanpassung wird nicht durch Optimierung verursacht. Überanpassung tritt auf, wenn Ihr Modell überkompliziert ist und alle Datenpunkte anpassen kann, ohne die eigentliche Regel zu kennen, nach der sie erstellt wurden (dh im Extremfall werden sie nur gespeichert). Dropconnect, Gewichtsabnahme und einfach mehr Daten verwenden. Das Ziel sollte darin bestehen, Ihr Netzwerk unter Berücksichtigung dieser Einschränkungen zu optimieren und so genau wie möglich zu gestalten.
Um die Frage zu beantworten, ist Backprop angeblich viel schneller als stochastische Optimierung (genetische Algorithmen und dergleichen.) Meine Vermutung ist , das ist , weil es von Vorteil, nimmt , was die tatsächliche Leistung wurde angenommen werden, passt sich die Gewichte in die richtige Richtung auf der Grundlage dieser Bei der stochastischen Optimierung werden völlig zufällige Änderungen versucht und diese Informationen ignoriert.
Wenn Sie jedoch ein größeres Gebiet erkunden, werden GAs wahrscheinlich auf lange Sicht besser abschneiden, indem Sie lokale Optimas vermeiden. Es wird nur länger dauern, bis Sie trainieren.
Ich bin gespannt, wie viel langsamer GAs sind als Backprop, und wenn jemand hybride Algorithmen kennt (Scatter Search scheint dafür ideal zu sein).
quelle
Der Unterschied zwischen GA und Backpropagation besteht darin, dass GA auf Zufallszahlen und Backpropagation auf einem statischen Algorithmus wie dem stochastischen Gradientenabstieg basiert. GA basiert auf Zufallszahlen und fügt dieser Mutation hinzu, was bedeutet, dass es wahrscheinlich vermeiden würde, in einer lokalen Minima gefangen zu werden. Wenn GA jedoch auf Zufallszahlen basiert, bedeutet dies, dass es ziemlich wahrscheinlich ist, dass das Lernen zu zwei verschiedenen Zeitpunkten im selben Netzwerk ausgeführt wird. Dies kann zu einer anderen Schlussfolgerung führen, dh zu einem anderen Satz von Gewichten
quelle