Introdução à Matemática
A IA (artificial intelligence, AI) moderna e o aprendizado de máquina (machine learning, ML) muitas vezes são apresentados como “apenas código”, mas a maior parte das ideias que fazem os modelos funcionarem é matemática: representar dados como vetores, transformar aprendizado em otimização (optimization), raciocinar sob incerteza e medir informação. Este guia introdutório resume a matemática essencial que você verá repetidamente ao longo da wiki e explica como ela se conecta à modelagem prática.
Para se aprofundar, veja os subartigos vinculados em Álgebra Linear, Cálculo, Probabilidade e Estatística, Otimização, Teoria da Informação e Teoria dos Grafos.
1) Um pequeno “mapa” da matemática em IA
A maioria dos pipelines (pipelines) de aprendizado de máquina pode ser descrita por alguns componentes recorrentes:
- Representação (álgebra linear + geometria): codificar entradas/saídas como vetores, matrizes ou tensores (tensors); aprender incorporações (embeddings); calcular similaridades.
- Objetivo (probabilidade + teoria da informação): definir o que “boas previsões” significam (verossimilhança (likelihood), perda (loss), entropia cruzada (cross-entropy), divergência de Kullback–Leibler (Kullback–Leibler, KL)).
- Aprendizado (cálculo + otimização): ajustar parâmetros minimizando uma perda via gradientes (gradients) e atualizações iterativas (por exemplo, descida do gradiente estocástica (stochastic gradient descent, SGD)).
- Incerteza (probabilidade + raciocínio bayesiano (Bayesian reasoning)): quantificar incerteza em previsões e parâmetros; calibrar probabilidades; tomar decisões sob risco.
- Computação (métodos numéricos (numerical methods)): implementar o acima de forma estável e eficiente em escala (condicionamento (conditioning), ponto flutuante (floating point), processamento em lotes (batching)).
Isso corresponde diretamente a grandes famílias de modelagem:
- Modelos lineares e classificadores baseados em margem: Modelos Lineares e Geometria
- Redes neurais treinadas por gradientes: Redes Neurais, Retropropagação
- Modelos bayesianos e probabilísticos estruturados: Inferência Bayesiana, Modelos Gráficos Probabilísticos
- Aprendizado baseado em grafos: Teoria dos Grafos
2) Notação e operadores centrais que você verá em todo lugar
Um modelo mental consistente de formas (shapes) e operadores evita muitos bugs de implementação.
Escalares, vetores, matrizes, tensores
- Escalar: (x \in \mathbb{R})
- Vetor: (\mathbf{x} \in \mathbb{R}^d)
- Matriz: (\mathbf{X} \in \mathbb{R}^{n \times d})
- Tensor: (\mathbf{T} \in \mathbb{R}^{d_1 \times \cdots \times d_k}) (generalização de matrizes)
Em código, o “raciocínio sobre formas” (shape thinking) é crucial: por exemplo, (\mathbf{X}\mathbf{w}) é válido se (\mathbf{X}\in\mathbb{R}^{n\times d}) e (\mathbf{w}\in\mathbb{R}^{d}), produzindo um vetor de comprimento (n).
Produtos internos, normas, distâncias
- Produto escalar (similaridade): (\mathbf{x}^\top \mathbf{y})
- Norma euclidiana: (|\mathbf{x}|_2 = \sqrt{\sum_i x_i^2})
- Similaridade do cosseno: (\frac{\mathbf{x}^\top \mathbf{y}}{|\mathbf{x}||\mathbf{y}|})
- Norma de Frobenius (matrizes): (|\mathbf{A}|F = \sqrt{\sum{i,j} A_{ij}^2})
Isso aparece em:
- busca por vizinho mais próximo (incorporações)
- regularização ((\ell_2) decaimento de pesos (weight decay))
- geometria de fronteiras de decisão (Modelos Lineares e Geometria)
Esperanças e indicadores
No aprendizado de máquina probabilístico, esperanças (expectations) estão em todo lugar:
- (\mathbb{E}[X]), (\mathbb{E}[f(X)])
- (\mathbf{1}{\text{event}}): função indicadora usada na definição de perdas e probabilidades
3) Álgebra linear: a linguagem de modelos e dados
A álgebra linear fundamenta representações de atributos (features), incorporações, atenção (attention), ACP (PCA) e muito mais. Veja Álgebra Linear e Vetores, Matrizes, Tensores para detalhes.
Aplicações lineares e multiplicação de matrizes
Uma matriz (\mathbf{W}) implementa uma transformação linear: [ \mathbf{y} = \mathbf{W}\mathbf{x} ] Em redes neurais, camadas são composições de aplicações lineares e não linearidades: [ \mathbf{h} = \sigma(\mathbf{W}\mathbf{x} + \mathbf{b}) ] Mesmo modelos “profundos” são construídos a partir desses primitivos.
Projeções, subespaços e mínimos quadrados
O exemplo clássico é a regressão linear, que encontra (\mathbf{w}) minimizando: [ |\mathbf{X}\mathbf{w} - \mathbf{y}|_2^2 ] Geometricamente, isso projeta (\mathbf{y}) no espaço coluna de (\mathbf{X}). Na prática, é o protótipo de “ajustar um modelo minimizando um erro”.
Na prática, você raramente resolve regressão com uma inversa em forma fechada; você usa métodos numéricos (veja Álgebra Linear Numérica) ou otimização baseada em gradientes.
Autovalores, SVD e estrutura de baixa ordem
Decomposições como decomposição em autovalores (eigenvalue decomposition) e decomposição em valores singulares (singular value decomposition, SVD) explicam:
- ACP (principal component analysis, PCA) (redução de dimensionalidade)
- condicionamento e estabilidade da otimização
- por que aproximações de baixa ordem (low-rank) aceleram a computação
Veja Autovalores e SVD.
Intuição prática:
- Se os dados vivem perto de um subespaço de baixa dimensionalidade, a ACP pode remover ruído e comprimir.
- Números de condição grandes frequentemente significam que a otimização é lenta ou instável.
Exemplo: ACP em poucas linhas
import numpy as np
X = ... # shape (n, d), centered (mean subtracted)
U, S, VT = np.linalg.svd(X, full_matrices=False)
k = 50
Z = X @ VT[:k].T # project to k principal components
X_approx = Z @ VT[:k] # reconstruct (rank-k approximation)
4) Cálculo: gradientes impulsionam o aprendizado
A maior parte do aprendizado de máquina moderno reduz “aprender parâmetros” a “minimizar um objetivo diferenciável”, que é cálculo mais computação. Veja Cálculo e Gradientes, Jacobianas, Hessianas.
Derivadas e gradientes
Se (L(\theta)) é uma perda, o gradiente (\nabla_\theta L) aponta na direção de maior aumento. Para reduzir a perda, mova-se na direção oposta: [ \theta \leftarrow \theta - \eta \nabla_\theta L(\theta) ] Isso é o núcleo de Descida do Gradiente (Gradient Descent).
Regra da cadeia e retropropagação
Redes neurais são composições de funções. A regra da cadeia permite calcular gradientes de forma eficiente através do grafo de operações—isso é Retropropagação. Na prática, frameworks usam diferenciação automática (automatic differentiation), mas a matemática explica:
- por que gradientes podem desaparecer/explodir
- por que normalização e inicialização cuidadosa importam
- como depurar falhas de treinamento
Jacobianas e Hessianas: sensibilidade e curvatura
- Jacobiana: derivada de saídas vetoriais em relação a entradas vetoriais (sensibilidade)
- Hessiana: matriz de segundas derivadas (curvatura)
Curvatura importa porque:
- “vales íngremes e estreitos” (problemas mal condicionados) fazem a descida do gradiente ziguezaguear
- informação de segunda ordem pode acelerar a otimização, mas é cara em escala
5) Probabilidade e estatística: aprender a partir da incerteza
Probabilidade permite tratar aprendizado como inferência a partir de dados e quantificar incerteza. Veja Probabilidade e Estatística e Variáveis Aleatórias e Distribuições.
Variáveis aleatórias, distribuições e verossimilhança
Um modelo estatístico frequentemente especifica uma distribuição condicional (p(y\mid x,\theta)). Dado o conjunto de dados ({(x_i,y_i)}{i=1}^n), a verossimilhança é: [ p(\mathbf{y}\mid \mathbf{X},\theta) = \prod{i=1}^n p(y_i\mid x_i,\theta) ] Maximizar a verossimilhança é equivalente a minimizar a log-verossimilhança negativa (uma função de perda).
Regra de Bayes e atualização bayesiana
A inferência bayesiana atualiza crenças: [ p(\theta \mid \mathcal{D}) \propto p(\mathcal{D} \mid \theta), p(\theta) ]
- (p(\theta)): distribuição a priori (prior)
- (p(\theta\mid \mathcal{D})): distribuição a posteriori (posterior)
Isso fundamenta modelos conscientes de incerteza e tomada de decisão; veja Inferência Bayesiana e Teoria da Decisão Bayesiana.
Esperança, variância e pensamento viés–variância
- Variância explica ruído e instabilidade de estimadores.
- Trade-offs viés–variância (bias–variance tradeoffs) ajudam a explicar sobreajuste (overfitting) e subajuste (underfitting) (veja também Teoria do Aprendizado).
Exemplo: regressão logística como classificação probabilística
A regressão logística modela: [ p(y=1 \mid x) = \sigma(\mathbf{w}^\top \mathbf{x}) ] Treinar por máxima verossimilhança produz a perda de entropia cruzada: [ L(\mathbf{w}) = -\sum_i \left[ y_i \log p_i + (1-y_i)\log(1-p_i)\right] ] Isso conecta álgebra linear (produtos escalares), probabilidade (verossimilhança Bernoulli (Bernoulli likelihood)) e otimização (descida do gradiente).
6) Otimização: transformando aprendizado em um algoritmo
Treinar tipicamente significa minimizar um risco empírico (empirical risk): [ \min_\theta \frac{1}{n}\sum_{i=1}^n \ell(f_\theta(x_i), y_i) + \lambda \Omega(\theta) ] Veja Otimização, com subtópicos-chave Otimização Convexa, Otimização Estocástica e Otimização com Restrições.
Convexa vs não convexa
- Problemas convexos (por exemplo, regressão linear com regularização (\ell_2)) têm um único ótimo global e fortes garantias.
- Problemas não convexos (redes profundas) podem ter muitos mínimos locais/pontos de sela, mas ainda funcionam bem na prática devido a estrutura, superparametrização (overparameterization) e treinamento estocástico (stochastic training).
Gradientes estocásticos e minilotes
Para grandes conjuntos de dados, você estima gradientes usando minilotes (minibatches): [ \nabla_\theta \hat{L}(\theta) \approx \frac{1}{|B|}\sum_{i\in B}\nabla_\theta \ell_i(\theta) ] O ruído do uso de minilotes pode ajudar a explorar, mas também complica a convergência; veja Otimização Estocástica.
Regularização como “matemática para generalização”
Regularizadores comuns:
- (\ell_2) (decaimento de pesos): (\Omega(\theta)=|\theta|_2^2)
- (\ell_1) (esparsidade (sparsity)): (\Omega(\theta)=|\theta|_1)
Eles podem ser motivados estatisticamente (priores), geometricamente (restrições sobre o tamanho dos parâmetros) ou algoritmicamente (estabilidade).
Exemplo prático: verificação de gradientes
Mesmo que a diferenciação automática compute gradientes, você pode verificar rapidamente com diferenças finitas (finite differences):
import numpy as np
def loss(theta):
# toy: L = (theta0 - 3)^2 + 2*(theta1 + 1)^2
return (theta[0] - 3)**2 + 2*(theta[1] + 1)**2
theta = np.array([0.1, 0.2])
eps = 1e-6
grad_fd = np.zeros_like(theta)
for j in range(len(theta)):
e = np.zeros_like(theta)
e[j] = eps
grad_fd[j] = (loss(theta + e) - loss(theta - e)) / (2*eps)
print(grad_fd)
7) Teoria da informação: perdas, compressão e representação
A teoria da informação fornece uma forma precisa de falar sobre incerteza e incompatibilidade entre distribuições. Veja Teoria da Informação e Entropia, KL, Informação Mútua.
Entropia e entropia cruzada
- Entropia (H(P)) mede incerteza em uma distribuição (P).
- Entropia cruzada (H(P,Q)) mede quão bem (Q) prevê amostras de (P).
Em classificação, minimizar entropia cruzada corresponde a maximizar a verossimilhança sob um modelo categórico.
Divergência de KL: medindo incompatibilidade entre distribuições
A divergência de KL: [ D_{KL}(P|Q) = \mathbb{E}_{x\sim P}\left[\log \frac{P(x)}{Q(x)}\right] ] aparece em:
- inferência variacional (variational inference) (por exemplo, autoencoders variacionais (variational autoencoders, VAEs))
- regularização de políticas em aprendizado por reforço (reinforcement learning, RL)
- calibração e análise de mudança de distribuição (distribution shift)
Informação mútua: dependência e aprendizado de representações
Informação mútua quantifica dependência entre variáveis; ela aparece em objetivos de aprendizado auto-supervisionado e aprendizado de representações, embora estimá-la de forma confiável possa ser difícil.
8) Teoria dos grafos: estrutura além de vetores
Muitos problemas do mundo real têm estrutura relacional: moléculas, redes sociais, grafos de conhecimento e grafos de dependência. Veja Teoria dos Grafos.
Ideias-chave:
- Grafo (G=(V,E)) com nós e arestas
- Matriz de adjacência (\mathbf{A}) codifica conectividade
- Laplaciano do grafo se relaciona com suavidade sobre grafos
Aplicações:
- Redes neurais em grafos (graph neural networks) (propagação de mensagens (message passing) é essencialmente agregação repetida a partir de vizinhos)
- Grafos de conhecimento e raciocínio
- Modelagem de dependências em Modelos Gráficos Probabilísticos
9) Monte Carlo e MCMC: computação com aleatoriedade
Quando esperanças ou integrais exatas são difíceis, a amostragem as aproxima. Veja Métodos de Monte Carlo e Monte Carlo via Cadeias de Markov (MCMC).
Estimação por Monte Carlo
Para estimar (\mathbb{E}[f(X)]), amostre (x^{(1)},\dots,x^{(N)}) e calcule: [ \frac{1}{N}\sum_{k=1}^N f(x^{(k)}) ] Principais preocupações práticas:
- variância (quão ruidosa é a estimativa)
- número de amostras necessário para acurácia
- técnicas de redução de variância (variance reduction techniques) (variáveis de controle (control variates), amostragem antitética (antithetic sampling))
MCMC para inferência bayesiana
MCMC produz amostras de posteriores complicados (p(\theta\mid \mathcal{D})) quando amostragem direta é difícil. É poderoso, mas pode ser computacionalmente caro em cenários grandes de aprendizado profundo.
10) Considerações numéricas: a “matemática escondida” em sistemas reais
Um modelo pode estar matematicamente correto, mas ser numericamente frágil.
Condicionamento e estabilidade
- Matrizes mal condicionadas podem amplificar pequenos erros.
- Escalonamento de atributos (padronização) frequentemente melhora o condicionamento e acelera a otimização.
- Decomposições (QR/SVD) muitas vezes são mais estáveis do que inversas explícitas.
Veja Álgebra Linear Numérica.
Ponto flutuante e implementações estáveis
Truques comuns de estabilidade:
- Log-soma-exp (log-sum-exp) para softmax (softmax): [ \log\sum_i e^{z_i} = m + \log\sum_i e^{z_i-m} ]
- Evitar subfluxo/sobrefluxo (underflow/overflow) em probabilidades trabalhando no espaço logarítmico (log space)
- Corte de gradiente (gradient clipping) para controlar explosões em redes profundas
11) Juntando tudo: um modelo mental de ponta a ponta
Considere treinar um classificador neural:
- Representar dados como vetores/tensores (álgebra linear).
- Definir uma distribuição preditiva (p_\theta(y\mid x)) (probabilidade).
- Escolher uma perda (log-verossimilhança negativa / entropia cruzada; teoria da informação).
- Calcular gradientes (\nabla_\theta L) via regra da cadeia (cálculo).
- Atualizar parâmetros com SGD/Adam (otimização).
- Avaliar acurácia e qualidade probabilística (veja Regras de Pontuação Próprias).
- Diagnosticar problemas usando geometria (separabilidade (separability)), estatística (variância, calibração (calibration)) e numéricos (estabilidade).
Essa mesma estrutura matemática se aplica amplamente—de regressão logística a transformers (transformers)—diferindo principalmente em arquitetura e escala.
12) Checklist prático de aprendizagem
Se você quer “matemática suficiente” para ser produtivo em aprendizado de máquina moderno, procure estar confortável com:
- Álgebra linear
- formas, intuição de broadcasting (broadcasting), produtos escalares
- multiplicação de matrizes como composição de aplicações lineares
- ortogonalidade, projeções, fundamentos de SVD/ACP (Autovalores e SVD)
- Cálculo
- gradientes, Jacobianas, regra da cadeia
- interpretar gradientes como sensibilidade local
- Probabilidade/estatística
- distribuições comuns, esperança/variância
- verossimilhança, MVM (maximum likelihood estimation, MLE), regra de Bayes (Inferência Bayesiana)
- intuição de sobreajuste ligada a dados e capacidade do modelo (Teoria do Aprendizado)
- Otimização
- mecânica da descida do gradiente e SGD (Otimização Estocástica)
- regularização e restrições (Otimização com Restrições)
- Teoria da informação
- entropia, entropia cruzada, divergência de KL e por que entropia cruzada é uma perda natural
- Numéricos
- truques de estabilidade (log-soma-exp), condicionamento, escalonamento
À medida que você aprende, conecte continuamente fórmulas a código: implemente um modelo pequeno, inspecione formas, calcule uma perda, faça retropropagação e verifique se o treinamento melhora o objetivo. Esse “loop matemática ↔ implementação” é a forma mais rápida de internalizar este guia.