Feature Extraction
A extração de recursos transforma dados brutos, como imagens, em recursos compactos e informativos, usando métodos desenvolvidos manualmente ou redes neurais pré-treinadas.
A extração de características é o processo de transformar dados brutos em um conjunto menor de características numéricas que preservam as informações necessárias para uma tarefa. Uma foto RGB de 640×480 contém 921.600 valores de pixels, a maioria redundantes, e um extrator de características pode reduzi-la a um vetor de algumas centenas de números que descrevem seu conteúdo. O aprendizado de máquina clássico dependia de extratores projetados manualmente para cada tipo de dado, enquanto os modelos de aprendizado profundo aprendem os seus em uma rede backbone, cuja saída pode ser reutilizada em buscas, agrupamentos e novos classificadores. Dimensões menos numerosas e mais informativas também atenuam a maldição da dimensionalidade, permitindo que modelos mais simples generalizem com menos dados.
Características projetadas manualmente e características aprendidas#
Antes do aprendizado profundo, engenheiros criavam um extrator de características para cada tipo de dado:
- SIFT: Encontra pontos-chave em uma imagem e descreve cada um com um histograma de 128 dimensões das orientações dos gradientes, estável a mudanças de escala e rotação; por isso, tornou-se a ferramenta padrão para correspondência de imagens e junção de panoramas.
- HOG: Histogramas de gradientes orientados calculados em uma grade de células; combinado com uma máquina de vetores de suporte linear, o HOG foi apresentado em 2005 para detectar pedestres e se tornou essencial na detecção clássica de objetos.
- Análise de componentes principais (PCA): Projeta os dados nas direções de maior variância; é um método de uso geral para dados tabulares, rostos e espectros.
- Coeficientes cepstrais de frequência Mel (MFCCs): Resumem o espectro de curto prazo do áudio em uma escala ajustada à audição humana e foram por muito tempo a entrada padrão para reconhecimento de fala.
As características aprendidas substituíram a maioria desses métodos para imagens, áudio e texto. Uma rede neural convolucional (CNN) ou um Transformer de visão (ViT) treinado com milhões de imagens constrói uma hierarquia por conta própria: as camadas iniciais detectam bordas e manchas de cor, as camadas intermediárias detectam texturas e partes, e as camadas finais codificam conceitos de nível de objeto. Essas representações, armazenadas em mapas de características, podem ser reutilizadas em novas tarefas, e é por isso que backbones pré-treinados são o ponto de partida padrão para o aprendizado por transferência.
Extração de características e termos relacionados#
- Engenharia de características: A prática mais ampla de criar, transformar e escolher entradas do modelo, muitas vezes usando conhecimento do domínio, como calcular o preço por metro quadrado a partir do preço e da área. A extração de características é uma parte dessa prática e, no aprendizado profundo, é totalmente automatizada.
- Seleção de características: Mantém um subconjunto das características originais sem alterá-las e descarta as demais. A extração de características cria novas características ao transformar ou combinar as originais.
- Redução de dimensionalidade: Sobrepõe-se bastante à extração de características, e a PCA se enquadra em ambas. Métodos criados para visualização, como t-SNE, reduzem as dimensões para inspeção humana e raramente são usados como entradas de modelos.
- Embeddings: Os vetores de características produzidos por um extrator aprendido. No aprendizado profundo, "características extraídas" e "embeddings" geralmente se referem aos mesmos vetores.
Usar uma rede pré-treinada como extrator de características#
A abordagem comum usa uma rede pré-treinada, remove sua cabeça específica da tarefa, processa os dados pelas camadas congeladas e aplica pooling ao último mapa de características para gerar um vetor por entrada. Com rótulos, treinar apenas um classificador linear sobre esses vetores, técnica chamada sondagem linear, fornece uma linha de base sólida por uma fração do custo de treinar uma rede. Sem rótulos, a busca vetorial encontra imagens visualmente semelhantes, o agrupamento k-means organiza um conjunto de dados para curadoria e remoção de duplicatas, e a distância em relação a exemplos normais sinaliza defeitos na detecção de anomalias. Os pesos do backbone nunca mudam durante a extração de características, o que a distingue do ajuste fino.
Os modelos YOLO26 oferecem esse recurso por meio de model.embed(), que executa a rede até uma camada escolhida e aplica pooling médio ao mapa de características dessa camada para gerar um vetor por imagem; embed=[10] para na última camada do backbone do YOLO26.
from ultralytics import YOLO
# Carrega um modelo YOLO26 pré-treinado; o backbone termina na camada 10
model = YOLO("yolo26n.pt")
# Aplica pooling médio ao mapa de características final do backbone para gerar um vetor por imagem
embeddings = model.embed("https://ultralytics.com/images/bus.jpg", embed=[10])
vector = embeddings[0]
print(vector.shape)Ele exibe torch.Size([256]): a foto inteira do ônibus reduzida a 256 números, um por canal da saída stride-32 do backbone do YOLO26n, pronta para busca vetorial ou agrupamento.










