Deep Learning (DL)
A aprendizagem profunda (DL) é uma forma de aprendizagem de máquina que usa redes neurais com muitas camadas para aprender características a partir de dados brutos. Veja como funciona, suas principais arquiteturas e usos.
A aprendizagem profunda (DL) é um ramo da aprendizagem de máquina (ML) que treina redes neurais com muitas camadas empilhadas para aprender diretamente de dados brutos, como pixels, formas de onda de áudio e texto. "Profunda" refere-se a essa profundidade: cada camada transforma a saída da anterior, permitindo que a rede construa sua própria hierarquia de características, de bordas a texturas e objetos inteiros em uma imagem, sem que engenheiros precisem projetar essas características manualmente. A aprendizagem profunda impulsiona a visão computacional, o reconhecimento de fala, os grandes modelos de linguagem (LLMs) e a IA generativa modernos.
Como funciona a aprendizagem profunda#
Uma rede neural é uma cadeia de camadas. Cada camada multiplica sua entrada por uma matriz de pesos aprendidos, adiciona um viés e passa o resultado por uma função de ativação não linear, como a ReLU. A não linearidade é o que torna útil a profundidade: sem ela, qualquer pilha de camadas se reduz a uma única transformação linear.
O treinamento ajusta os pesos para que as saídas da rede correspondam aos rótulos de treinamento. Em cada etapa, um lote de dados percorre a rede no sentido direto, uma função de perda avalia o erro, a retropropagação calcula quanto cada peso contribuiu para esse erro, e um otimizador, como a descida estocástica do gradiente (SGD) ou o Adam, ajusta cada peso na direção que reduz o erro. A repetição desse processo ao longo de muitas épocas transforma pesos aleatórios em características úteis. O exemplo abaixo em PyTorch treina uma única camada linear e uma rede de três camadas com pontos rotulados de acordo com estarem ou não dentro de um círculo:
import torch
from torch import nn
torch.manual_seed(0)
# Points inside a circle are class 1: no straight line separates the classes
x = torch.rand(1000, 2) * 2 - 1
y = (x.pow(2).sum(dim=1) < 0.5).float().unsqueeze(1)
# A single linear layer versus stacked layers with nonlinear activations
models = {
"linear": nn.Linear(2, 1),
"deep": nn.Sequential(nn.Linear(2, 16), nn.ReLU(), nn.Linear(16, 16), nn.ReLU(), nn.Linear(16, 1)),
}
for name, model in models.items():
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
for step in range(500):
loss = nn.functional.binary_cross_entropy_with_logits(model(x), y)
optimizer.zero_grad()
loss.backward() # backpropagation computes gradients for every layer
optimizer.step()
accuracy = ((model(x) > 0) == y).float().mean()
print(f"{name}: {accuracy:.1%} accuracy")O modelo linear alcança 60.8%, aproximadamente a proporção de pontos fora do círculo, pois uma fronteira reta não consegue delimitar uma região. O modelo profundo alcança 99.9%: suas camadas ocultas curvam a fronteira de decisão em uma curva aprendida com os dados. O Ultralytics YOLO26 é treinado com o mesmo ciclo em uma escala muito maior, e o model.train() executa passagens diretas, cálculos da perda e retropropagação em imagens rotuladas em uma GPU, quando disponível.
Aprendizagem profunda e aprendizagem de máquina#
A aprendizagem profunda é um subconjunto da aprendizagem de máquina, e as duas se diferenciam principalmente pela origem das características. Algoritmos clássicos, como árvores de decisão, máquinas de vetores de suporte e árvores com aumento de gradiente, aprendem com características definidas por pessoas, como o valor de uma transação ou a contagem de uma palavra. Redes profundas aprendem as próprias características, razão pela qual dominam dados não estruturados, como imagens, áudio e texto. Essa capacidade tem um custo: modelos profundos geralmente precisam de muito mais dados rotulados, são treinados em GPUs ou outros aceleradores e explicam menos seu raciocínio. Em dados tabulares, árvores com aumento de gradiente, como o XGBoost, continuam sendo concorrentes fortes, e a aprendizagem por transferência reduz a diferença na quantidade de dados necessária para modelos profundos, partindo de uma rede pré-treinada com um grande conjunto de dados.
Principais arquiteturas#
- Redes neurais convolucionais (CNNs): Deslizam pequenos filtros aprendidos sobre uma imagem, para que o mesmo padrão seja reconhecido em qualquer ponto do quadro. As CNNs são a base da detecção de objetos e da segmentação de imagens em tempo real.
- Redes neurais recorrentes (RNNs): Processam sequências uma etapa de cada vez, mantendo um estado oculto. Variantes como as LSTMs dominaram o reconhecimento de fala e a tradução antes dos transformers.
- Transformers: Usam autoatenção para relacionar cada elemento de uma sequência a todos os demais em paralelo. Introduzidos em 2017, são a base dos LLMs e dos Vision Transformers (ViTs).
- Modelos de difusão: Aprendem a remover ruído gradualmente, o que permite gerar imagens, vídeos e áudio a partir de ruído aleatório.
Uma breve história#
As ideias por trás do aprendizado profundo têm décadas. A retropropagação se popularizou com um artigo de 1986 de David Rumelhart, Geoffrey Hinton e Ronald Williams, mas as redes permaneceram rasas até que três ingredientes surgiram juntos: grandes conjuntos de dados rotulados, como ImageNet, GPUs rápidas o suficiente para treiná-las e técnicas como ativações ReLU e dropout. Em 2012, o AlexNet reduziu a taxa de erro top-5 da ImageNet para 15,3%, contra 26,2% da segunda melhor participação, e quase da noite para o dia o campo passou a privilegiar redes profundas. Hinton, Yann LeCun e Yoshua Bengio receberam o Prêmio Turing de 2018 por esse trabalho, e o Prêmio Nobel de Física de 2024 foi concedido a Hinton e John Hopfield por descobertas que possibilitam o aprendizado de máquina com redes neurais artificiais. A profundidade continuou a aumentar: as conexões residuais permitiram que a ResNet treinasse redes de 152 camadas, e um conjunto dessas redes venceu o desafio de classificação ImageNet de 2015 com uma taxa de erro top-5 de 3,57%.










