Filter pruning for efficient ConvNets

Der Erfolg von CNNs (Convolutional Neural Networks) in verschiedenen Anwendungen geht einher mit einem erheblichen Anstieg der Rechen- und Speicherkosten. Kürzliche Bemühungen zur Reduzierung dieser Overheads beinhalten das Schneiden und Komprimieren der Gewichte verschiedener Schichten, ohne die ursprüngliche Genauigkeit zu beeinträchtigen. Allerdings führt das magnitudenbasierte Schneiden von Gewichten zu einer erheblichen Reduktion der Parameter in den vollständig verbundenen Schichten und kann aufgrund unregelmäßiger Sparsity in den geschnittenen Netzwerken die Rechenkosten in den Faltungsschichten nicht ausreichend senken. Wir stellen eine Beschleunigungsmethode für CNNs vor, bei der wir Filter aus CNNs entfernen, die als geringfügig beeinflussend für die Ausgabegenauigkeit identifiziert wurden. Durch das Entfernen ganzer Filter im Netzwerk zusammen mit ihren verbindenden Merkmalskarten werden die Rechenkosten erheblich reduziert. Im Gegensatz zum Schneiden von Gewichten führt dieser Ansatz nicht zu dünn besetzten Verbindungsmustern. Daher benötigt er keine Unterstützung durch dünn besetzte Faltungsbibliotheken und kann mit existierenden effizienten BLAS-Bibliotheken (Basic Linear Algebra Subprograms) für dichte Matrixmultiplikationen arbeiten. Wir zeigen, dass sogar einfache Filter-Schneidetechniken die Inferenzkosten für VGG-16 um bis zu 34 % und für ResNet-110 auf CIFAR10 um bis zu 38 % reduzieren können, während sie durch das Neutrainieren der Netzwerke nahezu die ursprüngliche Genauigkeit wiederherstellen.