Frage

Ich versuche, ein Gefühl für den Unterschied zwischen den verschiedenen Klassen von Maschinenlernalgorithmen zu erhalten.

Ich verstehe, dass die Implementierungen von evolutionären Algorithmen aus den Implementierungen von neuronalen Netzen recht unterschiedlich sind.

Allerdings scheinen sie beide bei der Bestimmung einer Korrelation zwischen Ein- und Ausgängen von einem verrauschte Satz von Trainings / historischen Daten orientieren.

Aus qualitativer Sicht gibt es Problembereiche, die eine bessere Ziele für neuronale Netze sind als evolutionärer Algorithmen Gegensatz?

Ich habe abgeschöpft einige Artikel, die sie in komplementärer Weise schlagen vor, mit. Gibt es ein anständiges Beispiel für einen Anwendungsfall für das?

War es hilfreich?

Lösung

Hier ist der Deal: in Maschinen-Lernproblemen, haben Sie in der Regel aus zwei Komponenten:

a) Das Modell (Funktionsklasse, usw.)

b) Methoden der Montage des Modells (optimizaiton Algorithmen)

Neuronale Netze sind ein Modell: Da ein Layout und eine Einstellung von Gewichten, erzeugt das neuronale Netz eine Ausgabe. Es gibt einige kanonische Methoden der Anprobe neuronale Netze, wie Backpropagation, kontrastiv Divergenz usw. jedoch der große Punkt von neuronalen Netzen ist, dass, wenn jemand hat Ihnen die ‚richtigen‘ Gewichte, Sie auf das Problem gut tun würde.

Evolutionäre Algorithmen adressieren den zweiten Teil - Anpassung des Modells. Auch hier gibt es einige kanonischen Modelle, die mit evolutionären Algorithmen gehen: zum Beispiel, in der Regel evolutionäre Programmierung versucht, alle Programme eines bestimmten Typs zu optimieren über. Allerdings EAs ist im Wesentlichen eine Art und Weise, die richtigen Parameterwerte für ein bestimmtes Modell zu finden. Normalerweise Sie Ihre Modellparameter so schreiben, dass die Crossover-Operation eine vernünftige Sache ist, die EA Kurbel zu tun und dreht eine vernünftige Einstellung von Parametern aussteigen.

Nun könnte man zum Beispiel evolutionäre Algorithmen verwenden, um ein neuronales Netz zu trainieren, und ich bin sicher, dass es geschehen war. Allerdings ist die kritische Bit, dass EA zu arbeiten ist erforderlich, dass die Crossover-Operation eine vernünftige Sache zu tun sein muß - von einem Teil der Parameter von einer vernünftigen Einstellung und dem Rest aus einer anderen angemessenen Einstellung nimmt, werden Sie oft mit einem Ende noch besser Parametereinstellung. Die meiste Zeit EA verwendet wird, ist dies nicht der Fall, und es endet so etwas wie simulierte Glühen zu sein, nur mehr verwirrend und ineffizient.

Andere Tipps

Probleme, die „Intuition“ sind besser geeignet, um ANNs, zum Beispiel Handschrifterkennung erfordern. Sie trainieren ein neuronales Netz mit einer riesigen Menge an Input und bewerten Sie es, bis Sie fertig sind (das dauert eine lange Zeit), aber danach haben Sie eine Blackbox Algorithmus / System, das kann „ erraten “ die Hand Schreiben, so dass Sie Ihr kleines Gehirn halten und es als Modul für viele Jahre oder etwas zu verwenden. Da die Ausbildung kann eine Qualität ANN für ein komplexes Problem Monate dauern, ich bin schlimmsten Fall und Glück.

Die meisten anderen evolutionären Algorithmen " berechnet " eine Ad-hoc-Lösung an Ort und Stelle, in einer Art von Hill-Climbing-Mustern.

Wie auch in eine andere Antwort darauf hingewiesen, während der Laufzeit ein ANN kann " erraten " schneller als die meisten anderen evolutionären Algorithmen können " berechnen ". Allerdings muss man vorsichtig sein, da die ANN nur „ erraten “ ein, es könnte falsch sein.

Sehen Sie in Neuro-Evolution. (NE)

Die derzeit besten Methoden ist NEAT und HyperNEAT von Kenneth Stanley

Genetische Algorithmen nur ein Genom von einer Art finden; Es ist toll, das Genom eines neuronalen Netzes zu schaffen, weil Sie die reaktive Natur des neuronalen Netzes erhalten, anstatt nur ein Bündel von statischen Genen.

Es gibt nicht viele Grenzen, was sie lernen können. Aber es braucht Zeit, natürlich. Neuronale Topologie haben durch die übliche Mutation und Crossover werden weiterentwickelt, sowie Gewichte aktualisiert. Es kann keine Backpropagation sein.

Sie können auch mit einer Fitnessfunktion trainieren, die so überlegen ist Fortpflanzung zu sichern, wenn Sie nicht wissen, was die Ausgabe sollte. Perfekt für komplexes Verhalten für Systeme zu lernen, die Sie kennen keine optimalen Strategien für. Das einzige Problem ist, dass es das Verhalten lernen werden Sie nicht antizipieren. Oft kann dieses Verhalten sehr fremd sein, obwohl es genau das tut, was Sie es für in der Fitness-Funktion belohnt. So werden Sie so viel Zeit Ableitung Fitness-Funktionen verwenden, wie Sie Ausgabesätze für Backpropagation Erstellung hätte: P

Evolutionary, oder allgemeiner genetische Algorithmen und neuronale Netze können sowohl für Ähnliche Zwecke verwendet werden, und andere Antworten beschreiben auch den Unterschied.

Jedoch gibt es einen Fall, in dem bestimmte evolutionäre Algorithmen mehr angezeigt werden, als neuronale Netze. , wenn der Lösungsraum ist nicht kontinuierliche / diskrete

Tatsächlich verwenden neuronale Netze Gradientenabfallsaktualisierung von Backpropagation (oder einem ähnlichen Algorithmus) zu lernen. Die Berechnung eines Gradienten stützt sich auf Derivate, die einen kontinuierlichen Raum benötigt, mit anderen Worten, die Sie nach und nach und nach und nach von einer Lösung in dem nächsten verschieben können.

Wenn Ihr Lösungsraum ist diskret (dh Sie können entweder Lösung A oder B oder C, aber nichts in der Mitte wie 0,5% A + 0,5% B wählen), dann versuchen Sie ein nicht-kontinuierliche passen Funktion und dann neuronale Netze können nicht funktionieren.

In diesem Fall evolutionäre Algorithmen sind perfekt, könnte man sogar einen Gott zu senden sagen, da es von einer Lösung zum nächsten, ohne jede Frage „springen“ können.

Ebenfalls erwähnenswert ist, dass evolutionäre Algorithmen zum Fluch der Dimensionalität unterliegt nicht so viel wie jede andere Maschine Lernalgorithmus, einschließlich neuronaler Netze.

Das macht evolutionäre Algorithmen ein sehr vielseitiges und generisches Werkzeug naiv, jedes Problem zu nähern, und eines der wenige Werkzeuge entweder mit nicht-stetigen Funktionen oder mit astronomisch hohen dimensionalen Datensatz zu befassen.

Im Hinblick auf die Problembereiche, vergleiche ich künstliche neuronale Netze durch Backpropagation zu einem evolutionären Algorithmus trainiert.

Ein evolutionärer Algorithmus setzt eine randomisierte beamsearch, das bedeutet, dass Ihre evolutionären Operatoren Kandidaten werden getestet und verglichen mit ihrer Fitness zu entwickeln. Diese Operatoren sind in der Regel nicht deterministisch und Sie können sie entwerfen, so dass sie beide Kandidaten in unmittelbarer Nähe und Kandidaten finden können, die weiter entfernt sind im Parameterraum, um das Problem der Überwindung in lokalen optima stecken.

Doch der Erfolg eines EA Ansatz hängt stark von dem Modell, das Sie entwickeln, die ein Kompromiss Potential zwischen hohen Expression ist (man könnte Überanpassung) und Allgemeinheit (das Modell mit der Zielfunktion zum Ausdruck bringen könnte nicht in der Lage sein).

Da neuronale Netze in der Regel mehrschichtig ist, der Parameterraum nicht konvex und enthält lokalen optima, die Gradientenabfallalgorithmen könnten in stecken. Die Gradientenabfallsaktualisierung ein deterministischer Algorithmus ist, die durch Nähe sucht. Deshalb in der Regel neuronale Netze werden zufällig initialisiert und warum sollten Sie viel mehr als ein Modell trainieren.

Darüber hinaus wissen Sie, jeder versteckten Knoten in einem neuronalen Netz eine Hyperebene definiert man ein neuronales Netz entwerfen kann, so dass es Ihr Problem gut paßt. Es gibt einige Techniken, neuronale Netze, um zu verhindern Überanpassung.

Alles in allem könnten neuronale Netze schnell geschult werden und vernünftige Ergebnisse mit wenigen efford erhalten (nur versuchen, einige Parameter). In der Theorie, die ein neuronales Netzwerk groß genug ist, ist in der Lage jede Zielfunktion anzunähern, die auf der anderen Seite ist es anfällig für eine Überanpassung macht. Evolutionäre Algorithmen benötigen Sie eine Menge von Design-Entscheidungen treffen gute Ergebnisse zu erzielen, die härteste wahrscheinlich, welches Modell zu optimieren ist. Aber EA sind in der Lage, durch sehr komplexe Problemräume suchen (in einer Art und Weise Sie definieren) und gute Ergebnisse schnell. AEs kann auch erfolgreich bleiben, wenn das Problem (die Zielfunktion) wird im Laufe der Zeit ändern.

Tom Mitchell Machine Learning Buch: http://www.cs.cmu.edu/~tom/mlbook.html

Evolutionäre Algorithmen (EAs) sind langsam, weil sie auf nicht überwachtes Lernen verlassen: EAs wird gesagt, dass einige Lösungen sind besser als andere, aber nicht wie , sie zu verbessern. Neuronale Netze sind in der Regel schneller, eine Instanz überwachtes Lernen zu sein: sie wissen, wie eine Lösung besser innerhalb eines Funktionsraum über bestimmte Parameter unter Verwendung Gradientenabfallsaktualisierung zu machen; Dies ermöglicht es ihnen, eine gültige Lösung schneller zu erreichen. Neuronale Netze werden häufig verwendet, wenn es nicht genügend Wissen über das Problem für andere Methoden zu arbeiten.

Evolutionäre Algorithmen (EA) stellt eine Art und Weise ein Modell der Ausbildung, wo, wie neuronale Netze (NN) ein Modell SIND. Am häufigsten in der gesamten Literatur, werden Sie feststellen, dass NNs trainiert werden, um den Backpropagation-Algorithmus. Diese Methode ist sehr attraktiv für Mathematiker, aber es erfordert, dass Sie die Fehlerrate des Modells eine mathematische Formel ausdrücken können. Dies ist der Fall für Situationen, in denen Sie viele Ein- und Ausgangswerte für die Funktion kennen, die Sie zu nähern versuchen. Dieses Problem kann mathematisch modelliert werden, da die Minimierung einer Verlustfunktion, die dank Kalkül erreicht werden kann (und das ist, warum Mathematiker es liebt).

Aber neuronale Netze sind auch nützlich für Systeme modellieren, die versuchen, einige Ergebnisse zu maximieren oder zu minimieren, die Formel von denen ist sehr schwierig, mathematisch zu modellieren. Zum Beispiel könnte ein neuronales Netz, um die Muskeln von einem Cyborg steuern laufen zu erreichen. An jedem anderen Zeitrahmen, würde das Modell zu etablieren, wie viel Spannung sollte in jedem Muskel des Körpers cyborg vorhanden sein, basierend auf der Eingabe von verschiedenen Sensoren. Es ist unmöglich, eine solche Trainingsdaten zur Verfügung zu stellen. EAs ermöglichen Training nur eine Art der Bewertung des Modells bereitstellt. Für unser Beispiel würden bestrafen wir fallen und die zurückgelegte Strecke über eine Oberfläche belohnen (in einem festen Zeitrahmen). EA würde die Modelle nur auswählen, die in diesem Sinne ihr Bestes tun. Erste Generationen saugen, aber überraschenderweise nach einem paar hundert Generationen, solche Individuen sehr „natürliche“ Bewegungen zu erreichen und verwalten, ohne zu fallen weg zu laufen. Solche Modelle auch mit Hindernissen und äußeren physikalischen Kräften umzugehen.

Lage sein können,
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top