Configuração automática do t-SNE (Projeto de conclusão de curso Unicamp 2017)
Neste repositório, apresento meu trabalho de conclusão de curso na Unicamp: “Ajuste automático de hiperparâmetros do algoritmo t-SNE para visualização de dados de elevada dimensão”, sob a orientação do Prof. Dr. Fernando José Von Zuben.
Link com os dados, visualizações e histórico dos experimentos.
O ajuste dos hiperparâmetros do t-SNE não é trivial. Apesar existirem argumentos suportando a tese de que o algoritmo é insensível aos seus hiperparâmetros, outras explorações apontam que o buraco é mais embaixo, mostrando que os hiperparâmetros alteram significativamente o resultado do algoritmo..
Visando suportar o cientista de dados nesta tarefa, desenvolvemos, neste trabalho, uma metodologia de configuração automática para o t-SNE. A lógica é bastante simples e bem representada na figura abaixo:
A metodologia mostrada consiste de três partes:
1 - Pipeline. Construímos uma classe que armazena os dados em análise e implementa um método que recebe um conjunto de hiperparâmetros e executa o t-SNE (após PCA) com esta configuração. Além disso, implementamos funções para extrair clusters a partir dos dados em baixa e alta dimensionalidade e outras funções para computar as métricas a seguir.
2 - Métricas. No final do Pipeline utilizamos métricas para medir aspectos que queremos otimizar na execução do t-SNE. Foram deifinidas três métricas:
3 - Otimização. A combinação do Pipeline com uma métrica de avaliação define uma função-objetivo, que podemos otimizar. São realizados experimentos com três algoritmos de otimização de hiperparâmetros populares: busca aleatória e TPE, com o módulo hyperopt e Processos Gaussianos (módulo BayesianOptimization).
O processo é conduzido da seguinte forma:
Os Notebooks disponíveis implementam experimentos com as três métricas de avaliação consideradas, três algoritmos de otimização e seis conjuntos de dados. Segue descrição:
notebooks/ami-optim.ipynb
: experimentos para otimizar a métrica de informação mútua ajustada.notebooks/baseline-plots.ipynb
: construindo visualizações com os hiperparâmetros sugeridos por Maaten & Hinton, para comparação qualitativa.notebooks/kl-divergence-optim.ipynb
: experimentos para otimizar a métrica de divergência KL.notebooks/optimizer-test.ipynb
: teste dos algoritmos de otimização.notebooks/rank-order-optim.ipynb
: experimentos para otimizar a métrica de rank-order correlation.notebooks/real-data-processing.ipynb
: criando as bases de dados reais.notebooks/synthetic-data-gen.ipynb
: criando as bases de dados sintéticas.Os resultados foram promissores. As melhores configurações segundo as métricas definidas mostraram que existem intervalos mais amplos para a configuração do t-SNE. Particularmente, perplexidades mais altas que o usual mostraram bons resultados. Uma avaliação mais completa é feita no relatório contido neste repositório. Por ora, mostramos uma visualização do dataset COIL-20 com hiperparâmetros sugeridos por Maaten & Hinton e com os hiperparâmetros ótimos para o objetivo de representação de estrutura global.
Hiperarâmetros sugeridos por Maaten & Hinton:
Hiperparâmetros otimizados para preservação de estrutura global:
Os clusters apresentam uma separação razoavelmente mais clara na visualização otimizada, obtida com uma perplexidade de 115 (fora do intervalo considerado como boa prática).