Machine Learning
O que é Aprendizado de Máquina
Aprendizado de Máquina (machine learning, ML) é um ramo da inteligência artificial (artificial intelligence) em que sistemas aprendem padrões a partir de dados para fazer previsões, tomar decisões ou gerar saídas — sem serem explicitamente programados com regras específicas da tarefa. Em vez de escrever lógica “if/else” para cada caso, você fornece exemplos (dados) e um objetivo (como é o “bom”), e o algoritmo ajusta um modelo que generaliza para novas entradas.
O aprendizado de máquina fica na interseção entre ciência da computação e estatística:
- Da estatística, o aprendizado de máquina herda ideias sobre inferência, incerteza e generalização.
- Da ciência da computação, o aprendizado de máquina herda computação escalável, otimização e construção de sistemas.
- Da IA, o aprendizado de máquina fornece métodos centrais que impulsionam percepção (visão, fala), linguagem, recomendação e, cada vez mais, comportamento de agentes (veja Agentes e Planejamento).
Em alto nível, o aprendizado de máquina resolve:
- Predição: “Dado atributos (features) (x), preveja o rótulo (label) (y).”
- Aprendizado de representações (representation learning): “Aprenda automaticamente embeddings/atributos úteis.”
- Tomada de decisão: “Escolha ações para maximizar a recompensa de longo prazo” (veja Aprendizado por Reforço).
Tipos Centrais de Problemas
Aprendizado Supervisionado
No aprendizado supervisionado (supervised learning), os dados de treinamento incluem pares entrada–saída ((x, y)). O objetivo é aprender uma função (f(x)\approx y) que tenha bom desempenho em dados não vistos.
Tarefas supervisionadas comuns:
- Classificação (classification): prever uma categoria discreta
Exemplos: spam vs. não spam, doença presente vs. ausente, sentimento (positivo/negativo). - Regressão (regression): prever um valor contínuo
Exemplos: preço de imóveis, previsão de demanda, previsão de temperatura. - Ranqueamento (ranking): ordenar itens por relevância
Exemplos: resultados de busca, feeds de recomendação. - Predição estruturada (structured prediction): a saída tem estrutura interna
Exemplos: rotulagem de sequência (NER), árvores de parsing, máscaras de segmentação de imagem.
Exemplo prático (classificação): Filtragem de spam
- Entradas: texto do e-mail, domínio do remetente, metadados
- Saída: spam / não spam
- Avaliação: precisão/recall, falsos positivos (ruim!) vs falsos negativos (irritante)
Aprendizado Não Supervisionado
No aprendizado não supervisionado (unsupervised learning), os dados têm entradas (x), mas não têm rótulos (y). O objetivo é descobrir estrutura:
- Agrupamento (clustering): agrupar pontos semelhantes (ex.: segmentação de clientes)
- Redução de dimensionalidade (dimensionality reduction): comprimir dados preservando informação (ex.: PCA, t-SNE/UMAP para visualização)
- Estimação de densidade (density estimation): modelar a distribuição dos dados (útil para detecção de anomalias, modelagem generativa)
- Detecção de anomalias (anomaly detection): encontrar casos raros ou incomuns (fraudes, defeitos)
Exemplo prático (agrupamento): Segmentação de clientes
- Entradas: frequência de compra, tamanho médio do carrinho, categorias de produtos
- Saída: atribuição de cluster (ex.: “compradores de promoções”, “fiéis premium”)
- Uso: marketing direcionado, personalização (com cautela quanto a equidade e privacidade)
Aprendizado Auto-Supervisionado e Semi-Supervisionado
O aprendizado de máquina moderno frequentemente reduz a necessidade de rotulagem:
- Aprendizado auto-supervisionado (self-supervised learning): os rótulos são construídos a partir dos próprios dados
Exemplos:- Prever palavras faltantes (modelagem de linguagem)
- Aprendizado contrastivo (contrastive learning) em imagens (aumentos da mesma imagem deveriam ficar “próximos”)
- Predição do próximo token (next-token prediction) que impulsiona muitos modelos fundacionais
- Aprendizado semi-supervisionado (semi-supervised learning): combinar um pequeno conjunto rotulado com um grande conjunto não rotulado
Útil quando rótulos são caros (imagem médica, documentos jurídicos)
O aprendizado auto-supervisionado é a base de representações vetoriais (embeddings) e de modelos fundacionais (foundation models); veja Representações Vetoriais e Arquitetura Transformer.
Aprendizado por Reforço (RL)
No aprendizado por reforço (reinforcement learning, RL), um agente aprende interagindo com um ambiente:
- Recebe um estado (state) (s)
- Toma uma ação (action) (a)
- Obtém uma recompensa (reward) (r)
- Aprende uma política (policy) para maximizar a recompensa de longo prazo
O aprendizado por reforço é central para tomada de decisão autônoma e frequentemente se conecta diretamente a sistemas agênticos (veja Agentes e Planejamento e Aprendizado por Reforço).
Exemplo prático (RL): Navegação de robô em armazém
- Estado: localização do robô + características do mapa
- Ação: mover/girar
- Recompensa: chegar ao destino rapidamente sem colisões
- Desafio: restrições de segurança e transferência do simulado para o real
Famílias Comuns de Modelos (e Quando Usá-las)
Escolher um modelo envolve trade-offs: acurácia, interpretabilidade (interpretability), tempo de treinamento, tamanho de dados, latência e manutenibilidade.
Modelos Lineares
- Regressão linear (linear regression), regressão logística (logistic regression), máquina de vetores de suporte (support vector machine, SVM) linear
- Prós: rápidos, linhas de base fortes, coeficientes interpretáveis
- Contras: expressividade limitada, a menos que você projete atributos não lineares
Use quando:
- Você precisa de uma linha de base robusta
- Interpretabilidade é importante
- Os dados são tabulares e “quase” linearmente separáveis após o pré-processamento
Árvores de Decisão e Comitês
- Árvores de decisão (decision trees): interpretáveis, mas podem sobreajustar
- Florestas aleatórias (random forests): reduzem a variância via agregação por bootstrap (bagging)
- Árvores com boosting de gradiente (gradient-boosted trees, GBDT): boosting no estilo XGBoost/LightGBM/CatBoost frequentemente é estado da arte em dados tabulares
Use quando:
- Você tem dados estruturados/tabulares
- Você quer alta acurácia com ajuste moderado
- Você precisa de velocidade de inferência razoável e ferramentas de interpretabilidade (importância de atributos, SHAP)
Métodos de Kernel
- SVMs com kernels podem modelar fronteiras complexas
- Prós: fortes em conjuntos de dados de tamanho médio
- Contras: escalam mal para conjuntos muito grandes; menos comuns em pipelines modernos de larga escala
Modelos Probabilísticos
- Bayes ingênuo (naive Bayes) (frequentemente forte para texto)
- Modelos de mistura gaussiana (Gaussian mixture models)
- Abordagens bayesianas (Bayesian approaches) para incerteza (mas podem ser computacionalmente pesadas)
Use quando:
- Você precisa de estimativas de incerteza (uncertainty) (com cuidado)
- Você quer linhas de base simples e confiáveis para classificação de texto
Redes Neurais e Aprendizado Profundo
O aprendizado profundo (deep learning) se destaca em dados não estruturados e em aprendizado de representações: imagens, áudio, texto, entradas multimodais (multimodal).
Principais famílias:
- Perceptrons multicamadas (multilayer perceptrons, MLPs) para dados tabulares e aproximação geral de funções
- Redes neurais convolucionais (convolutional neural networks, CNNs) para imagens (ainda usadas, embora transformadores sejam comuns)
- Redes neurais recorrentes (recurrent neural networks, RNNs) / memórias de longo curto prazo (long short-term memory, LSTMs) historicamente para sequências
- Transformadores (transformers) para linguagem e, cada vez mais, visão/áudio (veja Arquitetura Transformer)
- Modelos generativos (generative models): modelos de difusão (diffusion models), modelos de linguagem autoregressivos (autoregressive LMs), autoencoders variacionais (variational autoencoders, VAEs)
O treinamento normalmente é feito via Descida de Gradiente (gradient descent) e Retropropagação (backpropagation), e exige regularização e monitoramento cuidadosos para evitar Sobreajuste (overfitting).
Use quando:
- Você tem muitos dados ou pode aproveitar pré-treinamento (pretraining) / aprendizado por transferência (transfer learning)
- As entradas são de alta dimensionalidade (texto, imagens, fala)
- Você precisa de representações vetoriais e modelagem flexível
Objetivos de Treinamento, Generalização e Otimização
Funções de Perda (Objetivos)
Um modelo é treinado minimizando uma função de perda (loss function) que mede o erro de predição:
- Classificação:
- Perda de entropia cruzada (cross-entropy loss) (perda logarítmica (log loss)) é o padrão
- Perda hinge (hinge loss) (no estilo SVM) é outra opção
- Regressão:
- Erro quadrático médio (mean squared error, MSE) (sensível a outliers)
- Erro absoluto médio (mean absolute error, MAE) (mais robusto)
- Perda de Huber (hybrid)
- Ranqueamento:
- Perdas pairwise/listwise (ex.: abordagens no estilo LambdaRank)
- Previsão probabilística (probabilistic forecasting):
- Log-verossimilhança negativa, perda pinball (regressão quantílica)
A perda escolhida deve refletir quais erros importam mais no sistema real.
Viés–Variância e Regularização
O desempenho de generalização é moldado pelo Compromisso Viés–Variância (bias-variance tradeoff):
- Alto viés (bias): modelo simples demais → subajusta
- Alta variância (variance): modelo flexível demais → sobreajusta
Técnicas comuns de regularização (regularization):
- Regularização L2 / L1 (decaimento de pesos (weight decay), esparsidade (sparsity))
- Parada antecipada (early stopping) usando um conjunto de validação
- Dropout (dropout) (redes neurais)
- Aumento de dados (data augmentation) (especialmente visão/áudio)
- Controles específicos de árvores: limites de profundidade, mínimo de amostras por folha
Otimização e Hiperparâmetros
O treinamento tipicamente usa otimização (optimization) iterativa:
- Descida de gradiente estocástica (stochastic gradient descent, SGD), Adam/AdamW para redes neurais
- Solucionadores especializados para regressão linear/logística
- Iterações de boosting para GBDT
Você também ajustará hiperparâmetros (hyperparameters) (não aprendidos diretamente dos dados), como:
- taxa de aprendizado, tamanho de batch
- força de regularização
- número de árvores / profundidade
- largura/profundidade da rede
Boa prática: ajustar hiperparâmetros usando estratégias de validação como Validação Cruzada ou uma divisão dedicada de validação.
Avaliação: Como Saber se Funciona
Divisões de Dados e Estratégia de Validação
Um padrão clássico:
- Conjunto de treino (train set): ajustar parâmetros do modelo
- Conjunto de validação (validation set): escolher hiperparâmetros, parada antecipada
- Conjunto de teste (test set): estimativa final de generalização
Variantes importantes:
- Validação cruzada k-fold (k-fold cross-validation): estimativas estáveis para conjuntos menores
- Divisão para séries temporais (time series split): preservar a ordem temporal para evitar vazamento
- Divisões por grupo: evitar compartilhar entidades entre treino/teste (ex.: o mesmo usuário aparece em ambos)
Um modo de falha central é vazamento de dados (data leakage) — treinar com informação que não estaria disponível no momento da predição. Veja Vazamento de Dados.
Métricas (Escolha o que Combina com o Objetivo)
Métricas de classificação:
- Acurácia (accuracy): pode ser enganosa em conjuntos desbalanceados
- Precisão (precision) / Revocação (recall): cruciais quando falsos positivos vs falsos negativos têm custos diferentes
- F1: equilíbrio entre precisão/revocação
- Área sob a curva ROC (ROC AUC): qualidade de ranqueamento ao longo de limiares
- Área sob a curva PR (PR AUC): frequentemente melhor para positivos desbalanceados
- Perda logarítmica: sensível à calibração de probabilidades
Métricas de regressão:
- Erro absoluto médio, raiz do erro quadrático médio
- (R^2) (com ressalvas)
- MAPE/SMAPE para alguns cenários de previsão de negócio (trate zeros com cuidado)
Métricas de ranqueamento:
- NDCG, MAP, MRR, recall@k
Considere também:
- Calibração (calibration): as probabilidades previstas são significativas? Veja Calibração de Modelos.
- Incerteza: intervalos de confiança, incerteza preditiva (especialmente em domínios de alto risco).
- Equidade (fairness): paridade de desempenho entre grupos; veja Equidade em Aprendizado de Máquina.
Avaliação Offline vs Online
Métricas offline são necessárias, mas não suficientes em contextos de produto. Muitos sistemas de aprendizado de máquina acabam exigindo validação online:
- Testes A/B (A/B tests) (veja Testes A/B)
- Testes de interleaving (interleaving tests) para ranqueamento
- Implantações sombra (shadow deployments) para comparar saídas sem afetar usuários
Fluxo de Trabalho Prático de Aprendizado de Máquina (Da Ideia à Produção)
Um fluxo de trabalho (workflow) prático de ponta a ponta costuma ser assim:
1) Definição do Problema
Defina:
- Variável-alvo (o que você está prevendo/otimizando?)
- Unidade de predição (por usuário, por sessão, por transação?)
- Decisão/uso (qual ação a predição vai orientar?)
- Restrições (latência, memória, privacidade, interpretabilidade, segurança)
Exemplo: “Prever a probabilidade de cancelamento (churn) nos próximos 30 dias para assinantes ativos, para priorizar ofertas de retenção.”
2) Coleta de Dados e Rotulagem
Perguntas-chave:
- De onde vêm os dados? Logs, sensores, anotação humana (human annotation), bancos de dados transacionais
- Quão confiáveis são os rótulos? Eles chegam com atraso, são ruidosos, enviesados?
- O conjunto de dados (dataset) é representativo das condições de implantação (deployment)?
Ruído nos rótulos é comum e às vezes administrável, mas viés sistemático (ex.: decisões humanas históricas) pode criar ciclos de retroalimentação (feedback loops) prejudiciais.
3) Preparação de Dados e Atributos
Etapas típicas:
- Limpeza: valores ausentes, outliers, duplicatas
- Codificação: variáveis categóricas (one-hot, codificação por alvo (target encoding)), texto (representações vetoriais)
- Escalonamento (scaling): padronização (standardization) para muitos modelos lineares e redes neurais
- Construção de atributos (veja Engenharia de Atributos)
Fluxos modernos frequentemente usam aprendizado de representações (representações vetoriais, modelos pré-treinados) para reduzir engenharia manual de atributos, especialmente para texto e imagens.
4) Construa Linhas de Base Primeiro
Linhas de base (baselines) ajudam a evitar complexidade desnecessária e esclarecem se a tarefa é aprendível.
- Linha de base heurística
- Linha de base com regressão logística
- Linha de base com GBDT para dados tabulares
5) Treine, Ajuste e Acompanhe Experimentos
Use:
- conjunto de validação ou validação cruzada
- busca de hiperparâmetros (grid, random, Bayesiana)
- rastreamento de experimentos (experiment tracking) (configurações, métricas, artefatos)
Reprodutibilidade (reproducibility) exige:
- sementes aleatórias fixas (quando possível)
- código e dados versionados
- pipelines de avaliação consistentes
6) Análise de Erros
Não olhe apenas para a métrica global — inspecione falhas:
- Quais classes/usuários/períodos de tempo falham?
- Os erros estão correlacionados com algum subgrupo (subgroup)?
- Há padrões sugerindo problemas de rótulo ou vazamento?
Muitas vezes, as melhores melhorias vêm de correções na qualidade dos dados, não de mais complexidade no modelo.
7) Implantar e Monitorar
Implantação não é o fim. Monitore:
- Deriva de dados (data drift): mudanças na distribuição de entrada
- Deriva de conceito (concept drift): mudanças na relação entre entradas e rótulos
- Queda de desempenho (quando os rótulos chegam mais tarde)
- Latência, vazão (throughput), custo
- Regressões de modelo entre versões
Isso normalmente é tratado em operações de aprendizado de máquina (MLOps). Veja MLOps.
Exemplo Prático: Um Pipeline Típico de Aprendizado Supervisionado (scikit-learn)
Abaixo está um exemplo compacto de classificação em dados tabulares com atributos numéricos/categóricos mistos.
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.impute import SimpleImputer
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report, roc_auc_score
# Example dataframe with a binary label column "y"
df = pd.read_csv("data.csv")
y = df["y"].astype(int)
X = df.drop(columns=["y"])
numeric_cols = X.select_dtypes(include=["int64", "float64"]).columns
categorical_cols = X.select_dtypes(include=["object", "category"]).columns
numeric_pipe = Pipeline(steps=[
("imputer", SimpleImputer(strategy="median")),
("scaler", StandardScaler())
])
categorical_pipe = Pipeline(steps=[
("imputer", SimpleImputer(strategy="most_frequent")),
("onehot", OneHotEncoder(handle_unknown="ignore"))
])
preprocess = ColumnTransformer(
transformers=[
("num", numeric_pipe, numeric_cols),
("cat", categorical_pipe, categorical_cols)
]
)
model = Pipeline(steps=[
("preprocess", preprocess),
("clf", LogisticRegression(max_iter=2000))
])
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42, stratify=y
)
model.fit(X_train, y_train)
proba = model.predict_proba(X_test)[:, 1]
pred = (proba >= 0.5).astype(int)
print("ROC AUC:", roc_auc_score(y_test, proba))
print(classification_report(y_test, pred))
Notas:
- O
Pipelinegarante que o pré-processamento seja aplicado de forma consistente no treinamento e na inferência. ColumnTransformerevita vazamento ao aprender o pré-processamento apenas a partir dos dados de treino.- O limiar 0.5 pode ser subótimo; escolha-o com base nos trade-offs de precisão/revocação.
Aplicações e Onde o Aprendizado de Máquina se Encaixa Melhor
O aprendizado de máquina é amplamente usado em:
- Busca e recomendação: ranqueamento, personalização, recuperação (retrieval) + reordenamento (reranking)
- Linguagem: classificação, extração, sumarização, assistentes (frequentemente via transformadores)
- Visão: detecção, OCR, segmentação, inspeção de qualidade
- Previsão (forecasting): demanda, precificação, planejamento de capacidade (cuidado com não estacionariedade (non-stationarity))
- Segurança: detecção de fraude, detecção de anomalias, mitigação de spam/abuso
- Saúde: pontuação de risco (risk scoring), suporte à triagem (triage support) (exige validação rigorosa e governança (governance))
O aprendizado de máquina é melhor quando:
- Existem padrões em dados históricos e o ambiente é razoavelmente estável
- O alvo de predição está bem definido
- Você consegue medir sucesso e iterar com segurança
O aprendizado de máquina não é uma solução mágica quando:
- O problema central é causal e intervenções (interventions) importam mais do que predição (veja Inferência Causal)
- Os dados são escassos, enviesados, ou os rótulos não são confiáveis
- Os requisitos exigem correção garantida em todos os casos de borda (edge cases) (o aprendizado de máquina é probabilístico)
Armadilhas Comuns e Boas Práticas
- Vazamento de dados: o motivo #1 para modelos parecerem ótimos offline e falharem em produção.
- Desalinhamento entre treino e serving (training/serving skew): o pré-processamento difere entre treinamento e implantação.
- Dados desbalanceados (imbalanced data): use métricas adequadas (PR AUC), estratégias de amostragem (sampling strategies) ou perdas sensíveis a custo (cost-sensitive losses).
- Sobreajuste por uso repetido do conjunto de teste: mantenha o conjunto de teste “lacrado”.
- Correlações espúrias (spurious correlations): modelos podem aprender atalhos (ex.: artefatos de fundo em imagens).
- Calibração ruim: classificação acurada não garante probabilidades confiáveis.
- Ignorar restrições: latência e custo podem invalidar um modelo com alta acurácia.
- Equidade e privacidade: avalie impactos por subgrupo; considere métodos de preservação de privacidade (privacy-preserving methods), como Privacidade Diferencial, quando apropriado.
Como o Aprendizado de Máquina se Relaciona a Sistemas Agênticos
O aprendizado de máquina tradicional frequentemente foca em predição (aprendizado supervisionado), enquanto sistemas agênticos (agentic systems) exigem:
- percepção (perception) e aprendizado de representações (frequentemente via aprendizado profundo)
- tomada de decisão ao longo do tempo (frequentemente via aprendizado por reforço)
- planejamento (planning), uso de ferramentas (tool use) e adaptação orientada por feedback (feedback-driven adaptation) (veja Agentes e Planejamento)
Na prática, muitos sistemas modernos combinam componentes de aprendizado de máquina (classificadores (classifiers), modelos de ranqueamento, representações vetoriais, modelos de linguagem grandes (large language models, LLMs)) com lógica de planejamento e controle para formar pipelines agênticos robustos.
Resumo
Aprendizado de máquina é a disciplina de construir modelos que generalizam a partir de dados. O panorama central inclui aprendizado supervisionado, não supervisionado, auto-supervisionado e por reforço; famílias de modelos que vão de métodos lineares e comitês de árvores a redes neurais profundas; e uma mentalidade de avaliação centrada em divisões cuidadosas, métricas adequadas e prevenção de vazamento. Em sistemas reais, o sucesso depende tanto do fluxo de trabalho — qualidade dos dados, linhas de base, análise de erros, monitoramento após implantação e iteração — quanto da escolha do modelo.