Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Dimensionality Reduction

A redução de dimensionalidade mapeia dados com muitos recursos para um espaço com bem menos dimensões, preservando sua estrutura por meio de métodos como PCA, t-SNE, UMAP e autoencoders.

A redução de dimensionalidade transforma dados descritos por muitos atributos em uma representação com muito menos atributos, que preserva as informações relevantes, como a variância dos dados, as distâncias entre pontos ou quais pontos são vizinhos. Uma imagem colorida de 640x640 tem mais de 1,2 milhão de valores de pixels, um perfil de expressão gênica pode ter 20.000 medições e um embedding de imagem costuma ter centenas de dimensões. Reduzi-las acelera os modelos de aprendizado de máquina, diminui o risco de sobreajuste, reduz o armazenamento necessário e permite representar os dados em duas ou três dimensões para a visualização de dados.

Por que menos dimensões ajudam#

Richard Bellman cunhou a expressão "maldição da dimensionalidade" em seu trabalho sobre programação dinâmica para descrever como os problemas ficam mais difíceis à medida que se adicionam dimensões. O volume do espaço cresce exponencialmente a cada novo atributo, então uma quantidade fixa de dados de treinamento cobre esse espaço de forma cada vez mais esparsa. Em dimensões muito altas, as distâncias entre pontos aleatórios ficam quase iguais, o que enfraquece métodos baseados em distância, como k-vizinhos mais próximos e agrupamento k-means.

Dados reais raramente preenchem todo o seu espaço. Imagens de dígitos manuscritos variam principalmente na espessura e na inclinação dos traços e em alguns outros fatores, então ficam próximas de uma superfície de dimensão muito menor, ou variedade, dentro do espaço de pixels. A redução de dimensionalidade encontra coordenadas nessa superfície e, como não precisa de rótulos, a maioria dos métodos é uma forma de aprendizado não supervisionado.

Métodos lineares e não lineares#

A análise de componentes principais (PCA), apresentada por Karl Pearson em 1901, rotaciona os dados em direções ortogonais ordenadas pela variância que capturam e mantém as primeiras. A razão de variância explicada mostra de quantos componentes um conjunto de dados precisa. A análise discriminante linear, criada por Ronald Fisher em 1936, usa rótulos de classe para encontrar as direções que melhor separam as classes. A projeção aleatória multiplica os dados por uma matriz aleatória, e o lema de Johnson-Lindenstrauss garante que as distâncias entre n pontos sejam preservadas dentro de uma tolerância escolhida usando um número de dimensões que cresce apenas com o logaritmo de n.

Os métodos não lineares acompanham variedades curvas. Isomap e a incorporação localmente linear, ambos publicados na Science em 2000, preservam as distâncias ao longo da variedade e as vizinhanças lineares locais. t-SNE e UMAP posicionam pontos semelhantes próximos uns dos outros em um mapa 2D, o que os torna as ferramentas padrão para visualizar agrupamentos de embeddings, embora as distâncias entre agrupamentos muito afastados nesses mapas tenham pouco significado. Autoencoders aprendem um codificador que mapeia cada entrada para um código pequeno no espaço latente e um decodificador que a reconstrói. Em 2006, Geoffrey Hinton e Ruslan Salakhutdinov mostraram que autoencoders profundos produzem códigos melhores do que PCA para imagens e documentos.

Este exemplo comprime imagens de dígitos de 8x8, reduzindo os 64 atributos de pixel ao menor número de componentes principais que preserva 90% da variância, e depois classifica os dígitos com k vizinhos mais próximos, antes e depois:

from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.model_selection import cross_val_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline

X, y = load_digits(return_X_y=True)  # 1,797 images of 8x8 pixels = 64 features

# Keep the fewest principal components that explain 90% of the variance
pca = PCA(n_components=0.90).fit(X)
print(f"Features: {X.shape[1]} -> {pca.n_components_}")

# Classify with k-nearest neighbors on the raw pixels and on the reduced features
raw = cross_val_score(KNeighborsClassifier(), X, y).mean()
reduced = cross_val_score(make_pipeline(PCA(n_components=0.90), KNeighborsClassifier()), X, y).mean()
print(f"Accuracy: {raw:.3f} with 64 features, {reduced:.3f} with {pca.n_components_}")

Vinte e um componentes preservam 90% da variância, e a precisão validada por validação cruzada muda apenas de 0.963 para 0.959 com um terço dos atributos. Ajustar o PCA dentro do pipeline aprende a projeção usando apenas cada partição de treinamento, sem vazamento de informações das partições de teste.

Seleção e extração de atributos#

A seleção de atributos mantém um subconjunto das colunas originais, por exemplo, removendo canais de sensores redundantes, de modo que os atributos restantes conservem seu significado. A redução de dimensionalidade em sentido estrito é a extração de atributos: ela cria novos atributos como combinações dos antigos, o que normalmente comprime melhor, mas é mais difícil de interpretar. Ambas são etapas do pré-processamento de dados e da engenharia de atributos. Redes profundas realizam a extração durante o treinamento, comprimindo pixels em embeddings, e o aprendizado de representações Matryoshka treina embeddings cujas dimensões iniciais funcionam por conta própria, para que um banco de dados vetorial possa armazenar vetores menores.

Usos em visão computacional#

A visão computacional depende de representações reduzidas em várias etapas. Projetar embeddings de imagens em 2D com t-SNE ou UMAP mostra se as classes se separam e onde ficam os valores discrepantes, e o PCA ou a quantização vetorial reduz os embeddings usados pela busca vetorial, para que milhões de imagens caibam na memória. Os modelos de segmentação de instâncias YOLO26 incorporam essa ideia à saída: a cabeça calcula 32 máscaras protótipo por imagem, com um quarto da resolução de entrada, e prevê apenas 32 coeficientes por objeto; a máscara de cada objeto é a soma ponderada dos protótipos. Assim, uma máscara de 160x160 para uma entrada de 640 pixels, com 25,600 valores, é codificada em 32 números.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina