paint-brush
Crossentropia, Logloss e Perplexidade: Diferentes Facetas da Probabilidadepor@artemborin
68,475 leituras
68,475 leituras

Crossentropia, Logloss e Perplexidade: Diferentes Facetas da Probabilidade

por Artem5m2023/09/15
Read on Terminal Reader

Muito longo; Para ler

O aprendizado de máquina está centrado na criação de modelos que preveem com precisão. As métricas de avaliação oferecem uma forma de avaliar a eficiência de um modelo, o que nos permite refinar ou até mesmo trocar algoritmos com base nos resultados de desempenho.
featured image - Crossentropia, Logloss e Perplexidade: Diferentes Facetas da Probabilidade
Artem HackerNoon profile picture
0-item

O aprendizado de máquina está centrado na criação de modelos que preveem com precisão. As métricas de avaliação oferecem uma forma de avaliar a eficiência de um modelo, o que nos permite refinar ou até mesmo trocar algoritmos com base nos resultados de desempenho.


O conceito de "probabilidade" é central para muitas dessas métricas. Ele mede o quão bem as previsões de um modelo se alinham com os dados observados. Portanto, desempenha um papel fundamental no treinamento e avaliação do modelo.


Um modelo com maior probabilidade, por exemplo, sugere que os dados observados são mais prováveis sob as premissas do modelo determinado.


Ferramentas tecnológicas como TensorFlow e PyTorch costumam usar métricas baseadas em probabilidade, especialmente em tarefas como classificação ou previsão de sequência. Tais ferramentas, equipadas com funções e bibliotecas adaptadas a essas métricas, tornam a tarefa de avaliação de modelos acessível e altamente eficiente.


Compreender a probabilidade e suas métricas associadas é vital para qualquer pessoa que trabalhe com aprendizado de máquina. Isso nos permite formar a base para avaliação e melhoria do modelo.


A seguir, examinaremos mais de perto três métricas principais de avaliação para ver como elas funcionam e se relacionam entre si no aprendizado de máquina.

Cruzentropia

A entropia cruzada avalia a variação entre dois conjuntos de probabilidades, muitas vezes justapondo padrões de dados reais com os resultados previstos de um modelo. Matematicamente, para distribuições discretas p e q , a entropia cruzada H(p, q) é dada por:

H(p, q) = -\sum p(x) \log(q(x))


Onde \( p(x) \) é a verdadeira probabilidade de ocorrência de um evento x , e q(x) é a probabilidade estimada do mesmo evento de acordo com o modelo.


É aplicado principalmente em problemas de classificação, principalmente em cenários onde a saída pode pertencer a múltiplas classes. É usado porque fornece uma medida clara de quão longe as previsões de um modelo estão dos resultados reais. Quanto menor a entropia cruzada, melhor as previsões do modelo se alinham com os valores verdadeiros.


Várias bibliotecas de software estão equipadas para lidar com cálculos envolvendo entropia cruzada. Notavelmente:

  • TensorFlow . Esta estrutura de código aberto fornece funções como tf.nn.softmax_cross_entropy_with_logits que calcula diretamente a entropia cruzada para problemas de classificação.


  • PyTorch . Ele oferece um recurso semelhante com funções como torch.nn.CrossEntropyLoss , adequadas para tarefas de classificação multiclasse.


  • Scikit-aprender . Embora predominantemente conhecido por seus algoritmos de aprendizado de máquina, ele também oferece utilitários para calcular a perda de log, que está intimamente relacionada à entropia cruzada, usando a função log_loss .

Perda de log

Logloss, abreviação de perda logarítmica, mede a precisão de um classificador penalizando classificações falsas. Para uma classificação binária com rótulo verdadeiro y e probabilidade prevista p , o logloss é dado por:

L(y, p) = -y \log(p) - (1 - y) \log(1 - p)


Essencialmente, logloss é a entropia cruzada entre os rótulos verdadeiros e as previsões para problemas de classificação binária. Quando expandido para classificação multiclasse, o logloss soma os valores de entropia cruzada para cada classe, tornando as duas métricas intimamente relacionadas.


É empregado principalmente em problemas de classificação binária e multiclasse. A sua força reside na capacidade de quantificar a incerteza das previsões com base no quanto elas se desviam dos rótulos verdadeiros.


Um modelo perfeito teria um logloss de 0, embora na prática os valores tendam a ser maiores que isso.


Uma série de bibliotecas de software nos permite calcular logloss:


Scikit-aprender . Como uma biblioteca de aprendizado de máquina amplamente utilizada, o scikit-learn oferece a função log_loss , adequada para cenários de classificação binária e multiclasse.


TensorFlow e PyTorch. Embora essas estruturas se concentrem principalmente em redes neurais e aprendizado profundo, elas calculam inerentemente a perda de log ao usar funções de perda de entropia cruzada para tarefas de classificação.


LightGBM e XGBoost. Essas estruturas de aumento de gradiente, conhecidas por seu alto desempenho em competições de dados tabulares, também contêm funcionalidades para calcular logloss, que são especialmente úteis ao avaliar o desempenho do modelo em desafios de classificação.

Perplexidade

Esta é uma medida de quão bem a distribuição de probabilidade ou modelo de probabilidade prevê uma amostra.


Dado por:

Perplexity(P) = 2^{H(P)}

onde H(P) é a entropia cruzada da distribuição P , a perplexidade representa efetivamente o número médio ponderado de escolhas que um modelo pensa ter em cada ponto de decisão.


No contexto da entropia cruzada, um valor mais alto de entropia cruzada corresponde a uma maior perplexidade, indicando que o modelo é mais incerto em suas previsões.


A aplicação mais notável do Perplexity é em modelos de linguagem, onde mede quão bem um modelo prevê uma sequência de palavras. Um modelo com menor perplexidade é considerado superior porque significa menos fatores de ramificação médios ou, em termos mais simples, tem mais certeza sobre a próxima palavra em uma sequência.


Além dos modelos de linguagem, a perplexidade também pode ser uma métrica relevante em outros modelos probabilísticos onde a qualidade da previsão sobre sequências ou distribuições é crucial.


Diversas ferramentas e plataformas auxiliam no cálculo e interpretação da perplexidade:

NLTK . O Natural Language Toolkit fornece utilitários para a construção de modelos de linguagem probabilística e calcula a perplexidade para avaliar esses modelos.


TensorFlow e PyTorch. Para modelos de linguagem baseados em aprendizagem profunda, ambas as estruturas oferecem funcionalidades para calcular entropia cruzada, que pode então ser traduzida em perplexidade usando a fórmula acima.


Gensim . Mais conhecido pela modelagem de tópicos, o Gensim também contém métodos para calcular perplexidade, particularmente úteis na avaliação da coerência dos tópicos gerados.

Semelhanças e diferenças

Entropia cruzada, perda de log e perplexidade são métricas enraizadas na teoria da informação e na modelagem probabilística. Seu principal objetivo é avaliar a qualidade das previsões, seja para classificação ou estimativa de distribuição de probabilidade. Em alto nível:

  • A entropia cruzada mede a dissimilaridade entre a distribuição verdadeira e a distribuição prevista.


  • Logloss é uma instância específica de entropia cruzada, adaptada especificamente para cenários de classificação binária ou multiclasse.


  • A perplexidade, derivada da entropia cruzada, mede a incerteza de um modelo probabilístico, com aplicação principal na avaliação de previsões de sequências.


Como métrica universal, a entropia cruzada é adequada para problemas onde o objetivo é aproximar ou corresponder a uma distribuição de probabilidade específica. Ele brilha em tarefas de classificação multiclasse. Os exemplos incluem a classificação de imagens, onde cada imagem pode pertencer a uma das várias categorias, ou a previsão do tipo de doença que um paciente pode ter com base nos seus sintomas.


Adaptado para classificação, o logloss se torna a métrica ideal para problemas binários e multiclasse, penalizando fortemente as previsões incorretas e confiáveis. A sua força reside na sua sensibilidade às previsões probabilísticas exatas.


Por exemplo, na detecção de spam (spam ou não spam), previsão de rotatividade de clientes (vai mudar ou não) ou prever se uma determinada transação é fraudulenta.


Por fim, usada principalmente em modelagem de linguagem, a perplexidade avalia quão bem um modelo prevê sequências. Valores mais baixos indicam um modelo que tem mais certeza de suas previsões sequenciais. Ele pode ser usado para tarefas de geração de texto, tradução automática ou reconhecimento de fala, onde o modelo prevê a próxima palavra ou frase em uma sequência.


Embora todas as três métricas tratem da avaliação de modelos probabilísticos, sua aplicabilidade diverge com base na natureza da tarefa: correspondência de distribuição, classificação ou previsão de sequência.


Um profissional experiente em aprendizado de máquina seleciona a métrica mais adequada para a tarefa para garantir a avaliação mais informativa do desempenho do modelo.

Conclusão

O reconhecimento das nuances das métricas de avaliação, como entropia cruzada, perda de log e perplexidade, influencia diretamente a tomada de decisões informadas em projetos de aprendizado de máquina. Cada uma dessas métricas, com características e usos próprios e distintos, influencia em grande parte a precisão e a confiabilidade dos modelos de previsão.


No ML, o uso de plataformas como TensorFlow, Scikit-learn e NLTK facilita o cálculo de métricas e melhora as avaliações de modelos. Certifique-se sempre de que a métrica escolhida esteja alinhada com os objetivos do projeto para obter o melhor resultado.


É claro que aplicar ferramentas conhecidas como você está acostumado é fácil, mas entendê-las verdadeiramente pode ser mais benéfico no final. Continue aprendendo e escolha a métrica certa para cada tarefa que você enfrenta.