SqueezeNet est un réseau neuronal profond pour la classification d'images, publié en 2016. Il a été développé par des chercheurs de DeepScale, de l'Université de Californie à Berkeley et de l'Université de Stanford. L'objectif de conception principal était de créer un réseau neuronal plus petit avec moins de paramètres tout en maintenant une précision compétitive. Le meilleur modèle SqueezeNet a atteint la même précision qu'AlexNet sur la classification ImageNet, mais avec une taille 510 fois plus petite que le fichier de paramètres de 240 Mo d'AlexNet, le réduisant à seulement 5 Mo.
L'architecture de SqueezeNet repose sur des « modules fire », qui combinent une couche de compression (convolutions 1x1) pour réduire le nombre de canaux, suivie d'une couche d'expansion (un mélange de convolutions 1x1 et 3x3) pour augmenter les cartes de caractéristiques. Cette conception réduit considérablement le nombre de paramètres par rapport aux réseaux convolutifs traditionnels. Le modèle n'est pas une version compressée d'AlexNet, mais une architecture entièrement distincte qui atteint une précision similaire sur l'ensemble de validation ImageNet.
Historique des versions
SqueezeNet a été initialement publié le 22 février 2016, implémenté sur le framework d'apprentissage profond Caffe. Peu après, la communauté open source l'a porté vers d'autres frameworks. Le 26 février 2016, Eddie Bell a publié un port pour Chainer ; le 2 mars 2016, Guo Haria a publié un port pour Apache MXNet ; et le 3 juin 2016, Tammy Yang a publié un port pour Keras. En 2017, des entreprises comme Baidu, Xilinx, Imagination Technologies et Synopsys ont démontré SqueezeNet fonctionnant sur des plateformes à faible consommation, telles que les smartphones, les FPGA et les processeurs personnalisés. Depuis 2018, SqueezeNet est intégré nativement dans des frameworks comme PyTorch, Apache MXNet et Apple CoreML, avec des implémentations tierces disponibles pour TensorFlow.
Relation avec d'autres réseaux
AlexNet
SqueezeNet a été initialement décrit dans l'article « SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size ». AlexNet possède 240 Mo de paramètres, tandis que SqueezeNet n'en a que 5 Mo. Cette petite taille rend SqueezeNet plus facile à intégrer dans la mémoire informatique et à transmettre sur un réseau. Cependant, SqueezeNet n'est pas une version compressée d'AlexNet ; c'est une architecture de réseau neuronal profond entièrement différente. Les deux atteignent approximativement la même précision sur l'ensemble de validation de classification d'images ImageNet.
Compression de modèle
Les techniques de compression de modèle, telles que la quantification et l'élagage, peuvent être appliquées après l'entraînement. Dans l'article sur SqueezeNet, les auteurs ont démontré qu'une technique appelée Deep Compression peut réduire le fichier de paramètres de 5 Mo à 500 Ko. Deep Compression a également été appliquée à d'autres réseaux comme AlexNet et VGG, mais la petite taille de base de SqueezeNet le rend particulièrement adapté au déploiement en périphérie.
Variantes
Certains membres de l'équipe originale de SqueezeNet ont continué à développer des réseaux efficaces en ressources, conduisant à des variantes comme SqueezeNext et d'autres modèles de la famille « squeeze ». La communauté open source a également étendu SqueezeNet à d'autres applications, notamment la segmentation sémantique d'images et le transfert de style. Ces variantes et adaptations maintiennent le principe fondamental d'équilibrer la précision avec l'efficacité des paramètres.