wake-up-neo.net

Wann sollte ich im Gegensatz zu neuronalen Netzen genetische Algorithmen verwenden?

Gibt es eine Faustregel (oder eine Reihe von Beispielen), um zu bestimmen, wann genetische Algorithmen im Gegensatz zu neuronalen Netzen (und umgekehrt) zur Lösung eines Problems verwendet werden sollen?

Ich weiß, dass es Fälle gibt, in denen beide Methoden gemischt werden können, aber ich suche einen Vergleich auf hoher Ebene zwischen den beiden Methoden.

132
Neil N

Aus Wikipedia:

Ein genetischer Algorithmus (GA) ist eine Suchtechnik, die beim Rechnen verwendet wird, um find exakte oder ungefähre solutions Optimierungs- und Suchprobleme zu lösen.

und:

Neuronale Netze sind nichtlineare statistische Datenmodellierungswerkzeuge. Sie können verwendet werden, um komplexe Beziehungen zwischen Eingaben und Ausgaben zu modellieren oder um Muster zu finden in Daten.

Wenn Sie ein Problem haben, bei dem Sie den Wert einer Lösung quantifizieren können, kann ein genetischer Algorithmus eine gerichtete Suche durchführen des Lösungsraums. (Finden Sie zum Beispiel den kürzesten Weg zwischen zwei Punkten)

Wenn Sie eine Anzahl von Gegenständen in verschiedenen Klassen haben, kann ein neuronales Netzwerk lernen, zu klassifizieren Gegenstände zu "sehen", die es zuvor noch nicht gesehen hat. (Z. B. Gesichtserkennung, Spracherkennung)

Ausführungszeiten müssen ebenfalls berücksichtigt werden. Ein genetischer Algorithmus benötigt viel Zeit, um eine akzeptable Lösung zu finden. Das "Lernen" eines neuronalen Netzwerks dauert lange, kann dann aber neue Eingaben fast augenblicklich klassifizieren.

122
Dawie Strauss

Ein genetischer Algorithmus (trotz seines sexy Namens) ist für die meisten Zwecke eine Optimierungstechnik. Es läuft in erster Linie darauf hinaus, dass Sie eine Reihe von Variablen haben und die beste Wertekombination für diese Variablen finden möchten. Es leiht sich nur Techniken aus der natürlichen Evolution aus, um dorthin zu gelangen.

Neuronale Netze sind nützlich zum Erkennen von Mustern. Sie folgen einem simplen Modell des Gehirns und versuchen durch Ändern einer Reihe von Gewichten, Ergebnisse auf der Grundlage von Eingaben vorherzusagen.

Sie sind zwei grundlegend verschiedene Einheiten, aber manchmal überschneiden sich die Probleme, die sie lösen können.

41
zenna

GAs erzeugen neue Muster in einer von Ihnen definierten Struktur.

NNs klassifizieren (oder erkennen) vorhandene Muster basierend auf den von Ihnen bereitgestellten Trainingsdaten.

GAs sind gut darin, einen großen Lösungsraum effizient zu durchsuchen und sich auf eine oder mehrere gute Lösungen zu konzentrieren, aber nicht unbedingt auf die 'beste' Lösung.

NNs können lernen, Muster zu erkennen (durch Training), aber es ist bekanntermaßen schwierig, herauszufinden, was sie gelernt haben, d. H. Das Wissen aus ihnen zu extrahieren, wenn sie einmal trainiert sind, und das Wissen in einem anderen (Nicht-NN) wiederzuverwenden.

37
Steven A. Lowe

Sie vergleichen hier zwei völlig verschiedene Dinge.

Neuronale Netze werden für die Regression/Klassifikation verwendet. Bei einer Reihe von (x, y) Beispielen möchten Sie das unbekannte y für einige gegebene x regressieren.

Genetische Algorithmen sind eine Optimierungstechnik. Mit einer gegebenen Funktion f (x) möchten Sie das x bestimmen, das f (x) minimiert/maximiert.

25
bayer

Es gibt viele Ähnlichkeiten zwischen ihnen, deshalb werde ich nur versuchen, ihre Unterschiede zu skizzieren.

Neuronale Netze

Sind in der Lage, Online-Muster zu analysieren (solche, die sich im Laufe der Zeit ändern). Im Allgemeinen ist dies eine zeitvariable Stichprobe, die abgeglichen und vorhergesagt werden muss.

Beispiele:

  • Graphextrapolation
  • Gesichtserkennung

Genetische Algorythmen

Wird verwendet, wenn Sie Attribute codieren können, die Ihrer Meinung nach zu einem bestimmten, sich nicht ändernden Problem beitragen können. Das Hauptaugenmerk liegt auf der Codierung dieser Attribute (manchmal wissen Sie, was sie sind) und darauf, dass das Problem weitgehend unverändert ist (ansonsten laufen die Entwicklungen nicht zusammen).

Beispiele:

  • Planung von Flugzeugen/Versand
  • Fahrpläne.
  • Finden der besten Eigenschaften für ein einfaches Mittel in einer künstlichen Umgebung
  • Eine Annäherung eines Bildes mit zufälligen Polygonen rendern
22
Unknown

Sie können genetische Algorithmen als Alternative zum Backpropagation-Algorithmus verwenden, um Gewichte in neuronalen Netzen zu aktualisieren. Ein Beispiel hierfür finden Sie unter: http://www.ai-junkie.com/ann/evolved/nnt1.html .

14
Amro

Genetische Algorithmen arbeiten (normalerweise) mit diskreten Daten (Aufzählungen, Ganzzahlbereiche usw.). Eine typische Anwendung für GAs ist das Durchsuchen eines diskreten Bereichs nach einer "ausreichend guten" Lösung, wenn die einzige verfügbare Alternative eine Brute-Force-Suche (Auswertung aller Kombinationen) ist.

Neuronale Netze hingegen arbeiten (normalerweise) mit kontinuierlichen Daten (Floats usw.). Eine typische Anwendung für NNs ist die Funktionsapproximation, bei der Sie eine Menge X von Eingaben und eine Menge Y von verwandten Ausgaben haben, aber die analytische Funktion f: X → Y.

Natürlich gibt es Tausende von Varianten von beiden, so dass die Linie zwischen ihnen etwas unscharf ist.

7
LumpN

Es gibt keine Faustregel. In vielen Fällen können Sie Ihr Problem formulieren, um eine von beiden zu verwenden. Maschinelles Lernen ist nach wie vor ein aktives Forschungsgebiet und das zu verwendende Lernmodell kann umstritten sein.

GAs nehmen sexy Sprachen aus der Evolution, aber Sie warten darauf, dass Ihr Computer durch einen zufälligen Prozess auf eine Lösung stößt. Studieren Sie Ihre Daten, treffen Sie gute Annahmen, versuchen Sie zu wissen, was Sie wollen, und wählen Sie einen Ansatz, der diese sinnvoll nutzt. Wenn Ihre erste Wahl schlechte Ergebnisse liefert, wissen Sie, warum dies so ist, und verbessern Sie den Algorithmus selbst oder wählen Sie einen besseren aus.

5
tilish