SqueezeNet é uma rede neural profunda para classificação de imagens lançada em 2016. Foi desenvolvida por pesquisadores da DeepScale, da Universidade da Califórnia, Berkeley, e da Universidade de Stanford. O principal objetivo do design era criar uma rede neural menor, com menos parâmetros, mantendo uma precisão competitiva. O modelo SqueezeNet de melhor desempenho alcançou a mesma precisão que o AlexNet na classificação do ImageNet, mas com um tamanho 510 vezes menor que o arquivo de parâmetros de 240 MB do AlexNet, reduzindo-o para apenas 5 MB.
A arquitetura do SqueezeNet depende de "módulos fire", que combinam uma camada de compressão (convoluções 1x1) para reduzir o número de canais, seguida por uma camada de expansão (uma mistura de convoluções 1x1 e 3x3) para aumentar os mapas de características. Esse design reduz drasticamente a contagem de parâmetros em comparação com redes convolucionais tradicionais. O modelo não é uma versão comprimida do AlexNet, mas uma arquitetura totalmente distinta que, por acaso, alcança precisão semelhante no conjunto de dados de validação do ImageNet.
Histórico de Versões
O SqueezeNet foi originalmente lançado em 22 de fevereiro de 2016, implementado sobre o framework de aprendizado profundo Caffe. Pouco depois, a comunidade de código aberto o portou para outros frameworks. Em 26 de fevereiro de 2016, Eddie Bell lançou uma versão para Chainer; em 2 de março de 2016, Guo Haria lançou uma versão para Apache MXNet; e em 3 de junho de 2016, Tammy Yang lançou uma versão para Keras. Em 2017, empresas como Baidu, Xilinx, Imagination Technologies e Synopsys demonstraram o SqueezeNet rodando em plataformas de baixo consumo, como smartphones, FPGAs e processadores personalizados. A partir de 2018, o SqueezeNet é distribuído nativamente em frameworks como PyTorch, Apache MXNet e Apple CoreML, com implementações de terceiros disponíveis para TensorFlow.
Relação com Outras Redes
AlexNet
O SqueezeNet foi originalmente descrito no artigo "SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size." O AlexNet tem 240 MB de parâmetros, enquanto o SqueezeNet tem apenas 5 MB. Esse tamanho pequeno torna o SqueezeNet mais fácil de caber na memória do computador e de transmitir por uma rede. No entanto, o SqueezeNet não é uma versão comprimida do AlexNet; é uma arquitetura de rede neural profunda totalmente diferente. Ambos alcançam aproximadamente a mesma precisão no conjunto de dados de validação de classificação de imagens do ImageNet.
Compressão de Modelos
Técnicas de compressão de modelos, como quantização e poda, podem ser aplicadas após o treinamento. No artigo do SqueezeNet, os autores demonstraram que uma técnica chamada Deep Compression pode reduzir o arquivo de parâmetros de 5 MB para 500 KB. A Deep Compression também foi aplicada a outras redes, como AlexNet e VGG, mas o pequeno tamanho de base do SqueezeNet o torna particularmente adequado para implantação em dispositivos de borda.
Variantes
Alguns membros da equipe original do SqueezeNet continuaram desenvolvendo redes eficientes em recursos, levando a variantes como SqueezeNext e outros modelos da família "squeeze". A comunidade de código aberto também estendeu o SqueezeNet para outras aplicações, incluindo segmentação semântica de imagens e transferência de estilo. Essas variantes e adaptações mantêm o princípio central de equilibrar precisão com eficiência de parâmetros.