Entropia, KL, Informação Mútua
Por que essas quantidades importam no aprendizado de máquina (machine learning)
Entropia (entropy), divergência KL (KL divergence) e informação mútua (mutual information) são objetos centrais da teoria da informação (information theory) que aparecem em toda parte no aprendizado de máquina moderno:
- Funções de perda (loss functions): entropia cruzada (cross-entropy) / log-verossimilhança negativa (negative log-likelihood, NLL), objetivos regularizados por KL (por exemplo, inferência variacional (variational inference)), perdas contrastivas (contrastive losses).
- Avaliação: perplexidade (perplexity) em modelagem de linguagem (language modeling), bits por dimensão (bits-per-dimension) em modelagem generativa (generative modeling), medição de mudança de distribuição (distribution shift).
- Aprendizado de representações (representation learning): maximização de informação mútua (e seus substitutos práticos) sustenta muitos métodos auto-supervisionados (self-supervised).
- Raciocínio sobre incerteza: quão “espalhada” é uma distribuição, quão diferentes duas distribuições são e quanto uma variável informa sobre outra.
Ao longo do texto, assuma variáveis aleatórias com distribuições sobre um conjunto discreto, salvo indicação em contrário. Os logs são geralmente logs naturais (unidades: nats (nats)); logs na base 2 dão bits (bits). A conversão é um fator constante.
Links que você pode querer ao lado deste artigo: Distribuições de Probabilidade, Estimação de Máxima Verossimilhança, Perda de Entropia Cruzada, Autoencoders Variacionais, Aprendizado Contrastivo, Modelagem de Linguagem.
Entropia
Definição e intuição
Para uma variável aleatória discreta (X \sim p(x)), a entropia de Shannon (Shannon entropy) é
[ H(X) = - \sum_x p(x),\log p(x) = \mathbb{E}_{x \sim p}[-\log p(x)]. ]
Interpretações:
- Incerteza: entropia maior significa que os resultados são mais difíceis de prever.
- Comprimento esperado do código: sob codificação ótima sem prefixo (prefix-free), o melhor número esperado de bits para codificar (X) é aproximadamente (H(X)) (com logs base 2). É por isso que (-\log p(x)) é frequentemente chamado de “surprisal” ou “conteúdo de informação” do resultado (x).
Exemplo prático: uma moeda viciada
Seja (X \in {0,1}) com (p(1)=0.9), (p(0)=0.1). Então
[ H(X) = -0.9\log 0.9 - 0.1\log 0.1. ]
Isso é muito menor do que o máximo de (\log 2) (um bit, ou (\ln 2) nats), refletindo que a moeda é previsível.
Propriedades-chave que praticantes de aprendizado de máquina usam
- Não negatividade: (H(X) \ge 0).
- Entropia máxima (tamanho de suporte fixo): entre distribuições sobre (n) resultados, a entropia é maximizada pela distribuição uniforme: (H(X)\le \log n).
- Entropia de uma variável determinística: se (p(x^*)=1), então (H(X)=0).
- Regra da cadeia: [ H(X,Y)=H(X)+H(Y\mid X). ]
- Condicionar reduz entropia (nunca aumenta): [ H(Y\mid X)\le H(Y). ] Isso formaliza “saber mais não pode aumentar sua incerteza”.
Entropia conjunta e condicional
Para duas variáveis (X,Y):
- Entropia conjunta: [ H(X,Y) = -\sum_{x,y} p(x,y)\log p(x,y). ]
- Entropia condicional: [ H(Y\mid X)= -\sum_{x,y} p(x,y)\log p(y\mid x)=\mathbb{E}_{(x,y)\sim p}[-\log p(y\mid x)]. ]
Uma leitura comum em aprendizado de máquina: (H(Y\mid X)) é a incerteza irredutível sobre rótulos (Y) mesmo após observar atributos (X). Se (Y) é (quase) uma função determinística de (X), então (H(Y\mid X)\approx 0).
Entropia diferencial (caso contínuo) e ressalvas
Para (X) contínua com densidade (p(x)), a entropia diferencial (differential entropy) é
[ h(X) = -\int p(x)\log p(x),dx. ]
Ressalvas importantes:
- (h(X)) pode ser negativa.
- Ela não é invariante a reparametrizações (por exemplo, escalar (X) muda (h(X))).
- Em cenários contínuos, a divergência KL costuma ser uma medida de “diferença” mais robusta do que comparar entropias diferenciais.
Entropia cruzada e log-verossimilhança negativa (NLL)
Entropia cruzada
Dada uma distribuição “verdadeira” (p) e uma distribuição do modelo (q), a entropia cruzada é
[ H(p,q) = \mathbb{E}_{x\sim p}[-\log q(x)]. ]
Esse é o comprimento esperado do código se você codifica dados amostrados de (p) usando um código otimizado para (q). Se (q) atribui baixa probabilidade a eventos que (p) produz com frequência, a entropia cruzada é grande.
A decomposição: entropia cruzada = entropia + KL
Uma identidade fundamental:
[ H(p,q) = H(p) + D_{\mathrm{KL}}(p|q), ]
onde (D_{\mathrm{KL}}(p|q)) é a divergência KL (definida com precisão abaixo).
Isso explica muito da prática em aprendizado de máquina:
- Ao treinar por máxima verossimilhança (maximum likelihood), minimizamos a entropia cruzada empírica (\approx H(p,q)).
- Como (H(p)) não depende dos parâmetros do modelo, minimizar a entropia cruzada é equivalente a minimizar (D_{\mathrm{KL}}(p|q)): fazer o modelo combinar com a distribuição dos dados.
NLL como a perda supervisionada padrão
Para um conjunto de dados i.i.d. ({x_i}_{i=1}^N), a máxima verossimilhança minimiza
[ -\sum_{i=1}^N \log q_\theta(x_i), ]
que é a log-verossimilhança negativa (NLL). Dividir por (N) fornece uma estimativa empírica da entropia cruzada.
Em classificação com rótulos (y\in{1,\dots,K}) e probabilidades previstas (q_\theta(y\mid x)), a NLL é a perda de entropia cruzada usual:
[ \mathcal{L}(\theta)= -\sum_{i=1}^N \log q_\theta(y_i\mid x_i). ]
Em aprendizado profundo (deep learning), computamos isso de forma estável via log_softmax + nll_loss ou uma primitiva combinada (veja Retropropagação e Descida do Gradiente para contexto de otimização).
import torch
import torch.nn.functional as F
logits = torch.tensor([[2.0, 0.5, -1.0]]) # unnormalized scores
y = torch.tensor([0]) # class index
loss = F.cross_entropy(logits, y) # stable log-softmax internally
print(loss.item())
Avaliação: perplexidade e bits por dimensão
Perplexidade (comum em Modelagem de Linguagem) é a NLL média exponenciada: [ \mathrm{PPL}=\exp\left(\frac{1}{N}\sum_{i=1}^N -\log q_\theta(x_i)\right). ] Perplexidade menor significa melhor desempenho preditivo.
Bits por dimensão (comum em modelagem generativa de imagens) é a NLL média convertida para bits e normalizada pela dimensionalidade (D): [ \mathrm{bpd} = \frac{1}{D \log 2},\mathbb{E}[-\log q_\theta(x)]. ]
Tudo isso são apenas diferentes escalas de entropia cruzada / NLL.
Divergência KL
Definição
Para distribuições (p) e (q) no mesmo suporte, a divergência de Kullback–Leibler (Kullback–Leibler, KL) é
[ D_{\mathrm{KL}}(p|q) = \sum_x p(x)\log\frac{p(x)}{q(x)} = \mathbb{E}_{x\sim p}\left[\log p(x)-\log q(x)\right]. ]
Ela mede quanta “surpresa” extra você incorre se usar (q) no lugar de (p).
Propriedades (e o que elas implicam na prática)
- Não negatividade: (D_{\mathrm{KL}}(p|q)\ge 0), com igualdade sse (p=q) (quase em toda parte).
- Não é simétrica: em geral (D_{\mathrm{KL}}(p|q)\neq D_{\mathrm{KL}}(q|p)). Isso importa muito em inferência variacional e no comportamento de cobertura de modos vs busca de modos.
- Infinita quando suportes não coincidem: se existe (x) com (p(x)>0) mas (q(x)=0), então (D_{\mathrm{KL}}(p|q)=\infty). Na prática, por isso suavização e probabilidades não nulas podem importar.
KL como “a perda por trás da máxima verossimilhança”
Da decomposição da entropia cruzada:
[ \arg\min_\theta H(p, q_\theta) \equiv \arg\min_\theta D_{\mathrm{KL}}(p|q_\theta). ]
Então, quando você treina por NLL, está minimizando (D_{\mathrm{KL}}(p_{\text{data}}|q_\theta)) (com (p_{\text{data}}) aproximada por amostras).
Esse é o sentido em que máxima verossimilhança tenta fazer a distribuição do modelo cobrir a distribuição dos dados.
KL direta vs KL reversa (cobertura de modos vs busca de modos)
Duas direções comuns:
- KL direta (forward KL): (D_{\mathrm{KL}}(p|q)) penaliza lugares onde (p) tem massa mas (q) não tem (pode explodir). Isso tende a incentivar cobertura de modos (mode covering).
- KL reversa (reverse KL): (D_{\mathrm{KL}}(q|p)) penaliza colocar massa onde (p) é pequena, frequentemente levando à busca de modos (mode seeking) (preferir um modo plausível em vez de cobrir todos).
Essa diferença é central para Inferência Variacional e para entender por que algumas aproximações subestimam a incerteza.
Exemplo prático: KL entre Gaussianas
Para Gaussianas multivariadas (p=\mathcal{N}(\mu_p,\Sigma_p)) e (q=\mathcal{N}(\mu_q,\Sigma_q)) em (d) dimensões:
[ D_{\mathrm{KL}}(p|q) = \frac{1}{2}\left( \log\frac{|\Sigma_q|}{|\Sigma_p|}
- d
- \mathrm{tr}(\Sigma_q^{-1}\Sigma_p)
- (\mu_q-\mu_p)^\top \Sigma_q^{-1}(\mu_q-\mu_p) \right). ]
Essa forma fechada é muito usada em Autoencoders Variacionais, onde tanto o prior quanto o posterior aproximado são Gaussianos.
KL em funções de perda além de MLE
Autoencoders variacionais (ELBO)
Um objetivo canônico:
[ \mathcal{L} = \mathbb{E}{q\phi(z\mid x)}[-\log p_\theta(x\mid z)]
- D_{\mathrm{KL}}(q_\phi(z\mid x)|p(z)). ]
- O primeiro termo é uma NLL de reconstrução (parecida com entropia cruzada).
- O termo de KL regulariza o posterior latente em direção ao prior, permitindo amostragem e prevenindo codificações patológicas.
Variantes (por exemplo, (\beta)-VAE) escalonam o termo de KL para equilibrar fidelidade de reconstrução e desentrelaçamento (disentanglement).
Destilação de conhecimento
Em Destilação de Conhecimento, uma distribuição estudante (q_\theta(y\mid x)) é treinada para combinar com uma distribuição professora (p_T(y\mid x)), comumente minimizando
[ D_{\mathrm{KL}}(p_T(\cdot\mid x)|q_\theta(\cdot\mid x)) ]
(ou, de forma equivalente, entropia cruzada com alvos suaves). O escalonamento por temperatura muda a suavidade da distribuição-alvo e, portanto, o sinal de treinamento.
Aprendizado por reforço e objetivos regularizados por KL
Em Aprendizado por Reforço, KL aparece em:
- Métodos de região de confiança (trust region) (restrição na KL da atualização de política).
- Aprendizado por reforço regularizado por entropia (entropy-regularized) ou regularizado por KL (KL-regularized), onde o desvio em relação a uma política de referência é penalizado: [ \mathbb{E}[\text{return}] - \alpha,D_{\mathrm{KL}}(\pi(\cdot\mid s)|\pi_0(\cdot\mid s)). ]
Isso estabiliza atualizações e incorpora comportamento prévio.
Informação mútua (MI)
Definição
Para uma distribuição conjunta (p(x,y)) com marginais (p(x)), (p(y)), a informação mútua é
[ I(X;Y) = \sum_{x,y} p(x,y)\log\frac{p(x,y)}{p(x)p(y)}. ]
Formas equivalentes:
[ I(X;Y) = H(X) - H(X\mid Y) = H(Y) - H(Y\mid X) = H(X)+H(Y)-H(X,Y). ]
Interpretação central: quanto saber uma variável reduz a incerteza sobre a outra.
MI como uma divergência KL
Uma identidade muito útil:
[ I(X;Y) = D_{\mathrm{KL}}(p(x,y),|,p(x)p(y)). ]
Então, a informação mútua é uma “distância à independência”: é zero sse (X) e (Y) são independentes.
Exemplo prático: MI em um canal ruidoso
Seja (Y = X \oplus N) onde (X) é um bit justo e (N\sim \text{Bernoulli}(\epsilon)) inverte o bit com probabilidade (\epsilon). Então:
- Se (\epsilon=0), (Y) revela (X) perfeitamente, então (I(X;Y)=H(X)=\log 2).
- Se (\epsilon=0.5), (Y) é independente de (X), então (I(X;Y)=0).
Isso espelha a intuição: mais ruído significa menos transferência de informação.
Onde a MI aparece no aprendizado de máquina
Seleção de atributos e medição de dependência
A informação mútua pode ranquear atributos por quão informativos eles são sobre os rótulos:
- Escolha atributos (X_j) com grande (I(X_j; Y)).
- Diferentemente da correlação, a informação mútua pode capturar dependências não lineares.
No entanto, estimar informação mútua a partir de amostras finitas pode ser difícil em alta dimensão (mais sobre isso abaixo), então a seleção clássica de atributos via informação mútua é mais confiável para atributos de baixa dimensão ou discretizados.
Aprendizado de representações e objetivos contrastivos
Uma grande classe de métodos auto-supervisionados pode ser vista como (aproximadamente) maximizar informação mútua entre duas “visões” do mesmo sinal subjacente (por exemplo, duas ampliações de uma imagem), enquanto minimiza informação mútua com outros exemplos.
O objetivo InfoNCE (InfoNCE objective) (popular em Aprendizado Contrastivo) é um limite inferior tratável da informação mútua sob certos esquemas de amostragem. Na prática, você otimiza uma perda do tipo classificação distinguindo pares positivos de negativos, em vez de estimar informação mútua diretamente.
Gargalo de informação (information bottleneck, IB)
O princípio do IB enquadra o aprendizado de representações como um trade-off:
- Manter representações (Z) que sejam preditivas dos rótulos: maximizar (I(Z;Y))
- Comprimir a informação de entrada: minimizar (I(Z;X))
Isso motiva regularizadores e arquiteturas, embora termos exatos de informação mútua sejam frequentemente substituídos por limites variacionais ou proxies, porque a informação mútua é difícil de computar diretamente para redes neurais.
Estimando MI na prática (e armadilhas)
A informação mútua é fácil de definir, mas frequentemente difícil de estimar a partir de amostras, especialmente em cenários contínuos/de alta dimensão:
- Discretização/binning é simples, mas enviesada e sensível ao tamanho dos bins.
- Estimadores baseados em kNN (k-nearest neighbors) (por exemplo, Kraskov) funcionam melhor para dimensões moderadas, mas podem ser instáveis.
- Estimadores neurais de MI (neural MI estimators) existem, mas podem ter alta variância e superestimar se não forem regularizados com cuidado.
- Muitos métodos de aprendizado profundo “maximizadores de MI” otimizam limites (como InfoNCE) em vez da própria informação mútua.
Regra prática: trate afirmações do tipo “maximizamos informação mútua” como uma lente conceitual a menos que o método otimize explicitamente um limite comprovado com um estimador claro.
Como essas quantidades se conectam a funções de perda e avaliações comuns em IA (AI)
Classificação: entropia cruzada como minimização de KL
Em classificação supervisionada, você frequentemente vê:
- Rótulos duros: o alvo é uma distribuição one-hot (p(y\mid x)). Minimizar NLL é minimizar entropia cruzada (H(p,q_\theta)), portanto minimizar (D_{\mathrm{KL}}(p|q_\theta)).
- Rótulos suaves / suavização de rótulos (label smoothing): os alvos não são one-hot; eles podem melhorar calibração e generalização ao evitar que o modelo empurre probabilidades para 0/1 de forma agressiva demais (e evitando problemas conceituais de KL infinita).
Modelagem generativa: NLL, bits por dimensão, perplexidade
- Modelos autorregressivos reportam NLL ou perplexidade — diretamente teórico-informacional.
- Modelos de fluxo (flow models) e algumas avaliações de difusão reportam bits por dimensão — ainda entropia cruzada em bits.
Uma distinção prática importante: boa verossimilhança (baixa entropia cruzada) nem sempre implica qualidade perceptual; ela mede compressão preditiva, não “realismo humano”.
Mudança de distribuição e comparação de modelos
A divergência KL mede naturalmente incompatibilidade entre distribuições, mas na prática você raramente conhece (p) exatamente. Proxies comuns incluem:
- Comparar a NLL média de um modelo em dois conjuntos de dados (dentro do domínio vs fora do domínio).
- Usar entropia cruzada em dados de validação (held-out) como uma estimativa de desempenho de generalização.
Quando você consegue estimar densidades, KL pode quantificar a mudança; quando não consegue, muitas vezes se usam testes discriminativos de duas amostras (two-sample tests) ou embeddings.
Confusões comuns e dicas práticas
Entropia vs entropia cruzada vs KL
- (H(X)): propriedade da distribuição de dados (p).
- (H(p,q)): quão bem o modelo (q) codifica dados de (p).
- (D_{\mathrm{KL}}(p|q)): custo extra de usar (q) em vez de (p).
Lembre a identidade: [ H(p,q)=H(p)+D_{\mathrm{KL}}(p|q). ]
Unidades: bits vs nats
- Usar (\log_2) dá bits, (\ln) dá nats.
- A maioria das bibliotecas de aprendizado de máquina usa logs naturais; converter para bits divide por (\ln 2).
Estabilidade numérica e zeros
KL e entropia cruzada envolvem (\log q(x)). Na prática:
- Use implementações estáveis (
log_softmax,logsumexp). - Evite zeros exatos em probabilidades (suavização de rótulos ou adicionar eps em código explícito de probabilidades).
Entropia diferencial não é “incerteza” do mesmo jeito
Para variáveis contínuas, a entropia diferencial pode se comportar de forma contraintuitiva (valores negativos, mudanças sob escala). Divergência KL e informação mútua (definidas adequadamente) costumam ser mais significativas para comparações.
Resumo
- Entropia (H(X)) mede incerteza / compressibilidade ótima de uma distribuição.
- Entropia cruzada (H(p,q)) é a NLL esperada sob o modelo (q) para dados de (p), e é a quantidade padrão de treino/avaliação para predição probabilística.
- Divergência KL (D_{\mathrm{KL}}(p|q)) é o gap entre entropia cruzada e entropia; ela impulsiona máxima verossimilhança, objetivos variacionais, destilação e aprendizado por reforço regularizado por KL.
- Informação mútua (I(X;Y)) mede dependência e pode ser escrita como uma KL a partir da independência; ela motiva seleção de atributos e aprendizado de representações, embora frequentemente seja otimizada via limites (por exemplo, perdas contrastivas) em vez de computada diretamente.
Essas três quantidades formam um kit conceitual bem integrado: entropia quantifica incerteza, KL quantifica incompatibilidade, e informação mútua quantifica estrutura compartilhada — juntas, explicando muitas das funções de perda e métricas mais comuns usadas na IA moderna.