← Voltar a AI Engineer — DEUS.ai

🟡 B — Deep Learning

AI Engineer — DEUS.ai

Apresentação

🧠 Deep Learning — Fundamentos e Transformers

Conhecimento essencial para entrevistas de AI Engineer. Foco em transformers (LLMs), com bases de CNN e RNN.


🎯 Frase que impressiona

Penso em deep learning como uma hierarquia: fundamentos neurais como backprop e ativações, depois arquiteturas — CNNs para localidade, RNNs para sequências, transformers para dependências de longo alcance. Para LLMs, entender self-attention, causal masking e multi-head attention é essencial — explica porque os transformers escalaram.


1️⃣ Neurons e Redes

Perceptron: y = activation(Σ wᵢxᵢ + b). Peso por input, bias.

Rede neural: camadas de neurónios. Input → Hidden → Output. Cada camada = transformação linear + não-linearidade.

Profundidade: mais camadas = mais capacidade de representar funções complexas. Risco: vanishing gradient.


2️⃣ Funções de Ativação

FunçãoFórmulaUso
ReLUmax(0, x)Hidden layers. Evita vanishing gradient.
GELUx·Φ(x)Transformers (suave, diferenciável em 0)
Sigmoid1/(1+e⁻ˣ)Output binário (0-1)
Softmaxeˣⁱ/ΣeˣʲOutput multi-classe (probabilidades)
Tanh(eˣ-e⁻ˣ)/(eˣ+e⁻ˣ)[-1,1], RNNs

Porque ReLU em vez de Sigmoid em hidden? Sigmoid satura (gradientes ~0). ReLU: gradiente 1 quando x>0, permite gradientes fluírem. Também: sparsity (50% neurónios off), computacionalmente barata.


3️⃣ Backpropagation

Objectivo: calcular ∂Loss/∂w para cada peso. Regra da cadeia.

Fluxo: Forward pass (input → output, guardar ativações) → Loss → Backward pass (gradientes da saída para a entrada).

Gradient descent: w = w - η·∂L/∂w. η = learning rate.

Variantes: SGD (stochastic), Adam (adaptive learning rate, momentum), AdamW (weight decay).


4️⃣ Vanishing e Exploding Gradient

Vanishing: gradientes tão pequenos que camadas iniciais não aprendem. Causa: sigmoid/tanh saturação, muitas multiplicações <1.

Exploding: gradientes tão grandes que pesos explodem. Causa: muitas multiplicações >1.

Mitigação:

  • ReLU (não satura no +)
  • Residual connections (skip connections: gradiente passa directamente)
  • Layer normalization (estabiliza escalas)
  • Gradient clipping (limitar norma do gradiente)
  • Inicialização cuidadosa (Xavier, He)

5️⃣ CNN — Convolutional Neural Networks

Convolução: filtro (kernel) desliza sobre input. Detecta padrões locais (edges, texturas).

Pooling: downsampling (max pooling = maior valor na janela). Reduz dimensão, invariância a pequenas translações.

Arquitetura típica: Conv → ReLU → Pool → Conv → ... → Flatten → FC → Output.

Uso: imagens (respeita localidade, translation invariance). ResNet, VGG, EfficientNet.


6️⃣ RNN — Recurrent Neural Networks

Ideia: estado oculto h que depende do input actual e do h anterior. Processamento sequencial.

Problema: vanishing gradient em sequências longas. Gradiente decompõe-se ao longo do tempo (multiplicações repetidas).

LSTM: células com gates (forget, input, output). Permite gradiente fluir melhor. Usado em sequências (antes dos transformers).

Transformers substituíram RNNs em NLP: paralelismo, dependências longas sem degradação.


7️⃣ Transformer — Arquitetura

Ideia: Self-attention permite que cada token "veja" todos os outros. Sem recurrência — paralelo.

Bloco encoder: Multi-Head Attention → Add & Norm → Feed-Forward → Add & Norm.

Bloco decoder: Masked Multi-Head Attention (causal) → Add & Norm → Cross-Attention (para encoder) → Add & Norm → Feed-Forward → Add & Norm.

Decoder-only (GPT): só parte do decoder, sem cross-attention. Cada token atende a tokens anteriores.


8️⃣ Self-Attention — Fórmula e Conceitos

Attention(Q, K, V) = softmax(QKᵀ/√dₖ) V

  • Q (Query): "o que procuro?"
  • K (Key): "o que ofereço?"
  • V (Value): "o que tenho para dar?"

Score: QKᵀ = similaridade entre query e cada key. √dₖ (dimensão) evita softmax saturar.

Output: weighted sum de V. Tokens "relevantes" contribuem mais.

Causal masking: em GPT, token i só vê tokens 1..i. Mask = -∞ para posições futuras antes do softmax.


9️⃣ Multi-Head Attention

Problema: single head limita — uma única projecção para Q,K,V.

Solução: múltiplas "heads" em paralelo. Cada head com Q,K,V diferentes (projecções separadas). Capturam diferentes relações: sintaxe, semântica, long-range.

Concatenação: outputs dos heads concatenados, depois projecção linear.

Dimensão: d_model dividido por n_heads. Ex: 768 dims, 12 heads = 64 dims por head.


🔟 Positional Encoding

Problema: Attention é permutation-invariant — "A B C" = "C B A" sem posição.

Solução: adicionar informação de posição aos embeddings.

Sinusoidal (original): PE(pos, 2i)=sin(pos/10000^(2i/d)), PE(pos, 2i+1)=cos(...). Fixo.

Learned: embeddings de posição aprendidos. Usado em modelos modernos (GPT, LLaMA).


1️⃣1️⃣ Causal vs Bidirectional Attention

Causal (GPT)Bidirectional (BERT)
MaskToken vê só à esquerdaToken vê esquerda e direita
UsoGeração autoregressivaRepresentação, classificação
EmbeddingsDecoder-onlyEncoder-only

Causal necessário para geração: não pode "espreitar" o futuro. Gera token a token.

Bidirectional para embeddings: contexto completo melhora representação. BERT para NER, classification, sentence embeddings.


1️⃣2️⃣ Encoder vs Decoder — Arquiteturas

  • Encoder-only (BERT): representa input. Embeddings, NER, classification. Não gera.
  • Decoder-only (GPT, LLaMA): gera autoregressivamente. Base dos LLMs conversacionais.
  • Encoder-decoder (T5, BART): encoder processa input, decoder gera output. Tradicional para tradução, summarization.

LLMs modernos: decoder-only (GPT-style). Mais simples de escalar, treino mais eficiente.


1️⃣3️⃣ Layer Normalization e Residual Connections

Layer Norm: normaliza por exemplo (não por batch). Estabiliza treino. Usado em transformers (antes e depois de sub-layers).

Residual: output = F(x) + x. Gradiente passa por "atalho". Permite redes muito profundas. ResNet popularizou.

Pre-LN vs Post-LN: Pre-LN (norm antes da sub-layer) mais estável em transformers profundos. GPT, LLaMA usam.


1️⃣4️⃣ Feed-Forward no Transformer

Cada bloco tem FFN: FFN(x) = ReLU(xW₁ + b₁)W₂ + b₂. Ou GELU em modelos modernos.

Dimensões: normalmente d_model → 4×d_model → d_model. "Expand and contract."


1️⃣5️⃣ Training — Hiperparâmetros

  • Learning rate: muito alto = instabilidade. Muito baixo = lento. Schedule: warmup, decay.
  • Batch size: maior = gradientes mais estáveis, mas mais memória. Tradeoff.
  • Epochs: uma passagem pelo dataset. Early stopping quando validation loss para de melhorar.
  • Dropout: desativa neurónios aleatoriamente durante treino. Regularização.
  • Weight decay: L2 regularization nos pesos.

1️⃣6️⃣ Overfitting e Regularização

Overfitting: modelo memoriza treino, falha em dados novos.

Mitigação:

  • Mais dados
  • Dropout
  • Weight decay
  • Early stopping
  • Data augmentation
  • Reduzir capacidade do modelo

Ferramentas e Recursos

  • PyTorch, TensorFlow — frameworks
  • Paper: "Attention Is All You Need" (Vaswani et al., 2017)
  • Hugging Face — modelos, Transformers library

Zona de prática

Sem perguntas. Clica em Editar para adicionar.