Convolutional Neural Networks

CNNs

As Redes Neurais Convolucionais (CNNs) são a espinha dorsal de algoritmos de object-detection e processamento de imagens modernas.

Elas são uma classe especializada de Redes Neurais Artificiais projetadas primariamente para processar dados que possuem uma topologia de grade, sendo a aplicação mais famosa o processamento de imagens (matrizes bidimensionais de pixels).

Antes do advento das CNNs, usar redes tradicionais (Fully Connected) para ler imagens era impraticável, pois exigiriam quantidades colossais de parâmetros, ignorando totalmente a organização espacial (como saber que um pixel vizinho está relacionado ao outro).

Arquitetura de uma CNN

A essência de uma CNN é construída pelo empilhamento de camadas especializadas projetadas para extrair features (padrões espaciais) da imagem gradualmente, das bordas mais simples aos conceitos mais complexos (como olhos, rodas ou faces inteiras).

1. Camadas Convolucionais

O coração matemático da CNN. Ao invés de conectar todos os neurônios à imagem inteira, pequenos “filtros” ou matrizes de kernel (ex: 3×33 \times 3) deslizam (slide) sobre a imagem realizando uma operação de Convolução discreta em 2D.

S(i,j)=(IK)(i,j)=mnI(im,jn)K(m,n)S(i, j) = (I * K)(i, j) = \sum_m \sum_n I(i-m, j-n) K(m, n)

Eq. 1: Convolução de uma imagem por um kernel em 2D.

Onde:

  • S(i,j)S(i, j): valor do pixel resultante na posição (i,j)(i, j) do feature map gerado.
  • II: matriz da imagem de entrada (ou feature map da camada anterior).
  • KK: matriz do filtro (kernel) de pesos treináveis.
  • m,nm, n: índices espaciais que iteram sobre a altura e largura do kernel.

Cada filtro é treinado para ativar ao “enxergar” um padrão espacial específico, independente de onde ele esteja na imagem (Invariância à Translação). Diferentes filtros geram diferentes Feature Maps.

2. Funções de Ativação (Não-Linearidade)

Após a convolução, os valores passam por uma função não-linear, quase sempre a ReLU (Rectified Linear Unit).

f(x)=max(0,x)f(x) = \max(0, x)

Eq. 2: Função de Ativação ReLU.

Onde:

  • f(x)f(x): sinal de saída ativado.
  • xx: valor original escalar gerado pela etapa convolucional (preservado se >0>0, zerado caso contrário).

Sem essa não-linearidade, por mais camadas que existissem, a rede toda não passaria de um gigantesco e simples modelo de regressão linear.

3. Camadas de Pooling (Subamostragem)

Inseridas para diminuir brutalmente a resolução espacial (largura e altura) dos Feature Maps gerados pelas convoluções, mantendo a profundidade (canais). O Max Pooling desliza uma janela (ex: 2×22 \times 2) e passa apenas o maior valor para a próxima etapa. Isso torna a rede mais rápida, mais robusta contra micro-ruídos, e diminui a chance de Overfitting por forçar o estrangulamento da informação espacial, promovendo Invariância de Escala e Posição.

4. Camadas Totalmente Conectadas (FC)

No final das operações de extração (convoluções e poolings), o tenso volumétrico espacial de features é achatado em um gigantesco vetor unidimensional (Flattening) e injetado em neurônios densamente conectados tradicionais (MLP - Multi-Layer Perceptron). O papel destas camadas é ler as features abstratas de alto nível levantadas pela CNN e dar o veredito final (ex: “tem 95% de chance de ser um cachorro e 5% de ser um gato”).


Relacionadas: u-net · spp-net

Construído com Eleventy · busca por Lunr.js