Frage

Im Allgemeinen, was Sie bekommen aus einem künstlichen neuronalen Netz erweitern, indem mehr Knoten auf eine verborgenen Schicht oder mehr verborgenen Schichten hinzufügen?

Ist es für mehr Präzision bei der Zuordnung ermöglichen, oder es für mehr Subtilität in den Beziehungen erlaubt es identifizieren kann, oder etwas anderes?

War es hilfreich?

Lösung

Es ist ein sehr gut bekanntes Ergebnis in maschinellem Lernen, das besagt, dass eine einzelne verborgene Schicht genug ist, jeder glatte annähert, begrenzt Funktion (das Papier genannt wurde ‚Multilayer Vors Netzwerke sind universell Approximatoren‘ und es ist jetzt fast 20 Jahre alt). Es gibt mehrere Dinge beachten Sie jedoch.

  • Die einzelne verborgene Schicht muß beliebig breit sein.
  • Das sagt nichts über die Leichtigkeit, mit der eine Annäherung gefunden werden kann; im Allgemeinen große Netzwerke sind schwer richtig zu trainieren und zum Opfer fallen recht häufig zu Überanpassung (die Ausnahme sind sogenannte „Faltungs neuronale Netze“, die eigentlich nur für Sehprobleme gemeint sind).
  • Das sagt auch nichts über die Effizienz der Darstellung. Einige Funktionen erfordern exponentielle Anzahl von versteckten Einheiten, wenn sie mit einer Schicht getan, aber skalieren viel schöner mit mehreren Schichten (für weitere Diskussion dieser Lese Skalierung Lernalgorithmen Auf dem Weg zu AI )

Das Problem mit tiefen neuronalen Netzen ist, dass sie noch härter zu trainieren. Sie am Ende mit sehr, sehr kleinen Steigungen zu den früheren verborgenen Schichten backpropagated werden und das Lernen nicht wirklich überall gehen, vor allem, wenn Gewichten klein initialisiert werden (wenn Sie sie initialisieren größeren Größe sein, das Sie häufig in einem schlechten lokalen Minima stecken) . Es gibt einige Techniken für die „Pre-Training“ wie die, die in diesem Google TechTalk von Geoff Hinton versuchen, die um diese zu erhalten.

Andere Tipps

Das ist sehr interessante Frage, aber es ist nicht so leicht zu beantworten. Es hängt von dem Problem Sie versuchen zu lösen und welche neuronalen Netzwerk, das Sie versuchen, zu verwenden. Es gibt mehrere neuronale Netzwerktypen.

ich allgemein ist es nicht so klar, dass mehr Knoten, die mehr Präzision entspricht. Forschung zeigt, dass Sie meist nur eine verborgene Schicht benötigen. Die numer der Knoten sollten die minimalen numer von Knoten, die ein Problem zu lösen sind erforderlich. Wenn Sie nicht genug von ihnen haben - Sie werden nicht Lösung erreichen.

Von der anderen Seite - wenn Sie die Anzahl der Knoten erreicht haben, die gut Lösung zu lösen -. Sie können mehr und mehr von ihnen hinzuzufügen, und Sie werden keine weiteren Fortschritte bei der Ergebnisschätzung siehe

Das ist, warum es so viele Arten von neuronalen Netzen sind. Sie versuchen, verschiedene Arten von Problemen zu lösen. Sie haben also NN statische Probleme zu lösen, zeitbezogene Probleme zu lösen und so ein. Die Anzahl der Knoten ist nicht so wichtig wie das Design von ihnen.

Wenn Sie eine verborgene Schicht ist, dass Sie eine kombinierte Funktion des Eingangs schaffen. So ist das Problem, das durch mehr Merkmale des bestehenden Eingangs in Angriff genommen besser, oder durch übergeordnete Funktionen, die aus der Kombination von vorhandenen Funktionen kommen? Dies ist der Kompromiss für ein Standard-Feedforward-Netzwerk.

Sie haben eine theoretische Gewissheit, dass jede Funktion kann durch ein neuronales Netz mit zwei verborgenen Schichten und nichtlineare Aktivierung dargestellt werden.

Bedenken Sie außerdem, zusätzliche Ressourcen für die Förderung, statt mehr Knoten hinzugefügt, wenn Sie der entsprechenden Topologie nicht sicher sind.

Sehr grobe Faustregeln

im Allgemeinen mehr Elemente pro Schicht für größere Eingangsvektoren.

mehr Schichten können Sie mehr nichtlineare Systeme modellieren.

Wenn die Art von Netzwerk Sie verwenden Verzögerungen bei der Ausbreitung hat, können mehr Schichten Modellierung von Zeitreihen ermöglichen. Achten Sie darauf, Zeit-Jitter in den Verzögerungen haben, oder es wird nicht sehr gut funktionieren. Wenn dies nur mit dir gobbledegook, ignoriert es.

Weitere Schichten können Sie wiederkehrende Merkmale ein. Dies kann für Diskriminierung Aufgaben sehr nützlich sein. Sie ANN Implementierung meint dies nicht zulassen.

HTH

Die Anzahl der Einheiten pro Schicht versteckt Konten für das Potenzial des ANN eine beliebig komplexe Funktion zu beschreiben. Einige (komplizierten) Funktionen können viele versteckte Knoten erfordern, oder möglicherweise mehr als eine verborgene Schicht.

Wenn eine Funktion lassen sich grob durch eine bestimmte Anzahl von verborgenen Einheiten angenähert werden, alle zusätzlichen Knoten wird eine höhere Genauigkeit bieten ... aber das ist nur wahr, wenn die Ausbildung verwendet, um Proben sind genug, um diese zusätzlich zu rechtfertigen - sonst was passieren wird, ist „Überkonvergenz“. Überkonvergenz bedeutet, dass Ihr ANN seine Verallgemeinerung Fähigkeiten verloren hat, weil es auf den jeweiligen Proben überbetont hat.

Im Allgemeinen ist es am besten, die weniger versteckten Einheiten möglich zu verwenden, wenn das resultierende Netzwerk gute Ergebnisse liefern kann. Die zusätzlichen Trainingsmuster benötigten mehr versteckten Knoten rechtfertigen nicht ohne weiteres in den meisten Fällen gefunden werden, und die Genauigkeit ist nicht die starke Seite NNs.

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