thumb|362x362px|Arquitetura da AlexNet e uma possível modificação. No topo está metade da AlexNet original, que é dividida em duas metades, uma para cada GPU. Na parte inferior está a mesma arquitetura, mas a camada de "projeção" final é substituída por outra que projeta para menos saídas. Se congelarmos o modelo restante e fizermos o ajuste fino apenas da última camada, podemos obter outro modelo de visão a um custo significativamente menor do que treinar um do zero thumb|245x245px|Diagrama de blocos da LeNet (esquerda) e AlexNet (direita) 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. 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.

Os três formaram a equipe SuperVision e inscreveram a AlexNet no ImageNet Large Scale Visual Recognition Challenge em 30 de setembro de 2012. 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. 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.

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). Estas GPUs têm um desempenho teórico de 1,581 TFLOPS em float32 e custavam US$ 500 no lançamento. Cada passagem à frente (forward pass) da AlexNet exigia aproximadamente 1,43 GFLOPs. 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.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.

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 thumb|Comparação de diferentes arquiteturas de redes neurais Em 1980, Kunihiko Fukushima propôs uma CNN inicial chamada neocognitron. O modelo foi treinado por um algoritmo de aprendizado não supervisionado. A LeNet-5 (Yann LeCun et al., 1989) 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), e para processamento de imagens, foi usado pela primeira vez no Cresceptron de 1992.

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. (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. 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. 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. De acordo com o artigo da AlexNet, 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, 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.

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.

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.

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". 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".