Wie finde ich die optimale Anzahl von Neuronen pro Schicht?


28

Woher wissen Sie beim Schreiben Ihres Algorithmus, wie viele Neuronen Sie pro Ebene benötigen? Gibt es Methoden, um die optimale Anzahl zu finden, oder ist dies eine Faustregel?

Antworten:



7

Für eine intelligentere Herangehensweise als zufällige oder erschöpfende Suchen können Sie einen genetischen Algorithmus wie NEAT http://nn.cs.utexas.edu/?neat ausprobieren . Dies ist jedoch keine Garantie dafür, ein globales Optimum zu finden. Es handelt sich lediglich um einen auf der Leistung basierenden Optimierungsalgorithmus und ist daher anfällig dafür, in einem lokalen Optimum hängen zu bleiben.


1
Wird sich sowieso einem globalen Optimum annähern.
Jjmerelo

4

Paper Szegedy C, Vanhoucke V, Ioffe S. et al. Überdenken der Inception-Architektur für Computer Vision [J]. arXiv preprint arXiv: 1512.00567, 2015. gibt einige allgemeine Gestaltungsprinzipien an:

  1. Vermeiden Sie Darstellungsengpässe, insbesondere zu Beginn des Netzwerks.

  2. Gleichen Sie die Breite und Tiefe des Netzwerks aus. Die optimale Leistung des Netzwerks kann durch ein Gleichgewicht zwischen der Anzahl der Filter pro Stufe und der Tiefe des Netzwerks erreicht werden. Das Erhöhen sowohl der Breite als auch der Tiefe des Netzwerks kann zu Netzwerken mit höherer Qualität beitragen. Die optimale Verbesserung für einen konstanten Rechenaufwand kann jedoch erreicht werden, wenn beide gleichzeitig erhöht werden. Das Rechenbudget sollte daher in ausgewogener Weise zwischen der Tiefe und der Breite des Netzwerks aufgeteilt werden.

Diese Vorschläge können Ihnen jedoch nicht die optimale Anzahl von Neuronen in einem Netzwerk bringen.

Es gibt jedoch noch einige Untersuchungen zur Modellkomprimierung, z. B. zum strukturierten Sparsity-Lernen (SSL) von Deep Neural Networks , SqueezeNet und Pruning-Netzwerken , die Aufschluss darüber geben , wie die Neuronen pro Einzelschicht optimiert werden können.

Insbesondere beim strukturierten Sparsity-Lernen von tiefen neuronalen Netzen wird ein Group LassoRegularisierungsterm in die Verlustfunktion eingefügt, um die Strukturen (dh Filter, Kanäle, Filterformen und Schichttiefe) von DNNs zu regularisieren, dh einige Komponenten auf Null zu setzen ( dh Filter, Kanäle, Filterformen und Schichttiefe) der Netzstruktur und erzielt eine bemerkenswerte Kompaktheit und Beschleunigung des Netzes, während ein geringer Klassifizierungsgenauigkeitsverlust erhalten bleibt.


3

Sie wissen, wenn Sie zu viele Neuronen haben, ist, wenn Sie über die Anpassung kommen. Das bedeutet, dass es nicht gut funktioniert, weil NN versucht, das perfekteste Match zu aktivieren, das unmöglich ist. Wie zwei verschiedene Katzen mit der gleichen Anzahl von Atomen, oder zu sagen, es ist ein Detektor NN, der nur auf einem Bild Ihrer Haustierkatze und sonst nichts aktiviert wird. Sie möchten einen größeren Bereich für die Aktivierung von nn. Wie auf jedem Bild von Katze.

Überanpassung ist ein Problem, das nicht wirklich schnell behoben werden kann. Sie können mit zu wenig beginnen und dann weitere hinzufügen. Oder fangen Sie mit viel an und entfernen Sie sie dann, bis es richtig funktioniert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.