AlexNet
| AlexNet | |
|---|---|
| Desenvolvedores | Alex Krizhevsky, Ilya Sutskever e Geoffrey Hinton |
| Lançamento inicial | 28 de junho de 2011 |
| Repositório | code |
| Escrito em | CUDA, C++ |
| Tipo | Rede neural convolucional |
| Licença | Nova Licença BSD |


A AlexNet é uma arquitetura de rede neural convolucional desenvolvida para tarefas de classificação de imagens, alcançando destaque notável por meio do seu desempenho no ImageNet Large Scale Visual Recognition Challenge (ILSVRC). Ela classifica imagens em 1.000 categorias distintas de objetos e é considerada a primeira aplicação amplamente reconhecida de redes convolucionais profundas no reconhecimento visual em larga escala.
Desenvolvido em 2012 por Alex Krizhevsky em colaboração com Ilya Sutskever e o seu orientador de doutorado Geoffrey Hinton na Universidade de Toronto, o modelo contém 60 milhões de parâmetros e 650.000 neurônios.[1] O resultado principal do artigo original foi que a profundidade do modelo era essencial para o seu alto desempenho, o que era computacionalmente caro, mas viabilizado devido à utilização de unidades de processamento gráfico (GPUs) durante o treinamento.[1]
Os três formaram a equipe SuperVision e inscreveram a AlexNet no ImageNet Large Scale Visual Recognition Challenge em 30 de setembro de 2012.[2] A rede obteve uma taxa de erro top-5 de 15,3% para vencer o concurso, mais de 10,8% à frente do segundo colocado.
A arquitetura influenciou um grande número de trabalhos subsequentes em aprendizado profundo (deep learning), especialmente na aplicação de redes neurais à visão computacional.
Arquitetura
A AlexNet contém oito camadas: as cinco primeiras são camadas convolucionais, algumas delas seguidas por camadas de agrupamento máximo (max-pooling), e as três últimas são camadas totalmente conectadas. A rede, exceto a última camada, é dividida em duas cópias, cada uma executada numa GPU, porque a rede não cabia na VRAM de uma única GPU Nvidia GTX 580 de 3GB.[1]: Toda a estrutura pode ser escrita como:
(CONV → RN → MP)2 → (CONV3 → MP) → (FC → DO)2 → Linear → softmax
onde:
- CONV = camada convolucional (com ativação ReLU)
- RN = normalização de resposta local
- MP = agrupamento máximo (max-pooling)
- FC = camada totalmente conectada (com ativação ReLU)
- Linear = camada totalmente conectada (sem ativação)
- DO = dropout
Notavelmente, as camadas convolucionais 3, 4 e 5 foram conectadas umas às outras sem qualquer agrupamento (pooling) ou normalização. Utilizou-se a função de ativação ReLU não saturante, que obteve um treinamento melhor do que a tanh e a sigmoide.[1]
Treinamento
O conjunto de treinamento do ImageNet continha 1,2 milhão de imagens. O modelo foi treinado por 90 épocas ao longo de um período de cinco a seis dias usando duas GPUs Nvidia GTX 580 (3GB cada).[1] Estas GPUs têm um desempenho teórico de 1,581 TFLOPS em float32 e custavam US$ 500 no lançamento.[3] Cada passagem à frente (forward pass) da AlexNet exigia aproximadamente 1,43 GFLOPs.[4] Com base nestes valores, as duas GPUs juntas eram teoricamente capazes de realizar mais de 2.200 passagens à frente por segundo sob condições ideais.
As imagens do conjunto de dados foram armazenadas no formato JPEG. Elas ocupavam 27 GB de disco. A rede neural ocupava 2 GB de RAM em cada GPU, e cerca de 5 GB de RAM do sistema durante o treinamento. As GPUs eram responsáveis pelo treinamento, enquanto as CPUs eram responsáveis por carregar as imagens do disco e pelo aumento de dados (data augmentation) das imagens.[5]
A AlexNet foi treinada com descida de gradiente com momento com um tamanho de lote (batch size) de 128 exemplos, momento de 0,9 e decaimento de peso de 0,0005. A taxa de aprendizado começou em 10−2 e foi diminuída manualmente 10 vezes sempre que o erro de validação parecia parar de diminuir. Foi reduzida três vezes durante o treinamento, terminando em 10−5.
Foram utilizadas duas formas de aumento de dados, ambas calculadas em tempo real na CPU, sendo assim "computacionalmente gratuitas":
- Cada imagem do ImageNet foi primeiro dimensionada, para que o seu lado mais curto tivesse o comprimento de 256. Em seguida, o fragmento central de 256×256 foi cortado e normalizado (dividindo os valores dos pixels de forma a ficarem entre 0 e 1, depois subtraindo por [0.485, 0.456, 0.406], e depois dividindo por [0.229, 0.224, 0.225]. Estas são a média e os desvios padrão do ImageNet, o que branqueia os dados de entrada).
- Extração de fragmentos aleatórios de 224×224 (e os seus reflexos horizontais) do recorte de 256×256. Isto aumenta o tamanho do conjunto de treinamento em 2048 vezes.
- Deslocamento aleatório do valor RGB de cada imagem ao longo das três direções principais dos valores RGB dos seus pixels.
A resolução 224×224 foi escolhida porque 256 - 16 - 16 = 224, o que significa que, dada uma imagem de 256×256, enquadrar uma largura de 16 nos seus 4 lados resulta numa imagem de 224×224.
O modelo utilizou normalização de resposta local e regularização por dropout com probabilidade de abandono de 0,5.
Todos os pesos foram inicializados como gaussianas com média 0 e desvio padrão de 0,01. Os vieses (biases) nas camadas convolucionais 2, 4, 5 e em todas as camadas totalmente conectadas foram inicializados como constantes de valor 1 para evitar o problema da morte da ReLU.
No momento do teste, para usar uma AlexNet treinada com o intuito de prever a classe de uma imagem, essa imagem é primeiramente dimensionada para que o seu lado mais curto tenha o comprimento de 256. Depois, o fragmento central de 256×256 é recortado. Em seguida, calculam-se cinco fragmentos de 224 × 224 (os quatro recortes dos cantos e o do centro), assim como os seus reflexos horizontais, totalizando 10 recortes. As probabilidades previstas da rede sobre os 10 recortes são calculadas em média, e essa é a probabilidade final prevista.
Competição ImageNet
A versão que utilizaram para participar na competição ImageNet de 2012 foi um conjunto (ensemble) de 7 modelos AlexNet.
Especificamente, treinaram 5 AlexNets com a arquitetura descrita anteriormente (com 5 camadas CONV) no conjunto de treinamento ILSVRC-2012 (1,2 milhão de imagens). Treinaram também 2 AlexNets variantes, obtidas pela adição de uma camada CONV extra sobre a última camada de agrupamento (pooling). Estas foram treinadas inicialmente em todo o lançamento do ImageNet Fall 2011 (15 milhões de imagens em 22 mil categorias) e depois sofreram um ajuste fino no conjunto de treinamento do ILSVRC-2012. O sistema final de 7 AlexNets foi usado calculando a média das suas probabilidades previstas.
História
Trabalhos anteriores

Em 1980, Kunihiko Fukushima propôs uma CNN inicial chamada neocognitron.[6][7] O modelo foi treinado por um algoritmo de aprendizado não supervisionado. A LeNet-5 (Yann LeCun et al., 1989)[8][9] foi treinada por aprendizado supervisionado com algoritmo de retropropagação (backpropagation), com uma arquitetura que é essencialmente a mesma da AlexNet em pequena escala.
O agrupamento máximo foi utilizado em 1990 para processamento de fala (essencialmente uma CNN unidimensional),[10] e para processamento de imagens, foi usado pela primeira vez no Cresceptron de 1992.[11]
Durante a década de 2000, à medida que o hardware de GPU melhorava, alguns pesquisadores adaptaram-no para a computação de propósito geral, incluindo o treinamento de redes neurais. (K. Chellapilla et al., 2006) treinaram uma CNN em GPU que foi 4 vezes mais rápida do que uma implementação equivalente em CPU.[12] (Raina et al., 2009) treinaram uma rede de crença profunda (deep belief network) com 100 milhões de parâmetros numa Nvidia GeForce GTX 280 a uma velocidade até 70 vezes maior do que em CPUs.[13] Uma CNN profunda de (Dan Cireșan et al., 2011) no IDSIA revelou-se 60 vezes mais rápida que uma implementação de CPU idêntica.[14] Entre 15 de maio de 2011 e 10 de setembro de 2012, a CNN deles venceu quatro competições de imagens e alcançou o estado da arte para múltiplos bancos de dados de imagens.[15][16][17] De acordo com o artigo da AlexNet,[1] a rede anterior de Cireșan é "um pouco semelhante". Ambas foram escritas em CUDA para serem executadas na GPU.
Visão computacional
Durante o período de 1990 a 2010, as redes neurais não eram melhores do que outros métodos de aprendizado de máquina, como regressão de kernel, máquinas de vetores de suporte, AdaBoost, estimação estruturada,[18] entre outros. Para a visão computacional em particular, grande parte do progresso derivou da extração manual de características (feature engineering), como recursos SIFT, recursos SURF, recursos HoG, saco de palavras visuais, etc. Era uma posição minoritária na visão computacional acreditar que as características podiam ser aprendidas diretamente dos dados, uma posição que se tornou dominante após a AlexNet.[19]
Em 2011, Geoffrey Hinton começou a contactar os seus colegas perguntando: "O que tenho de fazer para vos convencer de que as redes neurais são o futuro?", e Jitendra Malik, um cético em relação às redes neurais, recomendou o desafio PASCAL Visual Object Classes. Hinton retorquiu que o conjunto de dados deles era demasiado reduzido, então Malik recomendou-lhe o desafio do ImageNet.[20]
O conjunto de dados ImageNet, que se tornou central para o sucesso da AlexNet, foi criado por Fei-Fei Li e os seus colaboradores com início em 2007. Com o objetivo de fazer avançar o reconhecimento visual através de dados em larga escala, Li construiu um conjunto de dados muito maior do que os esforços anteriores, contendo em última análise mais de 14 milhões de imagens rotuladas em 22.000 categorias. As imagens foram rotuladas usando o Amazon Mechanical Turk e organizadas através da hierarquia do WordNet. Inicialmente recebido com ceticismo, o ImageNet tornou-se mais tarde a base do ImageNet Large Scale Visual Recognition Challenge (ILSVRC) e um recurso crucial na ascensão do aprendizado profundo.[21]
Sutskever e Krizhevsky eram ambos alunos de pós-graduação. Antes de 2011, Krizhevsky já tinha escrito o cuda-convnet para treinar pequenas CNNs no CIFAR-10 com uma única GPU. Sutskever convenceu Krizhevsky, que era proficiente em GPGPU, a treinar uma CNN no ImageNet, com Hinton servindo como investigador principal. Então, Krizhevsky estendeu o cuda-convnet para treinamento multi-GPU. A AlexNet foi treinada em 2 Nvidia GTX 580 no quarto de Krizhevsky, na casa dos seus pais. Durante 2012, Krizhevsky realizou otimização de hiperparâmetros na rede até que ela venceu a competição ImageNet no final desse mesmo ano. Hinton comentou que, "O Ilya achou que devíamos fazer isso, o Alex fez funcionar, e eu ganhei o Prémio Nobel".[22] Na European Conference on Computer Vision de 2012, na sequência da vitória da AlexNet, o pesquisador Yann LeCun descreveu o modelo como "um ponto de viragem inequívoco na história da visão computacional".[21]
O sucesso da AlexNet em 2012 foi viabilizado pela convergência de três desenvolvimentos que amadureceram ao longo da década anterior: conjuntos de dados rotulados em larga escala, computação GPU de propósito geral e melhores métodos de treinamento para redes neurais profundas. A disponibilidade do ImageNet forneceu os dados necessários para o treinamento de modelos profundos numa ampla gama de categorias de objetos. Avanços na programação de GPUs através da plataforma CUDA da Nvidia possibilitaram o treinamento prático de modelos de grande dimensão. Em conjugação com melhoramentos algorítmicos, esses fatores permitiram que a AlexNet atingisse um alto desempenho em benchmarks de reconhecimento visual em larga escala.[21] Refletindo sobre a sua relevância mais de uma década depois, Fei-Fei Li declarou numa entrevista em 2024: "Aquele momento foi bastante simbólico para o mundo da IA porque três elementos fundamentais da IA moderna convergiram pela primeira vez".[21]
Embora a AlexNet e a LeNet compartilhem essencialmente a mesma arquitetura e o mesmo algoritmo, a AlexNet é muito maior do que a LeNet e foi treinada num conjunto de dados muito mais vasto e em hardware significativamente mais rápido. Ao longo de um período de 20 anos, tanto os dados quanto a capacidade de computação tornaram-se baratos e disponíveis.[19]
Trabalhos subsequentes
A AlexNet é um projeto de grande impacto, resultando em muitos trabalhos posteriores no uso de CNNs para a visão computacional e no uso de GPUs para acelerar o aprendizado profundo. Até ao início de 2025, o artigo da AlexNet tinha sido citado mais de 184.000 vezes, de acordo com o Google Scholar.[23]
Na altura da sua publicação, não havia qualquer estrutura disponível para o treinamento e inferência de redes neurais baseadas em GPU. A base de código da AlexNet foi lançada sob uma licença BSD e foi comumente utilizada na investigação de redes neurais durante vários anos posteriores.[24][19]
Numa direção, os trabalhos subsequentes visavam treinar CNNs cada vez mais profundas que alcançassem um desempenho progressivamente maior no ImageNet. Nesta linha de investigação encontram-se a GoogLeNet (2014), VGGNet (2014), a Highway network (2015) e a ResNet (2015). Outra direção visava reproduzir o desempenho da AlexNet a um custo menor. Nesta vertente de investigação situam-se a SqueezeNet (2016), a MobileNet (2017) e a EfficientNet (2019).
Geoffrey Hinton, Ilya Sutskever e Alex Krizhevsky formaram a DNNResearch logo em seguida e venderam a empresa, e o código-fonte da AlexNet juntamente com ela, para a Google. Houve melhoramentos e re-implementações da AlexNet, mas a versão original de 2012, no momento da sua vitória no ImageNet, tinha sido lançada sob a licença BSD-2 por intermédio do Computer History Museum.[25]
Ver também
Referências
- 1 2 3 4 5 6 Krizhevsky, Alex; Sutskever, Ilya; Hinton, Geoffrey E. (24 de maio de 2017). «ImageNet classification with deep convolutional neural networks» (PDF). Communications of the ACM. 60 (6): 84–90. ISSN 0001-0782. doi:10.1145/3065386

- ↑ «ImageNet Large Scale Visual Recognition Competition 2012 (ILSVRC2012)». image-net.org
- ↑ «NVIDIA GeForce GTX 580 Specs». TechPowerUp (em inglês). 12 de novembro de 2024. Consultado em 12 de novembro de 2024Categoria:!CS1 inglês-fontes em língua (en)
- ↑ «calflops: a FLOPs and Params calculate tool for neural networks». pypi.org. Consultado em 10 de dezembro de 2024
- ↑ Palestra da equipe SuperVision SuperVision team invited talk no workshop do ImageNet Large Scale Visual Recognition Challenge 2012 (ILSVRC2012) em 12-10-2012, realizado na ECCV 2012, em Florença, Itália.
- ↑ Fukushima, K. (2007). «Neocognitron». Scholarpedia. 2 (1): 1717. Bibcode:2007SchpJ...2.1717F. doi:10.4249/scholarpedia.1717

- ↑ Fukushima, Kunihiko (1980). «Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern Recognition Unaffected by Shift in Position» (PDF). Biological Cybernetics. 36 (4): 193–202. PMID 7370364. doi:10.1007/BF00344251. Consultado em 16 de novembro de 2013
- ↑ LeCun, Y.; Boser, B.; Denker, J. S.; Henderson, D.; Howard, R. E.; Hubbard, W.; Jackel, L. D. (1989). «Backpropagation Applied to Handwritten Zip Code Recognition» (PDF). MIT Press - Journals. Neural Computation. 1 (4): 541–551. ISSN 0899-7667. OCLC 364746139. doi:10.1162/neco.1989.1.4.541
- ↑ LeCun, Yann; Léon Bottou; Yoshua Bengio; Patrick Haffner (1998). «Gradient-based learning applied to document recognition» (PDF). Proceedings of the IEEE. 86 (11): 2278–2324. CiteSeerX 10.1.1.32.9552
. doi:10.1109/5.726791. Consultado em 7 de outubro de 2016 - ↑ Yamaguchi, Kouichi; Sakamoto, Kenji; Akabane, Toshio; Fujimoto, Yoshiji (Novembro de 1990). A Neural Network for Speaker-Independent Isolated Word Recognition. First International Conference on Spoken Language Processing (ICSLP 90). Kobe, Japão. Consultado em 4 de setembro de 2019. Arquivado do original em 7 de março de 2021
- ↑ Weng, J.; Ahuja, N.; Huang, T.S. (1992). Cresceptron: a self-organizing neural network which grows adaptively (PDF). 1. IEEE. pp. 576–581. ISBN 978-0-7803-0559-5. doi:10.1109/IJCNN.1992.287150
- ↑ Kumar Chellapilla; Sidd Puri; Patrice Simard (2006). «High Performance Convolutional Neural Networks for Document Processing». In: Lorette, Guy. Tenth International Workshop on Frontiers in Handwriting Recognition. [S.l.]: Suvisoft
- ↑ Raina, Rajat; Madhavan, Anand; Ng, Andrew Y. (14 de junho de 2009). Large-scale deep unsupervised learning using graphics processors (em inglês). ACM. pp. 873–880. ISBN 978-1-60558-516-1. doi:10.1145/1553374.1553486Categoria:!CS1 inglês-fontes em língua (en)
- ↑ Cireșan, Dan; Ueli Meier; Jonathan Masci; Luca M. Gambardella; Jurgen Schmidhuber (2011). «Flexible, High Performance Convolutional Neural Networks for Image Classification» (PDF). Proceedings of the Twenty-Second International Joint Conference on Artificial Intelligence-Volume Volume Two. 2: 1237–1242. Consultado em 17 de novembro de 2013
- ↑ «IJCNN 2011 Competition result table». OFFICIAL IJCNN2011 COMPETITION (em inglês). 2010. Consultado em 14 de janeiro de 2019Categoria:!CS1 inglês-fontes em língua (en)
- ↑ Schmidhuber, Jürgen (17 de março de 2017). «History of computer vision contests won by deep CNNs on GPU» (em inglês). Consultado em 14 de janeiro de 2019Categoria:!CS1 inglês-fontes em língua (en)
- ↑ Cireșan, Dan; Meier, Ueli; Schmidhuber, Jürgen (Junho de 2012). «Multi-column deep neural networks for image classification». 2012 IEEE Conference on Computer Vision and Pattern Recognition. New York, NY: Institute of Electrical and Electronics Engineers (IEEE). pp. 3642–3649. CiteSeerX 10.1.1.300.3283
. ISBN 978-1-4673-1226-4. OCLC 812295155. arXiv:1202.2745
. doi:10.1109/CVPR.2012.6248110 - ↑ Taskar, Ben; Guestrin, Carlos; Koller, Daphne (2003). «Max-Margin Markov Networks». MIT Press. Advances in Neural Information Processing Systems. 16
- 1 2 3 Zhang, Aston; Lipton, Zachary; Li, Mu; Smola, Alexander J. (2024). «8.1. Deep Convolutional Neural Networks (AlexNet)». Dive into deep learning. Cambridge New York Port Melbourne New Delhi Singapore: Cambridge University Press. ISBN 978-1-009-38943-3
- ↑ Li, Fei Fei (2023). The worlds I see: curiosity, exploration, and discovery at the dawn of AI First ed. New York: Moment of Lift Books ; Flatiron Books. ISBN 978-1-250-89793-0
- 1 2 3 4 «How a stubborn computer scientist accidentally launched the deep learning boom». Ars Technica. 11 de novembro de 2024. Consultado em 24 de março de 2025
- ↑ hhackford (20 de março de 2025). «CHM Releases AlexNet Source Code». CHM (em inglês). Consultado em 22 de março de 2025Categoria:!CS1 inglês-fontes em língua (en)
- ↑ Artigo da AlexNet no Google Scholar
- ↑ Krizhevsky, Alex (18 de julho de 2014). «cuda-convnet: High-performance C++/CUDA implementation of convolutional neural networks». Google Code Archive. Consultado em 20 de outubro de 2024
- ↑ «computerhistory/AlexNet-Source-Code». Computer History Museum. 22 de março de 2025. Consultado em 22 de março de 2025
| Parte da série sobre |
| Inteligência artificial (IA) |
|---|
