A matemática por trás da magia: desvendando as fórmulas dos algoritmos de machine learning

Imagine que você está aprendendo a fazer pão pela primeira vez. Você pode seguir receitas mecanicamente, mas quando entende a ciência por trás – como o fermento produz gás carbônico, como o glúten desenvolve elasticidade, como o calor transforma a massa – você se torna um verdadeiro padeiro. Da mesma forma, entender a formulação matemática dos algoritmos transforma você de usuário para especialista em machine learning, permitindo ajustes criativos e solução de problemas complexos.

Como isso funciona na prática?

A formulação matemática é a linguagem universal que descreve como os algoritmos realmente funcionam. Enquanto as implementações em código mostram o “como”, a matemática explica o “porquê”. Por exemplo, o KNN parece simples conceitualmente, mas sua formulação matemática envolve otimização de distâncias em espaços multidimensionais. Analogamente, algoritmos como SVM usam conceitos avançados de geometria para encontrar o hiperplano ótimo que separa classes. Entender estas formulações permite que você escolha algoritmos de forma inteligente e ajuste parâmetros com propósito, não por tentativa e erro.

Mãos na massa: implementando a matemática do KNN

Os detalhes que fazem diferença

Entender a formulação matemática revela insights cruciais sobre o comportamento dos algoritmos. Por exemplo, a função de custo \(J(\theta) = \frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)}) – y^{(i)})^2\) na regressão linear mostra explicitamente que estamos minimizando o erro quadrático médio. Contudo, diferentes algoritmos otimizam diferentes funções: SVM maximiza margens, árvores de decisão maximizam ganho de informação. Analogamente importante é compreender as suposições matemáticas por trás de cada algoritmo; violá-las pode levar a resultados enganosos. A regularização, representada por termos como \(\lambda\sum_{j=1}^{n}\theta_j^2\), controla overfitting penalizando coeficientes grandes.

  • Funções de custo: Definem o que o algoritmo está tentando otimizar
  • Gradientes: Direcionam o aprendizado mostrando a direção de melhoria
  • Regularização: Controla complexidade e previne overfitting
  • Probabilidades: Fundamentam classificadores como Naive Bayes

Perguntas que os iniciantes fazem

Você deve estar se perguntando: “Preciso ser um gênio da matemática para usar machine learning?” Não necessariamente! Você pode usar bibliotecas sem entender toda a matemática, mas compreender os fundamentos torna você muito mais eficaz. Uma confusão comum é entre a formulação teórica e a implementação prática – a teoria assume condições ideais que raramente encontramos em dados reais. Outra dúvida frequente: “Por que tantos algoritmos usam cálculo e álgebra linear?” Porque essas ferramentas matemáticas são perfeitas para otimização em espaços multidimensionais, que é exatamente o que fazemos em machine learning.

Para onde ir agora?

Comece implementando versões simples dos algoritmos do zero, como fizemos com o KNN. Estude uma fórmula por vez, relacionando-a com o comportamento observado nos dados. Use visualizações para conectar conceitos abstratos com resultados concretos. O momento “aha!” acontece quando você consegue prever como um algoritmo se comportará apenas olhando para sua formulação matemática.

Assuntos relacionados

Para dominar as formulações matemáticas, estude estas áreas fundamentais:

  • Cálculo: derivadas, gradientes e otimização
  • Álgebra linear: espaços vetoriais, autovalores e decomposições
  • Probabilidade e estatística: distribuições, verossimilhança e inferência
  • Teoria da informação: entropia e ganho de informação
  • Otimização convexa: métodos para encontrar mínimos globais

Referências que valem a pena

Análise Discriminante: Encolhimento (Shrinkage)

Continuando nossa análise detalhada da Análise Discriminante, chegamos a um conceito crucial para aplicações práticas: o encolhimento (shrinkage). Conforme discutimos anteriormente nas formulações matemáticas do LDA e QDA, a estimação precisa das matrizes de covariância é fundamental para o desempenho destes classificadores.

O Problema da Estimação de Covariância

Analogamente ao que observamos nas implementações anteriores, quando trabalhamos com dados de alta dimensionalidade ou tamanhos de amostra limitados, a estimação das matrizes de covariância torna-se desafiadora. Primordialmente, o problema surge porque:

  • O número de parâmetros a estimar cresce quadraticamente com o número de features
  • Matrizes de covariância podem tornar-se singular ou mal-condicionada
  • Estimativas de máxima verossimilhança podem ter alta variância

O Conceito de Encolhimento

O encolhimento é uma técnica de regularização que combina a matriz de covariância estimada dos dados com uma estrutura mais simples e estável. Similarmente a métodos de regularização que encontramos em regressão Ridge e Lasso, o shrinkage visa melhorar a generalização do modelo.

Formulação Matemática

Para o LDA, a matriz de covariância regularizada é dada por:

\(\Sigma_{shrunk} = (1 – \gamma) \Sigma_{empírico} + \gamma \Sigma_{estruturado}\)

Onde γ é o parâmetro de encolhimento que varia entre 0 e 1.

Tipos de Estruturas de Encolhimento

Encolhimento para a Matriz Identidade

Uma abordagem comum é encolher em direção à matriz identidade:

\(\Sigma_{shrunk} = (1 – \gamma) \Sigma + \gamma \frac{\text{tr}(\Sigma)}{d} I\)

Onde d é a dimensionalidade e tr(Σ) é o traço da matriz de covariância.

Encolhimento para Covariância Diagonal

Outra abordagem utiliza uma matriz diagonal como alvo:

\(\Sigma_{shrunk} = (1 – \gamma) \Sigma + \gamma \text{diag}(\Sigma)\)

Vantagens do Encolhimento

Conforme demonstramos nas implementações anteriores, o uso de shrinkage oferece benefícios significativos:

  • Melhora a condição numérica das matrizes de covariância
  • Reduz a variância das estimativas
  • Permite aplicação em dados de alta dimensionalidade
  • Melhora a performance de generalização

Seleção do Parâmetro de Encolhimento

O parâmetro γ controla o trade-off entre viés e variância:

  • γ = 0: Usa apenas a covariância empírica (alto risco de overfitting)
  • γ = 1: Usa apenas a estrutura alvo (alto viés, baixa variância)
  • Valores intermediários: Balanceiam viés e variância

Implementação no scikit-learn

No scikit-learn, o encolhimento está disponível através do parâmetro shrinkage nas classes LinearDiscriminantAnalysis e QuadraticDiscriminantAnalysis. Ademais, o parâmetro shrinkage_factor pode ser estimado automaticamente usando validação cruzada.

Exemplo Prático em Python

Para ilustrar os efeitos do encolhimento, implementemos um exemplo comparativo detalhado:

Interpretação dos Resultados

Analisando os experimentos, podemos observar padrões importantes:

  • O encolhimento melhora significativamente a estabilidade dos classificadores
  • Valores intermediários de shrinkage geralmente produzem os melhores resultados
  • O parâmetro ‘auto’ oferece uma solução prática e eficiente
  • Em casos de alta dimensionalidade, o shrinkage torna-se essencial

Conexões com Tópicos Anteriores

Similarmente aos conceitos de regularização que discutimos em regressão linear, o encolhimento no LDA e QDA:

  • Balanceia o trade-off entre viés e variância
  • Melhora a generalização em dados limitados
  • Lida com problemas de multicolinearidade
  • Oferece robustez contra overfitting

Considerações Práticas

Quando Usar Encolhimento

  • Número de features maior que número de amostras
  • Matrizes de covariância singular ou mal-condicionada
  • Dados com alta correlação entre features
  • Aplicações onde robustez é mais importante que precisão máxima

Escolha do Parâmetro

Inegavelmente, a seleção do parâmetro de encolhimento deve considerar:

  • Usar validação cruzada para tuning
  • Começar com valores padrão ou ‘auto’
  • Considerar o trade-off entre performance e complexidade computacional
  • Avaliar a sensibilidade do modelo a diferentes valores

Conclusão

O encolhimento representa uma ferramenta essencial para aplicar LDA e QDA em cenários práticos, especialmente quando lidamos com as limitações de dados do mundo real. Embora adicione complexidade ao modelo, os benefícios em termos de robustez e generalização frequentemente justificam seu uso.

Portanto, ao implementar classificadores discriminantes em aplicações reais, o uso criterioso de técnicas de encolhimento pode significar a diferença entre um modelo que funciona bem na prática e um que falha devido a problemas numéricos ou overfitting.

Referência

Este post explora o item 1.2.4. Encolhimento da documentação do scikit-learn:

https://scikit-learn.org/0.21/modules/lda_qda.html