Разница между логистической потерей и перекрестной потерей энтропии

Я смущен логистическими потерями и потерями кросс-энтропии в сценарии двоичной классификации. Согласно Википедии (https://en.wikipedia.org/wiki/Loss_functions_for_classification), логистическая потеря определяется как:

введите здесь описание изображения

где v=y*y_hat

Перекрестная потеря энтропии определяется как:

введите здесь описание изображения

Из Википедии (https://en.wikipedia.org/wiki/Loss_functions_for_classification):

Легко проверить, что логистические потери и двоичные перекрестные потери энтропии (логарифм потери) на самом деле одинаковы (с точностью до мультипликативной константы 1 / log (2)).

Однако, когда я тестировал его с помощью некоторого кода, я обнаружил, что они не совпадают. Вот код Python:

from numpy import exp
from math import log

def cross_entropy_loss(y, yp):
    return -log(1-yp) if y==0 else -log(yp)

def logistic_loss(y, yp):
    return log(1+exp(-y*yp))/log(2)

y, yp = 0, 0.3  # y= {0, 1} for cross_entropy_loss
l1 = cross_entropy_loss(y, yp)
y, yp = -1, 0.3  # y = {-1, 1} for logistic loss
l2 = logistic_loss(y, yp)
print(l1, l2, l1/l2)

y, yp = 1, 0.9
l1 = cross_entropy_loss(y, yp)
l2 = logistic_loss(y, yp)
print(l1, l2, l1/l2)

Выходные данные показывают, что ни значения потерь не совпадают, ни соотношение между ними не является постоянным:

0.35667494393873245 1.2325740743522222 0.2893740436056004
0.10536051565782628 0.49218100325603786 0.21406863523949665

Может ли кто-нибудь объяснить, почему они «фактически одинаковы»?


person YQ.Wang    schedule 03.03.2020    source источник
comment
Отвечает ли это на ваш вопрос? математика. stackexchange.com/questions/1074276/   -  person ccl    schedule 03.03.2020
comment
@ccl Я пытался понять этот ответ. Меня смущает, что уравнение логистических потерь в этом ответе - это просто потеря кросс-энтропии, а не та, о которой я упоминал выше.   -  person YQ.Wang    schedule 03.03.2020


Ответы (1)


В википедии v определяется как

v = -yf(x).

То, что не определено в Википедии, - это \ hat {y} (то есть предсказанная метка). Его следует определить как (логистическая функция):

\ hat {y} = 1 / (1 + exp (-f (x))).

Подставив приведенное выше определение в формулу логистических потерь из Википедии, вы сможете восстановить потерю перекрестной энтропии. Обратите внимание, что уравнение потери кросс-энтропии (вы представили выше) сформулировано для y = {0,1}, а уравнения из статьи в Википедии - для y = {- 1,1}.

person step    schedule 30.07.2020