XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks
Resumo do comunicado de imprensa
Pesquisadores do Allen Institute for AI e da University of Washington desenvolveram uma maneira de reduzir drasticamente o tamanho e acelerar as redes neurais de reconhecimento de imagens que tipicamente exigem GPUs caras e que consomem muita energia para funcionar. A equipe, liderada por Mohammad Rastegari e Ali Farhadi, enfrentou um problema simples, mas de grande consequência: redes neurais convolucionais padrão armazenam seus parâmetros internos como números de ponto flutuante de 32 bits e realizam bilhões de multiplicações de alta precisão para classificar uma única imagem, tornando-as impraticáveis para smartphones e outros dispositivos com recursos limitados. Sua solução, descrita em um artigo sobre duas abordagens relacionadas chamadas Binary-Weight-Networks e XNOR-Networks, substitui esses números de precisão total por bits únicos — essencialmente apenas valores positivos ou negativos — e substitui as custosas operações de multiplicação e acumulação por rápidas instruções XNOR e de contagem de bits que as CPUs modernas processam de forma eficiente. A versão de peso binário reduz o uso de memória em cerca de 32 vezes e igualou a precisão de precisão total da AlexNet padrão no benchmark de larga escala ImageNet, enquanto a XNOR-Net, mais agressiva, que binariza tanto os filtros armazenados quanto os dados que fluem pela rede, alcançou operações de convolução cerca de 58 vezes mais rápidas ao custo de alguma precisão. Crucialmente, os pesquisadores introduziram um simples fator de escala — essencialmente a magnitude média dos pesos originais — que compensa parcialmente a informação perdida na binarização, e mostram que esse detalhe é o que separa seus resultados de tentativas anteriores de binarização, que ficavam para trás em mais de 16 pontos percentuais na precisão top-1 do ImageNet. A implicação prática é que modelos competentes de reconhecimento de imagens poderiam ser executados em tempo real em CPUs comuns de telefones ou wearables, sem precisar de processamento na nuvem ou hardware especializado.
resumo
Propomos duas aproximações eficientes para redes neurais convolucionais padrão: Binary-Weight-Networks e XNOR-Networks. Nas Binary-Weight-Networks, os filtros são aproximados com valores binários, resultando em uma economia de memória de 32x. Nas XNOR-Networks, tanto os filtros quanto a entrada para as camadas convolucionais são binários. As XNOR-Networks aproximam convoluções usando primordialmente operações binárias. Isso resulta em operações convolucionais 58x mais rápidas e economia de memória de 32x. As XNOR-Nets oferecem a possibilidade de executar redes de ponta em CPUs (em vez de GPUs) em tempo real. Nossas redes binárias são simples, precisas, eficientes e funcionam em tarefas visuais desafiadoras. Avaliamos nossa abordagem na tarefa de classificação ImageNet. A precisão de classificação com uma versão Binary-Weight-Network da AlexNet é apenas 2,9% menor do que a AlexNet de precisão total (na medida top-1). Comparamos nosso método com métodos recentes de binarização de redes, BinaryConnect e BinaryNets, e superamos esses métodos por grandes margens no ImageNet, mais de 16% na precisão top-1.
citação
@inproceedings{rastegari2016xnor,
title = {XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks},
author = {Rastegari, Mohammad and Ordonez, Vicente and Redmon, Joseph and Farhadi, Ali},
year = {2016},
booktitle = {European Conference on Computer Vision. ECCV 2016},
url = {http://arxiv.org/abs/1603.05279},
}