Frage

Gibt es eine Faustregel gilt: (oder eine Reihe von Beispielen) zu bestimmen, wenn genetische Algorithmen zu verwenden, wie neuronale Netze im Gegensatz (und umgekehrt), ein Problem zu lösen?

Ich weiß, es gibt Fälle, in denen Sie beiden Methoden gemischt haben, aber ich bin auf der Suche nach einem High-Level-Vergleich zwischen den beiden Methoden.

War es hilfreich?

Lösung

Aus Wikipedia:

  

genetischen Algorithmus (GA) ist ein Suchverfahren bei der Berechnung verwendet, um finden genaue oder ungefähre Lösungen , um die Optimierung und Suchprobleme.

und

  

Neuronale Netze nichtlinearen Tools statistische Datenmodellierung sind. Sie können verwendet werden, um komplexe Beziehungen zwischen Ein- und Ausgängen zu modellieren oder zu finden Muster in Daten.

Wenn Sie ein Problem haben, wo Sie den Wert einer Lösung zu quantifizieren, ein genetischen Algorithmus können gezielte Suche der Lösungsraum durchzuführen. (Zum Beispiel die kürzeste Strecke zwischen zwei Punkten finden)

Wenn Sie eine Anzahl von Elementen in verschiedenen Klassen, ein neuronales Netzwerk „lernen“ kann auf Klassifizieren Gegenstände nicht vor „gesehen“ hat. (Zum Beispiel Gesichtserkennung, Spracherkennung)

Die Ausführungszeiten müssen ebenfalls berücksichtigt werden. Ein genetischer Algorithmus dauert eine lange Zeit, um eine akzeptable Lösung zu finden. Ein neuronales Netz dauert eine lange Zeit zu „lernen“, aber dann kann es fast sofort neuen Inputs klassifizieren.

Andere Tipps

Ein genetischer Algorithmus (trotz seiner sexy Name) ist für die meisten Zwecke, eine Optimierungstechnik . Es läuft darauf hinaus in erster Linie an Sie eine Reihe von Variablen mit und wollen die beste Kombination von Werten für diese Variablen zu finden. Es leiht sich nur Techniken aus natürlichen Evolution dorthin zu gelangen.

Neuronale Netze sind nützlich für die Erkennen von Mustern . Sie folgen einem simplen Modell des Gehirns, und durch eine Reihe von Gewichten zwischen ihnen zu ändern, versuchen Ausgänge auf Eingänge basierend vorherzusagen.

Sie sind zwei grundsätzlich verschiedene Entitäten, aber manchmal sind die Probleme, die sie lösen Überlappung der Lage sind.

GAs neue Muster in einer Struktur erzeugen, die Sie definieren.

NNs klassifizieren (oder erkennen) bestehende Muster basierend auf Trainingsdaten, die Sie bereitstellen.

GAs gute Leistung bei effizient einen großen Zustandsraum von Lösungen zu suchen, und konvergierenden auf einer oder mehr guten Lösungen, aber nicht unbedingt die ‚beste‘ Lösung.

NNs kann lernen, Muster zu erkennen (über Ausbildung), aber es ist notorisch schwierig, herauszufinden, was sie gelernt haben, also das Wissen von ihnen einmal trainiert zu extrahieren und wieder verwendet das Wissen in einem anderen (nicht-NN).

Sie vergleichen zwei völlig verschiedene Dinge hier.

Neuronale Netze sind für die Regression / Klassifizierung verwendet -. Gegeben sei eine Menge von (x, y) Beispiele, möchten Sie die unbekannte y für einige gegeben x regredieren

Genetische Algorithmen sind eine Optimierungstechnik. Bei einer Funktion f (x), können Sie die x bestimmen wollen, welche minimiert / maximiert f (x).

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

Neuronale Netze

Sind in der Lage Online-Muster zu analysieren (jene, die im Laufe der Zeit ändern). Im Allgemeinen ist dies ein zeitlich veränderliches Probe, die abgestimmt werden muss und vorhergesagt werden.

Beispiele :

  • Graph Extrapolation
  • Gesichtserkennung

Genetische Algorithmen

Wird verwendet, wenn Sie können Code-Attribute, die Sie, sich nicht ändernden Problem zu einem bestimmten denken beitragen können. Der Schwerpunkt liegt dabei auf der Möglichkeit, diese Attribute zu kodieren (manchmal wissen Sie, was sie sind) und dass das Problem zu einem großen Teil unveränderlich (sonst Entwicklungen nicht konvergieren).

Beispiele :

  • Scheduling Flugzeuge / Versand
  • Fahrpläne.
  • Das Finden der besten Eigenschaften für ein einfaches Mittel in einer künstlichen Umgebung
  • Rendern einer Annäherung eines Bildes mit zufälligen Polygonen

Sie können die genetischen Algorithmen als Alternative zu den Backpropagation Algorithmus in neuronalen Netzen zu aktualisieren Gewichte. Ein Beispiel hierfür vorgelegt: http://www.ai-junkie.com/ann/evolved/nnt1. html .

Genetische Algorithmen (in der Regel) auf diskrete Daten arbeiten (Aufzählungen, integer Bereiche, etc.). Eine typische Anwendung für Gas ist ein diskreten Raum für eine „gut genug“ Lösung suchen, wenn die einzige Alternative eine Brute-Force-Methode ist (Auswertung aller Kombinationen).

Neuronale Netze, auf der anderen Seite (in der Regel) auf kontinuierliche Daten arbeiten (Schwimmer, etc.). Eine typische Anwendung für NNs ist Funktionsapproximation, wo Sie eine Menge X von Eingängen und eine Menge Y verwandter Ausgänge haben, aber die analytische Funktion f:. X → Y

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

Es gibt keine Faustregel. In vielen Fällen können Sie formulieren Ihr Problem Verwendung entweder von ihnen zu machen. Maschinelles Lernen ist immer noch ein aktives Gebiet der Forschung und welches Modell lernen kann zu verwenden fraglich sein.

GAs nehmen sexy Sprachen von der Evolution, aber Sie warten auf Ihren Computer auf eine Lösung durch einen Zufallsprozess zu stolpern. Studieren Sie Ihre Daten, gute Annahmen machen, versuchen zu wissen, was Sie wollen, und einen Ansatz wählen, die gute Verwendung dieser machen kann. Wenn Ihre erste Wahl schlechte Ergebnisse gibt, wissen, warum es so war, und verbessern den Algorithmus selbst oder eine bessere Auswahl.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top