138 Stimmen

Wann sollte ich genetische Algorithmen im Gegensatz zu neuronalen Netzen 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 eingesetzt werden sollten?

Ich weiß, dass es Fälle gibt, in denen beide Methoden gemischt werden können, aber ich bin auf der Suche nach einem Vergleich der beiden Methoden auf hohem Niveau.

3 Stimmen

Es ist erwähnenswert, dass es zwei Arten von neuronalen Netzen gibt: überwachte und unbeaufsichtigte. Die überwachten erhalten Trainingsdaten von einem Menschen, die nicht überwachten erhalten Feedback von sich selbst und sind in dieser Hinsicht eher wie GAs.

3 Stimmen

Ich denke nicht, dass es eine "Liste" ist. Die Antworten vergleichen zwei Methoden und verdeutlichen, wann die eine und wann die andere anzuwenden ist.

0 Stimmen

Kurze Antwort: Verwenden Sie GA, wenn die zu modellierende Funktion nicht kontinuierlich/diskret ist, oder wenn der Datensatz astronomisch hochdimensional ist. Verwenden Sie für den Rest neuronale Netze oder GA (oder ein anderes Modell), je nachdem, was Ihnen die besten Ergebnisse liefert. Weitere Informationen finden Sie in meiner Antwort hier: stackoverflow.com/a/49684833/1121352

134voto

Dawie Strauss Punkte 3646

Aus wikipedia:

A genetischer Algorithmus (GA) ist eine Suchtechnik, die in der Informatik verwendet wird, um finden. genau oder annähernd Lösungen für Optimierungs- und Suchprobleme.

und:

Neuronale Netze sind Werkzeuge zur nichtlinearen statistischen Datenmodellierung. Sie können verwendet werden, um komplexe Beziehungen zwischen Inputs und Outputs zu modellieren oder um Muster finden in Daten.

Wenn Sie ein Problem haben, bei dem Sie den Wert einer Lösung quantifizieren können, ist eine genetischer Algorithmus kann eine gezielte Suche des Lösungsraums. (z.B. den kürzesten Weg zwischen zwei Punkten finden)

Wenn Sie eine Reihe von Artikeln in verschiedenen Klassen haben, kann eine neuronales Netz können "lernen" zu einordnen. Gegenstände, die es noch nicht "gesehen" hat. (z. B. Gesichtserkennung, Spracherkennung)

Auch die Ausführungszeiten müssen berücksichtigt werden. Ein genetischer Algorithmus braucht viel Zeit, um eine akzeptable Lösung zu finden. Ein neuronales Netz braucht lange, um zu "lernen", aber dann kann es neue Eingaben fast sofort klassifizieren.

46voto

zenna Punkte 8840

Ein genetischer Algorithmus (trotz seines sexy Namens) ist für die meisten Zwecke ein Optimierungsverfahren . In erster Linie läuft es darauf hinaus, dass Sie eine Reihe von Variablen haben und die beste Kombination von Werten für diese Variablen finden wollen. Um das zu erreichen, werden einfach Techniken aus der natürlichen Evolution übernommen.

Neuronale Netze sind nützlich für Erkennen von Mustern . Sie folgen einem vereinfachten Modell des Gehirns und versuchen, durch die Veränderung einer Reihe von Gewichten zwischen ihnen, die Ergebnisse auf der Grundlage der Eingaben vorherzusagen.

Es handelt sich um zwei grundsätzlich verschiedene Einheiten, aber manchmal überschneiden sich die Probleme, die sie lösen können.

40voto

Steven A. Lowe Punkte 59247

GAs erzeugen neue Muster in einer von Ihnen definierten Struktur.

NNs klassifizieren (oder erkennen) vorhandene Muster auf der Grundlage von Trainingsdaten, die Sie bereitstellen.

GAs sind gut darin, einen großen Zustandsraum von Lösungen effizient zu durchsuchen und auf eine oder mehrere gute Lösungen zu konvergieren, 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.

28voto

bayer Punkte 6687

Sie vergleichen hier zwei völlig unterschiedliche Dinge.

Neuronale Netze werden zur Regression/Klassifizierung verwendet - bei einer Reihe von Beispielen (x, y) soll das unbekannte y für ein bestimmtes x regressiert werden.

Genetische Algorithmen sind eine Optimierungstechnik. Bei einer Funktion f(x) möchte man das x bestimmen, das f(x) minimiert/maximiert.

23voto

Unknown Punkte 44574

Es gibt viele Ähnlichkeiten zwischen ihnen, so dass ich nur versuchen werde, ihre Unterschiede .

Neuronale Netze

sind in der Lage, Online-Muster (die sich im Laufe der Zeit ändern) zu analysieren. Im Allgemeinen handelt es sich um eine zeitlich veränderliche Stichprobe, die abgeglichen und vorhergesagt werden muss.

Beispiele :

  • Extrapolation von Grafiken
  • Gesichtserkennung

Genetische Algorithmen

Wird verwendet, wenn Sie Attribute kodieren können, von denen Sie glauben, dass sie zu einem bestimmten, sich nicht ändernden Problem beitragen können. Die Betonung liegt darauf, dass man in der Lage ist, diese Attribute zu kodieren (manchmal weiß man, was sie sind) und dass das Problem weitgehend unveränderlich ist (sonst konvergieren die Entwicklungen nicht).

Beispiele :

  • Planung von Flugzeugen/Schiffen
  • Zeitpläne.
  • Suche nach den besten Eigenschaften für einen einfachen Agenten in einer künstlichen Umgebung
  • Rendering einer Annäherung an ein Bild mit zufälligen Polygonen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X