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?
quelle
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?
Es gibt keinen direkten Weg, um die optimale Anzahl von ihnen zu finden: Menschen versuchen empirisch zu sehen (z. B. durch Kreuzvalidierung). Die gebräuchlichsten Suchmethoden sind zufällige, manuelle und Gittersuchen.
Es gibt fortgeschrittenere Techniken wie Gaußsche Prozesse, z. B. die Optimierung neuronaler Netzwerk-Hyperparameter mit Gaußschen Prozessen für die Klassifizierung von Dialogakten , IEEE SLT 2016 .
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.
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:
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 Lasso
Regularisierungsterm 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.quelle
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.
quelle