GoogLeNet (Inception)

programador
1.1.2.4 – Redes Neurais – Visao Computacional
1.1.2.4.4 – Arquiteturas CNN Profundas (Deep CNNs)
1.1.2.4.4.1 – LeNet-5
1.1.2.4.4.2 – AlexNet
1.1.2.4.4.3 – VGGNet
1.1.2.4.4.4 – ResNet
1.1.2.4.4.5 – GoogLeNet (Inception)
1.1.2.4.4.6 – MobileNet
1.1.2.4.4.7 – Vision Transformer (ViT)
1.1.2.4.4.8 – Tecnicas de Treinamento
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

A GoogLeNet venceu o desafio ImageNet 2014 com uma arquitetura inovadora. Diferentemente de redes profundas como a VGG, ela foca na largura. Primeiramente, a GoogLeNet introduziu o módulo Inception como bloco fundamental. Este módulo aplica múltiplos filtros de diferentes tamanhos em paralelo. Por exemplo, convulsões 1×1, 3×3 e 5×5 ocorrem simultaneamente. Além disso, um pooling 3×3 também atua no mesmo estágio. Os resultados de todos os ramos se concatenam em uma única saída. Consequentemente, a rede captura características em diferentes escalas. Portanto, a GoogLeNet demonstra maior eficiência em parâmetros do que a VGG.

módulo inception e redução de dimensionalidade

O módulo Inception inclui um truque inteligente de redução de dimensionalidade. Primeiramente, camadas convolucionais 1×1 precedem as convoluções 3×3 e 5×5. Estas camadas 1×1 reduzem o número de canais de entrada drasticamente. Por exemplo, elas diminuem de 256 canais para apenas 64 canais. Este processo reduz significativamente o custo computacional. Além disso, a camada 1×1 adiciona não-linearidade à rede. A combinação de múltiplos ramos se concatena no final do módulo. Diferentes versões do Inception evoluíram ao longo do tempo. O Inception-v3, por exemplo, fatorou as convoluções 5×5 em duas convoluções 3×3. Isto tornou a rede ainda mais eficiente.

classificadores auxiliares e regularização

A GoogLeNet utiliza classificadores auxiliares durante o treinamento. Estes classificadores se conectam a camadas intermediárias da rede. Primeiramente, eles ajudam a combater o problema do gradiente vanishing. Redes muito profundas sofrem com gradientes que desaparecem nas camadas iniciais. Os classificadores auxiliares fornecem sinais de erro adicionais nestas camadas. Além disso, eles atuam como um mecanismo de regularização. Eles incentivam as camadas intermediárias a aprender características discriminativas. Durante o teste, descartamos estes classificadores auxiliares. Apenas o classificador final da saída atua na predição. Portanto, os auxiliares melhoram o treinamento sem afetar a inferência.

quando utilizar a googlenet

Utilize a GoogLeNet quando precisar de alta acurácia com eficiência computacional. Ela se mostra ideal para dispositivos com memória limitada. Por exemplo, sistemas embarcados e aplicações móveis. A GoogLeNet também representa uma excelente escolha para transfer learning. Você pode remover as camadas finais e treinar novamente para uma nova tarefa. Outra aplicação ocorre quando os objetos apresentam escalas muito variadas. O módulo Inception captura características em diferentes resoluções simultaneamente. Contudo, a arquitetura apresenta maior complexidade de implementação do que a AlexNet. Para projetos simples ou iniciantes, comece com arquiteturas mais básicas. Em resumo, escolha a GoogLeNet quando o equilíbrio entre acurácia, tamanho do modelo e velocidade se tornar crítico.

K-Vizinhos Mais Proximos (K-NN)

programador
1.1.2.4 – Redes Neurais – Visao Computacional
1.1.2.4.3 – Classificacao de Padroes (Pattern Classification)
1.1.2.4.3.1 – Classificador de Minima Distancia (Prototype Matching)
1.1.2.4.3.2 – Correlacao Cruzada (Template Matching)
1.1.2.4.3.3 – Classificador Bayesiano (Optimo)
1.1.2.4.3.4 – K-Vizinhos Mais Proximos (K-NN)
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

O K-NN é um dos algoritmos mais simples e intuitivos de classificação. Ele não assume nenhuma forma paramétrica para os dados. Primeiramente, o algoritmo armazena todos os exemplos de treinamento. Durante a classificação, ele calcula a distância do novo ponto para todos os exemplos armazenados. Em seguida, seleciona os K exemplos mais próximos (vizinhos). A classe mais frequente entre estes K vizinhos define a classificação. Por exemplo, com K=3, dois vizinhos da classe A e um da classe B resulta em A. Portanto, o K-NN é um método baseado em instâncias (lazy learning).

escolha do parâmetro k e métricas de distância

A escolha do parâmetro K é crucial para o desempenho do algoritmo. Valores pequenos de K (ex: 1) tornam o modelo sensível a ruídos. Valores grandes de K, por outro lado, suavizam demais as fronteiras de decisão. A validação cruzada ajuda a encontrar o K ótimo para cada problema. Além disso, a métrica de distância também impacta o resultado. A distância euclidiana é a mais comum e intuitiva. Para dados categóricos, a distância de Hamming pode ser mais adequada. Em espaços de alta dimensão, a distância de Manhattan às vezes supera a euclidiana. Portanto, normalize os atributos para que todos tenham a mesma escala. Atributos com escalas maiores dominariam a distância indevidamente.

vantagens e limitações do k-nn

O K-NN oferece várias vantagens importantes para classificação. Primeiramente, ele é extremamente simples de entender e implementar. Não requer treinamento explícito, apenas armazenamento dos dados. Além disso, o algoritmo é naturalmente multiclasse e não-linear. Ele pode modelar fronteiras de decisão complexas e arbitrárias. Contudo, o K-NN tem limitações significativas. O custo computacional na classificação é alto (O(N)). Para cada novo ponto, calcula-se distância para todos os exemplos de treinamento. Outra desvantagem é a necessidade de armazenar todo o conjunto de treinamento. Em grandes bases de dados, isto consome muita memória. Além disso, o K-NN sofre com a maldição da dimensionalidade. Em altas dimensões, a distância entre os pontos torna-se menos discriminativa.

quando utilizar o classificador k-nn

Utilize o K-NN quando o conjunto de treinamento for moderadamente pequeno. Por exemplo, até alguns milhares de exemplos. Outra aplicação adequada é quando as fronteiras de decisão são complexas. O K-NN também funciona bem como baseline para problemas mais elaborados. Por exemplo, sistemas de recomendação usam K-NN para encontrar itens similares. Reconhecimento de dígitos manuscritos é outro caso clássico de sucesso. Contudo, evite o K-NN em bases de dados muito grandes (milhões de exemplos). O custo computacional na predição torna-se proibitivo. Nestes casos, use redes neurais ou árvores de decisão. Além disso, evite o K-NN em espaços de altíssima dimensão (centenas de atributos). A redução de dimensionalidade (PCA) pode ser aplicada como pré-processamento. Em resumo, escolha o K-NN pela sua simplicidade e eficácia em problemas de pequena e média escala.