Neuronales Netz
mit Lernschwierigkeiten von hinten Fehler Vermehrung
Colin Fahey

Ein biologisches neuronales Netz
1. Software
2. Einleitung
Dieses Dokument beschreibt, wie die Einführung einer künstlichen neuronalen Netzwerk, das in der Lage ist, eine Ausbildung zu erkennen sind.
Dieses Dokument beschreibt ein Modell für ein neuronales Netzwerk, lernt durch einen Algorithmus, verwendet „rückwärts Fehler Vermehrung.“
Dieses Dokument enthält grundlegende Demonstrationen des Lernens von „hinten Fehler Vermehrung.“ Dieses Dokument hat einen Link zu Computer-Code. Der Computer-Code beinhaltet die Demonstrationen. Der Computer-Code kann verwendet werden, um komplexe neuronale Netzwerke. Allerdings ist die Computer-Code ist nur für Demonstrations-Zwecken. Eine alternative Implementierung reduzieren könnte Speicherverbrauch und könnte die Geschwindigkeit erhöhen.
3. Alternative zum Lernen von hinten Fehler Vermehrung
Dieses Dokument beschreibt ein Modell für ein neuronales Netz, das lernt durch einen Algorithmus namens „rückwärts Fehler Vermehrung.“ Dieser Algorithmus kann eine sehr lange Zeit zu verschiedenen Lektionen lernen. Auch dieser Algorithmus kann nicht zufällig zu verschiedenen Lektionen lernen aufgrund der zufälligen ursprünglichen Status des neuronalen Netzes vor dem Training.
Lernen durch „aktive Beteiligung der Eingänge“ ist eine wichtige Alternative zum Lernen von „hinten Fehler Vermehrung.“ Lernen durch aktive Beteiligung der Mitarbeiter einfach Eingänge Eingänge, die gleichzeitig aktiv sein. Dieses Lernen kann schnell und zuverlässig. Doch für viele praktische Zwecke gibt es keinen ersichtlichen Weise zu benutzen ein neuronales Netzwerk, lernt durch eine Vereinigung, in der Erwägung, dass eine offensichtliche Weise zu verwenden, dass ein Netzwerk lernt von hinten Fehler Vermehrung.
Einige biologische neuronale Netze sind bekannt zu lernen, durch eine Vereinigung von aktiven Eingängen. Rückrechnungen Vermehrung Fehler wurde nicht beobachtet, in irgendeiner biologischen neuronalen Netzwerk.
Dieses Dokument beschreibt, interessante Nutzungsmöglichkeiten für ein neuronales Netzwerk, lernt von hinten Fehler Vermehrung. Allerdings, learning by Verein ist eine sehr wichtige Alternative Algorithmus für das Lernen. Entwerfen Sie ein neuronales Netz lernt, dass durch eine Vereinigung zur Lösung eines bestimmten Problems könnte etwas schwieriger sein, dass eine Alternative desgining neuronalen Netzwerk, lernt von hinten Fehler Vermehrung, sondern biologischen Systemen lernen von Verein und die Lernfähigkeit biologischer Systeme ist offensichtlich.
4. Biologische Neuronen
4.1 Neuron Zelle

Eine biologische Neuron „(multipolaren“ Typ, ~4 um Zellkörper)
Ein Neuron ist Art von Zelle, hat die Fähigkeit zu empfangen und übermitteln Nervenzellen Signale.
Neuronen bilden die Grundlage der Nerven, gefunden in Tiere, Vögel, Fische und Insekten.
Brains mit Speicher und Logik und einfachen Reflex-Systemen, sind beide auf der Grundlage von Vereinbarungen von Neuronen.
Neuronen werden auch verwendet, um Signale über weite Entfernungen in eine Kreatur der Körper, wie zum Beispiel von Sensoren an das Gehirn, oder aus dem Gehirn an die Muskeln.
Das Verhalten eines biologischen Neurons ist sehr komplex, aber die folgenden vereinfachten Beschreibung fängt das Grundprinzip:
Die Neuron sammelt empfangenen Signale von anderen Neuronen, und wenn die Summe Signal Anhäufung von mehr als einer Schwelle, das Neuron sendet seine eigenen Signale zu anderen Neuronen.
4.2 Neuron Teile

Teile eines biologischen Neurons
|
Soma
|
Die Zellkörper eines Neurons
|
|
Dendriten
|
Fasern mit chemischen Rezeptoren (Eingänge), die sich von der Zelle Körper eines Neurons. Ein Neuron hat typischerweise viele Dendriten, Dendriten und haben oft viele Branchen.
|
|
Axon
|
Eine Faser mit chemischen Strahler (Ausgänge) in seinen Endpunkt, die sich vom Zellkörper des Neurons. Ein Neuron hat ein einziges Axon, das Axon und hat normalerweise nur sehr wenige Zweige.
|
|
Synapse
|
Eine Konfiguration, so dass das Axon einer Nervenzelle und die Dendriten eines anderen Neuronen sind getrennt durch eine sehr kleine Lücke. In einer solchen Konfiguration, Chemikalien emittiert von einem Axon einer Nervenzelle über die Synapsen und empfangen werden durch die Dendriten der anderen Neuronen. Dies ist, wie Nervenzellen beeinflussen anderen Neuronen.
|
4.3 Neuron Feuern
Ein Neuron sammelt sich chemische Signale aus ihrer Dendriten, und wenn die gesamte chemische Akkumulation über einem Schwellenwert innerhalb einer angemessenen Frist, die Neuron „Brände,“ schickt ihre eigenen Signal durch seine Axon.
Einige Neuronen in der Lage sind, Brenn-Pulse in der Größenordnung von 100 Hz.
Die Signale, die durch Neuronen mit Ansammlungen von (Na) Natrium-, Kalium-(K), (Cl) und Chlor-Ionen und die daraus resultierende elektrochemische Potential (dh, Spannung).
Die Ruhe und Spannung (-70 mV) Feuern (+30 mV) Spannung gemessen werden können oder sogar beeinflusst durch konventionelle elektrische Schaltung.
Im Folgenden finden Sie eine Spannung Aufzeichnung einer Ratte Neuron Brennen mit einer Geschwindigkeit von rund 100 Hz, wenn ein einzelner Whisker berührt und hatte aus seiner Ruhestellung:

Eine Ratte Neuron Feuern (100 Hz) aufgrund Besitz eines Whisker.
Obwohl der Stimulus konstant ist, das Neuron Signal ist schnell pulsierend.
4.4 Neuronales Netz
Das menschliche Gehirn ist mit rund 10^11 (100 Milliarden) Neurone.
Jedes Neuron im Kleinhirn erhält Input von nicht weniger als 10^4 (10000) Synapsen.
Obwohl die Dendriten und Axon einer Nervenzelle oft verlängern nur wenige Mikrometer weg vom Zellkörper, einige Axone sind in der Größenordnung von einem Meter Länge.
Ein Gehirn hat Nervenzellen mit relativ kurzen Axonen in Bereichen gruppiert oder Clustern.
Ein Gehirn hat auch Bündel von Nervenzellen mit relativ langen Axone zu verknüpfen Bereiche getrennt durch Zentimetern.
So ein hierarchisches Netz von Elementen der Verarbeitung entsteht.
4.5 Neuronales Netz-Status
Der Status eines Netzes von Neuronen ist sowohl die Art, wie die Neuronen miteinander verbunden sind und die Signale auf alle von der Synapsen.
Es ist unklar, wie viel Statusinformationen wäre verloren, wenn ein Gehirn war tranquilized in insgesamt Inaktivität für jede Menge Zeit.
Man kann sich vorstellen, Informationen nachhaltig nur durch Signale, die durch das Netz, und nicht durch die Netzwerkverbindung selbst, wie zelluläre Automaten Simulationen wie Conway's „Game of Life“, einfache Dynamic Random Access Memory (DRAM) Chips und Echos in einer Kammer.
4.6 Neuronales Netz lernen
Konventionelle Lernen tritt auf, wenn die Eigenschaften von Dendriten Wandel zu einem Synapse zu werden mehr oder weniger effizient zu erhalten, chemische Signale aus einem Axon.
Die Gründe für diese Änderungen sind kompliziert, aber das Ergebnis ist, dass ein Neuron erfordert eine andere Kombination von Synapse-Trigger-Eingänge auf ein Ausgangssignal.
5. Künstliches Neuron
5.1 Definition
Eine „künstliche Neuron“ ist ein Algorithmus oder ein physisches Gerät, das setzt ein mathematisches Modell inspiriert von den grundlegenden Verhalten eines biologischen Neurons.
Ein Neuron sammelt empfangenen Signale von anderen Neuronen oder Eingänge (zB Sensoren), und wenn die Summe Signal Akkumulation eine Schwelle überschreitet, sendet die Nervenzelle ein Signal an andere Nervenzellen oder Ausgänge (zB Effektoren).
Jede mathematisches Modell, das die Idee einer Anhäufung von mehreren Eingängen und nachgiebig einem einzigen Ausgang (akzentuiert, dass die relative Intensität der Input im Vergleich zu einigen nominalen Ebene) kann verwendet werden, für Mustererkennung.
Derartige Modelle können die Grundlage einer künstlichen Neuronen.
Wenn der Einfluss der einzelnen Input geändert werden kann, dann das Modell Lernen unterstützen können.
5.2 Aktivierungs-Funktion
Eine „Aktivierung Funktion“ ist eine mathematische Funktion, wandelt Input-Werte unter einem bestimmten Wert zu einem relativ niedrigen Wert ausgegeben, und wandelt Eingabewerte über einen bestimmten Wert zu einem relativ hohen Ausgangswert.
Eine „Aktivierung Funktion“ wird verwendet, um die gewichtete Summe der Eingabewerte eines Neurons auf einen Wert repräsentiert, dass der Ausgang des Neurons.
Ein „sigmoid“ Funktion ist eine allgemeine Klasse von glatten Funktionen, die asymptotisch Ansatz eine untere Grenze für Input-Werte nähern negative infinity und asymptotisch Ansatz eine obere Grenze für Input-Werte nähern positive infinity.
Ein spezieller sigmoid Funktion ist die „logistic sigmoid“ Funktion:

Die „Logistic Sigmoid“ Funktion: 1 / ( 1 + Exp( -x ) )
Die „logistic sigmoid“ Funktion kann als „Funktion der Aktivierung“ für ein mathematisches Modell eines Neurons.
Die mathematische Ableitung der „logistic sigmoid“ lassen sich als eine Formel, so dass es leicht zu Berechnung eines assoziierten Lernen Formel.
5.3 Neuronales Netz-Eingang
Ein „neuronales Netzwerk-Eingang“ stellt einen Beitrag zu einem neuronalen Netzwerk.

Neuronales Netz-Eingang
„Input“ wird den numerischen Wert des Eingangssignals.
5.4 Neuronales Netz-Ausgang
Ein „neuronales Netzwerk-Ausgang“ stellt eine Leistung von einem neuronalen Netzwerk.

Neuronales Netz-Ausgang
„Output“ wird den numerischen Wert des Outputs.
„Error“ ist ein numerischer Wert, entspricht der Differenz zwischen dem Ausgangswert und eine „Desired“ Wert:
Error = (Output - Desired); // Derived from: Output = Desired + Error;
Die „Desired“ Wert stellt einen gewünschten Wert oder ein idealer Wert, oder einen richtigen Wert, dass das neuronale Netz soll als Ausgabe in Reaktion auf spezifische Eingänge.
Der Fehler wird berechnet und zugewiesen „Error“ durch ein Ausbildungs-Algorithmus.
Der Fehler ist Rückmeldung an das neuronale Netz.
Das neuronale Netzwerk anpassen kann zur Verringerung der Differenz zwischen den Ausgängen und die gewünschten Werte, dh, das neuronale Netz lernen können, und können damit zur künftigen Fehlern.
5.5 Neuron Körper
Ein „Neuron Gremium“ vertritt die Stelle eines Neurons, sammelt sich der Eingang der Beiträge und fügt eine Voreingenommenheit, und verwandelt die sich daraus ergebende Wert durch „Aktivierung“ der „Funktion“ zur Erzeugung einer Leistung von Wert.

Neuron Körper
„InputAccumulator“ ist ein Wert, repräsentiert die kumulierten Beiträge von neuronalen Verbindungen, deren Ausgänge sind mit dem Neuron Körper.
„Bias“ ist eine einstellbare Wert, der in Verbindung mit dem kumulierten Wert-Eingang.
„Output“ ist ein numerischer Wert repräsentiert die Ausgabe Wert des Neurons.
Die Ausgabe wird mit der folgenden Formel berechnet:
Output = ActivationFunction( Bias + InputAccumulator );
„ErrorAccumulator“ ist ein numerischer Wert repräsentiert aufgelaufenen Fehler.
Angesichts einer bestimmten Ausgabe Wert des Neurons Körper, und eine spezifische Leistung Fehlerwert, die aufgelaufenen Fehler bereinigte Wert ist nach folgender Formel berechnet:
ErrorAccumulator += Output * (1 - Output) * OutputError;
„Rate“ ist ein Wert, beeinflusst, wie der Wert „Bias“ Veränderungen in Reaktion auf die „ErrorAccumulator“ Wert:
Bias += (-1) * Rate * ErrorAccumulator;
5.6 Neuron Link
Ein „Neuron Link“ stellt eine Verbindung zwischen:
(1) ein Eingang des neuronalen Netzes und ein Eingang eines Neurons Stelle;
oder,
(2) eine Leistung von ein Neuron Körper und den Input von anderen Neuronen Stelle;
oder,
(3) eine Leistung von ein Neuron Körper und ein Ausgang des neuronalen Netzes.

Neuron Link
„Input“ ist ein Cache des Eingangssignals auf den Link.
„Weight“ ist eine einstellbare Wert beeinflusst, wie das Signal Werte und Fehler Werte propagieren über den Link.
„Output“ ist ein Cache der Ausgabe der Link.
Der Wert wird berechnet mit Hilfe der folgenden Formel berechnet:
Output = Weight * Input;
„Error“ ist ein Cache-Fehler der Verbindung.
„WeightedError“ ist ein Cache der Fehler der Link, gewichtet mit dem Faktor Gewicht:
WeightedError = Weight * Error;
„Rate“ ist ein Wert, beeinflusst, wie der Wert „Weight“ Veränderungen in Reaktion auf die „Error“ Wert und dem Wert „Input“.
Während neuronales Netz Lernen, die „Weight“ Wert wird bereinigt in folgender Weise:
Weight += (-1) * Rate * Input * Error;
5.7 Neuronales Netz
Ein „neuronales Netzwerk“ enthält Input-, Output-Neuron Stellen und Links.
Das folgende Bild zeigt ein einfaches neuronales Netzwerk, mit zwei Eingängen und zwei Neuronen Stellen in einer ersten Schicht, und ein einziges Neuron in einer zweiten Schicht, und ein Ausgang.

Beispiel für ein neuronales Netz
Bei einer Simulation eines neuronalen Netzwerkes, Input-Werte propagieren nach vorn durch Links und Neuron Stellen, und schließlich kommen am Ausgänge.

Beispiel nach vorne Propagierung der in ein neuronales Netz
Während der Ausbildung, Fehler Werte sind auf die Ergebnisse, und diese Fehler propagieren rückwärts durch das neuronale Netzwerk, wodurch sich die Änderung der Gewichte und Verzerrungen in Neuron Gremien und Links.

Beispiel für Abwärtskompatibilität Fehler Vermehrung in ein neuronales Netz
5.8 Neuronales Netzwerk Simulation
Definition:
„Netzwerk-Simulation“ ist das angewandte Verfahren zu propagieren Netz-Eingänge durch die Links und Neuron Stellen bis zum Erreichen des Netzes Ausgänge.
Netzwerk-Simulation geht es um die Simulation aller seiner konstituierenden Links und Neuron Stellen.
Simulationen ohne Loops oder die Uhrzeit:
Es gibt viele mögliche Netzwerk-Konfigurationen mit Loops.
Es gibt viele neuronale Modelle, die auf Zeit.
Aber einige der häufigsten Anwendungen der künstlichen Neuronen beinhalten weder Loops noch Zeit.
Der folgende Text ist ein mathematisches Modell eines Neurons Körper:
Output = ActivationFunction( Bias + InputAccumulator );
Mit diesem Modell Neuron, und ein Netzwerk, ohne „Loops,“ beginnen wir einfach von der externen Eingänge, Ausgänge Berechnung der ersten Schicht von Neuronen, und liefern diese Ausgänge als Eingänge zur nächsten Schicht, Compute-Ausgänge für diese Schicht, und weiter durch Schichten von Neuronen, bis die endgültigen Ergebnisse berechnet werden.
Loops:
Ein Netzwerk-Verbindungen können in Form von Schleifen (oder „Zyklen).“
Zum Beispiel die Ausgabe eines Neurons kann direkt an einen Eingang des gleichen Neuron, verursacht „Feedback.“
Ein weiteres Beispiel ist die Ausgabe von Neuron # 1 verbunden mit dem Eingang der neuronalen # 2, und die Ausgabe von Neuron # 2 wird an den Eingang der neuronalen # 1.
Wenn Sie beginnen können ab einem gewissen Punkt in einem Netz-und Trace-ein Weg durch Neuronen und Verbindungen, die sich weigert One-Way-Flow der Signale, und schließlich kommen am selben Ausgangspunkt, dann ist der Weg eine Schleife.
Loops führen die interessante Möglichkeit von Signalen fließt etwa das Netzwerk für eine unbestimmte Zeit.
Einige einfache Modelle gehen davon aus, dass es dauert eine bestimmte Menge Zeit für Signale durchlaufen einzelnen Nervenzellen.
In solchen Modellen, Signale zirkulieren durch Schleifen mit wenigen Nervenzellen schneller als Signale zirkulieren durch Schleifen mit vielen Neuronen.
Ein Neuron mit sich selbst haben die schnellsten Signal Umlauf.
Wenn ein Neuron verfügt über einen Eingang X, ein Gewicht W, eine Voreingenommenheit B, und eine nicht-negative Produktionslücke Y (zB 0.0 -> 1.0), dann können wir einen Oszillator, indem Sie einfach W = (-8) und B = +4 und Y Verbindung zu X;
jedes Mal, wenn wir simulieren das Neuron, das Signal wird geschaltet, um das Gegenteil.
Ein Netzwerk mit Loops können mit der Aktivität beschäftigt, selbst wenn es nicht akzeptieren, externe Signale (Impulse) als Eingänge.
Die zellulären Automaten Regeln des Conway's „Game of Life“ realisiert werden kann, in ein neuronales Netz, das gibt Ihnen einen kleinen Hinweis auf die Vielfalt der Aktivitäten kann passieren, dass in einem neuronalen Netzwerk mit Loops.
Finite-State-Maschinen (FSM), Oszillatoren, flüchtigen Speicher (im Gegensatz zum Lernen durch wechselnde Muster Gewichte), werden durch Looping.
Wenn ein Netzwerk hat, Schleifen, können wir nicht jede Änderung Ausgänge, bis wir alle Compute-Ausgänge, so benötigen wir einen temporären Puffer zu speichern berechneten Ausgänge, bis wir alle Compute-Ausgänge, und dann können wir verpflichten die neue Ausgabe der Werte an die Neuronen im Netzwerk.
Jede Methode, die Updates Ausgänge im eigentlichen Netzwerk in einer progressiven Art und Weise, anstatt eine all-at-once, führt eine willkürliche Bestellung in der Zeit, daß führt zu Chaos.
Physik-Simulationen in Verbindung mit Einrichtungen wie den Planeten umkreisen und ein Stern mit der gegenseitigen Gravitation zwischen allen Einrichtungen, die gleiche Art von Ansatz: Berechnen Sie den Netto-Kräfte in allen Gremien, vor jeder Aktualisierung Geschwindigkeit und Position.
Time-Abhängigkeit:
Eine einfache Netzwerk-Simulation typischerweise Eingänge, die den gewünschten Ergebnissen nach einer einzigen Simulation Zeit Schritt.
In einem solchen Simulation sind wir der Meinung, bezogen auf die „Zahl der Iterationen,“ anstatt „Zeit in Sekunden.“
Es muss nicht jede Korrespondenz zwischen Iterationen und einer Zeitskala.
Ein System könnte so gestaltet werden, tun ein Netzwerk Simulation (Iteration) nur wenn neue Eingang ist vorhanden, die möglicherweise auftreten, in unregelmäßigen Abständen der Zeit.
Hingegen sind der Meinung, ein mathematisches Modell eines Neurons, dass Versuche zur Simulation der pulsierenden Aspekt Output eines biologischen Neurons.
Die pulsierende charakterisiert werden könnte in Bezug auf Zeit, wie pulsierende bei einer bestimmten Frequenz oder mit Impulsen, deren Kurve erstreckt sich für eine bestimmte Höhe der Zeit.
Wir können noch andere Zeit-abhängige Elemente in ein mathematisches Modell eines Neurons, wie ein Input-Akkumulatoren, deren Wert erhält Beiträge von den Inputs, sondern hat ein Leck im Verhältnis zu seiner derzeitigen Wert.
In der Regel finden wir einen elektrischen Stromkreis Analogie zu gehorchen Elemente, bestimmte mathematische Gleichungen, und so kann man Hinsicht ein Neuron als eine Schaltung mit Widerständen, Kondensatoren und einem nicht-linearen Verstärker.
Genauso wie eine Schaltung kann Exponat komplexen Zeit-Verhalten abhängig, die Ausgabe eines Neurons kann als eine Funktion, die abhängig von der Eingänge und die Uhrzeit in ein komplizierter Weg.
5.9 Rückrechnungen Fehler Vermehrung
Definition:
„Rückrechnungen Fehler Vermehrung“ ist ein mathematisches Verfahren, das mit dem Fehler in der Ausgabe eines neuronalen Netzes und propagiert diesen Fehler rückwärts durch das Netz zu Yield-Ausgang Fehler Werte für alle Neuronen im Netzwerk.
Rückrechnungen Fehler Vermehrung Formeln:
Der Fehler Werte in das neuronale Netz-Ausgänge sind mit Hilfe der folgenden Formel berechnet:
Error = (Output - Desired); // Derived from: Output = Desired + Error;
Der Fehler Akkumulation in einem Neuron Körper ist je nach dem Ausgang des Neurons Körper und die Ausgabe-Fehler (von links an das Neuron Körper).
Jeder Ausgang Fehlerwert leistet einen Beitrag zur Fehler-akkumulatoren in folgender Weise:
ErrorAccumulator += Output * (1 - Output) * OutputError;
In gewissem Sinne, die alle die Ausgabe von Fehlern auf die nächste Schicht Leck rückwärts durch die Eingabe Gewichte und reichern sich in der Ausgabe eines Neurons in einer früheren Schicht.
Diese kumulierten Wert, multipliziert mit einem Wert, der am größten ist, wenn die aktuelle Ausgabe des Neurons ist sehr neutral (die meisten „unentschieden)“ und ist zuletzt, wenn die Ausgabe des Neurons ist extremsten „(sehr“ sicher).
Gewicht ändern und Voreingenommenheit ändern Formeln:
Die Grundlage des Lernens ist der Anpassung der Gewichte und Bias-Werte in einem Versuch zur Verringerung der künftigen Ausgabe Fehler.
„Learning-Rate“ ist ein numerischer Wert, der im Wesentlichen zeigt, wie schnell ein Neuron passt Gewichts-und Bias-Werte nach Fehler-Werte.
Die folgende Formel gibt an, wie die Änderung der Gewichte eines Neurons mit einer bestimmten Menge von Input-Werte und seine Ausgabe Fehlerwert:
Weight += (-1) * Rate * Input * Error;
Die folgende Formel gibt an, wie eine Änderung der Ausrichtung eines Neurons angesichts der aktuellen Ausgabe Fehler für die Neuronen:
Bias += (-1) * Rate * Error;
6. Training ein neuronales Netz
6.1 Training Verfahren
Man kann beginnen mit einem ausgebildeten Netzwerk und weiter zu verringern Ausgang Fehler mit Weiterbildung, aber man beginnt oft mit einem ungeschulten Netzwerk.
Vor dem Training, wählen Sie zufällige Werte für alle Gewichte aller Neuronen im Netzwerk.
Ich beobachtete Probleme, wenn ich zufällig ausgewählten Werte in das Intervall [ -1.0, +1.0 ], und ich hatte keine Probleme, wenn ich zufällig ausgewählte Werte aus dem Intervall [ +0.1, +1.0 ].
Ich erwähne diese Beobachtungen, aber sie könnte darauf zurückzuführen sein, mein Fehler.
Der Zweck der Gewichte zufällig ist zur Milderung der Möglichkeit eines pathologischen Situationen, in einem Netzwerk.
Wenn alle Neuronen in einem Netzwerk mit den gleichen Gewichten, das Netz hätte keine Grundlage für eine zunehmende Differenzierung zwischen den Neuronen.
Ich habe beobachtet, dass die Einstellung aller Vorurteile Werte auf Null (0.0) akzeptabel ist.
Eine Trainingseinheit umfasst sich in einer Ausbildung setzen viele Male, vielleicht Hunderte oder Tausende von Malen.
Bei jedem Durchgang durch die Ausbildung gesetzt, wir halten jedes Element in der Ausbildung gesetzt.
Eine Ausbildungs-Set Element hat eine Reihe von Vorleistungen, und eine Reihe von gewünschten Ergebnisse.
Wir simulieren das Netzwerk mit einer Reihe von Eingaben von der Ausbildungs-Element.
Die Simulation ergibt Ausgangswerte.
Wir propagieren den Fehler rückwärts dachte das neuronale Netz zur Berechnung der Output-Fehler für alle Neuronen.
Wir aktualisieren alle Gewichte und Voreingenommenheit.
Achtung: ein akademisches Text diskutiert, dass neuronale Netze befürwortet, die über die gesamte Ausbildung eingestellt und nur Zusammenfassung Gewicht Veränderungen und Verzerrungen.
Nachdem Sie durch die gesamte Ausbildung eingestellt haben wir eine Reihe von Beträgen von Gewichtsveränderungen und Voreingenommenheit.
Wir nehmen diese Summen und aktualisiert alle Gewichte und Voreingenommenheit.
Solche Summen könnten riesige für große Ausbildungs-Sets - und die sich daraus ergebende Sprung in Gewichts-Raum wäre unangemessen groß.
Ich denke also, dividiert durch die Anzahl der Ausbildung Gegenstände zu bekommen durchschnittlichen Gewichts Werte ändern und die durchschnittlichen Bias Werte ändern, wäre vernünftig.
Es ist etwas ansprechender zu einem einzigen Computing Gewicht ändern Vektor, irgendwie dauert die gesamte Ausbildung in der Prüfung.
Ich weiß nicht, ob ich einfach einen Fehler gemacht bei der Umsetzung der Idee, aber ich habe fast ausschließlich auf neuronale Netze, weil, wie schlecht die Dinge waren Kentern.
Dann, als ich versuchte die naive Alternative, nämlich die Updates auf jedem Training item, Dinge arbeitete perfekt.
In Anbetracht der gesamten Ausbildung setzen, bevor Sie ein Update hat einige Vor-und Nachteile:
Vorteil:
Einzel-Training Elemente in der Ausbildung mit extremen Fehler (dh, schlechte Ausbildung item) in Zukunft nicht machen einen großen Beitrag zu der Änderung, denn es wird überwältigt von dem Einfluss der „guten“ Daten;
Nachteil:
Wenn N ist die Anzahl der Artikel in Ihrer Ausbildung gesetzt, Ihr Tempo der Fortschritte auf die optimale Gewicht Vektor wird geteilt durch N.
Oder für einen bestimmten Abstand haben Sie nur einen Bruchteil von Hinweisen Richtung entlang des Weges im Vergleich zu den naiven Ansatz;
Vielleicht wird diese Technik für Sie arbeiten, aber ausprobieren die naive Ansatz geben, bevor Sie sich auf neuronale Netze in völliger Frustration!
6.2 Die Nichteinhaltung reduzieren Fehler
Bildung kann nicht zur Verringerung der globalen Fehler für die Ausbildung gesetzt.
Es ist wichtig zu erkennen, einen Fehler zu verringern Fehler.
Die folgende Liste beschreibt Ursachen des Scheiterns zu verringern Fehler und mögliche Lösungen.
Die Einträge in dieser Liste aufgeführt sind im ungefähren Reihenfolge der Wahrscheinlichkeit, mit dem ersten Punkt werden die meisten wahrscheinlich.
(1) Das Gewicht Kombination erreicht hat, ein lokales Minimum der Fehler-Oberfläche, und „steckt;“
Lösung: Starten Sie eine neue Simulation mit zufälligen neuen Gewichte.
(2) Das Netzwerk hat zu wenige Neuronen oder Schichten zu kodieren alle die Muster in Ihrer Ausbildung gesetzt;
Lösung: Vorsichtig unterhalten die Möglichkeit des Hinzufügens Schichten oder Neuronen.
(3) Ein oder mehrere Artikel in Ihrem Ausbildungs-Set widerspricht oder grob nicht mit Ihren anderen beruflichen Positionen;
Lösung: Überprüfen Sie Ihre Daten für Unregelmäßigkeiten.
Finden Sie die Test-Elemente, die Rendite der meisten Fehler für Ihre trainierte Netz.
Schauen Sie sich in Techniken zur durchschnittlichen Gewichts Änderungen über den gesamten Datensatz zur Verringerung des Einflusses einer schlechten Fällen.
(4) Das Lernen ist zu hoch (etwas über 1.0 ist wahrscheinlich übermäßige), und die Updates immer über das Ziel;
Lösung: Reduzieren Lernen.
(5) Das Lernen ist zu niedrig (etwas unterhalb 0.01 könnte zu klein) und das Netzwerk ist wirklich konvergierenden auf die ideale Kombination Gewicht - aber zu langsam ist;
Lösung: Erhöhen Sie Lernen.
Training eine Zwei-Schicht-, drei-Neuron-Netz entsprechend der exklusiv-oder (xor) Funktion, kann trotz der Einfachheit der Funktion, nicht zu konvergieren.
Dies lässt sich überraschend und frustrierend sein.
Allerdings besteht die Lösung darin, einfach alle Neuron Link Gewichte auf neue zufällige Werte und dann versuchen, die Bahn-Netz wieder.
Bei der Ausbildung eines Netzwerks, um die ausschließliche oder (xor)-Funktion, Random positiven Gewichte scheinen dazu führen, dass erfolgreiches Lernen jedes Mal, in der Erwägung, dass bestimmte Kombinationen von positiven und negativen Gewichte manchmal dazu führen, dass die Ausbildung zu scheitern dramatisch.
Die Notwendigkeit, wählen Sie neue zufällige Ausgangsgewichte auf Wiederherstellung nach einem Ausfall zu konvergieren ist eine bedauerliche Folge der Kombination des Lernprozesses.
Die Lern-Verfahren ist im Wesentlichen der Suche nach einem globalen Minimum von steilsten Abstiegs auf die Oberfläche, und das Potenzial für das Vorhandensein von einem „lokalen Minimum,“ in dem die Suche kann sich gefangen.
6.3 Insgesamt Ausbildung Fehler
Die allgemeine Fehler eines Netzes lässt sich durch die Quadratwurzel-des Durchschnitts der quadrierten Fehler oder „Root-Mean-square“ (RMS).
Der Fehler, an einer bestimmten Netzwerk-Ausgang wird nach folgender Formel berechnet:
Error = (Output - Desired);
Die Summe der quadrierten Fehler für ein einzelnes Ausbildungsvorhaben Artikel wird nach folgender Formel berechnet:
double squaredError = 0.0;
foreach (NeuralNetworkOutput output in ListOfOutputs)
{
squaredError += (output.Error * output.Error);
}
Die Summe der quadrierten Fehler für die Gesamtheit der Elemente in einem Ausbildungs-Set ist die Summe der quadrierten Fehler der einzelnen Posten. Der folgende Code zeigt, wie die squared Fehler für die gesamte Reihe von Ausbildungs-Positionen berechnet werden können:
double squaredError = 0.0;
for
(
int trainingItemIndex = 0;
trainingItemIndex < totalTrainingItems;
trainingItemIndex++
)
{
trainingSet.SetAllInputNodeValues( trainingItemIndex );
Simulate( propagationIterations );
trainingSet.SetAllOutputNodeErrorValues( trainingItemIndex );
PropagateErrors( propagationIterations );
UpdateWeightsAndBiases();
foreach (NeuralNetworkOutput output in ListOfOutputs)
{
squaredError += (output.Error * output.Error);
}
}
Das übergeordnete Root-Mean-square (RMS) des Fehlers wird durch die Quadratwurzel des Durchschnitts der quadrierten Fehler:
double rmsError = Math.Sqrt( squaredError / (double)totalTrainingItems );
Dieser Wert ist eine Möglichkeit zur Charakterisierung der globalen Fehler eines Netzes unter Berücksichtigung aller Fälle Ausbildung.
7. Lernen
Learning tritt auf, wenn das Gewicht und Voreingenommenheit Werte der neuronalen Verbindungen und Neuronen Einrichtungen sind so eingestellt, in Übereinstimmung mit bestimmten Netzkomponenten Ein-und Ausgang der Fehler-Werte.
Betrachten Sie ein neuronales Netzwerk mit zwei Eingängen (x1 und x2), und zwei Links (mit Gewichten w1 und w2), und ein Neuron Körper, und ein Ausgang (y).

Neuronales Netzwerk mit zwei Eingängen und einem Neuron Körper, und ein Ausgang
Wir trainieren diese Neuron, indem er die Eingänge, Informatik der Ausgang, den Fehler Computing, Computing Gewicht und Voreingenommenheit Änderungen und Aktualisierungen der Gewichte und der Voreingenommenheit, Ankunft in neue Gewichte ( w1', w2' ).
Es ist eine sehr interessante Art und Weise zu visualisieren diesen Prozess.
Wir können hinsichtlich der Menge der Gewichte als Vektor in einem multi-dimensionalen Raum. Zum Beispiel, für zwei Gewichte haben wir den Vektor W = (w1, w2) in einem zweidimensionalen „Raum Gewicht.“
Als Gewichte werden angepasst, wir haben ein neues Gewicht Vektor W' = (w1',w2').
Wir visualisieren kann dies als einen Punkt W Umzug in ein neues W' Punkt als Teil eines Prozesses zur Minimierung der Fehler ausgegeben.
Normalerweise würde man nicht die Ausgabe Compute-Fehler für alle möglichen Kombinationen aus, weil die Hoffnung besteht darin, dass das Gewicht Anpassungsprozess wird effizient Kopf auf die beste Kombination.
Aber lassen Sie uns Plot der Oberfläche, die im Wesentlichen zeigt, wie gut ein Neuron erfüllt alle Elemente in einer Ausbildung als eine Funktion seiner beiden Gewichte:

Summe der quadrierten Fehler für eine bestimmte Ausbildung als eine Funktion von zwei Gewichte (w1, w2)
Grundsätzlich besteht das Ziel des Lernens ist es, den Abstieg bis auf die unterste Ebene dieser Oberfläche, wo die Fehler minimiert wird.
Sobald wir den Punkt finden, W = (w1, w2), dass die Erträge der Mindestwert auf dieser Oberfläche, Lernen ist fertig und wir können dann benutzen Sie einfach den geschulten Neuron.
Die folgende Grafik zeigt die Ausgabe von einem ausgebildeten Neuron als Funktion aller möglichen Eingänge X = (x1, x2):

Neuron Ausgabe als eine Funktion von zwei Eingänge (x1, x2) für ein Gewicht, dass die Kombination minimiert squared error
Auch wenn die gewichtete Summe für diesen Zwei-Input-Neuron ist einfach (w1*x1 + w2*x2), die Aktivierung Funktion macht aus einer einfachen Drehung im Flugzeug auf einer Klippe.
Diese Oberfläche hat den richtigen Ausgang für alle Input-Kombinationen (x1, x2) durch unser Training.
Aber Sie können sich vorstellen, wie Input-Vektoren X = (x1, x2) ähnliche Werte zu Ausbildung würde auch dazu führen, dass die ordnungsgemäße Ausgangswerte; diese Funktion der neuronalen Netze wird als „Verallgemeinerung“ und ist der wichtigste Wert der neuronalen Netze.
Da wir versuchen, „den Abstieg“ der Oberfläche squared error, müssen wir „Schaltsekunde, bevor wir schauen!“
Wir aktualisieren das Gewicht Vektor-und Voreingenommenheit, und dann bewerten wir die „Höhe“ der Oberfläche an unserem neuen Standort.
Eine Folge davon ist, dass wir uns bewegen würden bis zu einem Punkt mit einer extremen Fehler.
Eine weitere Konsequenz ist, dass es vielleicht eine Weile dauern, bis Abstieg zurück in die Tiefe unseres früheren Standort.
Die Möglichkeit, mehr zu „springen“ extremen Höhen und Tiefen des Fehlers Oberfläche steht in direktem Zusammenhang mit der „Lern-Kurs,“ denn das Erlernen Rate bestimmt, wie viel Einfluss Fehler Werte haben auf unserer Gewichts-und Bias Änderungen.
Die folgende Grafik zeigt, wie sich die Erhöhung der Rate Lernen beeilt unserer Ankunft in niedrigeren Positionen in der quadrierten Fehler Oberfläche, wo die Fehler minimiert wird.
Die Grafik zeigt auch, dass eine Erhöhung der Lern-Kurs führt auch die Möglichkeit, schlechte Schritte:

Kurzfristige Trend der Root-Mean-squared (RMS) Fehler für die gesamte Ausbildung Set über mehrere Iterationen Ausbildung, für das Lernen Sätze 0.1, 0.5, 1.0 und 2.0.
Hier ist eine Grafik der Root-Mean-squared Ausgabe Fehler eines Multi-Layer-Netzwerk mit einem Ausbildungs-Set mit 19386 Elemente, die erfahrene viele schlechte Schritte auf dem Weg zu den besten Gewicht Vektoren:

Training manchmal Begegnungen Spikes in der Root-Mean-squared (RMS) Fehler, wenn Fehler Erhöhungen für einige Iterationen, bevor die Wiederaufnahme von einer rückläufigen Tendenz.
Manchmal ist der Trend geht einfach reibungslosen Übergang zu dem gewünschten Satz von Gewichten:

Entwicklung der Root-Mean-squared (RMS) Fehler für die gesamte Ausbildung Set über mehrere Iterationen Ausbildung, für das Lernen Sätze 0.1, 0.5, 1.0 und 2.0.
8. Beispiel: Exklusiv-oder (xor)
„Exklusiv-oder“ (xor) ist eine Funktion, akzeptiert zwei boolesche Eingänge und Erträge einer einzigen Boolean Ausgabe anhand der folgenden Tabelle dargestellt:
|
X1
|
X2
|
Y = xor (X1, X2)
|
|
0
|
0
|
0
|
|
0
|
1
|
1
|
|
1
|
0
|
1
|
|
1
|
1
|
0
|
In der Regel ist eine einzige Nervenzelle {x1, x2, ...} Eingänge hat, kann die Eingabe durch Links mit Gewichten {w1, w2, ...}.
Die Neuron berechnet ein Zwischenprodukt Menge d = bias + (w1*x1 + w2*x2 + ...), der kann als die Ermittlung der Fläche, auf eine unendliche Reihe von parallelen Ebenen, enthält einen bestimmten Punkt mit Koordinaten {x1, x2, ...}.
Die Neuron berechnet eine Leistung Wert, y = ActivationFunction( d ), das hat zur Folge, daß die Aufteilung der unendlichen Reihe von parallelen Ebenen in zwei Sets, ein Set mit niedrigen Output produzieren Werte, und die anderen setzen produzieren hohe Ausgangsleistung Werte.
So kann ein einzelnes Neuron multidimensionalen Raum teilt sich in zwei Regionen, getrennt durch das Flugzeug bias + w1*x1 + w2*x2 + ... = 0, und weist niedrige Ausgangswerte auf die Nummern in der Region auf der einen Seite des Flugzeugs, und weist hohe Ausgangsleistung Werte zu Punkten in der Region auf der gegenüberliegenden Seite des Flugzeugs.
Wenn also zwei Punkte im mehrdimensionalen Raum haben unterschiedliche Klassifikationen und kann völlig getrennt durch ein Flugzeug, dann ein einzelnes Neuron kann verwendet werden, um korrekt klassifizieren Punkte aus diesen Sets als Zugehörigkeit zu einem Satz oder der anderen Seite.
Die exklusiv-oder (xor) Funktion klassifiziert Punkte in zwei-dimensionalen Raum (mit Koordinaten (x1, x2)), so dass Punkte im Set { (0,0), (1,1) } sind als die Herstellung einer Leistung von „0,“ und die Nummern im Set { (0,1), (1,0) } sind als die Herstellung einer Leistung von „1.“
Es gibt kein einziges „Flugzeug“ (in diesem Fall eine Zeile), die sich von denjenigen trennen vier Punkte in den beiden Sets.
Daher ist eine einzige Nervenzelle kann nicht verwendet werden, zu klassifizieren Punkte nach der exklusiv-oder (xor) Funktion.
Ein einzelnes Neuron kann nur ein Leerzeichen getrennte Punkte in beiden Regionen.
Die exklusiv-oder (xor) Funktion klassifiziert Punkte in einer Weise, dass im Wesentlichen teilt sich in zwei-dimensionalen Raum in drei Regionen (oder, alternativ, vier Regionen).
Zwei getrennte Neuronen können zwei-dimensionalen Raum in drei Regionen (zB durch zwei verschiedene parallele Linien), und können so verwendet werden, um Punkte zu klassifizieren nach der exklusiv-oder (xor) Funktion.
Eine dritte Neuron kann verwendet werden, kombinieren die Ausgänge der beiden anderen Neuronen in einem einzigen Ausgang.
Die folgenden neuronales Netz, mit zwei Eingängen und zwei Neuronen Stellen in einer ersten Schicht, und ein einziges Neuron in einer zweiten Schicht, und einem einzigen Ausgang, kann verwendet werden, um Punkte zu klassifizieren nach der exklusiv-oder (xor) Funktion.
Die folgenden neuronale Netzwerk kann entweder eine Ausbildung zur Berechnung der exklusiv-oder (xor) Funktion oder das neuronale Netzwerk kann einfach sein Gewicht und Bias Werte zugewiesen in einer Art und Weise produziert, dass die gewünschte Verhalten.

Ein neuronales Netzwerk, die Einstufung nach Punkten exklusiv-oder (xor)
Der Computer-Code im Zusammenhang mit diesem Dokument zeigt die Ausbildung des neuronalen Netzes im Diagramm oben auf die exklusiv-oder (xor) Funktion.
Die neuronalen Netzwerke manchmal nicht lernen die Funktion, sondern kann die Software einfach neu gestartet werden, um zu versuchen das Lernen mit einer neuen Reihe von Ausgangsgewichte.
Wenn die Software erfolgreich lernt die exklusiv-oder (xor) Funktion, dann die Ausgabe der folgenden ähnelt:
x1 = 0.0000 x2 = 0.0000 y = 0.0172 error = 0.0172
x1 = 1.0000 x2 = 0.0000 y = 0.9802 error = -0.0198
x1 = 0.0000 x2 = 1.0000 y = 0.9839 error = -0.0161
x1 = 1.0000 x2 = 1.0000 y = 0.0154 error = 0.0154
Die Ausgabe (y) ist innerhalb von 2% des gewünschten Wert für jede der vier Kombinationen der Variablen (x1, x2).
Obwohl das Netz wurde trainiert zu lernen Ausgangswerte für nur vier Kombination von Variablen (mit Werten 0.0 und 1.0, die Boolesche Werte), die Eingänge auf das neuronale Netz kann auf jeder beliebigen Fließkomma-Werte.
Das folgende Bild zeigt die Ausgabe des neuronalen Netzes trainiert für viele Kombinationen von Input-Werte:

Ein neuronales Netzwerk, die Einstufung nach Punkten exklusiv-oder (xor)
Die Oberfläche ist die Ausgabe des neuronalen Netzes für alle möglichen Kombinationen (x1, x2) Eingang in den Bereichen [ -2.0, +2.0 ].
Der Ausgang ist nah an 0.0 in senkt die Bereiche der Oberfläche, und die Ausgabe liegt in der Nähe 1.0 auf den höchsten Bereichen der Oberfläche.
Beachten Sie, dass die Oberfläche ist zu niedrig für die Punkte { (0,0), (1,1) }, und die Oberfläche ist hoch an den entsprechenden Stellen { (0,1), (1,0) }.
Das Netz wurde nur trainiert zu produzieren gewünschten Ausgänge für vier spezifische Kombinationen von Input-Variablen, aber das neuronale Netz auch Ausgänge für alle anderen möglichen Kombinationen von Input-Werte.
Die Fähigkeit der neuronalen Netze zu produzieren vernünftige Antworten zu allgemeinen Fällen, nachdem sie für besondere Fälle können als „Verallgemeinerung.“
Jeder Prozess, passt Daten weist auf ein Modell, wie Einbau Punkte auf einer Linie oder andere Kurve, auch eine „verallgemeinernde“ Wirkung, so dass die Tatsache, dass die Anbringung eines neuronalen Netzes zu produzieren gewünschten Ausgänge für bestimmte Lektionen Ergebnisse in einer Art Verallgemeinerung ist nicht außerordentliche, aber es ist trotzdem interessant zu beobachten, die Fähigkeit zu verallgemeinern von konkreten Fällen.
9. Beispiel: Tic-tac-toe „(Nullen und Kreuze)“
9.1 Einleitung
Tic-tac-toe „(Nullen und Kreuze)“ ist ein einfaches Spiel gespielt 3 * 3 auf einem Gitter von Zellen werden können, die mit „O“ oder „X“.
Die Spieler abwechselnd Platz „O“ und „X“ Marken Zellen unbesetzt, bis einer der Spieler der Ableistung einer Zeile, Spalte oder diagonal.
Da gibt es 3 Zeilen und 3 Spalten und 2 Diagonalen, gibt es acht Gewinner-Muster für jeden Spieler.

Tic-Tac-Toe Bord und gewinnen Muster
Es ist trivial zu schreiben eine rekursive Funktion, die erkundet Tic-Tac-Toe alle möglichen Spiele, da die maximale Dauer des Spiels ist neun bewegt.
An jedem Punkt im Spiel, was wir einfach prüfen, die Ergebnisse bewegen sich in jedem der verbleibenden Zellen unbesetzt.
Eine solche Funktion kann bestätigen, dass ein Tic-Tac-Toe Spiel mit „perfekter Spieler“ wird mit Ende keinen Sieger.
9.2 Training ein neuronales Netz, um die besten bewegt
Eine rekursive Funktion können alle möglichen Spiele und bestimmen die beste Bewegung für jedes Board-Konfiguration.
Wir fügen jedem Board-Konfiguration (Eingänge), und die besten bewegen (gewünschte Ausgänge), zu einer Liste der Ausbildung Gegenstände.
Wir haben dann Zug das Netzwerk, um die gewünschten Ergebnisse für jede Gruppe von Eingängen.
Das Netzwerk wird über 9 Eingänge für jede Zelle des Rasters und der Input-Werte werden nur die folgenden Werte:
0: unbesetzt Zelle
+1: Protagonist Spieler
-1: Widersprechender-Player
Das Netzwerk wird über 9 Ausgänge für jede Zelle des Rasters und der Output-Werte werden nur die folgenden Werte:
0: nicht bewegen hier
1: Bewegen Sie hier
Acht Ausgänge werden auf „0“ gesetzt werden, und ein Ausgang wird auf „1“ gesetzt.
So, nach dem Training das neuronale Netz ein Board-Konfiguration kann als Eingang, und das neuronale Netz wird die besten bewegen.
Die Ausgabe am nächsten „1“ zeigt die besten bewegen, und alle anderen Ausgänge sollte möglichst nahe bei „0.“
Im Allgemeinen ist eine Funktion mit Boolean Boolean Parameter und Ausgänge kann durch ein neuronales Netz mit zwei Schichten von Neuronen.
Die erste Schicht von Nervenzellen können die Kluft multidimensionalen Raum, in den Regionen, und die zweite Schicht verbindet die Region Klassifikationen, um die entsprechenden Werte ausgegeben.
Die Tic-Tac-Toe neuronales Netz produziert Boolean Ausgänge, und obwohl die Eingänge haben drei Staaten ( -1, 0, +1 ), könnten wir in princple, konvertieren diese paar diskrete Eingabewerte zu einem Satz von Booleschen Eingänge.
Daher, zwei Schichten von Neuronen sollte ausreichen, um Tic-Tac-Toe lernen.
Weil das Netzwerk hat 9 Ausgänge gibt es 9 Neuron Stellen in den letzten (zweite) Schicht.
Die einzigen noch verbliebenen neuronalen Netzwerk Design-Entscheidung entscheidet die Anzahl der Neuronen, um Stellen in der ersten Schicht des neuronalen Netzes.
Um diese Entscheidung, Computer-Code generieren können und die Ausbildung eines neuronalen Netzwerkes mit N Neuronen in der ersten Schicht.
Die Fähigkeit des neuronalen Netzes zu lernen, die komplette Ausbildung für Tic-Tac-Toe können grafisch.
Die folgende Grafik zeigt die gesamte Ausbildung eingestellt Fehler während des Trainings für jeden 48 verschiedenen neuronalen Netze, mit N = 1,2,...,48 Neuronen in der ersten Schicht.

Insgesamt Ausbildung gesetzt Fehler während der Ausbildung für N = 1,2,...,48 Neuronen in der ersten Schicht (N = 1 ist an der Spitze, und N = 48 ist am Ende, und die meisten mittel-Kurven niedriger sind für höhere Werte von N)
Eine weitere Möglichkeit zur Visualisierung dieser Entwicklung ist es, eine Oberfläche aus der Abfolge von Kurven:

Insgesamt Ausbildung gesetzt Fehler während der Ausbildung für N = 1,2,...,48 Neuronen in der ersten Schicht (N = 1 ist auf der Rückseite, und N = 48 ist auf der Vorderseite)
So sehen wir, dass wir als Ansatz N = 48 Neuronen in der ersten Schicht, das Netz scheint zu können, akzeptieren alle Fälle Ausbildung.
Alles, was weniger als 48 Neuronen Ebenen scheint nicht ausreichend zu lernen, die komplette Reihe von Fällen.
Für die geringe Zahl von Neuronen, jeder zusätzliche Neuron deutlich reduziert die allgemeinen Fehler.
Wenn jedoch die Zahl der Neuronen ist nah an die Nummer erforderlich, um die gesamte Reihe von Lektionen, jede zusätzliche Neuron nur reduziert die Fehlerquote durch einen relativ kleinen Betrag.
Das folgende Bild zeigt ein neuronales Netz mit 9 Eingängen und 48 Stellen Neuron in der ersten Schicht, und 9 Neuron Einrichtungen in einer zweiten Schicht, 9 und Ausgänge.