Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Função de Perda | Rede Neural do Zero
Introdução às Redes Neurais

bookFunção de Perda

Durante o treinamento de uma rede neural, é necessário medir o desempenho do modelo. Isso é feito utilizando uma função de perda, que quantifica a diferença entre as saídas previstas e os valores-alvo reais. O objetivo do treinamento é minimizar essa perda, tornando as previsões o mais próximas possível dos valores reais.

Uma das funções de perda mais utilizadas para classificação binária é a perda de entropia cruzada, que funciona bem com modelos que produzem probabilidades como saída.

Derivação da Perda de Entropia Cruzada

Para compreender a perda de entropia cruzada, começamos com o princípio da máxima verossimilhança. Em um problema de classificação binária, o objetivo é treinar um modelo que estime a probabilidade y^\hat{y} de uma determinada entrada pertencer à classe 1. O rótulo real yy pode ser 0 ou 1.

Um bom modelo deve maximizar a probabilidade de prever corretamente todos os exemplos de treinamento. Isso significa que queremos maximizar a função de verossimilhança, que representa a probabilidade de observar os dados dados as previsões do modelo.

Para um único exemplo de treinamento, assumindo independência, a verossimilhança pode ser escrita como:

P(yx)=y^y(1y^)1yP(y|x) = \hat{y}^y(1 - \hat{y})^{1-y}

Essa expressão significa simplesmente:

  • Se y=1y = 1, então P(yx)=y^P(y|x) = \hat{y}, ou seja, queremos maximizar y^\hat{y} (a probabilidade atribuída à classe 1);
  • Se y=0y = 0, então P(yx)=1y^P(y|x) = 1 - \hat{y}, ou seja, queremos maximizar 1y^1 - \hat{y} (a probabilidade atribuída à classe 0).
Note
Nota

P(yx)P(y|x) significa a probabilidade de observar o rótulo de classe real yy dado as entradas xx.

Para facilitar a otimização, utilizamos a log-verossimilhança em vez da própria verossimilhança (já que logaritmos transformam produtos em somas, tornando a diferenciação mais simples):

logP(yx)=ylog(y^)+(1y)log(1y^)\log P(y|x) = y\log(\hat{y}) + (1-y)\log(1-\hat{y})

Como o objetivo é a maximização, definimos a função de perda como a log-verossimilhança negativa, que queremos minimizar:

L=(ylog(y^)+(1y)log(1y^))L = -(y\log(\hat{y}) + (1-y)\log(1-\hat{y}))

Esta é a função de perda de entropia cruzada binária, comumente utilizada para problemas de classificação.

Considerando que a variável output representa y^\hat{y} para um determinado exemplo de treinamento, e a variável target representa yy para este exemplo, esta função de perda pode ser implementada da seguinte forma:

import numpy as np

loss = -(target * np.log(output) + (1 - target) * np.log(1 - output))

Por que esta fórmula?

A perda de entropia cruzada possui uma interpretação intuitiva clara:

  • Se y=1y = 1, a perda se simplifica para log(y^)-\log(\hat{y}), ou seja, a perda é baixa quando y^\hat{y} está próxima de 1 e muito alta quando y^\hat{y} está próxima de 0;
  • Se y=0y = 0, a perda se simplifica para log(1y^)-\log(1 - \hat{y}), ou seja, a perda é baixa quando y^\hat{y} está próxima de 0 e muito alta quando está próxima de 1.

Como os logaritmos crescem negativamente à medida que sua entrada se aproxima de zero, previsões incorretas são fortemente penalizadas, incentivando o modelo a fazer previsões corretas e confiantes.

Se múltiplos exemplos forem passados durante a propagação para frente, a perda total é calculada como a média da perda entre todos os exemplos:

L=1Ni=1N(yilog(y^i)+(1yi)log(1y^i))L = -\frac1N \sum_{i=1}^N (y_i\log(\hat{y}_i) + (1-y_i)\log(1-\hat{y}_i))

onde NN é o número de amostras de treinamento.

question mark

Qual das alternativas a seguir melhor descreve o propósito da função de perda de entropia cruzada na classificação binária?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 6

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you explain how cross-entropy loss differs from mean squared error?

Why do we use the negative log-likelihood instead of just the likelihood?

Can you show how this loss function is used during neural network training?

Awesome!

Completion rate improved to 4

bookFunção de Perda

Deslize para mostrar o menu

Durante o treinamento de uma rede neural, é necessário medir o desempenho do modelo. Isso é feito utilizando uma função de perda, que quantifica a diferença entre as saídas previstas e os valores-alvo reais. O objetivo do treinamento é minimizar essa perda, tornando as previsões o mais próximas possível dos valores reais.

Uma das funções de perda mais utilizadas para classificação binária é a perda de entropia cruzada, que funciona bem com modelos que produzem probabilidades como saída.

Derivação da Perda de Entropia Cruzada

Para compreender a perda de entropia cruzada, começamos com o princípio da máxima verossimilhança. Em um problema de classificação binária, o objetivo é treinar um modelo que estime a probabilidade y^\hat{y} de uma determinada entrada pertencer à classe 1. O rótulo real yy pode ser 0 ou 1.

Um bom modelo deve maximizar a probabilidade de prever corretamente todos os exemplos de treinamento. Isso significa que queremos maximizar a função de verossimilhança, que representa a probabilidade de observar os dados dados as previsões do modelo.

Para um único exemplo de treinamento, assumindo independência, a verossimilhança pode ser escrita como:

P(yx)=y^y(1y^)1yP(y|x) = \hat{y}^y(1 - \hat{y})^{1-y}

Essa expressão significa simplesmente:

  • Se y=1y = 1, então P(yx)=y^P(y|x) = \hat{y}, ou seja, queremos maximizar y^\hat{y} (a probabilidade atribuída à classe 1);
  • Se y=0y = 0, então P(yx)=1y^P(y|x) = 1 - \hat{y}, ou seja, queremos maximizar 1y^1 - \hat{y} (a probabilidade atribuída à classe 0).
Note
Nota

P(yx)P(y|x) significa a probabilidade de observar o rótulo de classe real yy dado as entradas xx.

Para facilitar a otimização, utilizamos a log-verossimilhança em vez da própria verossimilhança (já que logaritmos transformam produtos em somas, tornando a diferenciação mais simples):

logP(yx)=ylog(y^)+(1y)log(1y^)\log P(y|x) = y\log(\hat{y}) + (1-y)\log(1-\hat{y})

Como o objetivo é a maximização, definimos a função de perda como a log-verossimilhança negativa, que queremos minimizar:

L=(ylog(y^)+(1y)log(1y^))L = -(y\log(\hat{y}) + (1-y)\log(1-\hat{y}))

Esta é a função de perda de entropia cruzada binária, comumente utilizada para problemas de classificação.

Considerando que a variável output representa y^\hat{y} para um determinado exemplo de treinamento, e a variável target representa yy para este exemplo, esta função de perda pode ser implementada da seguinte forma:

import numpy as np

loss = -(target * np.log(output) + (1 - target) * np.log(1 - output))

Por que esta fórmula?

A perda de entropia cruzada possui uma interpretação intuitiva clara:

  • Se y=1y = 1, a perda se simplifica para log(y^)-\log(\hat{y}), ou seja, a perda é baixa quando y^\hat{y} está próxima de 1 e muito alta quando y^\hat{y} está próxima de 0;
  • Se y=0y = 0, a perda se simplifica para log(1y^)-\log(1 - \hat{y}), ou seja, a perda é baixa quando y^\hat{y} está próxima de 0 e muito alta quando está próxima de 1.

Como os logaritmos crescem negativamente à medida que sua entrada se aproxima de zero, previsões incorretas são fortemente penalizadas, incentivando o modelo a fazer previsões corretas e confiantes.

Se múltiplos exemplos forem passados durante a propagação para frente, a perda total é calculada como a média da perda entre todos os exemplos:

L=1Ni=1N(yilog(y^i)+(1yi)log(1y^i))L = -\frac1N \sum_{i=1}^N (y_i\log(\hat{y}_i) + (1-y_i)\log(1-\hat{y}_i))

onde NN é o número de amostras de treinamento.

question mark

Qual das alternativas a seguir melhor descreve o propósito da função de perda de entropia cruzada na classificação binária?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 6
some-alt