Módulo 3 - parte 2
Redes Neurais Artificiais Profundas
O que são Redes Neurais Artificiais Profundas?
Redes neurais com múltiplas camadas ocultas capazes de aprender
- Aprendem representações hierárquicas.
- Grande poder de generalização.
Arquitetura Multicamadas
- Camada de entrada
- Camadas ocultas
- Camada de saída
Quanto maior a profundidade, maior a capacidade de representação.
Aprendizado Hierárquico
- Camadas iniciais: características simples
- Camadas intermediárias: padrões
- Camadas profundas: conceitos abstratos
Poder de Representação
Redes neurais com uma única camada oculta
são aproximadores universais.
- Podem aproximar qualquer função contínua
- Desde que tenham neurônios suficientes
Mais Neurônios, Mais Capacidade
- Redes maiores modelam funções mais complexas
- Maior risco de overfitting
- Necessitam regularização adequada
Escolhendo Arquiteturas
- Mais camadas → maior abstração
- Maior custo computacional
- Mais neurônios → maior capacidade
- Regularização torna-se essencial
Parâmetros = Pesos + Biases
- Mede a capacidade da rede
- Redes modernas possuem milhões ou bilhões
Exemplos de arquiteturas
Quanto maior a profundidade, maior a capacidade de representação.
Problemas comuns
- Vanishing Gradients
- Exploding Gradients
- Learning Rate inadequada
- Má inicialização
Otimizadores Modernos
- SGD
- Momentum
- RMSProp
- Adam
Técnicas de Regularização
- Dropout
- L1/L2
- Early Stopping
- Data Augmentation
- Batch Normalization
Dropout
Desativa neurônios aleatoriamente durante o treinamento.
Batch Normalization
Batch Normalization é uma técnica que normaliza
as ativações de cada mini-batch durante o treinamento.
- Vantagens
- Acelerar a convergência do treinamento
- Reduzir sensibilidade à inicialização
- Redução do vanishing/exploding gradient
- Maior robustez à inicialização
- Efeito regularizador moderado
- Melhor generalização
Problema: Internal Covariate Shift
Durante o treinamento, a distribuição das ativações
muda continuamente à medida que os pesos são atualizados.
- Consequências
- Treinamento mais lento
- Gradientes instáveis
- Maior dificuldade de convergência
- Dependência crítica da inicialização
BatchNorm reduz esse efeito ao manter as ativações
aproximadamente padronizadas.
Camadas Principais
- Dense
- Convolution
- Pooling
- Flatten
- Normalization
- Softmax
Módulo 3 - parte 2
Redes Convolucionais
Processamento de Imagens
Por Que Não Usar Camadas Totalmente Conectadas?
Uma imagem de tamanho 200 × 200 × 3 possui:
200 × 200 × 3 = 120.000
Conectando-a a apenas 1.000 neurônios, seriam necessários:
120.000 × 1.000 = 120 milhões de parâmetros
- Consumo excessivo de memória
- Treinamento extremamente lento
- Grande risco de overfitting
Por Que CNNs Funcionam Tão Bem?
- Invariância a translações
- Aprendizado hierárquico de características
- Uso eficiente de parâmetros
- Excelente escalabilidade
Ideias Fundamentais das CNNs
- Conectividade Local
- Compartilhamento de Parâmetros
- Hierarquia Espacial de Características
Essas propriedades reduzem drasticamente
a quantidade de parâmetros treináveis.
CNN são:
- Especializadas em imagens
- Extração automática de características
- Compartilhamento de pesos
Arquitetura Típica de uma CNN
Uma rede de convoluções (ConvNet) é composta por camadas.
Cada camada possui uma API simples: ela transforma um volume 3D de entrada em um volume 3D de saída por meio de uma função diferenciável que pode ou não ter parâmetros.
Volume de Entrada
Largura × Altura × Profundidade
Exemplo: imagem do CIFAR-10
32 × 32 × 3
- Largura
- Altura
- Profundidade (canais RGB)
Camada de Convolução
Aplica filtros aprendíveis sobre a imagem.
Saída = (W - F + 2P)/S + 1
- F: tamanho do filtro
- S: stride (passo)
- P: padding
Ativações de uma arquitetura de ConvNet
O volume inicial armazena os pixels brutos da imagem (à esquerda) e o último volume armazena as pontuações de classe (à direita).
Cada volume de ativações ao longo do caminho de processamento é apresentado como uma coluna.
Exemplo de Convolução - Uma imagem CIFAR-10 de 32x32x3
Esquerda: Cada neurônio na camada convolucional está conectado a apenas a uma região da entrada, mas em toda a profundidade (canais de cor).
O 5 neurônios observam a mesma região na entrada ao longo da profundidade, mas não compartilham os mesmos pesos.
Exemplo de Convolução - Uma imagem CIFAR-10 de 32x32x3
Direita: Os neurônios calculam um produto escalar de seus pesos com a entrada, seguido por uma não linearidade,
mas sua conectividade agora está restrita a ser local espacialmente.
Features aprendidas
Camada de Pooling
- Reduz dimensionalidade
- Preserva características importantes
- Controlar overfitting
- É utilizada em cada camada de profundidade independentemente
Max Pooling 2 × 2, stride = 2
32 × 32 × 12 → 16 × 16 × 12
Exemplo de Pooling - Entrada [224x224x64]
Esquerda: A entrada é submetido a pooling com tamanho de filtro 2 e stride 2, resultando em um volume de saída de tamanho [112x112x64]. A profundidade do volume é preservada.
Exemplo de Pooling - Entrada [224x224x64]
Direita: A operação de subamostragem mais comum é o máximo, dando origem ao max pooling, aqui mostrado com um stride de 2. Ou seja, cada máximo é calculado sobre 4 números (pequeno quadrado de 2x2).
Arquiteturas Clássicas
- LeNet (1998)
- AlexNet (2012)
- VGG (2014)
- GoogLeNet (2014)
- ResNet (2015)
Resumo
- Exploram a estrutura espacial das imagens
- Convoluções aprendem padrões locais
- Pooling reduz dimensionalidade
- Camadas densas classificam
- Base da visão computacional moderna