Redução de Dimensionalidade: PCA, t-SNE, LDA, UMAP, Autoencoders

1.2 – Nao Supervisionado
1.2.2 – Reducao de Dimensionalidade
1.2.2.1 – PCA, t-SNE, LDA, UMAP, Autoencoders
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura
O que você vai aprender aqui: Imagine que você tem uma planilha com 100 colunas (dimensões). Isso fica confuso e lento para analisar. A redução de dimensionalidade comprime essas colunas em apenas 2 ou 3, mas sem perder o sentido dos dados. É como resumir um livro enorme em um parágrafo que mantém a essência. Incrível, não é? Vamos explorar isso com exemplos simples.

O que é aprendizado de máquina não supervisionado?

Nesse tipo de aprendizado, o algoritmo não recebe respostas prontas. Ele mesmo precisa encontrar padrões escondidos. Não há professor para corrigir os erros. É como aprender a separar frutas apenas observando suas formas e cores. Frequentemente, os dados são agrupados ou reorganizados sem rótulos. Essa abordagem é poderosa para explorar informações desconhecidas. Muitas empresas usam essa técnica para segmentar clientes. O objetivo é descobrir relações que ninguém havia notado antes. Os métodos não supervisionados são ideais quando não se tem um alvo definido. Eles revelam a estrutura natural dos dados. Isso é fundamental para a redução de dimensionalidade.

O problema da redução de dimensionalidade

Dados com muitas variáveis causam a chamada “maldição da dimensionalidade”. O desempenho dos modelos cai drasticamente. A visualização se torna impossível com mais de três dimensões. Além disso, o custo computacional cresce de forma absurda. É por isso que reduzir dimensões é tão necessário. Esse processo transforma um espaço enorme em algo mais compacto. As informações mais relevantes são preservadas durante essa compressão. O ruído e a redundância são eliminados automaticamente. Pode-se dizer que os dados ficam mais limpos e eficientes. Essa técnica é amplamente aplicada antes de outros modelos de IA. Sem ela, muitos projetos de machine learning seriam inviáveis na prática.

Modelos populares: características, hiperparâmetros e matemática

Modelo 1

Principal Component Analysis (PCA)

Características: O PCA é um método linear que busca direções de máxima variância. Ele projeta os dados em novos eixos chamados componentes principais. É muito usado para visualização e pré-processamento. Sua maior limitação é não capturar relações não lineares.

Hiperparâmetros principais: n_components (número de dimensões de saída) e whiten (normalização opcional). Geralmente mantêm-se 2 ou 3 componentes para gráficos.

Matemática (PCA):

\( \text{Cov}(X) = \frac{1}{n-1} X^T X \)
\( \text{Cov}(X) v_i = \lambda_i v_i \)
\( X_{\text{pca}} = X V_k \) onde \( V_k \) são os primeiros \( k \) autovetores.

Primeiro calcula-se a matriz de covariância. Depois resolvem-se os autovalores (\( \lambda_i \)) e autovetores (\( v_i \)). Os dados originais são projetados nos autovetores mais importantes. Essa transformação garante a máxima preservação da variância.

Modelo 2

T‑SNE (t‑Distributed Stochastic Neighbor Embedding)

Características: Especialista em visualizar agrupamentos locais. Ele converte similaridades entre pontos em probabilidades. É muito usado em bioinformática e visão computacional. Contudo, é caro computacionalmente para grandes datasets. Sua natureza não linear revela estruturas que o PCA não mostra.

Hiperparâmetros essenciais: perplexity (equilíbrio entre vizinhos locais e globais), learning_rate e n_iter. Perplexidade típica entre 5 e 50.

Matemática (t‑SNE):

\( p_{j|i} = \frac{\exp(-\|x_i – x_j\|^2 / 2\sigma_i^2)}{\sum_{k \neq i} \exp(-\|x_i – x_k\|^2 / 2\sigma_i^2)} \)
\( q_{ij} = \frac{(1 + \|y_i – y_j\|^2)^{-1}}{\sum_{k \neq l} (1 + \|y_k – y_l\|^2)^{-1}} \)
\( \text{Custo} = \sum_i \sum_j p_{ij} \log\frac{p_{ij}}{q_{ij}} \)

A primeira equação mede similaridades no espaço original. A segunda calcula similaridades no espaço reduzido (usando distribuição t-Student). O algoritmo minimiza a divergência de Kullback-Leibler entre elas. Assim, vizinhos próximos permanecem próximos após a redução.

Modelo 3

Linear Discriminant Analysis (LDA)

Características: Embora seja supervisionado por natureza, o LDA é frequentemente adaptado para tarefas não supervisionadas. Ele maximiza a separabilidade entre classes conhecidas. Mas, na ausência de rótulos, pode ser usado após clustering. É ótimo para problemas onde se deseja máxima separação. Muito eficiente para reconhecimento facial.

Hiperparâmetros relevantes: n_components (no máximo número de classes – 1) e solver (svd, lsqr, eigen).

Matemática (LDA):

\( S_B = \sum_{c} N_c (\mu_c – \mu)(\mu_c – \mu)^T \)
\( S_W = \sum_{c} \sum_{i \in c} (x_i – \mu_c)(x_i – \mu_c)^T \)
\( S_W^{-1} S_B w = \lambda w \)

A matriz de espalhamento entre classes \( S_B \) mede a distância das médias das classes. A matriz de espalhamento intra-classe \( S_W \) mede a dispersão dentro de cada classe. O LDA busca autovetores que maximizam a razão \( S_B / S_W \). Isso garante que as classes fiquem bem separadas no novo espaço.

Modelo 4

Uniform Manifold Approximation and Projection (UMAP)

Características: UMAP é um método moderno, rápido e não linear. Ele preserva tanto a estrutura local quanto a global dos dados. É considerado um sucessor do t‑SNE com melhor escalabilidade. Frequentemente, mantém mais informações de topologia. Ideal para conjuntos de dados com milhões de amostras.

Hiperparâmetros críticos: n_neighbors (número de vizinhos, entre 5 e 50), min_dist (distância mínima entre pontos no espaço reduzido) e metric (euclidiana, coseno, etc.).

Matemática (UMAP):

\( \text{Vizinhança fuzzy: } \mu_{ij} = \exp\left(-\frac{d(x_i,x_j) – \rho_i}{\sigma_i}\right) \)
\( \text{Custo atrativo-repulsivo: } \sum_{i \neq j} \left[ \mu_{ij} \log \frac{\mu_{ij}}{\nu_{ij}} + (1-\mu_{ij}) \log \frac{1-\mu_{ij}}{1-\nu_{ij}} \right] \)

Primeiro, UMAP constrói um grafo fuzzy baseado na vizinhança local. Depois, otimiza uma representação de baixa dimensão com forças atrativas e repulsivas. A fórmula usa entropia cruzada para alinhar as similaridades. O resultado é uma projeção rápida e informativa.

Modelo 5

Autoencoders (Redes Neurais)

Características: Autoencoders são redes neurais que aprendem a comprimir dados em um “gargalo” (bottleneck). Eles são não lineares e extremamente flexíveis. A arquitetura possui um codificador (encoder) e um decodificador (decoder). O treinamento é feito para reconstruir a entrada original. Excelentes para extração de características e remoção de ruído.

Hiperparâmetros típicos: encoding_dim (tamanho da camada comprimida), número de camadas, função de ativação (ReLU, sigmoid), taxa de aprendizado, epochs e batch_size.

Matemática (Autoencoder):

\( h = f(W_e x + b_e) \quad \text{(codificador)} \)
\( \hat{x} = g(W_d h + b_d) \quad \text{(decodificador)} \)
\( \mathcal{L} = \|x – \hat{x}\|^2 \quad \text{(erro de reconstrução)} \)

A camada intermediária \( h \) é a representação de baixa dimensão. O codificador mapeia a entrada \( x \) para esse espaço comprimido. O decodificador tenta reconstruir \( \hat{x} \) o mais próximo possível do original. O treinamento minimiza o erro quadrático médio entre entrada e saída. Após o treinamento, apenas o codificador é usado para reduzir a dimensionalidade.


💡 Dica final: Para dados lineares, comece com PCA. Para visualização de clusters, use t‑SNE ou UMAP. Autoencoders são indicados quando você tem muitos dados e precisa de flexibilidade. LDA exige rótulos, mas adaptações existem. Experimente cada método em pequenos datasets. A prática é a melhor professora. Agora você já conhece as principais ferramentas de redução de dimensionalidade. Coloque a mão no código e explore!

Conteúdo para iniciantes · Redução de dimensionalidade explicada de forma simples · Fórmulas matemáticas em LaTeX

SARSA: Aprendizado on-policy por diferença temporal

bebê aprendendo a andar
1.4.2 – Metodos Baseados em Valor
1.4.2.3 – Temporal Difference – TD
1.4.2.3.1 – SARSA – On-policy
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

SARSA é um algoritmo de aprendizado por reforço. Seu nome vem da sequência (Estado, Ação, Recompensa, Próximo Estado, Próxima Ação). Primeiramente, ele é um método on-policy. Isso significa que ele aprende e age com a mesma política. Em segundo lugar, ele usa diferença temporal (TD) para atualizações. Por conseguinte, SARSA é mais seguro que Q-learning em alguns problemas. Ele considera a ação que realmente será tomada no próximo estado.

Características da arquitetura SARSA

SARSA atualiza a função Q(s,a) a cada passo. A fórmula de atualização é \( Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma Q(s’,a’) – Q(s,a)] \). Aqui a’ é a ação escolhida pela política atual. Diferente do Q-learning, não usamos o máximo sobre ações. Usamos a ação real que será executada. Portanto, SARSA é mais conservador. Ele evita riscos que o Q-learning poderia tomar. A arquitetura armazena Q(s,a) em uma tabela ou rede neural.

A política usada é tipicamente ε-greedy. Durante o aprendizado, a mesma política gera os episódios. Não há separação entre comportamento e alvo (on-policy). Isso é uma vantagem para problemas com risco. A penalidade por ações ruins é aprendida diretamente. O agente não assume que tomará a melhor ação. Ele assume que pode explorar com probabilidade ε. Consequentemente, SARSA tende a encontrar políticas mais seguras.

Hiperparâmetros e fórmulas matemáticas

Os hiperparâmetros do SARSA são similares ao Q-learning. A taxa de aprendizado α controla a velocidade de atualização. O fator de desconto γ valoriza recompensas futuras. A taxa de exploração ε define a suavidade da política. Valores típicos são α=0.1, γ=0.95, ε=0.1. O algoritmo converge se todos os pares forem visitados. A condição de convergência é \( \sum \alpha_t = \infty \) e \( \sum \alpha_t^2 < \infty [/latex].

A diferença entre SARSA e Q-learning é sutil mas importante. O erro TD do SARSA é [latex] \delta = r + \gamma Q(s’,a’) – Q(s,a) \). No Q-learning, o erro usa \( \max_a Q(s’,a) \). SARSA é on-policy; Q-learning é off-policy. Por causa disso, SARSA é mais estável em ambientes estocásticos. Ele é preferido quando segurança é crucial. O exemplo clássico é o problema do penhasco (Cliff Walking).

Exemplo clássico: caminhando no penhasco

Imagine um grid 4×12 onde o agente deve chegar ao objetivo. Há um penhasco na borda inferior. Cair no penhasco dá recompensa -100 e termina o episódio. Cada passo normal custa -1. O objetivo dá recompensa 0 e termina. O agente aprende a evitar o penhasco. SARSA aprende um caminho mais seguro que Q-learning. O código abaixo compara ambos os algoritmos neste ambiente.