# Entropia cruzada

Na teoria da informação, a entropia cruzada se refere à diferença entre duas distribuições de probabilidade $p$ (verdadeira) e $q$ (estimada) sobre o mesmo conjunto de eventos. Na prática, a entropia cruzada mede o número médio de bits necessários para identificar um evento , se a codificação utilizada for otimizada para a distribuição de probabilidade estimada $q$, em vez de otimizada para a distribuição de probabilidade verdadeira $p$ .

## Definição

A entropia cruzada da distribuição $q$ em relação a uma distribuição $p$ sobre um determinado conjunto é definido da seguinte maneira:
    $H(p,q)=-\operatorname {E} _{p}[\log q]$ .
A definição pode ser formulada usando a divergência Kullback – Leibler $D_{\mathrm {KL} }(p\|q)$ do $p$ a partir de $q$ (também conhecida como entropia relativa de $q$ em relação a $p$ )
    $H(p,q)=H(p)+D_{\mathrm {KL} }(p\|q)$ ,
Onde $H(p)$ é a entropia de $p$ .
Para distribuições de probabilidade discretas $p$ e $q$ com o mesmo suporte ${\mathcal {X}}$, isso significa queː
| $H(p,q)=-\sum _{x\in {\mathcal {X}}}p(x)\,\log q(x)$ | (Eq.1) |
A situação para distribuições contínuas é análoga. Temos que assumir que $p$ e $q$ são absolutamente contínuos em relação a alguma medida de referência $r$ (usualmente $r$ é uma medida de Lebesgue em uma σ-álgebra de Borel ). Deixe $P$ e $Q$ serem funções densidade de probabilidade de $p$ e $q$ em relação a $r$ . Entãoː
    $-\int _{\mathcal {X}}P(x)\,\log Q(x)\,dr(x)=\operatorname {E} _{p}[-\log Q]$
e, portantoː
| $H(p,q)=-\int _{\mathcal {X}}P(x)\,\log Q(x)\,dr(x)$ | (Eq.2) |
Nota: A notação $H(p,q)$ também é usado para um conceito diferente, a entropia conjunta de $p$ e $q$ .

## Motivação

Na teoria da informação, o teorema de Kraft – McMillan estabelece que qualquer esquema diretamente decodificável que codifique uma mensagem capaz de identificar um valor $x_{i}$ ( de um conjunto de possibilidades $\{x_{1},...,x_{n}\}$ ) pode ser visto como representando uma distribuição implícita de probabilidade $q(x_{i})=\left({\frac {1}{2}}\right)^{l_{i}}$ sobre $\{x_{1},...,x_{n}\}$, onde $l_{i}$ é o comprimento do código para $x_{i}$ em bits. Portanto, a entropia cruzada pode ser interpretada como o comprimento esperado da mensagem por cada dado quando a distribuição incorreta $q$ é assumida, enquanto, na verdade, os dados seguem a distribuição correta $p$ . É por isso que a expectativa (E) é assumida sobre a distribuição de probabilidade $p$ e não $q$ . De fato, o tamanho esperado da mensagem sob a verdadeira distribuição $p$ é,
    $\operatorname {E} _{p}[l]=-\operatorname {E} _{p}\left[{\frac {\ln {q(x)}}{\ln(2)}}\right]=-\operatorname {E} _{p}\left[\log _{2}{q(x)}\right]=-\sum _{x_{i}}p(x_{i})\,\log _{2}{q(x_{i})}=-\sum _{x}p(x)\,\log _{2}q(x)=H(p,q)$

## Estimativa

Existem muitas situações em que precisamos medir a entropia cruazada, mas não sabemos a distribuição real $p$ É. Um exemplo é a modelagem de linguagem, na qual um modelo é criado com base no conjunto de treinamento $T$ e sua entropia cruzada é medida em um conjunto de testes para avaliar a precisão. Neste exemplo, $p$ é a verdadeira distribuição das palavras em qualquer corpus, e $q$ é a distribuição de palavras conforme previsto pelo modelo. Como a distribuição verdadeira é desconhecida, a entropia cruzada não pode ser calculada diretamente. Nesses casos, uma estimativa da entropia cruzada é calculada usando a seguinte fórmula:
    $H(T,q)=-\sum _{i=1}^{N}{\frac {1}{N}}\log _{2}q(x_{i})$
onde $N$ é o tamanho do conjunto de teste e $q(x)$ é a probabilidade de evento $x$ estimado a partir do conjunto de treinamento. A soma é calculada sobre $N$ . Essa é uma estimativa de Monte Carlo da verdadeira entropia cruzada, na qual o conjunto de testes é tratado como amostras de $p(x)$ .

## Relação com log-verossimilhança

Nos problemas de classificação, queremos estimar a probabilidade de resultados diferentes. Se a probabilidade estimada de resultado $i$ é $q_{i}$, a frequência (probabilidade empírica) de $i$ no conjunto de treinamento é $p_{i}$ e há N amostras de treinamento, a verossimilhança do conjunto de treinamento é
    $\prod _{i}q_{i}^{Np_{i}}$
portanto, a log-verossimilhança, dividida por $N$ é
    ${\frac {1}{N}}\log \prod _{i}q_{i}^{Np_{i}}=\sum _{i}p_{i}\log q_{i}=-H(p,q)$
de modo que maximizar a verossimilhança é o mesmo que minimizar a entropia cruzada.

## Minimização de entropia cruzada

A minimização de entropia cruzada é freqüentemente usada na otimização e na estimativa da probabilidade de eventos raros.
Ao comparar uma distribuição $q$ contra uma distribuição de referência fixa $p$, entropia cruzada e divergência KL são idênticas até uma constante aditiva (já que $p$ é fixo): ambos assumem seus valores mínimos quando $p=q$, atingindo $0$ para a divergência KL e $\mathrm {H} (p)$ para a entropia cruzada. Na literatura de engenharia, o princípio de minimizar a divergência KL (" Princípio da informação mínima sobre discriminação " de Kullback) é freqüentemente chamado de Princípio da entropia cruzada mínima (MCE), ou Minxent .
Entretanto, conforme discutido no artigo Divergência de Kullback-Leibler, às vezes a distribuição $q$ é a distribuição de referência prévia fixa e a distribuição $p$ é otimizado para ficar o mais próximo possível $q$ quanto possível, sujeito a alguma restrição. Nesse caso, as duas minimizações não são equivalentes. Isso levou a alguma ambiguidade na literatura, com alguns autores tentando resolver a inconsistência redefinindo a entropia cruzada para ser $D_{\mathrm {KL} }(p\|q)$, ao invés de $H(p,q)$ .

## Função de perda de entropia cruzada e regressão logística

A entropia cruzada pode ser usada para definir uma função de perda no aprendizado de máquina e otimização . A verdadeira probabilidade $p_{i}$ é o rótulo verdadeiro e a distribuição fornecida $q_{i}$ é o valor previsto do modelo atual.
Mais especificamente, considere a regressão logística, que (entre outras coisas) pode ser usada para classificar observações em duas classes possíveis (geralmente simplesmente rotuladas $0$ e $1$ ) A saída do modelo para uma observação, dado um vetor de entrada $x$, pode ser interpretado como uma probabilidade, que serve como base para classificar a observação. A probabilidade é modelada usando a função logística $g(z)=1/(1+e^{-z})$ Onde $z$ é alguma função do vetor de entrada $x$, geralmente apenas uma função linear. A probabilidade de saída $y=1$ É dado por
    $q_{y=1}\ =\ {\hat {y}}\ \equiv \ g(\mathbf {w} \cdot \mathbf {x} )\ =1/(1+e^{-\mathbf {w} \cdot \mathbf {x} }),$
onde o vetor de pesos $\mathbf {w}$ é otimizado através de algum algoritmo apropriado, como descida de gradiente. Da mesma forma, a probabilidade complementar de encontrar a saída $y=0$ é simplesmente dado por
    $q_{y=0}\ =\ 1-{\hat {y}}$
Tendo criado nossa notação, $p\in \{y,1-y\}$ e $q\in \{{\hat {y}},1-{\hat {y}}\}$, podemos usar entropia cruzada para obter uma medida de dissimilaridade entre $p$ e $q$ :
    $H(p,q)\ =\ -\sum _{i}p_{i}\log q_{i}\ =\ -y\log {\hat {y}}-(1-y)\log(1-{\hat {y}})$
A função de perda típica que se usa na regressão logística é calculada pela média de todas as entropias cruzadas na amostra. Por exemplo, suponha que tenhamos $N$ amostras com cada amostra indexada por $n=1,\dots ,N$ . A função de perda é então dada por:
    ${\begin{aligned}J(\mathbf {w} )\ &=\ {\frac {1}{N}}\sum _{n=1}^{N}H(p_{n},q_{n})\ =\ -{\frac {1}{N}}\sum _{n=1}^{N}\ {\biggy_{n}\log {\hat {y}}_{n}+(1-y_{n})\log(1-{\hat {y}}_{n}){\bigg ]}\,,\end{aligned}}$
Onde ${\hat {y}}_{n}\equiv g(\mathbf {w} \cdot \mathbf {x} _{n})=1/(1+e^{-\mathbf {w} \cdot \mathbf {x} _{n}})$ com $g(z)$ a função logística como antes.
A perda logística é às vezes chamada de perda de entropia cruzada. Também é conhecido como perda de log (log loss) (nesse caso, o rótulo binário é frequentemente indicado por {-1, + 1}).