Redes Neurais Convolucionais
1. Introdução das Convolutional Neural Networks (CNNs)
1.1. Importância da visão computacional
A Visão Computacional é fundamental em diversas áreas, como:
- Imagem Médica: Auxilia no diagnóstico e no planejamento de tratamento;
- Vigilância: Usada para detectar e rastrear pessoas, veículos e para reconhecimento facial ou de placas;
- Veículos Autônomos: Permite tarefas como detecção de objetos, manutenção de faixa e reconhecimento de sinais de trânsito;
- Aplicações Práticas: Classificação, detecção e segmentação de imagens.
1.2. Limitações das Redes Feedforward
As redes neurais feedforward (totalmente conectadas) poderiam funcionar para problemas de visão computacional, mas com grandes limitações:
- Grande Quantidade de Parâmetros: Uma imagem de RM de 320×320 pixels, por exemplo, resultaria em um vetor com 102.400 entradas, o que poderia levar a 10 bilhões de parâmetros para peso, exigindo enorme esforço computacional;
- Perda de Propriedades Estruturais: Ao converter cada imagem em um vetor de entrada (achatando-a), as MLPs perdem as propriedades estruturais das imagens
1.3. Vantagens e propridades das CNNs
As Redes Neurais Convolucionais são a arquitetura ideal para dados estruturados em grade, como imagens, pois são mais eficientes e exigem menos parâmetros que as redes feedforward. Elas são projetadas para capturar duas propriedades estruturais principais das imagens:
- Invariância à Translação: A decisão de classificação da imagem (ex: "é um gato") é independente da posição do objeto na imagem (topo ou base).
- Localidade: A classificação não depende de pixels distantes do objeto de interesse (ex: pixels distantes correspondentes a um edifício ou árvore não anulam a classificação de um gato).
2. Estrutura da CNN
As CNNs trabalham analisando as imagens "pedaço por pedaço" e possuem uma estrutura básica composta por:
- Camada Convolucional: Utiliza a operação de convolução (ou correlação-cruzada, no contexto de redes) para extrair informações e padrões (mapas de características/recursos) das imagens;
- Camada de Pooling: Serve para reduzir a dimensão das imagens provenientes da camada convolucional. Tipos comuns incluem pooling máximo, médio e soma.
3. A Operação de Convolução
Conceito: É uma soma ponderada dos valores dos vizinhos de um ponto de entrada;
Kernel (Filtro): É a matriz de pesos aplicada na operação. Estes filtros são inicializados aleatoriamente e aprendidos durante o processo iterativo de treinamento da rede para extrair padrões das imagens (ex: bordas, texturas);
Propriedade da Equivariância: A operação de convolução é equivariante à translação da entrada. Se a imagem de entrada for transladada, o mapa de características de saída também será transladado da mesma forma.
4. Parâmetros e Técnicas da Convolução
Zero Padding: Técnica usada para manter a dimensão da imagem de saída igual à da imagem de entrada. Envolve preencher as posições além dos limites da entrada com zeros;
Stride: O número de posições (k) que o filtro (kernel) se desloca para cada saída. Strides maiores que 1 diminuem o tamanho da saída em relação à entrada.
Dilatação (Dilated ou Atrous Convolution): Intercala valores do kernel com zeros para combinar informações de uma região maior do input sem aumentar o número de parâmetros, mantendo a eficiência computacional.
Canais: Várias convoluções são aplicadas e empilhadas em "canais" (mapas de características) para evitar a perda de informação que ocorreria se apenas uma convolução fosse aplicada.
5. Regularização
5.1. Overfitting
O que é: Ocorre quando o modelo aprende os dados de treinamento "bem demais", memorizando não apenas os padrões úteis, mas também o ruído e detalhes irrelevantes;
Sintomas: Excelente desempenho nos dados de treino (acurácia alta), mas desempenho ruim em dados novos (de validação/teste).
Consequência: O modelo perde a capacidade de generalização, tornando-se inútil para previsões no mundo real.
5.2. Técnicas de Regularização
Regularização é o ato de impor condições ou alterar a otimização para que a solução apresente um melhor comportamento, combatendo o overfitting.
| Técnica | Descrição | Efeito |
|---|---|---|
| Funções Penalidades (L1 e L2) | Adicionar um termo de regularização (Rλ(θ)) à função de perda (L(θ)). A penalidade restringe a flexibilidade do modelo. | L1 (Lasso) usa a soma dos valores absolutos dos pesos. L2 (Tikhonov) usa a soma dos quadrados dos pesos. |
| Dropout | Durante o treinamento, unidades (entradas ou neurônios artificiais) são desligadas aleatoriamente (removidas temporariamente junto com suas conexões de entrada e saída). | Mitiga o overfitting, forçando a rede a não depender de neurônios específicos, melhorando o desempenho de generalização. Usualmente aplicado após cada camada totalmente conectada em CNNs. |
| Batch Normalization (Normalização em Lote) | Normaliza as entradas das camadas intermediárias ocultas, recentralizando-as pela média e redimensionando pelo desvio padrão. | Promove um treinamento mais consistente, rápido e estável, atenuando problemas de gradientes. Também possui um efeito de regularização que ajuda na mitigação do overfitting. |
| Data Augmentation (Aumento de Dados) | Aumenta artificialmente o conjunto de dados de treinamento, pois a escassez de dados favorece o overfitting. | Cria novas amostras de treinamento a partir das existentes (ex: rotação, corte, zoom, métodos baseados em histograma, Generative Adversarial Networks). |