Möglich, eine bessere ANN durch Entfernen einiger Verbindungen zu erhalten?

11

Ich habe mich gefragt, ob es unter bestimmten Umständen möglich ist, dass ANNs eine bessere Leistung erbringen, wenn Sie einige Verbindungen auf ihnen entfernen, wie zum Beispiel:

Aufbau eines ANN durch parallele Verwendung von zwei mehrschichtigen ANNs A und B (gleiche Eingangs- und Ausgangsknoten), die einige "Kommunikations" -Verbindungen zwischen den verborgenen Schichten von A und B hinzufügen?

Könnte man bessere Verallgemeinerungsergebnisse erzielen?

Wird dies in der Praxis irgendwie verwendet oder verwendet man immer nur mehrschichtige, vollständig verbundene Netzwerke?

Dünner Jim
quelle

Antworten:

7

Ja, es ist möglich. Einige Leute haben sich dieses Problem im Detail angesehen. Hier ist ein altes Papier über eine Methode, um dies zu tun: Optimale Hirnschädigung

carlosdc
quelle
Warum ist das Trennen der Knoten besser als das Regularisieren? Ich dachte, mit der Regularisierung müssen die Verbindungen nicht beschnitten werden - die "unnötigen" bekommen nur sehr kleine Gewichte und das war's.
andreister
@andreister Ich denke nicht, dass es besser ist als Regularisierung. Ich denke, es ist eine (frühe) Alternative zur Regularisierung. Es ist eine sehr alte Zeitung, deren Regularisierung Mitte bis Ende der neunziger Jahre in der ML zum Mainstream wurde.
Carlosdc
7

Als Faustregel gilt, dass kleine und / oder spärliche Netzwerke besser verallgemeinern. Sie können Ihren Trainingsalgorithmus unnötige Verbindungen innerhalb eines Netzwerks fester Größe aussortieren lassen, indem Sie eine Form des Gewichtsabfalls anwenden, oder Sie können einen Algorithmus anwenden, der darauf abzielt, die Netzwerkarchitektur / -topologie selbst zu optimieren, indem unnötige Eingaben, versteckte Knoten oder Verbindungen entfernt werden.

Schauen Sie sich diese Referenzen an, um Ideen und Ausgangspunkte für weitere Forschungen zu erhalten, oder untersuchen Sie die Verwendung evolutionärer Algorithmen zum Entwerfen, Beschneiden und Optimieren von Architekturen.

  1. Castellano, G., Fanelli, AM (2000) 'Variablenauswahl unter Verwendung neuronaler Netzwerkmodelle', Neurcomputing (31)
  2. Ji C., Psaltis D. (1997) "Netzwerksynthese durch datengetriebenes Wachstum und Zerfall", Neural Networks Vol. 10, Nr. 6, S. 1133–1141
  3. Narasimha PL et al. (2008) "Eine integrierte Wachstumsschnittmethode für das Feedforward-Netzwerktraining", Neurocomputing (71), S. 2831-2847
  4. Schuster, A. (2008) 'Robust Arti fi cial Neural Network Architectures', International Journal of Computational Intelligence (4: 2), S. 98-104
Graham Jones
quelle
Ich würde wirklich gerne mehr über den Teil "Antwort auf die Verwendung von evolutionären Algorithmen zum Entwerfen, Beschneiden und Optimieren von Architekturen" in der Antwort erfahren. Vielleicht werde ich eine Frage dazu stellen!
Artem Kaznatcheev
6

In den meisten Fällen erhalten Sie ein besseres Netzwerk, wenn Sie nicht benötigte Verbindungen entfernen. Es ist leicht, das Netzwerk zu überanstrengen (zu überpassen). In diesem Fall ist die Leistung des Validierungsdatensatzes schlecht.

Das Beschneiden unnötiger Verbindungen verringert höchstwahrscheinlich die Wahrscheinlichkeit eines Übertrainings. Bitte sehen Sie: http://en.wikipedia.org/wiki/Overfitting .

jb.
quelle
5

Ja, es ist möglich. Wir können die Verbindung zwischen Recheneinheiten, Anzahl der verborgenen Schichten, Einheiten pro verborgener Schicht usw. als Hyperparameter betrachten. Durch eine Reihe von Experimenten können optimale Werte für diese Parameter ermittelt werden.

Beispielsweise:

Sie können Ihren Datensatz wie folgt aufteilen: Trainingssatz 60% der Daten, Kreuzvalidierung 20% ​​der Daten, Testen 20% der Daten,

Trainieren Sie dann Ihre NN mithilfe des Trainingsdatensatzes und der Optimierungsparameter mithilfe des Kreuzvalidierungsdatensatzes.

Schließlich können Sie Ihren Testdatensatz verwenden, um die Leistung Ihres NN zu bewerten.

Upul
quelle