Se você já implementou alguns modelos de redes neurais ou outros algoritmos de machine learning como regressão logística, provavelmente já usou a entropia cruzada (cross entropy). Mas você sabe o que é entropia cruzada e por que ela é tão presente em machine learning? Esse é o tema que abordaremos neste post. Nossa descrição será enxuta, mas, se você tem interesse em se aprofundar no tema, uma boa fonte é essa.
O que é entropia cruzada?
A entropia cruzada é uma medida da diferença entre duas distribuições de probabilidade. Ela é frequentemente usada na implementação de algoritmos de machine learning, particularmente, na avaliação do desempenho de modelos de classificação em tarefas de aprendizagem supervisionada. Ou seja, a entropia cruzada é um tipo de função de perda. Em problemas de classificação, a entropia cruzada é uma medida da diferença entre a distribuição das probabilidades previstas e a distribuição real dos dados.
Entropia cruzada e Teoria da Informação
O conceito de entropia cruzada tem sua origem na Teoria da Informação, criada por Claude Shannon na década 40 do século passado. Shannon estava interessado em desenvolver métodos capazes de medir a quantidade de incerteza associada a variáveis aleatórias. Dois conceitos fundamentais da Teoria da Informação foram utilizados no desenvolvimento da entropia cruzada: entropia e a divergência de Kullback-Leibler.
Em Teoria da Informação, entropia é uma medida de imprevisibilidade ou desordem. Ela foi diretamente inspirada na entropia de Boltzmann que é uma medida da desordem associada a um estado macroscópico de um sistema. No contexto da Teoria da Informação, a entropia mede a quantidade média de incerteza associada a uma variável aleatória. Alta entropia significa alta imprevisibilidade.
Já a divergência de Kullback-Leibler é uma quantificação da diferença entre duas distribuições de probabilidade. Em machine learning, ela é frequentemente usada na comparação entre a distribuição prevista de um modelo e a distribuição real dos dados.
A entropia cruzada se desenvolveu a partir da combinação da entropia com a divergência de Kullback-Leibler. Portanto, entropia cruzada é uma métrica que quantifica a disparidade entre duas distribuições de probabilidade – a prevista e a real.
Problemas de classificação e entropia cruzada
A entropia cruzada pode ser usada tanto para tarefas de classificação binária quanto para problemas de classificação com múltiplas classes. Em bibliotecas de machine learning como Keras, a entropia cruzada aparece com nomes em inglês. O termo binary cross-entropy refere-se a entropia cruzada calculada para problemas de classificação binária. Ela é definida pela seguinte fórmula:
Nessa fórmula, H é a entropia cruzada, N é o número de amostras, yi é o rótulo verdadeiro da amostra i e pi é o rótulo previsto pelo modelo para a amostra i.
O termo categorical cross-entropy é comumente usado para definir a entropia cruzada aplicada a problemas de classificação com múltiplas classes. A fórmula para seu cálculo é a seguinte:
Nessa equação, K representa o número de classes e a somatória dupla é utilizada para avaliar o desempenho do modelo para todas as classes.
Entropia cruzada no treinamento de modelos de machine learning
A aplicação prática da entropia cruzada no treinamento de modelos de machine learning é bastante intuitiva. O objetivo do treinamento dos modelos é minimizar a perda verificada pela entropia cruzada ou por outra função de perda. Isso envolve ajustar iterativamente os parâmetros do modelo por meio de algoritmos de otimização como gradient descent. Ao minimizar a entropia cruzada, o modelo aprende a produzir probabilidades que mapeiam a distribuição real dos dados.