As CNNs são um tipo especial de rede neural para processamento de imagens. Diferentemente das redes totalmente conectadas, elas exploram a estrutura espacial dos dados. Primeiramente, uma CNN aplica filtros (kernels) que varrem a imagem inteira. Este processo é chamado de convolução. Cada filtro detecta uma característica específica, como bordas ou texturas. Por exemplo, filtros iniciais detectam bordas simples. Filtros mais profundos, por outro lado, reconhecem partes de objetos. Consequentemente, as CNNs aprendem características hierarquicamente. Elas eliminam a necessidade de engenharia manual de atributos. Portanto, as CNNs são ideais para tarefas de visão computacional.
camadas fundamentais de uma cnn (convolução, pooling, totalmente conectada)
Uma CNN possui três tipos principais de camadas. Primeiramente, a camada de convolução aplica os filtros aprendíveis. Ela produz mapas de características (feature maps) como saída. Em seguida, a camada de pooling reduz a resolução espacial. O pooling de máximo (max-pooling) é o mais comum. Ele seleciona o maior valor em cada janela 2×2. Este processo torna a rede invariante a pequenas translações. Além disso, ele reduz significativamente o número de parâmetros. Finalmente, camadas totalmente conectadas realizam a classificação. Elas combinam as características extraídas pelas camadas anteriores. Por exemplo, a última camada totalmente conectada tem 10 neurônios para o MNIST. Portanto, esta arquitetura hierárquica é extremamente poderosa.
compartilhamento de pesos e invariância a translação
O compartilhamento de pesos é uma propriedade fundamental das CNNs. O mesmo filtro (kernel) é aplicado em toda a imagem. Isto reduz drasticamente o número de parâmetros treináveis. Por exemplo, um filtro 3×3 possui apenas 9 pesos. Sem compartilhamento, cada posição da imagem teria seus próprios pesos. Além disso, esta propriedade garante invariância a translação. Um padrão detectado no canto superior esquerdo também será detectado no canto inferior direito. Consequentemente, a rede aprende características independentemente de sua posição. Portanto, as CNNs são extremamente eficientes e robustas. Elas generalizam bem para objetos em diferentes localizações da imagem.
quando utilizar cnns e principais arquiteturas
Utilize CNNs sempre que sua entrada for uma imagem. Elas são a escolha padrão para visão computacional moderna. Primeiramente, a LeNet-5 é ideal para problemas simples como dígitos manuscritos. A AlexNet, por outro lado, revolucionou o reconhecimento de objetos em 2012. A VGGNet usa apenas filtros 3×3, mas é muito profunda. A ResNet introduziu conexões residuais para treinar redes muito profundas. Por exemplo, a ResNet-50 tem 50 camadas e excelente desempenho. A MobileNet é otimizada para dispositivos móveis e embarcados. O Vision Transformer (ViT) é uma alternativa recente baseada em atenção. Portanto, escolha a arquitetura de acordo com seu problema. Considere fatores como precisão, velocidade e recursos computacionais disponíveis.