O t-distributed Stochastic Neighbor Embedding (t-SNE) é uma técnica poderosa utilizada para a redução da dimensionalidade, concebida principalmente para a visualização de conjuntos de dados de elevada dimensão num espaço de baixa dimensão, normalmente de duas ou três dimensões. Desenvolvida por Laurens van der Maaten e Geoffrey Hinton, a t-SNE é excelente para revelar a estrutura local subjacente dos dados, como clusters e manifolds. Isto torna conjuntos de dados complexos gerados ou processados por modelos de Inteligência Artificial (IA) e de Aprendizagem Automática (AM) mais fáceis de interpretar através de inspeção visual. É amplamente utilizado em vários domínios, incluindo a visão por computador (CV) e o processamento de linguagem natural (PNL).
Como funciona o t-SNE
A ideia central do t-SNE é mapear pontos de dados de alta dimensão para um espaço de baixa dimensão (por exemplo, um gráfico 2D) de forma a preservar as semelhanças entre os pontos. Modela a semelhança entre pares de pontos de alta dimensão como probabilidades condicionais e, em seguida, tenta encontrar uma incorporação de baixa dimensão onde as probabilidades condicionais entre os pontos mapeados são semelhantes. Este processo centra-se na retenção da estrutura local - os pontos que estão próximos uns dos outros no espaço de alta dimensão devem permanecer próximos uns dos outros no mapa de baixa dimensão.
Ao contrário dos métodos lineares, como a análise de componentes principais (PCA), a t-SNE é não linear e probabilística. Isto permite-lhe captar relações complexas e não lineares, como colectores curvos, que a PCA pode não captar. O algoritmo calcula as semelhanças usando uma distribuição Gaussiana no espaço de alta dimensão e uma distribuição t de Student (com um grau de liberdade) no espaço de baixa dimensão. A utilização da distribuição t ajuda a separar os pontos dissemelhantes mais afastados no mapa de baixa dimensão, atenuando o "problema de aglomeração", em que os pontos tendem a juntar-se. A incorporação óptima é encontrada minimizando a divergência (especificamente, a divergência de Kullback-Leibler) entre as duas distribuições de probabilidade utilizando técnicas de otimização como a descida gradiente. Para uma compreensão técnica aprofundada, consulta o documento original sobre t-SNE.
t-SNE vs. PCA
Embora tanto o t-SNE como o PCA sejam técnicas comuns de redução da dimensionalidade, diferem significativamente:
- Linearidade: A PCA é uma técnica linear, enquanto a t-SNE é não linear. A PCA encontra componentes principais que maximizam a variância, essencialmente girando os dados. t-SNE modela semelhanças entre pares.
- Foco: O PCA tem como objetivo preservar a estrutura global e a variância máxima dos dados. O t-SNE dá prioridade à preservação da estrutura local (vizinhança dos pontos).
- Caso de uso: O PCA é frequentemente utilizado para compressão de dados, redução de ruído e como uma etapa de pré-processamento de dados antes de aplicar outros algoritmos de ML. O t-SNE é utilizado principalmente para visualização e exploração de dados devido à sua capacidade de revelar clusters.
- Interpretabilidade: Os eixos num gráfico PCA representam componentes principais e têm uma interpretação matemática clara relacionada com a variância. Os eixos e as distâncias entre clusters num gráfico t-SNE não têm uma interpretação global tão direta; o foco está no agrupamento relativo de pontos.
Aplicações em IA e ML
O t-SNE serve como uma ferramenta de visualização inestimável para compreender dados complexos e de elevada dimensão, frequentemente encontrados em pipelines de IA e ML, como a exploração dos embeddings aprendidos por modelos de aprendizagem profunda.
- Visualiza as caraterísticas da imagem: Na visão computacional, o t-SNE pode visualizar os mapas de caraterísticas de alta dimensão ou os embeddings gerados pelas Redes Neurais Convolucionais (CNNs), como as que existem no Ultralytics YOLO utilizadas para a deteção de objectos ou classificação de imagens. Ao aplicar o t-SNE a caraterísticas extraídas de um conjunto de dados como o ImageNet ou o COCO, os investigadores podem ver se o modelo aprende a agrupar imagens ou classes de objectos semelhantes no espaço de caraterísticas, fornecendo informações sobre a compreensão do modelo. Isto ajuda a analisar o desempenho do modelo para além das métricas de precisão padrão (ver Métricas de desempenhoYOLO ).
- Explora os agrupamentos de palavras: Na PNL, o t-SNE é usado para visualizar as incrustações de palavras (por exemplo, do Word2Vec, GloVe ou BERT) em 2D. Isto permite inspecionar as relações semânticas; por exemplo, palavras como "rei", "rainha", "príncipe" e "princesa" podem formar grupos distintos ou apresentar posições relativas significativas, demonstrando a qualidade da modelação da linguagem. Ferramentas como o TensorFlow Projetor utilizam frequentemente o t-SNE para incorporar a visualização.
- Entende os dados de treinamento: Antes ou durante o treinamento do modelo, o t-SNE pode ajudar a visualizar a estrutura dos próprios dados de treinamento, potencialmente revelando clusters distintos, outliers ou problemas de rotulagem em conjuntos de dados gerenciados por meio de plataformas como o Ultralytics HUB.
Considerações
Embora seja poderosa para a visualização, a t-SNE tem algumas considerações a fazer:
- Custo computacional: Pode ser computacionalmente dispendioso e lento para conjuntos de dados muito grandes, devido aos seus cálculos em pares. Técnicas como a aproximação de t-SNE ou a aplicação de PCA primeiro podem ajudar.
- Hiperparâmetros: Os resultados podem ser sensíveis a hiperparâmetros como a "perplexidade" (relacionada com o número de vizinhos mais próximos considerados) e o número de iterações para a descida do gradiente.
- Estrutura global: O t-SNE concentra-se na estrutura local; as distâncias relativas entre clusters no gráfico final podem não refletir com precisão a separação no espaço original de alta dimensão. Os tamanhos dos clusters também podem ser enganadores. As implementações estão disponíveis em bibliotecas como Scikit-learn e estruturas como PyTorch.