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

Problema 2 de Variáveis Aleatórias

Este documento apresenta a resolução de um problema envolvendo variáveis aleatórias independentes e identicamente distribuídas (iid) e a distribuição da soma de variáveis indicadoras.

Definição do Problema

Sejam \(X_1, X_2, \ldots, X_n\) variáveis aleatórias iid com função de distribuição acumulada contínua \(F_X(x)\), e suponha que \(E[X_i] = \mu\). Defina as variáveis aleatórias \(Y_1, Y_2, \ldots, Y_n\) por:

\(Y_i = \begin{cases} 1, & \text{se } X_i > \mu \\ 0, & \text{se } X_i \leq \mu \end{cases}\)

Encontre a distribuição de \(\sum_{i=1}^{n} Y_i\) e assinale a alternativa correspondente.

    1. a) \(\sum_{i-1}^{n}Y_i ~ Bernoulli \left ( p=1-F_x\left ( \mu \right ) \right )\)
    1. b) \(\sum_{i-1}^{n}Y_i ~ Bernoulli \left ( p= F_x\left ( \mu \right ) \right )\)
    1. c) \(\sum_{i-1}^{n}Y_i ~ Binomial \left ( n,p= 1-F_x\left ( \mu \right ) \right )\)
    1. d) \(\sum_{i-1}^{n}Y_i ~ Binomial \left ( n,p= F_x\left ( \mu \right ) \right )\)

Resolução Matemática

Passo 1: Análise das Variáveis \(Y_i\)

Cada \(Y_i\) é uma variável indicadora (Bernoulli) que assume valor 1 quando \(X_i > \mu\) e 0 quando \(X_i \leq \mu\).

A probabilidade de sucesso (valor 1) é:

\(P(Y_i = 1) = P(X_i > \mu) = 1 – P(X_i \leq \mu) = 1 – F_X(\mu)\)

Portanto, cada \(Y_i \sim \text{Bernoulli}(p = 1 – F_X(\mu))\).

Passo 2: Soma das Variáveis \(Y_i\)

A soma \(S = \sum_{i=1}^{n} Y_i\) representa o número de variáveis \(X_i\) que são maiores que \(\mu\).

Como as variáveis \(Y_i\) são independentes (pois as \(X_i\) são iid) e identicamente distribuídas, a soma segue uma distribuição Binomial:

\(S = \sum_{i=1}^{n} Y_i \sim \text{Binomial}(n, p = 1 – F_X(\mu))\)

Passo 3: Interpretação do Parâmetro P

Para uma distribuição contínua, \(F_X(\mu) = P(X_i \leq \mu)\). Como \(\mu\) é a média da distribuição, em geral não temos \(F_X(\mu) = 0.5\) (isso só ocorre para distribuições simétricas).

Assim, \(p = 1 – F_X(\mu)\) é a probabilidade de que uma observação exceda a média da distribuição.

Resposta Correta

A distribuição de \(\sum_{i=1}^{n} Y_i\) é:

\(\sum_{i=1}^{n} Y_i \sim \text{Binomial}(n, p = 1 – F_X(\mu))\)

Portanto, a alternativa correta é a c).

Simulação em R

O código R abaixo simula a situação descrita no problema para uma distribuição normal, onde \(F_X(\mu) = 0.5\), e verifica a distribuição da soma \(\sum_{i=1}^{n} Y_i\).