Das Trainieren neuronaler Netze (NNs) mit genetischen Algorithmen (GAs) ist nicht nur machbar, es gibt auch einige Nischenbereiche, in denen die Leistung gut genug ist, um häufig verwendet zu werden. Ein gutes Beispiel hierfür ist Neuroevolution of Augmenting Topologies oder NEAT , ein erfolgreicher Ansatz zur Generierung von Controllern in einfachen Umgebungen wie Spielen.
Im allgemeineren Fall lässt sich der Ansatz jedoch nicht gut auf große, tiefe Netzwerke mit vielen zu optimierenden Parametern skalieren.
Genetische Algorithmen und andere globale Suchvorgänge nach optimalen Parametern sind so robust wie gradientenbasierte Algorithmen nicht. Beispielsweise können Sie einen NN mit Schrittfunktionsaktivierungen oder anderen nicht differenzierbaren Aktivierungsfunktionen trainieren. Sie haben anderswo Schwächen. Eine relevante Sache im Fall von GAs, die für NNs verwendet werden, ist, dass Gewichtsparameter in einigen Kombinationen austauschbar sind, in anderen Kombinationen jedoch stark koabhängig sind. Das Zusammenführen von zwei gleich guten neuronalen Netzen mit unterschiedlichen Parametern - wie Sie es bei einer GA-Überkreuzung tun würden - führt normalerweise zu einem dritten Netz mit schlechter Leistung. Der Erfolg von NEAT besteht teilweise darin, einen Weg zu finden, um dieses Problem zu lösen, indem die Verbindungen des NN "vergrößert" und zwischen ähnlichen neuronalen Netzen abgeglichen werden.
Gradientenbasierte Ansätze sind viel effizienter. Im Allgemeinen und nicht nur im Bereich der NNs können Sie, wenn Sie den Gradienten einer Funktion in Bezug auf Parameter berechnen können, die optimalen Parameter schneller finden als die meisten anderen Optimierungstechniken. Ein genauer Gradient garantiert mindestens eine kleine Verbesserung gegenüber einer einzelnen Bewertung, und die meisten anderen Optimierer fallen in ein Generate-and-Retry-Paradigma, das diese Art von Garantie nicht bieten kann. Die Schwäche der Tendenz, lokale Optima zu finden, stellte sich als kein großes Hindernis für die Verlustfunktionen in NNs heraus und wurde mit einigem Erfolg mit Erweiterungen des grundlegenden Gradientenabfalls wie Impuls, RPROP, Adam usw. angegangen.
In der Praxis sind Gradientenmethoden in einem großen mehrschichtigen Netzwerk wahrscheinlich um Größenordnungen schneller als GA-Suchen wie NEAT zum Auffinden von Netzwerkparametern. Sie werden keine von GA geschulten CNNs finden, die ImageNet oder sogar MNIST lösen, bei denen der GA die Netzwerkgewichte ohne Unterstützung gefunden hat. GAs oder zumindest einige Varianten davon sind jedoch nicht zu 100% ausgeschlossen. In diesem Blog aus dem Jahr 2017 werden zum Beispiel aktuelle Veröffentlichungen wie die groß angelegte Evolution von Bildklassifikatoren besprochen, in denen mithilfe von GAs NN- Hyperparameter ermittelt werden. Dies ist eine wichtige Aufgabe beim maschinellen Lernen und lässt sich mit gradientenbasierten Methoden nicht sehr gut nachvollziehen.