Laut Wikipedia (was eine schlechte Quelle ist, weiß ich) Ein neuronales Netzwerk besteht aus
Eine Eingabeschicht von A-Neuronen
Mehrere (B) verborgene Schichten, die jeweils aus C-Neuronen bestehen.
Eine Ausgabeschicht von "D" Neuronen.
Ich verstehe, was Input- und Output-Layer bedeuten.
Meine Frage ist, wie man eine optimale Menge an Schichten und Neuronen pro Schicht ermittelt?
Ist es nur die Menge an Zeit (Grenzen der Verarbeitungsleistung) oder wird das Netzwerk die Qualität der Ergebnisse tiefer begrenzen und sollte ich mich mehr auf die Tiefe (mehr Schichten) oder auf die Breite (mehr Neuronen pro Schicht) konzentrieren?
Antwort 1. Eine Ebene modelliert die meisten Probleme ODER es können maximal zwei Ebenen verwendet werden.
Antwort 2. Wenn eine unzureichende Anzahl von Neuronen verwendet wird, kann das Netzwerk keine komplexen Daten modellieren, und die resultierende Anpassung wird schlecht sein. Wenn zu viele Neuronen verwendet werden, kann die Trainingszeit übermäßig lang werden, und schlimmer noch, das Netzwerk kann die Daten übermäßig anpassen. Wenn overfitting $ auftritt, beginnt das Netzwerk, zufälliges Rauschen in den Daten zu modellieren. Das Ergebnis ist, dass das Modell sehr gut zu den Trainingsdaten passt, aber es verallgemeinert schlecht auf neue, ungesehene Daten. Validierung muss verwendet werden, um dies zu testen.
$ Was ist Überanpassung?
In der Statistik tritt eine Überanpassung auf, wenn ein statistisches Modell Zufallsfehler oder Rauschen anstelle der zugrunde liegenden Beziehung beschreibt. Eine Überanpassung tritt im Allgemeinen auf, wenn ein Modell übermäßig komplex ist und beispielsweise zu viele Parameter im Verhältnis zur Anzahl der Beobachtungen aufweist. Ein überformtes Modell wird im Allgemeinen eine schlechte Vorhersagegüte haben, da es kleinere Schwankungen in den Daten übertreiben kann. Das Konzept der Überanpassung ist wichtig für das maschinelle Lernen. Üblicherweise wird ein Lernalgorithmus unter Verwendung eines Satzes von Trainingsbeispielen, d. H. Beispielhaften Situationen, für die die gewünschte Ausgabe bekannt ist, trainiert. Es wird angenommen, dass der Lernende einen Zustand erreicht, in dem er auch in der Lage ist, die korrekte Ausgabe für andere Beispiele vorherzusagen und somit auf Situationen zu verallgemeinern, die während des Trainings nicht präsentiert werden (basierend auf seiner induktiven Vorspannung). Insbesondere in Fällen, in denen das Lernen zu lange durchgeführt wurde oder wenn Trainingsbeispiele selten sind, kann sich der Lernende an sehr spezifische zufällige Merkmale der Trainingsdaten anpassen, die keine kausale Beziehung zu der Zielfunktion haben. In diesem Prozess der Überanpassung steigt die Leistung auf den Trainingsbeispielen noch, während die Leistung auf ungesehenen Daten schlechter wird.
Antwort 3. Antwort lesen 1 & amp; 2.
Der Artikel "Supervised Learning" auf wikipedia (http://en.wikipedia.org/wiki/Supervised_learning) gibt Ihnen einen besseren Einblick in die Faktoren, die für jedes überwachte Lernsystem, einschließlich Neural Netowrks, relevant sind. Der Artikel spricht über Dimensionalität des Input Space, Anzahl der Trainingsdaten, Noise etc.
Die Anzahl der Layer / Knoten hängt von der Klassifizierungsaufgabe ab und was Sie von der NN erwarten. Theoretisch, wenn Sie eine linear trennbare Funktion / Entscheidung haben (z. B. die boolesche UND-Funktion), kann 1 Schicht (d. H. Nur die Eingabeschicht ohne versteckte Schicht) eine Hyperebene bilden und wäre ausreichend. Wenn Ihre Funktion nicht linear trennbar ist (z. B. das boolesche XOR), benötigen Sie versteckte Ebenen.
Mit einer versteckten Ebene können Sie eine beliebige, möglicherweise unbegrenzte konvexe Region bilden. Jede begrenzte kontinuierliche Funktion mit einer endlichen Abbildung kann dargestellt werden. Mehr dazu hier .
2 verborgene Schichten sind andererseits in der Lage, beliebig komplexe Entscheidungsgrenzen darzustellen. Die einzige Einschränkung ist die Anzahl der Knoten. In einem typischen 2-verdeckten Schicht-Netzwerk berechnet die erste Schicht die Regionen und die zweite Schicht berechnet eine UND-Operation (eine für jeden Hyperwürfel). Zuletzt berechnet die Ausgabeschicht eine ODER-Operation.
Nach Kolmogorovs Theorem können alle Funktionen von einem 2-hidden gelernt werden Layernetzwerk und du brauchst nie mehr als 2 versteckte Ebenen. In der Praxis macht 1-versteckte-Schicht jedoch fast immer die Arbeit.
Zusammenfassend, fixiere B = 0 für linear trennbare Funktionen und B = 1 für alles andere.
Wie für C und die Beziehung von B und C, schau Die Anzahl der versteckten Ebenen . Es bietet allgemeine Informationen und Erwähnung von Unteranpassung, Überanpassung.
Der Autor schlägt eine der folgenden Faustregeln vor:
Tags und Links neural-network machine-learning artificial-intelligence