Aula 19 - Treinamento, Overfitting, Regularização e Transfer Learning 🎯
Objetivo Pedagógico
Objetivo: Técnicas de treinamento de redes neurais profundas: Otimizadores modernos (AdamW), mitigação de Overfitting com Dropout, Weight Decay, Early Stopping e Transfer Learning.
📑 1. Fundamentos Teóricos & Análise Técnica
Treinar redes neurais profundas com milhões de parâmetros exige um equilíbrio rigoroso entre a capacidade de representação do modelo e sua capacidade de Generalização para dados não vistos.
- O Dilema do Overfitting (Sobreajuste): Ocorre quando o modelo memoriza o ruído estatístico do conjunto de treinamento, atingindo erro quase zero no treino mas errando grosseiramente em validação.
- Técnicas de Regularização:
- Dropout: Desativa aleatoriamente uma fração dos neurônios durante o forward pass, forçando a rede a aprender representações redundantes e não correlacionadas.
- Weight Decay (Regularização L2 / AdamW): Penaliza pesos excessivamente grandes adicionando \(\frac{1}{2} \lambda ||W||^2\) à função de perda.
- Early Stopping: Interrompe o treinamento assim que a perda no conjunto de validação começa a subir.
- Transfer Learning (Aprendizado por Transferência): Técnica onde aproveitamos modelos pré-treinados em gigantescas bases de dados (como ImageNet) congelando suas camadas iniciais de extração de características (Feature Extractor) e retreinando apenas o classificador final (Fine-Tuning).
📐 Arquitetura Conceitual & Diagrama de Fluxo
graph TD
Pretrained["Modelo Pré-Treinado no ImageNet (Ex: ResNet-50)"] --> Freeze["Congelar Camadas Convolucionais Iniciais (weights.requires_grad = False)"]
Freeze --> Head["Substituir Cabeça de Classificação por Nova Camada"]
Head --> Train["Treinamento Rápido em Dataset Específico (Fine-Tuning)"]
Train --> HighAcc["Alta Acurácia com Poucos Dados e Baixo Custo Computacional!"]
style Pretrained fill:#e1f5fe,stroke:#01579b
style Freeze fill:#fff3e0,stroke:#e65100
style HighAcc fill:#e8f5e9,stroke:#2e7d32 🔍 Pilares e Diretrizes Técnicas
Nesta unidade, aprofundamos os seguintes conceitos fundamentais: - Otimizador AdamW com Cosine Annealing: Desaceleração suave da taxa de aprendizado (Learning Rate) ao longo das épocas. - Data Augmentation: Expansão artificial dos dados de treino com rotações, flips e cortes aleatórios. - Fine-Tuning de Camadas Superiores: Descongelamento progressivo das últimas camadas com learning rate reduzida. - Métricas de Validação Aprofundadas: Uso de F1-Score, Matriz de Confusão e curva ROC-AUC além da simples Acurácia.
🛠️ 2. Implementação Prática em Deep Learning e Otimização de Modelos
Abaixo está a implementação técnica de referência, estruturada com padrões de engenharia de software e foco em robustez:
// transfer_learning.py (Transfer Learning com ResNet Pré-Treinada em PyTorch)
import torch
import torch.nn as nn
from torchvision import models
def create_transfer_model(num_classes: int) -> nn.Module:
# 1. Carrega modelo pré-treinado com pesos do ImageNet
model = models.resnet50(weights=models.ResNet50_Weights.DEFAULT)
# 2. Congela todos os parâmetros do extrator de características
for param in model.parameters():
param.requires_grad = False
# 3. Substitui a camada final (Fully Connected) para nosso número de classes
num_features = model.fc.in_features
model.fc = nn.Sequential(
nn.Dropout(p=0.5), # Regularização contra overfitting
nn.Linear(num_features, num_classes)
)
return model
model = create_transfer_model(num_classes=5)
# Apenas a camada final será atualizada pelo otimizador
trainable_params = sum(p.numel() for p in model.parameters() if p.requires_grad)
print(f"Parâmetros treináveis após congelamento: {trainable_params:,}")
💡 Análise Passo a Passo do Código
- requires_grad = False: Desativa o cálculo de gradientes nas primeiras 49 camadas, economizando tempo e memória da GPU.
- Dropout na Cabeça de Classificação: Garante que o novo classificador linear generalize bem sem sobreajustar rapidamente.
- Economia de Dados e Computação: Permite atingir acurácia de ponta com centenas de imagens em vez de milhões.
🎯 3. Próximos Passos & Sequência Didática
-
Slides da Aula
-
Quiz de Fixação
-
Exercícios Práticos
-
Desafio de Projeto